diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index e5908c26ac0..00000000000 --- a/.dockerignore +++ /dev/null @@ -1,16 +0,0 @@ -build -build.xml -ChangeLog -composer.json -CONTRIBUTING.md -COPYING -COPYRIGHT -dev -doc -Dockerfile -INSTALL -README-FR.md -README.md -robots.txt -scripts -test \ No newline at end of file diff --git a/ChangeLog b/ChangeLog index 9cd6f11d1b8..42cf4d14f1e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,12 +2,134 @@ English Dolibarr ChangeLog -------------------------------------------------------------- + +***** ChangeLog for 7.0.0 compared to 6.0.* ***** + + + ***** ChangeLog for 6.0.0 compared to 5.0.* ***** +NEW: Add experimental BlockeLog module (to log business events in a non reversible log file). +NEW: Add a payment module for Stripe. +NEW: Add module "Product variant" (like red, blue for the product shoes) +NEW: Accountancy - Activate multi-journal & Add journal_label to database (FEC) +NEW: Add a tracking id into mass emailing. +NEW: Tax system more compatible with the new tax roollout in India (IGST / CGST / SGST). +NEW: Add calculation function for Loan schedule +NEW: Add "depends on" and "required by" into module informations +NEW: Add hidden option THIRDPARTY_INCLUDE_PARENT_IN_LINKTO +NEW: Add key __USERID__ and __ENTITYID__ as key for dynamic filters. +NEW: Add last activation author and ip of modules +NEW: Add mass actions (pdf merge and delete) for interventions +NEW: Add module resources import/export +NEW: Add option PROJECT_THIRDPARTY_REQUIRED +NEW: Add page statistics for project tasks +NEW: add property to show warnings when activating modules +NEW: add rapport file for supplier paiement +NEW: Add statistics on supplier tab. +NEW: Add tooltip help on shipment weight and volume calculation +NEW: An external module can hook and add mass actions. +NEW: Better reponsive design +NEW: Bookmarks are into a combo list. +NEW: Bulk actions available on supplier orders +NEW: Can add a background image on login page +NEW: Can change customer from POS +NEW: Can clone expense report on another user +NEW: Can control constants values into file integrity checker +NEW: Can define default values for create forms. +NEW: Can define default filters for list pages. +NEW: Can define default sort order for list pages. +NEW: Can deploy an external module from the module setup area. +NEW: Can disable all overwrote translations in one click. +NEW: Can edit background color for odd and even lines in tables +NEW: Can filter on code in dictionnaries +NEW: Can filter on year and product tags on the product statistic page +NEW: Can import users +NEW: Can read time spent of others (hierarchy only or all if granted) +NEW: Can send an email to a user from its card. +NEW: Can send email to multiple destinaries from the mailform combo list. +NEW: Can set margins of PDFs +NEW: Can set number of dump to keep with job "local database backup" +NEW: Can sort customer balance summary on date. +NEW: Can sort thumbs visible on product card. +NEW: Can use a credit note into a "down payment/deposit". +NEW: Can use dol_fiche_end without showing bottom border. +NEW: Can use translations into all substitutions (watermark, freetext...) +NEW: Change to allow a specific numbering rule for invoice with POS module. +NEW: convert exceiss received to reduc +NEW: custom dir is enabled dy default on first install. +NEW: Description of feature of a module visible into a dedicated popup. +NEW: Direct open of card after a search if one record only found. +NEW: download button +NEW: Enable bulk actions delete on supplier invoices. +NEW: Extrafields support formulas to be computed using PHP expressions. +NEW: Feature to crop/resize images available on user and expense reports. +NEW: Filechecker can include custom dir and report added files. +NEW: fix listview class and add a demo for product list +NEW: [FP17] Accountancy - Add select field in list of accounts +NEW: get amount base on hourly rate for ficheinter +NEW: hidden Easter egg to display commitstrip strip on login page +NEW: Include an hourglass icon when we click on online payment button +NEW: Index upload files into database. +NEW: Introduce mass action on product list ('delete' for the moment) +NEW: Introduce mass actions on contacts +NEW: Introduce option MAIN_HTTP_CONTENT_SECURITY_POLICY +NEW: It's easier to switch between sandbox and live for paypal +NEW: Mass action delete available on project and tasks +NEW: Move login information on home page into a widget +NEW: new demo entry page +NEW: No external check of version without explicit click in about page. +NEW: ODT docs for USER USERGROUP CONTRACT and PRODUCT class +NEW: odt usergroup +NEW: On invoices generated by template, we save if invoice come from a source template. +NEW: option to copy into attachement files of events, files send by mail (with auto event creation) +NEW: PDF with numbertoword +NEW: Permit multiple file upload in linked documents +NEW: PHP 7.1 compatibility +NEW: Reduce memory usage by removing deprecated constant loading. +NEW: Report page and menu for suppliers paiements +NEW: Show by default README.md file found into root dir of ext module. +NEW: Show company into combo list of projects +NEW: show files in the bank statement + download +NEW: Show local taxes in facture list +NEW: Show local taxes in supplier facture list +NEW: Small PDF template for products +NEW: Option SUPPLIER_ORDER_EDIT_BUYINGPRICE_DURING_RECEIPT +NEW: The substitution keys available for emailing edition are now visible into a popup. +NEW: Uniformize behaviour: Action to make order is an action button. +NEW: Use autocompletion on the "Add widget list". +NEW: Use html5 type "number" on select field for year and duration. +NEW: Can use pdktk to concat mass pdf because tcpdf generate avoid to split large file into multiple smaller file (all have same size) encounter issue with mailer provider virtual delivery service +NEW: Default theme of v6 is cleaner. +NEW: When down payment is entered, discount to reuse into final invoice is automatically created. This save one click into invoice workflow. +NEW: Add UI to configure MEMBER_NEWFORM_FORCETYPE +NEW: #2763 Go to document block after clicking in Generate document button +NEW: #6280: Generate PDF after creating an invoice from a customer order +NEW: #6915 Simplest change. +NEW: Uniformize the look and feel with v6 new look. + For developers: NEW: Add a lot of API REST: dictionaryevents, memberstypes, ... NEW: Big refactorization of multicompany transverse mode. NEW: getEntity function use true $shared value by default. +NEW: Add font-awesome css. +NEW: Add function ajax_autoselect +NEW: Add function dolMd2Html +NEW: Add hook doUpgrade2 +NEW: Add hook "formatNotificationMessage" +NEW: Add index and constraints keys on supplier proposal detail table +NEW: Add phpunit to check the engine is defined into sql create files. +NEW: Add project and Hook to Loan +NEW: Add REST API to push a file. +NEW: Allow extrafields list select to be dependands on other standard list and not only other extrafields list +NEW: Architecture to manage search criteria persistance (using save_lastsearch_values=1 on exit links and restore_lastsearch_values=1 in entry links) +NEW: data files are now also parsed by phpunit for sql syntax +NEW: Hook to allow inserting custom product head #6001 +NEW: Introduce fields that can be computed during export in export profiles. +NEW: Introduce function dol_compress_dir +NEW: Removed commande_pdf_create, contract_pdf_create,expedition_pdf_create, facture_pdf_create, delivery_order_pdf_create, task_pdf_create, project_pdf_create, propale_pdf_create, supplier_invoice_pdf_create, supplier_order_pdf_create, supplier_proposal_pdf_create deprecated functions +NEW: tooltip can be on hover or on click with textwithpicto function. +NEW: Upgrade jquery to 3.3.1 and jquery-ui to 1.12 WARNING: @@ -25,8 +147,12 @@ Following changes may create regression for some external modules, but were nece * Removed Societe::set_commnucation_level (was deprecated in 4.0). Was not used. * Removed the trigger file of PAYPAL module that stored data that was not used by Dolibarr. The trigger event still exists, but if an external module need action on it, it must provides itself its trigger file. -* Use $conf->global->MULTICOMPANY_TRANSVERSE_MODE instead $conf->multicompany->transverse_mode +* Use $conf->global->MULTICOMPANY_TRANSVERSE_MODE instead $conf->multicompany->transverse_mode. So, if you set var + $multicompany_transverse_mode to 1 into your conf file, you must remove this line and a new key into + the Home - setup - other admin page. * Use getEntity('xxx') instead getEntity('xxx', 1) and use getEntity('xxx', 0) instead getEntity('xxx') +* Some other change were done in the way we read permission of a user when module multicompany is enabled. You can + retreive the old behavior by adding constant MULTICOMPANY_BACKWARD_COMPATIBILITY to 1. * The hook formObjectOptions was not implemented correctly in previous version. Sometimes, you had to return output content by doing a print into function, sometimes by returning content into "resprint". This has been fixed to follow hook specifications so you must return output into "resprint". diff --git a/build/docker/.dockerignore b/build/docker/.dockerignore new file mode 100644 index 00000000000..e345920fb8c --- /dev/null +++ b/build/docker/.dockerignore @@ -0,0 +1,3 @@ +Dockerfile +README.md +docker-compose.yml diff --git a/Dockerfile b/build/docker/Dockerfile similarity index 72% rename from Dockerfile rename to build/docker/Dockerfile index 00a5d0ef567..caa7b0c436a 100644 --- a/Dockerfile +++ b/build/docker/Dockerfile @@ -1,4 +1,7 @@ -FROM php:5.6-apache +FROM php:7.0-apache + +ENV HOST_USER_ID 33 +ENV PHP_INI_DATE_TIMEZONE 'UTC' RUN apt-get update && apt-get install -y libpng12-dev libjpeg-dev libldap2-dev \ && rm -rf /var/lib/apt/lists/* \ @@ -9,11 +12,9 @@ RUN apt-get update && apt-get install -y libpng12-dev libjpeg-dev libldap2-dev \ && docker-php-ext-install mysqli \ && apt-get purge -y libpng12-dev libjpeg-dev libldap2-dev -COPY htdocs/ /var/www/html/ - -RUN chown -hR www-data:www-data /var/www/html - -VOLUME /var/www/html/conf -VOLUME /var/www/html/documents +COPY docker-run.sh /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-run.sh EXPOSE 80 + +ENTRYPOINT ["docker-run.sh"] diff --git a/build/docker/README.md b/build/docker/README.md new file mode 100644 index 00000000000..5a0997cf121 --- /dev/null +++ b/build/docker/README.md @@ -0,0 +1,25 @@ +# How to use it ? + +The docker-compose.yml file is used to build and run Dolibarr in the current workspace. + +Before build/run, define the variable HOST_USER_ID as following: + + export HOST_USER_ID=$(id -u) + +Go in repository build/docker : + + cd build/docker + +And then, you can run : + + docker-compose up + +This will run 3 container Docker : Dolibarr, MariaDB and PhpMyAdmin. + +The URL to go to the Dolibarr is : + + http://0.0.0.0 + +The URL to go to PhpMyAdmin is (login/password is root/root) : + + http://0.0.0.0:8080 diff --git a/build/docker/docker-compose.yml b/build/docker/docker-compose.yml new file mode 100644 index 00000000000..a2017335197 --- /dev/null +++ b/build/docker/docker-compose.yml @@ -0,0 +1,25 @@ +mariadb: + image: mariadb:latest + environment: + MYSQL_ROOT_PASSWORD: root + MYSQL_DATABASE: dolibarr + +phpmyadmin: + image: phpmyadmin/phpmyadmin + environment: + PMA_HOST: mariadb + links: + - mariadb + ports: + - "8080:80" + +web: + build: . + environment: + HOST_USER_ID: $HOST_USER_ID + volumes: + - ../../htdocs:/var/www/html + links: + - mariadb + ports: + - "80:80" diff --git a/build/docker/docker-run.sh b/build/docker/docker-run.sh new file mode 100644 index 00000000000..c151e1c3cab --- /dev/null +++ b/build/docker/docker-run.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +usermod -u $HOST_USER_ID www-data +groupmod -g $HOST_USER_ID www-data + +chown -hR www-data:www-data /var/www + +if [ ! -f /usr/local/etc/php/php.ini ]; then + cat < /usr/local/etc/php/php.ini +date.timezone = $PHP_INI_DATE_TIMEZONE +display_errors = On +EOF +fi + +exec apache2-foreground diff --git a/build/exe/doliwamp/doliwamp.iss b/build/exe/doliwamp/doliwamp.iss index 34757a5123a..2ef8ab32f22 100644 --- a/build/exe/doliwamp/doliwamp.iss +++ b/build/exe/doliwamp/doliwamp.iss @@ -353,10 +353,12 @@ begin begin // TODO Copy file or ask to install package ? //CustomMessage('YouWillInstallDoliWamp')+#13#13 - MsgBox('The package vcredist_x86.exe must have been installed first. It seems it is not. Please install it first from http://www.microsoft.com/en-us/download/details.aspx?id=30679 then restart DoliWamp installation/upgrade.',mbInformation,MB_OK); + MsgBox('The package vcredist_x86.exe must have been installed first. It seems it is not. Please install it first from http://www.microsoft.com/en-us/download/details.aspx?id=30679 then restart DoliWamp installation/upgrade.',mbInformation,MB_OK); end; - - + // Pb seems similar with msvcp110.dll + //vcredist_x64.exe + + // If we have a new database version, we should only copy old my.ini file into new directory // and change only all basedir= strings to use new version. Like this, data dir is still correct. // Install of service and stop/start scripts are already rebuild by installer. diff --git a/build/makepack-dolibarr.pl b/build/makepack-dolibarr.pl index c2d983653cb..1843f3c8cfd 100755 --- a/build/makepack-dolibarr.pl +++ b/build/makepack-dolibarr.pl @@ -592,6 +592,8 @@ if ($nboftargetok) { print "Remove subdir of custom dir\n"; print "find $BUILDROOT/$PROJECT/htdocs/custom/* -type d -exec rm -fr {} \\;\n"; $ret=`find $BUILDROOT/$PROJECT/htdocs/custom/* -type d -exec rm -fr {} \\; >/dev/null 2>&1`; # For custom we want to remove all subdirs but not files + print "find $BUILDROOT/$PROJECT/htdocs/custom/* -type l -exec rm -fr {} \\;\n"; + $ret=`find $BUILDROOT/$PROJECT/htdocs/custom/* -type l -exec rm -fr {} \\; >/dev/null 2>&1`; # For custom we want to remove all subdirs, even symbolic links, but not files } # Build package for each target @@ -972,9 +974,11 @@ if ($nboftargetok) { $ret=`$cmd`; $ret=`chmod 755 $BUILDROOT/$PROJECT.tmp/debian/rules`; $ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/dev/translation/autotranslator.class.php`; + $ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/htdocs/modulebuilder/template/class/actions_mymodule.class.php`; + $ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/htdocs/modulebuilder/template/class/api_myobject.class.php`; $ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/htdocs/modulebuilder/template/class/myobject.class.php`; - $ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/htdocs/modulebuilder/template/class/myobject_api_class.class.php`; $ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/htdocs/modulebuilder/template/core/modules/modMyModule.class.php`; + $ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/htdocs/modulebuilder/template/mymoduleindex.php`; $ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/htdocs/modulebuilder/template/myobject_card.php`; $ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/htdocs/modulebuilder/template/myobject_list.php`; $ret=`chmod -R 755 $BUILDROOT/$PROJECT.tmp/htdocs/modulebuilder/template/scripts/myobject.php`; diff --git a/build/rpm/dolibarr_fedora.spec b/build/rpm/dolibarr_fedora.spec index 33dc951309d..55898481691 100755 --- a/build/rpm/dolibarr_fedora.spec +++ b/build/rpm/dolibarr_fedora.spec @@ -162,6 +162,7 @@ done >>%{name}.lang %_datadir/dolibarr/htdocs/api %_datadir/dolibarr/htdocs/asterisk %_datadir/dolibarr/htdocs/barcode +%_datadir/dolibarr/htdocs/blockedlog %_datadir/dolibarr/htdocs/bookmarks %_datadir/dolibarr/htdocs/cashdesk %_datadir/dolibarr/htdocs/categories diff --git a/build/rpm/dolibarr_generic.spec b/build/rpm/dolibarr_generic.spec index 42a89675abf..e5b346278ab 100755 --- a/build/rpm/dolibarr_generic.spec +++ b/build/rpm/dolibarr_generic.spec @@ -242,6 +242,7 @@ done >>%{name}.lang %_datadir/dolibarr/htdocs/api %_datadir/dolibarr/htdocs/asterisk %_datadir/dolibarr/htdocs/barcode +%_datadir/dolibarr/htdocs/blockedlog %_datadir/dolibarr/htdocs/bookmarks %_datadir/dolibarr/htdocs/cashdesk %_datadir/dolibarr/htdocs/categories diff --git a/build/rpm/dolibarr_mandriva.spec b/build/rpm/dolibarr_mandriva.spec index 9dd2100b02c..04a3138d9f9 100755 --- a/build/rpm/dolibarr_mandriva.spec +++ b/build/rpm/dolibarr_mandriva.spec @@ -159,6 +159,7 @@ done >>%{name}.lang %_datadir/dolibarr/htdocs/api %_datadir/dolibarr/htdocs/asterisk %_datadir/dolibarr/htdocs/barcode +%_datadir/dolibarr/htdocs/blockedlog %_datadir/dolibarr/htdocs/bookmarks %_datadir/dolibarr/htdocs/cashdesk %_datadir/dolibarr/htdocs/categories diff --git a/build/rpm/dolibarr_opensuse.spec b/build/rpm/dolibarr_opensuse.spec index d780c47da99..c77661fe420 100755 --- a/build/rpm/dolibarr_opensuse.spec +++ b/build/rpm/dolibarr_opensuse.spec @@ -170,6 +170,7 @@ done >>%{name}.lang %_datadir/dolibarr/htdocs/api %_datadir/dolibarr/htdocs/asterisk %_datadir/dolibarr/htdocs/barcode +%_datadir/dolibarr/htdocs/blockedlog %_datadir/dolibarr/htdocs/bookmarks %_datadir/dolibarr/htdocs/cashdesk %_datadir/dolibarr/htdocs/categories diff --git a/dev/resources/iso-normes/world_tax_rates.txt b/dev/resources/iso-normes/world_tax_rates.txt index e5bb64a86f2..740062288dc 100644 --- a/dev/resources/iso-normes/world_tax_rates.txt +++ b/dev/resources/iso-normes/world_tax_rates.txt @@ -1 +1,4 @@ -http://www.taxrates.cc/index.html \ No newline at end of file +http://www.taxrates.cc/index.html + +For India: VAT=IGST/CGST=Localtax1/SGST=Localtax2: https://cleartax.in/s/what-is-sgst-cgst-igst + diff --git a/dev/translation/sanity_check_en_langfiles.php b/dev/translation/sanity_check_en_langfiles.php index 9136c192739..f65cefd7f94 100755 --- a/dev/translation/sanity_check_en_langfiles.php +++ b/dev/translation/sanity_check_en_langfiles.php @@ -25,7 +25,7 @@ $path=dirname(__FILE__).'/'; $web=0; // Test if batch mode -if (substr($sapi_type, 0, 3) == 'cgi') +if (substr($sapi_type, 0, 3) == 'cgi') { $web=1; } @@ -35,9 +35,9 @@ if ($web) { echo ""; echo ""; - + echo ""; - + echo ""; } @@ -142,9 +142,9 @@ foreach ($files AS $file) { } } -foreach ($langstrings_3d AS $filename => $file) +foreach ($langstrings_3d AS $filename => $file) { - foreach ($file AS $linenum => $value) + foreach ($file AS $linenum => $value) { $keys = array_keys($langstrings_full, $value); if (count($keys)>1) @@ -173,11 +173,11 @@ $sininstallandadmin=''; $sother=''; $count = 0; -foreach ($dups as $string => $pages) +foreach ($dups as $string => $pages) { $count++; $s=''; - + // Keyword $string if ($web) $s.=""; if ($web) $s.=""; @@ -188,32 +188,32 @@ foreach ($dups as $string => $pages) if ($web) $s.=""; if ($web) $s.=""; if (! $web) $s.= ' : '; - + // Loop on each files keyword was found $duplicateinsamefile=0; $inmain=0; $inadmin=0; - foreach ($pages AS $file => $lines) + foreach ($pages AS $file => $lines) { if ($file == 'main.lang') { $inmain=1; $inadmin=0; } if ($file == 'admin.lang' && ! $inmain) { $inadmin=1; } - + $s.=$file." "; - + // Loop on each line keword was found into file. $listoffilesforthisentry=array(); - foreach ($lines as $line => $translatedvalue) + foreach ($lines as $line => $translatedvalue) { if (! empty($listoffilesforthisentry[$file])) $duplicateinsamefile=1; $listoffilesforthisentry[$file]=1; - + $s.= "(".$line." - ".htmlentities($translatedvalue).") "; } if ($web) $s.="
"; } if ($web) $s.=""; $s.="\n"; - + if ($duplicateinsamefile) $sduplicateinsamefile .= $s; else if ($inmain) $sinmainandother .= $s; else if ($inadmin) $sininstallandadmin .= $s; @@ -252,7 +252,7 @@ if ($web) if ((! empty($_REQUEST['unused']) && $_REQUEST['unused'] == 'true') || (isset($argv[1]) && $argv[1]=='unused=true')) { print "***** Strings in en_US that are never used:\n"; - + $unused=array(); foreach ($langstrings_dist AS $value => $line) { @@ -288,7 +288,7 @@ if ((! empty($_REQUEST['unused']) && $_REQUEST['unused'] == 'true') || (isset($a if (preg_match('/^JuridicalStatus/', $value)) $qualifiedforclean=0; if (preg_match('/^CalcMode/', $value)) $qualifiedforclean=0; if (preg_match('/^newLT/', $value)) $qualifiedforclean=0; - if (preg_match('/^LT\d/', $value)) $qualifiedforclean=0; + if (preg_match('/^LT[0-9]/', $value)) $qualifiedforclean=0; if (preg_match('/^TypeContact_contrat_/', $value)) $qualifiedforclean=0; if (preg_match('/^ErrorPriceExpression/', $value)) $qualifiedforclean=0; if (preg_match('/^Language_/', $value)) $qualifiedforclean=0; @@ -315,7 +315,7 @@ if ((! empty($_REQUEST['unused']) && $_REQUEST['unused'] == 'true') || (isset($a // orders if (preg_match('/^OrderSource/', $value)) $qualifiedforclean=0; if (preg_match('/^TypeContact_/', $value)) $qualifiedforclean=0; - // other.lang + // other.lang if (preg_match('/^Notify_/', $value)) $qualifiedforclean=0; if (preg_match('/^PredefinedMail/', $value)) $qualifiedforclean=0; if (preg_match('/^DemoCompany/', $value)) $qualifiedforclean=0; @@ -336,17 +336,17 @@ if ((! empty($_REQUEST['unused']) && $_REQUEST['unused'] == 'true') || (isset($a if (preg_match('/OppStatus/', $value)) $qualifiedforclean=0; if (preg_match('/AvailabilityType/', $value)) $qualifiedforclean=0; if (preg_match('/CardProduct/', $value)) $qualifiedforclean=0; - + if (preg_match('/sms/i', $value)) $qualifiedforclean=0; if (preg_match('/TF_/i', $value)) $qualifiedforclean=0; if (preg_match('/WithBankUsing/i', $value)) $qualifiedforclean=0; if (preg_match('/descWORKFLOW_/i', $value)) $qualifiedforclean=0; - + if (! $qualifiedforclean) { - continue; + continue; } - + //$search = '\'trans("'.$value.'")\''; $search = '-e "\''.$value.'\'" -e \'"'.$value.'"\' -e "('.$value.')" -e "('.$value.',"'; $string = 'grep -R -m 1 -F --exclude=includes/* --include=*.php '.$search.' '.$htdocs.'* '.$scripts.'*'; @@ -356,7 +356,7 @@ if ((! empty($_REQUEST['unused']) && $_REQUEST['unused'] == 'true') || (isset($a $unused[$value] = $line; echo $line; // $trad contains the \n } - else + else { unset($output); //print 'X'.$output.'Y'; @@ -364,7 +364,7 @@ if ((! empty($_REQUEST['unused']) && $_REQUEST['unused'] == 'true') || (isset($a } if (empty($unused)) print "No string not used found.\n"; - else + else { $filetosave='/tmp/'.($argv[2]?$argv[2]:"").'notused.lang'; print "Strings in en_US that are never used are saved into file ".$filetosave.":\n"; diff --git a/htdocs/accountancy/admin/productaccount.php b/htdocs/accountancy/admin/productaccount.php index c72ce8cc134..85784ec16d7 100644 --- a/htdocs/accountancy/admin/productaccount.php +++ b/htdocs/accountancy/admin/productaccount.php @@ -336,17 +336,17 @@ if ($result) print ''; print ''; - print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Label"), $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder); - if (! empty($conf->global->ACCOUNTANCY_SHOW_PROD_DESC)) print_liste_field_titre($langs->trans("Description"), $_SERVER["PHP_SELF"], "p.description", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("OnSell"), $_SERVER["PHP_SELF"], "p.tosell", "", $param, 'align="center"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("OnBuy"), $_SERVER["PHP_SELF"], "p.tobuy", "", $param, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Label", $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder); + if (! empty($conf->global->ACCOUNTANCY_SHOW_PROD_DESC)) print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "p.description", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("OnSell", $_SERVER["PHP_SELF"], "p.tosell", "", $param, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre("OnBuy", $_SERVER["PHP_SELF"], "p.tobuy", "", $param, 'align="center"', $sortfield, $sortorder); if ($accounting_product_mode == 'ACCOUNTANCY_BUY') { $fieldtosortaccount="p.accountancy_code_buy"; } else $fieldtosortaccount="p.accountancy_code_sell"; - print_liste_field_titre($langs->trans("CurrentDedicatedAccountingAccount"), $_SERVER["PHP_SELF"], $fieldtosortaccount, "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("AssignDedicatedAccountingAccount")); + print_liste_field_titre("CurrentDedicatedAccountingAccount", $_SERVER["PHP_SELF"], $fieldtosortaccount, "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("AssignDedicatedAccountingAccount"); $clickpitco=$form->showCheckAddButtons('checkforselect', 1); print_liste_field_titre($clickpitco, '', '', '', '', 'align="center"'); print ''; diff --git a/htdocs/accountancy/bookkeeping/balance.php b/htdocs/accountancy/bookkeeping/balance.php index fb503c17ca0..50f9e18fd80 100644 --- a/htdocs/accountancy/bookkeeping/balance.php +++ b/htdocs/accountancy/bookkeeping/balance.php @@ -195,11 +195,11 @@ else { print ''; print ''; - print_liste_field_titre($langs->trans("AccountAccounting"), $_SERVER['PHP_SELF'], "t.numero_compte", "", $options, "", $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Label"), $_SERVER['PHP_SELF'], "t.label_operation", "", $options, "", $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Debit"), $_SERVER['PHP_SELF'], "t.debit", "", $options, 'align="right"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Credit"), $_SERVER['PHP_SELF'], "t.credit", "", $options, 'align="right"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Solde"), $_SERVER["PHP_SELF"], "", $options, "", 'align="right"', $sortfield, $sortorder); + print_liste_field_titre("AccountAccounting", $_SERVER['PHP_SELF'], "t.numero_compte", "", $options, "", $sortfield, $sortorder); + print_liste_field_titre("Label", $_SERVER['PHP_SELF'], "t.label_operation", "", $options, "", $sortfield, $sortorder); + print_liste_field_titre("Debit", $_SERVER['PHP_SELF'], "t.debit", "", $options, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre("Credit", $_SERVER['PHP_SELF'], "t.credit", "", $options, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre("Solde", $_SERVER["PHP_SELF"], "", $options, "", 'align="right"', $sortfield, $sortorder); print_liste_field_titre('', $_SERVER["PHP_SELF"], "", $options, "", 'width="60" align="center"', $sortfield, $sortorder); print "\n"; diff --git a/htdocs/accountancy/bookkeeping/card.php b/htdocs/accountancy/bookkeeping/card.php index d05dc11ed26..d3252b01a18 100644 --- a/htdocs/accountancy/bookkeeping/card.php +++ b/htdocs/accountancy/bookkeeping/card.php @@ -567,13 +567,13 @@ if ($action == 'create') { print ''; - print_liste_field_titre($langs->trans("AccountAccountingShort")); - print_liste_field_titre($langs->trans("SubledgerAccount")); - print_liste_field_titre($langs->trans("Labelcompte")); - print_liste_field_titre($langs->trans("Label")); - print_liste_field_titre($langs->trans("Debit"), "", "", "", "", 'align="right"'); - print_liste_field_titre($langs->trans("Credit"), "", "", "", "", 'align="right"'); - print_liste_field_titre($langs->trans("Action"), "", "", "", "", 'width="60" align="center"'); + print_liste_field_titre("AccountAccountingShort"); + print_liste_field_titre("SubledgerAccount"); + print_liste_field_titre("Labelcompte"); + print_liste_field_titre("Label"); + print_liste_field_titre("Debit", "", "", "", "", 'align="right"'); + print_liste_field_titre("Credit", "", "", "", "", 'align="right"'); + print_liste_field_titre("Action", "", "", "", "", 'width="60" align="center"'); print "\n"; diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php index 93968644a8f..3d6d7b7ad86 100644 --- a/htdocs/accountancy/bookkeeping/list.php +++ b/htdocs/accountancy/bookkeeping/list.php @@ -436,15 +436,15 @@ print ''; print ''; print ''; -print_liste_field_titre($langs->trans("TransactionNumShort"), $_SERVER['PHP_SELF'], "t.piece_num", "", $param, "", $sortfield, $sortorder); -print_liste_field_titre($langs->trans("Docdate"), $_SERVER['PHP_SELF'], "t.doc_date", "", $param, 'align="center"', $sortfield, $sortorder); -print_liste_field_titre($langs->trans("Docref"), $_SERVER['PHP_SELF'], "t.doc_ref", "", $param, "", $sortfield, $sortorder); -print_liste_field_titre($langs->trans("AccountAccountingShort"), $_SERVER['PHP_SELF'], "t.numero_compte", "", $param, "", $sortfield, $sortorder); -print_liste_field_titre($langs->trans("SubledgerAccount"), $_SERVER['PHP_SELF'], "t.subledger_account", "", $param, "", $sortfield, $sortorder); -print_liste_field_titre($langs->trans("Label"), $_SERVER['PHP_SELF'], "t.label_operation", "", $param, "", $sortfield, $sortorder); -print_liste_field_titre($langs->trans("Debit"), $_SERVER['PHP_SELF'], "t.debit", "", $param, 'align="right"', $sortfield, $sortorder); -print_liste_field_titre($langs->trans("Credit"), $_SERVER['PHP_SELF'], "t.credit", "", $param, 'align="right"', $sortfield, $sortorder); -print_liste_field_titre($langs->trans("Codejournal"), $_SERVER['PHP_SELF'], "t.code_journal", "", $param, 'align="center"', $sortfield, $sortorder); +print_liste_field_titre("TransactionNumShort", $_SERVER['PHP_SELF'], "t.piece_num", "", $param, "", $sortfield, $sortorder); +print_liste_field_titre("Docdate", $_SERVER['PHP_SELF'], "t.doc_date", "", $param, 'align="center"', $sortfield, $sortorder); +print_liste_field_titre("Docref", $_SERVER['PHP_SELF'], "t.doc_ref", "", $param, "", $sortfield, $sortorder); +print_liste_field_titre("AccountAccountingShort", $_SERVER['PHP_SELF'], "t.numero_compte", "", $param, "", $sortfield, $sortorder); +print_liste_field_titre("SubledgerAccount", $_SERVER['PHP_SELF'], "t.subledger_account", "", $param, "", $sortfield, $sortorder); +print_liste_field_titre("Label", $_SERVER['PHP_SELF'], "t.label_operation", "", $param, "", $sortfield, $sortorder); +print_liste_field_titre("Debit", $_SERVER['PHP_SELF'], "t.debit", "", $param, 'align="right"', $sortfield, $sortorder); +print_liste_field_titre("Credit", $_SERVER['PHP_SELF'], "t.credit", "", $param, 'align="right"', $sortfield, $sortorder); +print_liste_field_titre("Codejournal", $_SERVER['PHP_SELF'], "t.code_journal", "", $param, 'align="center"', $sortfield, $sortorder); $checkpicto=''; if ($massactionbutton) $checkpicto=$form->showCheckAddButtons('checkforselect', 1); print_liste_field_titre($checkpicto, $_SERVER["PHP_SELF"], "", $param, "", 'width="60" align="center"', $sortfield, $sortorder); diff --git a/htdocs/accountancy/bookkeeping/listbyaccount.php b/htdocs/accountancy/bookkeeping/listbyaccount.php index 1f43964bd0a..2e125925860 100644 --- a/htdocs/accountancy/bookkeeping/listbyaccount.php +++ b/htdocs/accountancy/bookkeeping/listbyaccount.php @@ -244,14 +244,14 @@ print $searchpicto; print ''; print ''; -print_liste_field_titre($langs->trans("AccountAccountingShort"), $_SERVER['PHP_SELF']); -print_liste_field_titre($langs->trans("TransactionNumShort"), $_SERVER['PHP_SELF'], "t.piece_num", "", $options, 'align="right"', $sortfield, $sortorder); -print_liste_field_titre($langs->trans("Docdate"), $_SERVER['PHP_SELF'], "t.doc_date", "", $options, 'align="center"', $sortfield, $sortorder); -print_liste_field_titre($langs->trans("Docref"), $_SERVER['PHP_SELF'], "t.doc_ref", "", $options, "", $sortfield, $sortorder); -print_liste_field_titre($langs->trans("Label")); -print_liste_field_titre($langs->trans("Debit"), $_SERVER['PHP_SELF'], "t.debit", "", $options, 'align="right"', $sortfield, $sortorder); -print_liste_field_titre($langs->trans("Credit"), $_SERVER['PHP_SELF'], "t.credit", "", $options, 'align="right"', $sortfield, $sortorder); -print_liste_field_titre($langs->trans("Codejournal"), $_SERVER['PHP_SELF'], "t.code_journal", "", $options, 'align="center"', $sortfield, $sortorder); +print_liste_field_titre("AccountAccountingShort", $_SERVER['PHP_SELF']); +print_liste_field_titre("TransactionNumShort", $_SERVER['PHP_SELF'], "t.piece_num", "", $options, 'align="right"', $sortfield, $sortorder); +print_liste_field_titre("Docdate", $_SERVER['PHP_SELF'], "t.doc_date", "", $options, 'align="center"', $sortfield, $sortorder); +print_liste_field_titre("Docref", $_SERVER['PHP_SELF'], "t.doc_ref", "", $options, "", $sortfield, $sortorder); +print_liste_field_titre("Label"); +print_liste_field_titre("Debit", $_SERVER['PHP_SELF'], "t.debit", "", $options, 'align="right"', $sortfield, $sortorder); +print_liste_field_titre("Credit", $_SERVER['PHP_SELF'], "t.credit", "", $options, 'align="right"', $sortfield, $sortorder); +print_liste_field_titre("Codejournal", $_SERVER['PHP_SELF'], "t.code_journal", "", $options, 'align="center"', $sortfield, $sortorder); print_liste_field_titre('', $_SERVER["PHP_SELF"], "", $options, "", 'width="60" align="center"', $sortfield, $sortorder); print "\n"; diff --git a/htdocs/accountancy/bookkeeping/listbyyear.php b/htdocs/accountancy/bookkeeping/listbyyear.php index d10f621d9e3..bf7578bb752 100644 --- a/htdocs/accountancy/bookkeeping/listbyyear.php +++ b/htdocs/accountancy/bookkeeping/listbyyear.php @@ -201,19 +201,19 @@ print ''; print ""; print ''; -print_liste_field_titre($langs->trans("NumPiece"), $_SERVER['PHP_SELF'], "t.piece_num", "", $options, "", $sortfield, $sortorder); -print_liste_field_titre($langs->trans("Doctype"), $_SERVER['PHP_SELF'], "t.doc_type", "", $options, "", $sortfield, $sortorder); -print_liste_field_titre($langs->trans("Date"), $_SERVER['PHP_SELF'], "t.doc_date", "", $options, 'align="center"', $sortfield, $sortorder); -print_liste_field_titre($langs->trans("Docref"), $_SERVER['PHP_SELF'], "t.doc_ref", "", $options, "", $sortfield, $sortorder); -print_liste_field_titre($langs->trans("AccountAccounting"), $_SERVER['PHP_SELF'], "t.numero_compte", "", $options, "", $sortfield, $sortorder); -print_liste_field_titre($langs->trans("ThirdPartyAccount"), $_SERVER['PHP_SELF'], "t.subledger_account", "", $options, "", $sortfield, $sortorder); -print_liste_field_titre($langs->trans("Label"), $_SERVER['PHP_SELF'], "t.label_operation", "", $options, "", $sortfield, $sortorder); -print_liste_field_titre($langs->trans("Debit"), $_SERVER['PHP_SELF'], "t.debit", "", $options, "", $sortfield, $sortorder); -print_liste_field_titre($langs->trans("Credit"), $_SERVER['PHP_SELF'], "t.credit", "", $options, 'align="center"', $sortfield, $sortorder); -print_liste_field_titre($langs->trans("Amount"), $_SERVER['PHP_SELF'], "t.montant", "", $options, 'align="center"', $sortfield, $sortorder); -print_liste_field_titre($langs->trans("Sens"), $_SERVER['PHP_SELF'], "t.sens", "", $options, 'align="center"', $sortfield, $sortorder); -print_liste_field_titre($langs->trans("Codejournal"), $_SERVER['PHP_SELF'], "t.code_journal", "", $options, 'align="center"', $sortfield, $sortorder); -print_liste_field_titre($langs->trans("Action"), $_SERVER["PHP_SELF"], "", $options, "", 'width="60" align="center"', $sortfield, $sortorder); +print_liste_field_titre("NumPiece", $_SERVER['PHP_SELF'], "t.piece_num", "", $options, "", $sortfield, $sortorder); +print_liste_field_titre("Doctype", $_SERVER['PHP_SELF'], "t.doc_type", "", $options, "", $sortfield, $sortorder); +print_liste_field_titre("Date", $_SERVER['PHP_SELF'], "t.doc_date", "", $options, 'align="center"', $sortfield, $sortorder); +print_liste_field_titre("Docref", $_SERVER['PHP_SELF'], "t.doc_ref", "", $options, "", $sortfield, $sortorder); +print_liste_field_titre("AccountAccounting", $_SERVER['PHP_SELF'], "t.numero_compte", "", $options, "", $sortfield, $sortorder); +print_liste_field_titre("ThirdPartyAccount", $_SERVER['PHP_SELF'], "t.subledger_account", "", $options, "", $sortfield, $sortorder); +print_liste_field_titre("Label", $_SERVER['PHP_SELF'], "t.label_operation", "", $options, "", $sortfield, $sortorder); +print_liste_field_titre("Debit", $_SERVER['PHP_SELF'], "t.debit", "", $options, "", $sortfield, $sortorder); +print_liste_field_titre("Credit", $_SERVER['PHP_SELF'], "t.credit", "", $options, 'align="center"', $sortfield, $sortorder); +print_liste_field_titre("Amount", $_SERVER['PHP_SELF'], "t.montant", "", $options, 'align="center"', $sortfield, $sortorder); +print_liste_field_titre("Sens", $_SERVER['PHP_SELF'], "t.sens", "", $options, 'align="center"', $sortfield, $sortorder); +print_liste_field_titre("Codejournal", $_SERVER['PHP_SELF'], "t.code_journal", "", $options, 'align="center"', $sortfield, $sortorder); +print_liste_field_titre("Action", $_SERVER["PHP_SELF"], "", $options, "", 'width="60" align="center"', $sortfield, $sortorder); print "\n"; print ''; diff --git a/htdocs/accountancy/bookkeeping/thirdparty_lettrage.php b/htdocs/accountancy/bookkeeping/thirdparty_lettrage.php index 41e1570ae83..5f621a55186 100644 --- a/htdocs/accountancy/bookkeeping/thirdparty_lettrage.php +++ b/htdocs/accountancy/bookkeeping/thirdparty_lettrage.php @@ -191,17 +191,17 @@ llxHeader ( '', 'Compta - Grand Livre' ); print "
"; print ''; print ''; - print_liste_field_titre ( $langs->trans ( "Doctype" ), "liste.php", "bk.doc_type" ); - print_liste_field_titre ( $langs->trans ( "Docdate" ), "liste.php", "bk.doc_date" ); - print_liste_field_titre ( $langs->trans ( "Docref" ), "liste.php", "bk.doc_ref" ); -// print_liste_field_titre ( $langs->trans ( "Numerocompte" ), "liste.php", "bk.numero_compte" ); -// print_liste_field_titre ( $langs->trans ( "Code_tiers" ), "liste.php", "bk.code_tiers" ); - print_liste_field_titre ( $langs->trans ( "Labelcompte" ), "liste.php", "bk_label_compte" ); - print_liste_field_titre ( $langs->trans ( "Debit" ), "liste.php", "bk.debit" ); - print_liste_field_titre ( $langs->trans ( "Credit" ), "liste.php", "bk.credit" ); -// print_liste_field_titre ( $langs->trans ( "Amount" ), "liste.php", "bk.montant" ); -// print_liste_field_titre ( $langs->trans ( "Sens" ), "liste.php", "bk.sens" ); - print_liste_field_titre ( $langs->trans ( "Codejournal" ), "liste.php", "bk.code_journal" ); + print_liste_field_titre("Doctype", "liste.php", "bk.doc_type" ); + print_liste_field_titre("Docdate", "liste.php", "bk.doc_date" ); + print_liste_field_titre("Docref", "liste.php", "bk.doc_ref" ); +// print_liste_field_titre("Numerocompte", "liste.php", "bk.numero_compte" ); +// print_liste_field_titre("Code_tiers", "liste.php", "bk.code_tiers" ); + print_liste_field_titre("Labelcompte", "liste.php", "bk_label_compte" ); + print_liste_field_titre("Debit", "liste.php", "bk.debit" ); + print_liste_field_titre("Credit", "liste.php", "bk.credit" ); +// print_liste_field_titre("Amount", "liste.php", "bk.montant" ); +// print_liste_field_titre("Sens", "liste.php", "bk.sens" ); + print_liste_field_titre("Codejournal", "liste.php", "bk.code_journal" ); print ''; print ''; print "\n"; diff --git a/htdocs/accountancy/bookkeeping/thirdparty_lettrage_supplier.php b/htdocs/accountancy/bookkeeping/thirdparty_lettrage_supplier.php index 17f0194628d..623e54f71fb 100644 --- a/htdocs/accountancy/bookkeeping/thirdparty_lettrage_supplier.php +++ b/htdocs/accountancy/bookkeeping/thirdparty_lettrage_supplier.php @@ -200,17 +200,17 @@ llxHeader ( '', 'Compta - Grand Livre' ); print "
"; print ''; print ''; - print_liste_field_titre ( $langs->trans ( "Doctype" ), "liste.php", "bk.doc_type" ); - print_liste_field_titre ( $langs->trans ( "Docdate" ), "liste.php", "bk.doc_date" ); - print_liste_field_titre ( $langs->trans ( "Docref" ), "liste.php", "bk.doc_ref" ); -// print_liste_field_titre ( $langs->trans ( "Numerocompte" ), "liste.php", "bk.numero_compte" ); -// print_liste_field_titre ( $langs->trans ( "Code_tiers" ), "liste.php", "bk.code_tiers" ); - print_liste_field_titre ( $langs->trans ( "Labelcompte" ), "liste.php", "bk_label_compte" ); - print_liste_field_titre ( $langs->trans ( "Debit" ), "liste.php", "bk.debit" ); - print_liste_field_titre ( $langs->trans ( "Credit" ), "liste.php", "bk.credit" ); - print_liste_field_titre ( $langs->trans ( "Amount" ), "liste.php", "bk.montant" ); - print_liste_field_titre ( $langs->trans ( "Sens" ), "liste.php", "bk.sens" ); - print_liste_field_titre ( $langs->trans ( "Codejournal" ), "liste.php", "bk.code_journal" ); + print_liste_field_titre("Doctype", "liste.php", "bk.doc_type" ); + print_liste_field_titre("Docdate", "liste.php", "bk.doc_date" ); + print_liste_field_titre("Docref", "liste.php", "bk.doc_ref" ); +// print_liste_field_titre("Numerocompte", "liste.php", "bk.numero_compte" ); +// print_liste_field_titre("Code_tiers", "liste.php", "bk.code_tiers" ); + print_liste_field_titre("Labelcompte", "liste.php", "bk_label_compte" ); + print_liste_field_titre("Debit", "liste.php", "bk.debit" ); + print_liste_field_titre("Credit", "liste.php", "bk.credit" ); + print_liste_field_titre("Amount", "liste.php", "bk.montant" ); + print_liste_field_titre("Sens", "liste.php", "bk.sens" ); + print_liste_field_titre("Codejournal", "liste.php", "bk.code_journal" ); print ''; print ''; print "\n"; diff --git a/htdocs/accountancy/class/accountancysystem.class.php b/htdocs/accountancy/class/accountancysystem.class.php index 87d1ccd663c..68beff8d043 100644 --- a/htdocs/accountancy/class/accountancysystem.class.php +++ b/htdocs/accountancy/class/accountancysystem.class.php @@ -37,7 +37,7 @@ class AccountancySystem var $label; var $account_number; var $account_parent; - + /** * Constructor * @@ -46,8 +46,8 @@ class AccountancySystem function __construct($db) { $this->db = $db; } - - + + /** * Load record in memory * @@ -55,11 +55,11 @@ class AccountancySystem * @param string $ref ref * @return int <0 if KO, Id of record if OK and found */ - function fetch($rowid = 0, $ref = '') + function fetch($rowid = 0, $ref = '') { global $conf; - - if ($rowid > 0 || $ref) + + if ($rowid > 0 || $ref) { $sql = "SELECT a.pcg_version, a.label, a.active"; $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_system as a"; @@ -69,12 +69,12 @@ class AccountancySystem } elseif ($ref) { $sql .= " a.pcg_version = '" . $ref . "'"; } - + dol_syslog(get_class($this) . "::fetch sql=" . $sql, LOG_DEBUG); $result = $this->db->query($sql); if ($result) { $obj = $this->db->fetch_object($result); - + if ($obj) { $this->id = $obj->rowid; $this->rowid = $obj->rowid; @@ -82,7 +82,7 @@ class AccountancySystem $this->ref = $obj->pcg_version; $this->label = $obj->label; $this->active = $obj->active; - + return $this->id; } else { return 0; @@ -94,8 +94,8 @@ class AccountancySystem } return - 1; } - - + + /** * Insert accountancy system name into database * @@ -104,16 +104,16 @@ class AccountancySystem */ function create($user) { $now = dol_now(); - + $sql = "INSERT INTO " . MAIN_DB_PREFIX . "accounting_system"; $sql .= " (date_creation, fk_user_author, numero, label)"; - $sql .= " VALUES (" . $this->db->idate($now) . "," . $user->id . ",'" . $this->numero . "','" . $this->label . "')"; - + $sql .= " VALUES ('" . $this->db->idate($now) . "'," . $user->id . ",'" . $this->numero . "','" . $this->label . "')"; + dol_syslog(get_class($this) . "::create sql=" . $sql, LOG_DEBUG); $resql = $this->db->query($sql); if ($resql) { $id = $this->db->last_insert_id(MAIN_DB_PREFIX . "accounting_system"); - + if ($id > 0) { $this->rowid = $id; $result = $this->rowid; @@ -127,7 +127,7 @@ class AccountancySystem $this->error = "AccountancySystem::Create Erreur $result"; dol_syslog($this->error, LOG_ERR); } - + return $result; } } \ No newline at end of file diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php index 1431df9f8a2..799ebf85a34 100644 --- a/htdocs/accountancy/class/bookkeeping.class.php +++ b/htdocs/accountancy/class/bookkeeping.class.php @@ -71,6 +71,7 @@ class BookKeeping extends CommonObject /** */ public $doc_date; + public $date_lim_reglement; public $doc_type; public $doc_ref; public $fk_doc; @@ -255,6 +256,7 @@ class BookKeeping extends CommonObject $sql = "INSERT INTO " . MAIN_DB_PREFIX . $this->table_element . " ("; $sql .= "doc_date"; + $sql .= ", date_lim_reglement"; $sql .= ", doc_type"; $sql .= ", doc_ref"; $sql .= ", fk_doc"; @@ -277,6 +279,7 @@ class BookKeeping extends CommonObject $sql .= ', entity'; $sql .= ") VALUES ("; $sql .= "'" . $this->db->idate($this->doc_date) . "'"; + $sql .= ",'" . $this->db->idate($this->date_lim_reglement) . "'"; $sql .= ",'" . $this->db->escape($this->doc_type) . "'"; $sql .= ",'" . $this->db->escape($this->doc_ref) . "'"; $sql .= "," . $this->fk_doc; @@ -444,6 +447,7 @@ class BookKeeping extends CommonObject // Insert request $sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element . $mode.'('; $sql .= 'doc_date,'; + $sql .= 'date_lim_reglement,'; $sql .= 'doc_type,'; $sql .= 'doc_ref,'; $sql .= 'fk_doc,'; @@ -466,6 +470,7 @@ class BookKeeping extends CommonObject $sql .= 'entity'; $sql .= ') VALUES ('; $sql .= ' ' . (! isset($this->doc_date) || dol_strlen($this->doc_date) == 0 ? 'NULL' : "'" . $this->db->idate($this->doc_date) . "'") . ','; + $sql .= ' ' . (! isset($this->date_lim_reglement) || dol_strlen($this->date_lim_reglement) == 0 ? 'NULL' : "'" . $this->db->idate($this->date_lim_reglement) . "'") . ','; $sql .= ' ' . (! isset($this->doc_type) ? 'NULL' : "'" . $this->db->escape($this->doc_type) . "'") . ','; $sql .= ' ' . (! isset($this->doc_ref) ? 'NULL' : "'" . $this->db->escape($this->doc_ref) . "'") . ','; $sql .= ' ' . (empty($this->fk_doc) ? '0' : $this->fk_doc) . ','; @@ -540,6 +545,7 @@ class BookKeeping extends CommonObject $sql = 'SELECT'; $sql .= ' t.rowid,'; $sql .= " t.doc_date,"; + $sql .= " t.date_lim_reglement,"; $sql .= " t.doc_type,"; $sql .= " t.doc_ref,"; $sql .= " t.fk_doc,"; @@ -577,6 +583,7 @@ class BookKeeping extends CommonObject $this->id = $obj->rowid; $this->doc_date = $this->db->jdate($obj->doc_date); + $this->date_lim_reglement = $this->db->jdate($obj->date_lim_reglement); $this->doc_type = $obj->doc_type; $this->doc_ref = $obj->doc_ref; $this->fk_doc = $obj->fk_doc; @@ -1260,7 +1267,7 @@ class BookKeeping extends CommonObject global $user; $error = 0; - $object = new Accountingbookkeeping($this->db); + $object = new BookKeeping($this->db); $this->db->begin(); diff --git a/htdocs/accountancy/customer/lines.php b/htdocs/accountancy/customer/lines.php index d48f81259df..9012257adee 100644 --- a/htdocs/accountancy/customer/lines.php +++ b/htdocs/accountancy/customer/lines.php @@ -280,17 +280,17 @@ if ($result) { print "\n"; print ''; - print_liste_field_titre($langs->trans("LineId"), $_SERVER["PHP_SELF"], "fd.rowid", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Invoice"), $_SERVER["PHP_SELF"], "f.facnumber", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Date"), $_SERVER["PHP_SELF"], "f.datef, f.facnumber, fd.rowid", "", $param, 'align="center"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("ProductRef"), $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder); - //print_liste_field_titre($langs->trans("ProductLabel"), $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Description"), $_SERVER["PHP_SELF"], "fd.description", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Amount"), $_SERVER["PHP_SELF"], "fd.total_ht", "", $param, 'align="right"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("VATRate"), $_SERVER["PHP_SELF"], "fd.tva_tx", "", $param, 'align="right"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Account"), $_SERVER["PHP_SELF"], "aa.account_number", "", $param, 'align="center"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Country"), $_SERVER["PHP_SELF"], "co.label", "", $param, 'align="center"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("VATIntra"), $_SERVER["PHP_SELF"], "s.tva_intra", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("LineId", $_SERVER["PHP_SELF"], "fd.rowid", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Invoice", $_SERVER["PHP_SELF"], "f.facnumber", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "f.datef, f.facnumber, fd.rowid", "", $param, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre("ProductRef", $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder); + //print_liste_field_titre("ProductLabel", $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "fd.description", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "fd.total_ht", "", $param, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], "fd.tva_tx", "", $param, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre("Account", $_SERVER["PHP_SELF"], "aa.account_number", "", $param, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre("Country", $_SERVER["PHP_SELF"], "co.label", "", $param, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre("VATIntra", $_SERVER["PHP_SELF"], "s.tva_intra", "", $param, '', $sortfield, $sortorder); $clickpicto=$form->showCheckAddButtons(); print_liste_field_titre($clickpicto, '', '', '', '', 'align="center"'); print "\n"; diff --git a/htdocs/accountancy/customer/list.php b/htdocs/accountancy/customer/list.php index 4272dfaf115..5e78d735523 100644 --- a/htdocs/accountancy/customer/list.php +++ b/htdocs/accountancy/customer/list.php @@ -295,16 +295,16 @@ if ($result) { print ''; print ''; - print_liste_field_titre($langs->trans("LineId"), $_SERVER["PHP_SELF"], "l.rowid", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Invoice"), $_SERVER["PHP_SELF"], "f.facnumber", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Date"), $_SERVER["PHP_SELF"], "f.datef, f.facnumber, l.rowid", "", $param, 'align="center"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("ProductRef"), $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder); - //print_liste_field_titre($langs->trans("ProductLabel"), $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Description"), $_SERVER["PHP_SELF"], "l.description", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Amount"), $_SERVER["PHP_SELF"], "l.total_ht", "", $param, 'align="right"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("VATRate"), $_SERVER["PHP_SELF"], "l.tva_tx", "", $param, 'align="right"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("AccountAccountingSuggest"), '', '', '', '', 'align="center"'); - print_liste_field_titre($langs->trans("IntoAccount"), '', '', '', '', 'align="center"'); + print_liste_field_titre("LineId", $_SERVER["PHP_SELF"], "l.rowid", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Invoice", $_SERVER["PHP_SELF"], "f.facnumber", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "f.datef, f.facnumber, l.rowid", "", $param, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre("ProductRef", $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder); + //print_liste_field_titre("ProductLabel", $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "l.description", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "l.total_ht", "", $param, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], "l.tva_tx", "", $param, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre("AccountAccountingSuggest", '', '', '', '', 'align="center"'); + print_liste_field_titre("IntoAccount", '', '', '', '', 'align="center"'); $checkpicto=''; if ($massactionbutton) $checkpicto=$form->showCheckAddButtons('checkforselect', 1); print_liste_field_titre($checkpicto, '', '', '', '', 'align="center"'); diff --git a/htdocs/accountancy/expensereport/lines.php b/htdocs/accountancy/expensereport/lines.php index f115cbde2e4..156d80f09e4 100644 --- a/htdocs/accountancy/expensereport/lines.php +++ b/htdocs/accountancy/expensereport/lines.php @@ -251,14 +251,14 @@ if ($result) { print "\n"; print ''; - print_liste_field_titre($langs->trans("LineId"), $_SERVER["PHP_SELF"], "erd.rowid", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("ExpenseReport"), $_SERVER["PHP_SELF"], "er.ref", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Date"), $_SERVER["PHP_SELF"], "erd.date, erd.rowid", "", $param, 'align="center"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("TypeFees"), $_SERVER["PHP_SELF"], "f.label", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Description"), $_SERVER["PHP_SELF"], "erd.comments", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Amount"), $_SERVER["PHP_SELF"], "erd.total_ht", "", $param, 'align="right"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("VATRate"), $_SERVER["PHP_SELF"], "erd.tva_tx", "", $param, 'align="center"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Account"), $_SERVER["PHP_SELF"], "aa.account_number", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("LineId", $_SERVER["PHP_SELF"], "erd.rowid", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("ExpenseReport", $_SERVER["PHP_SELF"], "er.ref", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "erd.date, erd.rowid", "", $param, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre("TypeFees", $_SERVER["PHP_SELF"], "f.label", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "erd.comments", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "erd.total_ht", "", $param, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], "erd.tva_tx", "", $param, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre("Account", $_SERVER["PHP_SELF"], "aa.account_number", "", $param, '', $sortfield, $sortorder); print_liste_field_titre(''); $checkpicto=$form->showCheckAddButtons(); print_liste_field_titre($checkpicto, '', '', '', '', 'align="center"'); diff --git a/htdocs/accountancy/expensereport/list.php b/htdocs/accountancy/expensereport/list.php index 1c08deb51d2..09bb45df918 100644 --- a/htdocs/accountancy/expensereport/list.php +++ b/htdocs/accountancy/expensereport/list.php @@ -277,15 +277,15 @@ if ($result) { print ''; print ''; - print_liste_field_titre($langs->trans("LineId"), $_SERVER["PHP_SELF"], "erd.rowid", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("ExpenseReport"), $_SERVER["PHP_SELF"], "er.ref", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Date"), $_SERVER["PHP_SELF"], "erd.date, erd.rowid", "", $param, 'align="center"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("TypeFees"), $_SERVER["PHP_SELF"], "f.label", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Description"), $_SERVER["PHP_SELF"], "erd.comments", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Amount"), $_SERVER["PHP_SELF"], "erd.total_ht", "", $param, 'align="right"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("VATRate"), $_SERVER["PHP_SELF"], "erd.tva_tx", "", $param, 'align="right"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("AccountAccountingSuggest"), '', '', '', '', 'align="center"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("IntoAccount"), '', '', '', '', 'align="center"', $sortfield, $sortorder); + print_liste_field_titre("LineId", $_SERVER["PHP_SELF"], "erd.rowid", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("ExpenseReport", $_SERVER["PHP_SELF"], "er.ref", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "erd.date, erd.rowid", "", $param, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre("TypeFees", $_SERVER["PHP_SELF"], "f.label", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "erd.comments", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "erd.total_ht", "", $param, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], "erd.tva_tx", "", $param, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre("AccountAccountingSuggest", '', '', '', '', 'align="center"', $sortfield, $sortorder); + print_liste_field_titre("IntoAccount", '', '', '', '', 'align="center"', $sortfield, $sortorder); $checkpicto=''; if ($massactionbutton) $checkpicto=$form->showCheckAddButtons('checkforselect', 1); print_liste_field_titre($checkpicto, '', '', '', '', 'align="center"'); diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index d5746eb63e5..587d36d227a 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -401,7 +401,7 @@ if (! $error && $action == 'writebookkeeping') { $bookkeeping->numero_compte = $k; $bookkeeping->label_operation = $val["label"]; $bookkeeping->label_compte = $langs->trans("Bank"); - $bookkeeping->montant = ($mt < 0 ? - $mt : $mt); + $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt >= 0) ? 'D' : 'C'; $bookkeeping->debit = ($mt >= 0 ? $mt : 0); $bookkeeping->credit = ($mt < 0 ? - $mt : 0); @@ -462,7 +462,7 @@ if (! $error && $action == 'writebookkeeping') { $bookkeeping->fk_doc = $key; $bookkeeping->fk_docdet = $val["fk_bank"]; $bookkeeping->label_operation = $tabcompany[$key]['name']; - $bookkeeping->montant = ($mt < 0 ? - $mt : $mt); + $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt < 0) ? 'D' : 'C'; $bookkeeping->debit = ($mt < 0 ? - $mt : 0); $bookkeeping->credit = ($mt >= 0) ? $mt : 0; diff --git a/htdocs/accountancy/journal/expensereportsjournal.php b/htdocs/accountancy/journal/expensereportsjournal.php index 1907cfe7dae..d253fb2820a 100644 --- a/htdocs/accountancy/journal/expensereportsjournal.php +++ b/htdocs/accountancy/journal/expensereportsjournal.php @@ -203,7 +203,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->label_operation = $tabuser[$key]['name']; $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt >= 0) ? 'C' : 'D'; - $bookkeeping->debit = ($mt <= 0) ? $mt : 0; + $bookkeeping->debit = ($mt <= 0) ? -$mt : 0; $bookkeeping->credit = ($mt > 0) ? $mt : 0; $bookkeeping->code_journal = $journal; $bookkeeping->journal_label = $journal_label; diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php index 40b9033002c..b095e4650dc 100644 --- a/htdocs/accountancy/journal/purchasesjournal.php +++ b/htdocs/accountancy/journal/purchasesjournal.php @@ -85,7 +85,7 @@ if (empty($date_start) || empty($date_end)) // We define date_start and date_end $idpays = $mysoc->country_id; -$sql = "SELECT f.rowid, f.ref, f.type, f.datef as df, f.libelle,f.ref_supplier,"; +$sql = "SELECT f.rowid, f.ref, f.type, f.datef as df, f.libelle,f.ref_supplier, f.date_lim_reglement as dlf, "; $sql .= " fd.rowid as fdid, fd.description, fd.product_type, fd.total_ht, fd.tva as total_tva, fd.total_localtax1, fd.total_localtax2, fd.tva_tx, fd.total_ttc, fd.vat_src_code,"; $sql .= " s.rowid as socid, s.nom as name, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur,"; $sql .= " p.accountancy_code_buy , aa.rowid as fk_compte, aa.account_number as compte, aa.label as label_compte"; @@ -155,6 +155,7 @@ if ($result) { } $tabfac[$obj->rowid]["date"] = $db->jdate($obj->df); + $tabfac[$obj->rowid]["datereg"] = $db->jdate($obj->dlr); $tabfac[$obj->rowid]["ref"] = $obj->ref_supplier . ' (' . $obj->ref . ')'; $tabfac[$obj->rowid]["refsologest"] = $obj->ref; $tabfac[$obj->rowid]["refsuppliersologest"] = $obj->ref_supplier; @@ -222,6 +223,7 @@ if ($action == 'writebookkeeping') { if ($mt) { $bookkeeping = new BookKeeping($db); $bookkeeping->doc_date = $val["date"]; + $bookkeeping->date_lim_reglement = $val["datereg"]; $bookkeeping->doc_ref = $val["ref"]; $bookkeeping->date_create = $now; $bookkeeping->doc_type = 'supplier_invoice'; @@ -269,6 +271,7 @@ if ($action == 'writebookkeeping') { if ($accountingaccount->fetch(null, $k, true)) { $bookkeeping = new BookKeeping($db); $bookkeeping->doc_date = $val["date"]; + $bookkeeping->date_lim_reglement = $val["datereg"]; $bookkeeping->doc_ref = $val["ref"]; $bookkeeping->date_create = $now; $bookkeeping->doc_type = 'supplier_invoice'; @@ -322,6 +325,7 @@ if ($action == 'writebookkeeping') { if ($mt) { $bookkeeping = new BookKeeping($db); $bookkeeping->doc_date = $val["date"]; + $bookkeeping->date_lim_reglement = $val["datereg"]; $bookkeeping->doc_ref = $val["ref"]; $bookkeeping->date_create = $now; $bookkeeping->doc_type = 'supplier_invoice'; diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php index 4300b91eca6..c03c800f5d6 100644 --- a/htdocs/accountancy/journal/sellsjournal.php +++ b/htdocs/accountancy/journal/sellsjournal.php @@ -89,7 +89,7 @@ if (empty($date_start) || empty($date_end)) // We define date_start and date_end $idpays = $mysoc->country_id; -$sql = "SELECT f.rowid, f.facnumber, f.type, f.datef as df, f.ref_client,"; +$sql = "SELECT f.rowid, f.facnumber, f.type, f.datef as df, f.ref_client, f.date_lim_reglement as dlr,"; $sql .= " fd.rowid as fdid, fd.description, fd.product_type, fd.total_ht, fd.total_tva, fd.total_localtax1, fd.total_localtax2, fd.tva_tx, fd.total_ttc, fd.situation_percent, fd.vat_src_code,"; $sql .= " s.rowid as socid, s.nom as name, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur,"; $sql .= " p.rowid as pid, p.ref as pref, p.accountancy_code_sell, aa.rowid as fk_compte, aa.account_number as compte, aa.label as label_compte"; @@ -178,6 +178,7 @@ if ($result) { // Invoice lines $tabfac[$obj->rowid]["date"] = $db->jdate($obj->df); + $tabfac[$obj->rowid]["datereg"] = $db->jdate($obj->dlr); $tabfac[$obj->rowid]["ref"] = $obj->facnumber; $tabfac[$obj->rowid]["type"] = $obj->type; $tabfac[$obj->rowid]["description"] = $obj->label_compte; @@ -240,6 +241,7 @@ if ($action == 'writebookkeeping') { if ($mt) { $bookkeeping = new BookKeeping($db); $bookkeeping->doc_date = $val["date"]; + $bookkeeping->date_lim_reglement = $val["datereg"]; $bookkeeping->doc_ref = $val["ref"]; $bookkeeping->date_create = $now; $bookkeeping->doc_type = 'customer_invoice'; @@ -287,6 +289,7 @@ if ($action == 'writebookkeeping') { if ($accountingaccount->fetch(null, $k, true)) { $bookkeeping = new BookKeeping($db); $bookkeeping->doc_date = $val["date"]; + $bookkeeping->date_lim_reglement = $val["datereg"]; $bookkeeping->doc_ref = $val["ref"]; $bookkeeping->date_create = $now; $bookkeeping->doc_type = 'customer_invoice'; @@ -340,6 +343,7 @@ if ($action == 'writebookkeeping') { if ($mt) { $bookkeeping = new BookKeeping($db); $bookkeeping->doc_date = $val["date"]; + $bookkeeping->date_lim_reglement = $val["datereg"]; $bookkeeping->doc_ref = $val["ref"]; $bookkeeping->date_create = $now; $bookkeeping->doc_type = 'customer_invoice'; diff --git a/htdocs/accountancy/supplier/lines.php b/htdocs/accountancy/supplier/lines.php index 9ac7eae658f..66e6928da07 100644 --- a/htdocs/accountancy/supplier/lines.php +++ b/htdocs/accountancy/supplier/lines.php @@ -278,18 +278,18 @@ if ($result) { print "\n"; print ''; - print_liste_field_titre($langs->trans("LineId"), $_SERVER["PHP_SELF"], "l.rowid", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Invoice"), $_SERVER["PHP_SELF"], "f.ref", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("InvoiceLabel"), $_SERVER["PHP_SELF"], "f.libelle", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Date"), $_SERVER["PHP_SELF"], "f.datef, f.ref, l.rowid", "", $param, 'align="center"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("ProductRef"), $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder); - //print_liste_field_titre($langs->trans("ProductLabel"), $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Description"), $_SERVER["PHP_SELF"], "l.description", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Amount"), $_SERVER["PHP_SELF"], "l.total_ht", "", $param, 'align="right"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("VATRate"), $_SERVER["PHP_SELF"], "l.tva_tx", "", $param, 'align="right"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Account"), $_SERVER["PHP_SELF"], "aa.account_number", "", $param, 'align="center"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Country"), $_SERVER["PHP_SELF"], "co.label", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("VATIntra"), $_SERVER["PHP_SELF"], "s.tva_intra", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("LineId", $_SERVER["PHP_SELF"], "l.rowid", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Invoice", $_SERVER["PHP_SELF"], "f.ref", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("InvoiceLabel", $_SERVER["PHP_SELF"], "f.libelle", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "f.datef, f.ref, l.rowid", "", $param, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre("ProductRef", $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder); + //print_liste_field_titre("ProductLabel", $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "l.description", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "l.total_ht", "", $param, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], "l.tva_tx", "", $param, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre("Account", $_SERVER["PHP_SELF"], "aa.account_number", "", $param, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre("Country", $_SERVER["PHP_SELF"], "co.label", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("VATIntra", $_SERVER["PHP_SELF"], "s.tva_intra", "", $param, '', $sortfield, $sortorder); $checkpicto=$form->showCheckAddButtons(); print_liste_field_titre($checkpicto, '', '', '', '', 'align="center"'); print "\n"; diff --git a/htdocs/accountancy/supplier/list.php b/htdocs/accountancy/supplier/list.php index 2eac6fdd6df..84c341400d7 100644 --- a/htdocs/accountancy/supplier/list.php +++ b/htdocs/accountancy/supplier/list.php @@ -294,17 +294,17 @@ if ($result) { print ''; print ''; - print_liste_field_titre($langs->trans("LineId"), $_SERVER["PHP_SELF"], "l.rowid", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Invoice"), $_SERVER["PHP_SELF"], "f.ref", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("InvoiceLabel"), $_SERVER["PHP_SELF"], "f.libelle", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Date"), $_SERVER["PHP_SELF"], "f.datef, f.ref, l.rowid", "", $param, 'align="center"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("ProductRef"), $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder); - //print_liste_field_titre($langs->trans("ProductLabel"), $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Description"), $_SERVER["PHP_SELF"], "l.description", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Amount"), $_SERVER["PHP_SELF"], "l.total_ht", "", $param, 'align="right"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("VATRate"), $_SERVER["PHP_SELF"], "l.tva_tx", "", $param, 'align="right"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("AccountAccountingSuggest"), '', '', '', '', 'align="center"'); - print_liste_field_titre($langs->trans("IntoAccount"), '', '', '', '', 'align="center"'); + print_liste_field_titre("LineId", $_SERVER["PHP_SELF"], "l.rowid", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Invoice", $_SERVER["PHP_SELF"], "f.ref", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("InvoiceLabel", $_SERVER["PHP_SELF"], "f.libelle", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "f.datef, f.ref, l.rowid", "", $param, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre("ProductRef", $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder); + //print_liste_field_titre("ProductLabel", $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "l.description", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "l.total_ht", "", $param, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], "l.tva_tx", "", $param, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre("AccountAccountingSuggest", '', '', '', '', 'align="center"'); + print_liste_field_titre("IntoAccount", '', '', '', '', 'align="center"'); $checkpicto=''; if ($massactionbutton) $checkpicto=$form->showCheckAddButtons('checkforselect', 1); print_liste_field_titre($checkpicto, '', '', '', '', 'align="center"'); diff --git a/htdocs/adherents/class/adherent_type.class.php b/htdocs/adherents/class/adherent_type.class.php index a7775332812..eec88a59c11 100644 --- a/htdocs/adherents/class/adherent_type.class.php +++ b/htdocs/adherents/class/adherent_type.class.php @@ -134,7 +134,7 @@ class AdherentType extends CommonObject $sql.= "note = '".$this->db->escape($this->note)."',"; $sql.= "vote = '".$this->db->escape($this->vote)."',"; $sql.= "mail_valid = '".$this->db->escape($this->mail_valid)."'"; - $sql .= " WHERE rowid =".$this->id; + $sql.= " WHERE rowid =".$this->id; $result = $this->db->query($sql); if ($result) @@ -252,7 +252,7 @@ class AdherentType extends CommonObject $sql = "SELECT rowid, libelle"; $sql.= " FROM ".MAIN_DB_PREFIX."adherent_type"; - $sql.= " WHERE entity = ".$conf->entity; + $sql.= " WHERE entity IN (".getEntity('adherent').")"; $resql=$this->db->query($sql); if ($resql) diff --git a/htdocs/adherents/list.php b/htdocs/adherents/list.php index bfa92cafa7b..f2f7aacbf52 100644 --- a/htdocs/adherents/list.php +++ b/htdocs/adherents/list.php @@ -594,8 +594,8 @@ if (! empty($arrayfields['t.libelle']['checked'])) print_liste_field_titr if (! empty($arrayfields['d.address']['checked'])) print_liste_field_titre($arrayfields['d.address']['label'],$_SERVER["PHP_SELF"],'d.address','',$param,'',$sortfield,$sortorder); if (! empty($arrayfields['d.zip']['checked'])) print_liste_field_titre($arrayfields['d.zip']['label'],$_SERVER["PHP_SELF"],'d.zip','',$param,'',$sortfield,$sortorder); if (! empty($arrayfields['d.town']['checked'])) print_liste_field_titre($arrayfields['d.town']['label'],$_SERVER["PHP_SELF"],'d.town','',$param,'',$sortfield,$sortorder); -if (! empty($arrayfields['state.nom']['checked'])) print_liste_field_titre($langs->trans("StateShort"),$_SERVER["PHP_SELF"],"state.nom","",$param,'',$sortfield,$sortorder); -if (! empty($arrayfields['country.code_iso']['checked'])) print_liste_field_titre($langs->trans("Country"),$_SERVER["PHP_SELF"],"country.code_iso","",$param,'align="center"',$sortfield,$sortorder); +if (! empty($arrayfields['state.nom']['checked'])) print_liste_field_titre($arrayfields['state.town']['label'],$_SERVER["PHP_SELF"],"state.nom","",$param,'',$sortfield,$sortorder); +if (! empty($arrayfields['country.code_iso']['checked'])) print_liste_field_titre($arrayfields['country.code_iso']['label'],$_SERVER["PHP_SELF"],"country.code_iso","",$param,'align="center"',$sortfield,$sortorder); if (! empty($arrayfields['d.phone']['checked'])) print_liste_field_titre($arrayfields['d.phone']['label'],$_SERVER["PHP_SELF"],'d.phone','',$param,'',$sortfield,$sortorder); if (! empty($arrayfields['d.phone_perso']['checked'])) print_liste_field_titre($arrayfields['d.phone_perso']['label'],$_SERVER["PHP_SELF"],'d.phone_perso','',$param,'',$sortfield,$sortorder); if (! empty($arrayfields['d.phone_mobile']['checked'])) print_liste_field_titre($arrayfields['d.phone_mobile']['label'],$_SERVER["PHP_SELF"],'d.phone_mobile','',$param,'',$sortfield,$sortorder); @@ -611,7 +611,7 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab $align=$extrafields->getAlignFlag($key); $sortonfield = "ef.".$key; if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/adherents/subscription/list.php b/htdocs/adherents/subscription/list.php index 1b42b3aaf06..1fee5ac545c 100644 --- a/htdocs/adherents/subscription/list.php +++ b/htdocs/adherents/subscription/list.php @@ -155,7 +155,7 @@ if ($result) $num = $db->num_rows($result); $arrayofselected=is_array($toselect)?$toselect:array(); - + $i = 0; $title=$langs->trans("ListOfSubscriptions"); @@ -171,7 +171,7 @@ if ($result) if ($search_acount) $param.="&search_account=".$search_account; if ($search_amount) $param.="&search_amount=".$search_amount; if ($optioncss != '') $param.='&optioncss='.$optioncss; - + // List of mass actions available $arrayofmassactions = array( //'presend'=>$langs->trans("SendByMail"), @@ -181,7 +181,7 @@ if ($result) if ($user->rights->adherent->supprimer) $arrayofmassactions['delete']=$langs->trans("Delete"); //if ($massaction == 'presend' || $massaction == 'createbills') $arrayofmassactions=array(); $massactionbutton=$form->selectMassAction('', $arrayofmassactions); - + print ''; if ($optioncss != '') print ''; print ''; @@ -191,7 +191,7 @@ if ($result) print ''; print ''; print ''; - + print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_generic.png', 0, '', '', $limit); if ($sall) @@ -200,11 +200,11 @@ if ($result) } $moreforfilter = ''; - + $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"; @@ -237,33 +237,33 @@ if ($result) print ''; - + // Action column print ''; + print ''; print "\n"; print ''; - print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"c.rowid",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Name"),$_SERVER["PHP_SELF"],"d.lastname",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Login"),$_SERVER["PHP_SELF"],"d.login",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"c.note",$param,"",'align="left"',$sortfield,$sortorder); + print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"c.rowid",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("Name",$_SERVER["PHP_SELF"],"d.lastname",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("Login",$_SERVER["PHP_SELF"],"d.login",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"c.note",$param,"",'align="left"',$sortfield,$sortorder); if (! empty($conf->banque->enabled)) { - print_liste_field_titre($langs->trans("Account"),$_SERVER["PHP_SELF"],"b.fk_account",$pram,"","",$sortfield,$sortorder); + print_liste_field_titre("Account",$_SERVER["PHP_SELF"],"b.fk_account",$pram,"","",$sortfield,$sortorder); } - print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"c.dateadh",$param,"",'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DateEnd"),$_SERVER["PHP_SELF"],"c.datef",$param,"",'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"c.subscription",$param,"",'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"c.dateadh",$param,"",'align="center"',$sortfield,$sortorder); + print_liste_field_titre("DateEnd",$_SERVER["PHP_SELF"],"c.datef",$param,"",'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"c.subscription",$param,"",'align="right"',$sortfield,$sortorder); //print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch '); print_liste_field_titre('', $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch '); print "\n"; - - + + // Static objects $subscription=new Subscription($db); $adherent=new Adherent($db); @@ -286,7 +286,7 @@ if ($result) $adherent->login=$obj->login; $adherent->photo=$obj->photo; - + print ''; @@ -329,7 +329,7 @@ if ($result) // Price print ''; - + print ''; print ""; @@ -338,7 +338,7 @@ if ($result) } // Total - + print ''; print "\n"; print "\n"; diff --git a/htdocs/adherents/type.php b/htdocs/adherents/type.php index 06297229420..016fc5e0499 100644 --- a/htdocs/adherents/type.php +++ b/htdocs/adherents/type.php @@ -508,13 +508,13 @@ if ($rowid > 0) print "\n"; print ''; - print_liste_field_titre($langs->trans("Name")." / ".$langs->trans("Company"),$_SERVER["PHP_SELF"],"d.lastname",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Login"),$_SERVER["PHP_SELF"],"d.login",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Nature"),$_SERVER["PHP_SELF"],"d.morphy",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("EMail"),$_SERVER["PHP_SELF"],"d.email",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"d.statut,d.datefin",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("EndSubscription"),$_SERVER["PHP_SELF"],"d.datefin",$param,"",'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Action"),$_SERVER["PHP_SELF"],"",$param,"",'width="60" align="center"',$sortfield,$sortorder); + print_liste_field_titre( $langs->trans("Name")." / ".$langs->trans("Company"),$_SERVER["PHP_SELF"],"d.lastname",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("Login",$_SERVER["PHP_SELF"],"d.login",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("Nature",$_SERVER["PHP_SELF"],"d.morphy",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("EMail",$_SERVER["PHP_SELF"],"d.email",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"d.statut,d.datefin",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("EndSubscription",$_SERVER["PHP_SELF"],"d.datefin",$param,"",'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Action",$_SERVER["PHP_SELF"],"",$param,"",'width="60" align="center"',$sortfield,$sortorder); print "\n"; while ($i < $num && $i < $conf->liste_limit) diff --git a/htdocs/admin/agenda_other.php b/htdocs/admin/agenda_other.php index cf4f3832a1f..0a43411463d 100644 --- a/htdocs/admin/agenda_other.php +++ b/htdocs/admin/agenda_other.php @@ -389,37 +389,6 @@ $tmplist=array('show_list'=>$langs->trans("ViewList"), 'show_month'=>$langs->tra print $form->selectarray('AGENDA_DEFAULT_VIEW', $tmplist, $conf->global->AGENDA_DEFAULT_VIEW); print ''."\n"; -// AGENDA NOTIFICATION -if ($conf->global->MAIN_FEATURES_LEVEL > 0) -{ - - print ''."\n"; - print ''."\n"; - print ''."\n"; - print ''."\n"; - } else { - print ''.img_picto($langs->trans('Enabled'),'switch_on').''; - print ''."\n"; - - print ''."\n"; - print ''."\n"; - print ''."\n"; - print ''."\n"; - } -} - print '
'; print ''; print ''; $searchpicto=$form->showFilterButtons(); print $searchpicto; - print '
'.price($obj->subscription).'
".$langs->trans("Total")." 
'.$langs->trans('AGENDA_NOTIFICATION').' '."\n"; - - if (empty($conf->global->AGENDA_NOTIFICATION)) { - print ''.img_picto($langs->trans('Disabled'),'switch_off').''; - print '
'.$langs->trans('AGENDA_NOTIFICATION_SOUND').' '."\n"; - - if (empty($conf->global->AGENDA_NOTIFICATION_SOUND)) { - print ''.img_picto($langs->trans('Disabled'),'switch_off').''; - } else { - print ''.img_picto($langs->trans('Enabled'),'switch_on').''; - } - - print '
'; dol_fiche_end(); diff --git a/htdocs/admin/agenda_reminder.php b/htdocs/admin/agenda_reminder.php new file mode 100644 index 00000000000..635f3c0cdd5 --- /dev/null +++ b/htdocs/admin/agenda_reminder.php @@ -0,0 +1,255 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file htdocs/admin/agenda_reminder.php + * \ingroup agenda + * \brief Page to setup agenda reminder options + */ + +require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; + +if (!$user->admin) + accessforbidden(); + +$langs->load("admin"); +$langs->load("other"); +$langs->load("agenda"); + +$action = GETPOST('action','alpha'); +$value = GETPOST('value','alpha'); +$param = GETPOST('param','alpha'); +$cancel = GETPOST('cancel','alpha'); +$scandir = GETPOST('scandir','alpha'); +$type = 'action'; + + +/* + * Actions + */ + +include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php'; + +if (preg_match('/set_(.*)/',$action,$reg)) +{ + $code=$reg[1]; + $value=(GETPOST($code) ? GETPOST($code) : 1); + if (dolibarr_set_const($db, $code, $value, 'chaine', 0, '', $conf->entity) > 0) + { + Header("Location: ".$_SERVER["PHP_SELF"]); + exit; + } + else + { + dol_print_error($db); + } +} + +if (preg_match('/del_(.*)/',$action,$reg)) +{ + $code=$reg[1]; + if (dolibarr_del_const($db, $code, $conf->entity) > 0) + { + Header("Location: ".$_SERVER["PHP_SELF"]); + exit; + } + else + { + dol_print_error($db); + } +} +if ($action == 'set') +{ + dolibarr_set_const($db, 'AGENDA_USE_EVENT_TYPE_DEFAULT', GETPOST('AGENDA_USE_EVENT_TYPE_DEFAULT'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, 'AGENDA_DEFAULT_FILTER_TYPE', GETPOST('AGENDA_DEFAULT_FILTER_TYPE'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, 'AGENDA_DEFAULT_FILTER_STATUS', GETPOST('AGENDA_DEFAULT_FILTER_STATUS'), 'chaine', 0, '', $conf->entity); + dolibarr_set_const($db, 'AGENDA_DEFAULT_VIEW', GETPOST('AGENDA_DEFAULT_VIEW'), 'chaine', 0, '', $conf->entity); +} +else if ($action == 'specimen') // For orders +{ + $modele=GETPOST('module','alpha'); + + $commande = new CommandeFournisseur($db); + $commande->initAsSpecimen(); + $commande->thirdparty=$specimenthirdparty; + + // Search template files + $file=''; $classname=''; $filefound=0; + $dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']); + foreach($dirmodels as $reldir) + { + $file=dol_buildpath($reldir."core/modules/action/doc/pdf_".$modele.".modules.php",0); + if (file_exists($file)) + { + $filefound=1; + $classname = "pdf_".$modele; + break; + } + } + + if ($filefound) + { + require_once $file; + + $module = new $classname($db,$commande); + + if ($module->write_file($commande,$langs) > 0) + { + header("Location: ".DOL_URL_ROOT."/document.php?modulepart=action&file=SPECIMEN.pdf"); + return; + } + else + { + setEventMessages($module->error, $module->errors, 'errors'); + dol_syslog($module->error, LOG_ERR); + } + } + else + { + setEventMessages($langs->trans("ErrorModuleNotFound"), null, 'errors'); + dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR); + } +} + +// Activate a model +else if ($action == 'setmodel') +{ + //print "sssd".$value; + $ret = addDocumentModel($value, $type, $label, $scandir); +} + +else if ($action == 'del') +{ + $ret = delDocumentModel($value, $type); + if ($ret > 0) + { + if ($conf->global->ACTION_EVENT_ADDON_PDF == "$value") dolibarr_del_const($db, 'ACTION_EVENT_ADDON_PDF',$conf->entity); + } +} + +// Set default model +else if ($action == 'setdoc') +{ + if (dolibarr_set_const($db, "ACTION_EVENT_ADDON_PDF",$value,'chaine',0,'',$conf->entity)) + { + // La constante qui a ete lue en avant du nouveau set + // on passe donc par une variable pour avoir un affichage coherent + $conf->global->ACTION_EVENT_ADDON_PDF = $value; + } + + // On active le modele + $ret = delDocumentModel($value, $type); + if ($ret > 0) + { + $ret = addDocumentModel($value, $type, $label, $scandir); + } +} + + +/** + * View + */ + +$formactions=new FormActions($db); +$dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']); +llxHeader(); + +$linkback=''.$langs->trans("BackToModuleList").''; +print load_fiche_titre($langs->trans("AgendaSetup"),$linkback,'title_setup'); +print "
\n"; + + + + +$head=agenda_prepare_head(); + +dol_fiche_head($head, 'reminders', $langs->trans("Agenda"), -1, 'action'); + +print ''; +print ''; + +print ''."\n"; +print ''."\n"; +print ''."\n"; +print ''."\n"; +print ''."\n"; +print ''."\n"; + + +// AGENDA REMINDER EMAIL +if ($conf->global->MAIN_FEATURES_LEVEL > 0) +{ + print ''."\n"; + print ''."\n"; + print ''."\n"; + print ''."\n"; + } else { + print ''.img_picto($langs->trans('Enabled'),'switch_on').''; + print ''."\n"; + } +} + +// AGENDA REMINDER BROWSER +if ($conf->global->MAIN_FEATURES_LEVEL > 0) +{ + print ''."\n"; + print ''."\n"; + print ''."\n"; + print ''."\n"; + } else { + print ''.img_picto($langs->trans('Enabled'),'switch_on').''; + print ''."\n"; + + print ''."\n"; + print ''."\n"; + print ''."\n"; + print ''."\n"; + } +} + +print '
'.$langs->trans("Parameters").' '.$langs->trans("Value").'
'.$langs->trans('AGENDA_REMINDER_EMAIL', $langs->transnoentities("Module2300Name")).' '."\n"; + + if (empty($conf->global->AGENDA_REMINDER_EMAIL)) { + print ''.img_picto($langs->trans('Disabled'),'switch_off').''; + print '
'.$langs->trans('AGENDA_REMINDER_BROWSER').' '."\n"; + + if (empty($conf->global->AGENDA_REMINDER_BROWSER)) { + print ''.img_picto($langs->trans('Disabled'),'switch_off').''; + print '
'.$langs->trans('AGENDA_REMINDER_BROWSER_SOUND').' '."\n"; + + if (empty($conf->global->AGENDA_REMINDER_BROWSER_SOUND)) { + print ''.img_picto($langs->trans('Disabled'),'switch_off').''; + } else { + print ''.img_picto($langs->trans('Enabled'),'switch_on').''; + } + + print '
'; + +dol_fiche_end(); + +print '
'; + +print ''; + +print "
"; + +llxFooter(); + +$db->close(); diff --git a/htdocs/admin/bank.php b/htdocs/admin/bank.php index afe60acff2e..c8162c5229f 100644 --- a/htdocs/admin/bank.php +++ b/htdocs/admin/bank.php @@ -1,4 +1,5 @@ * Copyright (C) 2010-2016 Juanjo Menent * Copyright (C) 2013-2014 Philippe Grand @@ -21,15 +22,14 @@ /** * \file htdocs/admin/bank.php - * \ingroup bank - * \brief Page to setup the bank module + * \ingroup bank + * \brief Page to setup the bank module */ - require '../main.inc.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; -require_once DOL_DOCUMENT_ROOT.'/societe/class/companybankaccount.class.php'; +require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php'; +require_once DOL_DOCUMENT_ROOT . '/core/lib/bank.lib.php'; +require_once DOL_DOCUMENT_ROOT . '/compta/bank/class/account.class.php'; +require_once DOL_DOCUMENT_ROOT . '/societe/class/companybankaccount.class.php'; $langs->load("admin"); $langs->load("companies"); @@ -38,12 +38,12 @@ $langs->load("other"); $langs->load("banks"); if (!$user->admin) - accessforbidden(); + accessforbidden(); -$action = GETPOST('action','alpha'); -$value = GETPOST('value','alpha'); -$label = GETPOST('label','alpha'); -$scandir = GETPOST('scandir','alpha'); +$action = GETPOST('action', 'alpha'); +$value = GETPOST('value', 'alpha'); +$label = GETPOST('label', 'alpha'); +$scandir = GETPOST('scandir', 'alpha'); $type = 'bankaccount'; @@ -52,100 +52,109 @@ $type = 'bankaccount'; */ //Order display of bank account -if ($action == 'setbankorder') -{ - if (dolibarr_set_const($db, "BANK_SHOW_ORDER_OPTION",GETPOST('value','alpha'),'chaine',0,'',$conf->entity) > 0) - { - header("Location: ".$_SERVER["PHP_SELF"]); - exit; - } - else - { - dol_print_error($db); - } +if ($action == 'setbankorder') { + if (dolibarr_set_const($db, "BANK_SHOW_ORDER_OPTION", + GETPOST('value', 'alpha'), 'chaine', 0, '', $conf->entity) > 0) { + header("Location: " . $_SERVER["PHP_SELF"]); + exit; + } + else { + dol_print_error($db); + } +} + +//Auto report last num releve on conciliate +if ($action == 'setreportlastnumreleve') { + if (dolibarr_set_const($db, "BANK_REPORT_LAST_NUM_RELEVE", 1, 'chaine', 0, + '', $conf->entity) > 0) { + header("Location: " . $_SERVER["PHP_SELF"]); + exit; + } + else { + dol_print_error($db); + } +} +elseif ($action == 'unsetreportlastnumreleve') { + if (dolibarr_set_const($db, "BANK_REPORT_LAST_NUM_RELEVE", 0, 'chaine', 0, + '', $conf->entity) > 0) { + header("Location: " . $_SERVER["PHP_SELF"]); + exit; + } + else { + dol_print_error($db); + } } -if ($action == 'specimen') -{ - $modele=GETPOST('module','alpha'); - - if ($modele == 'sepamandate') - { +if ($action == 'specimen') { + $modele = GETPOST('module', 'alpha'); + + if ($modele == 'sepamandate') { $object = new CompanyBankAccount($db); } - else - { + else { $object = new Account($db); } $object->initAsSpecimen(); - + // Search template files - $file=''; $classname=''; $filefound=0; - $dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']); - foreach($dirmodels as $reldir) - { - $file=dol_buildpath($reldir."core/modules/bank/doc/pdf_".$modele.".modules.php",0); - if (file_exists($file)) - { - $filefound=1; - $classname = "pdf_".$modele; + $file = ''; + $classname = ''; + $filefound = 0; + $dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); + foreach ($dirmodels as $reldir) { + $file = dol_buildpath($reldir . "core/modules/bank/doc/pdf_" . $modele . ".modules.php", + 0); + if (file_exists($file)) { + $filefound = 1; + $classname = "pdf_" . $modele; break; } } - - if ($filefound) - { + + if ($filefound) { require_once $file; - + $module = new $classname($db); - - if ($module->write_file($object,$langs) > 0) - { - header("Location: ".DOL_URL_ROOT."/document.php?modulepart=bank&file=SPECIMEN.pdf"); + + if ($module->write_file($object, $langs) > 0) { + header("Location: " . DOL_URL_ROOT . "/document.php?modulepart=bank&file=SPECIMEN.pdf"); return; } - else - { + else { setEventMessages($module->error, null, 'errors'); dol_syslog($module->error, LOG_ERR); } } - else - { + else { setEventMessages($langs->trans("ErrorModuleNotFound"), null, 'errors'); dol_syslog($langs->trans("ErrorModuleNotFound"), LOG_ERR); } } // Activate a model -if ($action == 'set') -{ - $ret = addDocumentModel($value, $type, $label, $scandir); +if ($action == 'set') { + $ret = addDocumentModel($value, $type, $label, $scandir); } - -else if ($action == 'del') -{ - $ret = delDocumentModel($value, $type); - if ($ret > 0) - { - if ($conf->global->BANKADDON_PDF == "$value") dolibarr_del_const($db, 'BANKADDON_PDF',$conf->entity); - } +else if ($action == 'del') { + $ret = delDocumentModel($value, $type); + if ($ret > 0) { + if ($conf->global->BANKADDON_PDF == "$value") + dolibarr_del_const($db, 'BANKADDON_PDF', $conf->entity); + } } // Set default model -else if ($action == 'setdoc') -{ - if (dolibarr_set_const($db, "BANKADDON_PDF",$value,'chaine',0,'',$conf->entity)) - { +else if ($action == 'setdoc') { + if (dolibarr_set_const($db, "BANKADDON_PDF", $value, 'chaine', 0, '', + $conf->entity)) { // The constant that was read before the new set // We therefore requires a variable to have a coherent view $conf->global->BANKADDON_PDF = $value; } - + // On active le modele $ret = delDocumentModel($value, $type); - if ($ret > 0) - { + if ($ret > 0) { $ret = addDocumentModel($value, $type, $label, $scandir); } } @@ -156,80 +165,78 @@ else if ($action == 'setdoc') * view */ -$form=new Form($db); +$form = new Form($db); -$dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']); +$dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']); -llxHeader("",$langs->trans("BankSetupModule")); +llxHeader("", $langs->trans("BankSetupModule")); -$linkback=''.$langs->trans("BackToModuleList").''; -print load_fiche_titre($langs->trans("BankSetupModule"),$linkback,'title_setup'); +$linkback = '' . $langs->trans("BackToModuleList") . ''; +print load_fiche_titre($langs->trans("BankSetupModule"), $linkback, + 'title_setup'); $head = bank_admin_prepare_head(null); dol_fiche_head($head, 'general', $langs->trans("BankSetupModule"), -1, 'account'); -$var=true; +$var = true; -$var=! $var; +$var = !$var; //Show bank account order print load_fiche_titre($langs->trans("BankOrderShow"), '', ''); print ''; print ''; -print ''; -print ''; -print ''; -print ''; +print ''; +print ''; +print ''; +print ''; print ''; print "\n"; -$bankorder[0][0]=$langs->trans("BankOrderGlobal"); -$bankorder[0][1]=$langs->trans("BankOrderGlobalDesc"); -$bankorder[0][2]='BankCode DeskCode BankAccountNumber BankAccountNumberKey'; -$bankorder[1][0]=$langs->trans("BankOrderES"); -$bankorder[1][1]=$langs->trans("BankOrderESDesc"); -$bankorder[1][2]='BankCode DeskCode BankAccountNumberKey BankAccountNumber'; +$bankorder[0][0] = $langs->trans("BankOrderGlobal"); +$bankorder[0][1] = $langs->trans("BankOrderGlobalDesc"); +$bankorder[0][2] = 'BankCode DeskCode BankAccountNumber BankAccountNumberKey'; +$bankorder[1][0] = $langs->trans("BankOrderES"); +$bankorder[1][1] = $langs->trans("BankOrderESDesc"); +$bankorder[1][2] = 'BankCode DeskCode BankAccountNumberKey BankAccountNumber'; $var = true; -$i=0; +$i = 0; -$nbofbank=count($bankorder); -while ($i < $nbofbank) -{ - $var = !$var; +$nbofbank = count($bankorder); +while ($i < $nbofbank) { + $var = !$var; - print ''; - print ''; - print '\n"; + print ''; + print ''; + print '\n"; - if ($conf->global->BANK_SHOW_ORDER_OPTION == $i) - { - print ''; - } - else - { - print ''; - } - print ''; - print ''."\n"; - $i++; + if ($conf->global->BANK_SHOW_ORDER_OPTION == $i) { + print ''; + } + else { + print ''; + } + print ''; + print '' . "\n"; + $i++; } -print '
'.$langs->trans("Name").''.$langs->trans("Description").''.$langs->trans("Example").''.$langs->trans("Status").'' . $langs->trans("Name") . '' . $langs->trans("Description") . '' . $langs->trans("Example") . '' . $langs->trans("Status") . ' 
'.$bankorder[$i][0]."\n"; - print $bankorder[$i][1]; - print ''; - $tmparray=explode(' ',$bankorder[$i][2]); - foreach($tmparray as $key => $val) - { - if ($key > 0) print ', '; - print $langs->trans($val); - } - print "
' . $bankorder[$i][0] . "\n"; + print $bankorder[$i][1]; + print ''; + $tmparray = explode(' ', $bankorder[$i][2]); + foreach ($tmparray as $key => $val) { + if ($key > 0) + print ', '; + print $langs->trans($val); + } + print "'; - print img_picto($langs->trans("Activated"),'on'); - print ''; - print img_picto($langs->trans("Disabled"),'off'); - print ' 
'; + print img_picto($langs->trans("Activated"), 'on'); + print ''; + print img_picto($langs->trans("Disabled"), 'off'); + print ' 
'."\n"; +print '' . "\n"; print '

'; @@ -257,7 +264,8 @@ if ($resql) { array_push($def, $array[0]); $i ++; } -} else { +} +else { dol_print_error($db); } @@ -273,11 +281,10 @@ print "\n"; clearstatcache(); -foreach ($dirmodels as $reldir) -{ +foreach ($dirmodels as $reldir) { foreach (array('', '/doc') as $valdir) { $dir = dol_buildpath($reldir . "core/modules/bank" . $valdir); - + if (is_dir($dir)) { $handle = opendir($dir); if (is_resource($handle)) { @@ -286,23 +293,26 @@ foreach ($dirmodels as $reldir) } closedir($handle); arsort($filelist); - + foreach ($filelist as $file) { - if (preg_match('/\.modules\.php$/i', $file) && preg_match('/^(pdf_|doc_)/', $file)) { - + if (preg_match('/\.modules\.php$/i', $file) && preg_match('/^(pdf_|doc_)/', + $file)) { + if (file_exists($dir . '/' . $file)) { $name = substr($file, 4, dol_strlen($file) - 16); $classname = substr($file, 0, dol_strlen($file) - 12); - + require_once $dir . '/' . $file; $module = new $classname($db); - + $modulequalified = 1; - if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) + if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL + < 2) $modulequalified = 0; - if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) + if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL + < 1) $modulequalified = 0; - + if ($modulequalified) { print ''; print(empty($module->name) ? $name : $module->name); @@ -312,29 +322,35 @@ foreach ($dirmodels as $reldir) else print $module->description; print ''; - + // Active if (in_array($name, $def)) { print '' . "\n"; print ''; - print img_picto($langs->trans("Enabled"), 'switch_on'); + print img_picto($langs->trans("Enabled"), + 'switch_on'); print ''; print ''; - } else { + } + else { print '' . "\n"; - print '' . img_picto($langs->trans("Disabled"), 'switch_off') . ''; + print '' . img_picto($langs->trans("Disabled"), + 'switch_off') . ''; print ""; } - + // Default print ''; if ($conf->global->BANKADDON_PDF == $name) { - print img_picto($langs->trans("Default"), 'on'); - } else { - print '' . img_picto($langs->trans("Disabled"), 'off') . ''; + print img_picto($langs->trans("Default"), + 'on'); + } + else { + print '' . img_picto($langs->trans("Disabled"), + 'off') . ''; } print ''; - + // Info $htmltooltip = '' . $langs->trans("Name") . ': ' . $module->name; $htmltooltip .= '
' . $langs->trans("Type") . ': ' . ($module->type ? $module->type : $langs->trans("Unknown")); @@ -342,27 +358,33 @@ foreach ($dirmodels as $reldir) $htmltooltip .= '
' . $langs->trans("Width") . '/' . $langs->trans("Height") . ': ' . $module->page_largeur . '/' . $module->page_hauteur; } $htmltooltip .= '

' . $langs->trans("FeaturesSupported") . ':'; - $htmltooltip .= '
' . $langs->trans("Logo") . ': ' . yn($module->option_logo, 1, 1); + $htmltooltip .= '
' . $langs->trans("Logo") . ': ' . yn($module->option_logo, + 1, 1); //$htmltooltip .= '
' . $langs->trans("PaymentMode") . ': ' . yn($module->option_modereg, 1, 1); //$htmltooltip .= '
' . $langs->trans("PaymentConditions") . ': ' . yn($module->option_condreg, 1, 1); - $htmltooltip .= '
' . $langs->trans("MultiLanguage") . ': ' . yn($module->option_multilang, 1, 1); + $htmltooltip .= '
' . $langs->trans("MultiLanguage") . ': ' . yn($module->option_multilang, + 1, 1); // $htmltooltip.='
'.$langs->trans("Discounts").': '.yn($module->option_escompte,1,1); // $htmltooltip.='
'.$langs->trans("CreditNote").': '.yn($module->option_credit_note,1,1); //$htmltooltip .= '
' . $langs->trans("WatermarkOnDraftOrders") . ': ' . yn($module->option_draft_watermark, 1, 1); - + print ''; - print $form->textwithpicto('', $htmltooltip, 1, 0); + print $form->textwithpicto('', $htmltooltip, 1, + 0); print ''; - + // Preview print ''; if ($module->type == 'pdf') { - print '' . img_object($langs->trans("Preview"), 'bill') . ''; - } else { - print img_object($langs->trans("PreviewNotAvailable"), 'generic'); + print '' . img_object($langs->trans("Preview"), + 'bill') . ''; + } + else { + print img_object($langs->trans("PreviewNotAvailable"), + 'generic'); } print ''; - + print "\n"; } } @@ -372,9 +394,51 @@ foreach ($dirmodels as $reldir) } } } +print ''; //} + +print '

'; + + +/* + * Document templates generators + */ +//if (! empty($conf->global->MAIN_FEATURES_LEVEL)) +//{ +print load_fiche_titre($langs->trans("BankAccountReleveModule"), '', ''); + + +print "\n"; +print "\n"; +print ''; +print ''; +print '\n"; +print "\n"; + +print ''; +// Active +if ($conf->global->BANK_REPORT_LAST_NUM_RELEVE) { + print ''; +} +else { + print '"; +} + +print "\n"; +print '
' . $langs->trans("Name") . '' . $langs->trans("Description") . '' . $langs->trans("Status") . "
'; +print $langs->trans('AccountStatement'); +print "\n"; +print $langs->trans('AutoReportLastAccountStatement'); +print '' . "\n"; + print ''; + print img_picto($langs->trans("Enabled"), 'switch_on'); + print ''; + print '' . "\n"; + print '' . img_picto($langs->trans("Disabled"), + 'switch_off') . ''; + print "
'; dol_fiche_end(); llxFooter(); diff --git a/htdocs/admin/defaultvalues.php b/htdocs/admin/defaultvalues.php index 40446c27217..7e4593de2b3 100644 --- a/htdocs/admin/defaultvalues.php +++ b/htdocs/admin/defaultvalues.php @@ -285,7 +285,7 @@ if ($mode != 'focus') print_liste_field_titre($textvalue, $_SERVER["PHP_SELF"], 'value', '', $param, '', $sortfield, $sortorder); } // Entity -if (! empty($conf->multicompany->enabled) && !$user->entity) print_liste_field_titre($langs->trans("Entity"),$_SERVER["PHP_SELF"],'entity,page','',$param,'',$sortfield,$sortorder); +if (! empty($conf->multicompany->enabled) && !$user->entity) print_liste_field_titre("Entity",$_SERVER["PHP_SELF"],'entity,page','',$param,'',$sortfield,$sortorder); // Actions print ''; print "\n"; diff --git a/htdocs/admin/dict.php b/htdocs/admin/dict.php index 72888a8deb3..b77128b6597 100644 --- a/htdocs/admin/dict.php +++ b/htdocs/admin/dict.php @@ -88,7 +88,7 @@ $hookmanager->initHooks(array('admin')); // Put here declaration of dictionaries properties // Sort order to show dictionary (0 is space). All other dictionaries (added by modules) will be at end of this. -$taborder=array(9,0,4,3,2,0,1,8,19,16,27,0,5,11,0,33,34,0,6,0,29,0,7,17,24,28,0,10,23,12,13,0,14,0,22,20,18,21,0,15,30,0,26,0); +$taborder=array(9,0,4,3,2,0,1,8,19,16,27,0,5,11,0,33,34,0,6,0,29,0,7,17,35,36,24,28,0,10,23,12,13,0,14,0,22,20,18,21,0,15,30,0,26,0,); // Name of SQL tables of dictionaries $tabname=array(); @@ -126,6 +126,8 @@ $tabname[30]= MAIN_DB_PREFIX."c_format_cards"; //$tabname[32]= MAIN_DB_PREFIX."c_accounting_category"; $tabname[33]= MAIN_DB_PREFIX."c_hrm_department"; $tabname[34]= MAIN_DB_PREFIX."c_hrm_function"; +$tabname[35]= MAIN_DB_PREFIX."c_exp_tax_cat"; +$tabname[36]= MAIN_DB_PREFIX."c_exp_tax_range"; // Dictionary labels $tablib=array(); @@ -163,6 +165,8 @@ $tablib[30]= "DictionaryFormatCards"; //$tablib[32]= "DictionaryAccountancyCategory"; $tablib[33]= "DictionaryDepartment"; $tablib[34]= "DictionaryFunction"; +$tablib[35]= "DictionaryExpenseTaxCat"; +$tablib[36]= "DictionaryExpenseTaxRange"; // Requests to extract data $tabsql=array(); @@ -200,6 +204,8 @@ $tabsql[30]= "SELECT rowid, code, name, paper_size, orientation, metric, leftmar //$tabsql[32]= "SELECT a.rowid as rowid, a.code as code, a.label, a.range_account, a.sens, a.category_type, a.formula, a.position as position, a.fk_country as country_id, c.code as country_code, c.label as country, a.active FROM ".MAIN_DB_PREFIX."c_accounting_category as a, ".MAIN_DB_PREFIX."c_country as c WHERE a.fk_country=c.rowid and c.active=1"; $tabsql[33]= "SELECT rowid, pos, code, label, active FROM ".MAIN_DB_PREFIX."c_hrm_department"; $tabsql[34]= "SELECT rowid, pos, code, label, c_level, active FROM ".MAIN_DB_PREFIX."c_hrm_function"; +$tabsql[35]= "SELECT c.rowid, c.label, c.active, c.entity FROM ".MAIN_DB_PREFIX."c_exp_tax_cat c"; +$tabsql[36]= "SELECT r.rowid, r.fk_c_exp_tax_cat, r.range_ik, r.active, r.entity FROM ".MAIN_DB_PREFIX."c_exp_tax_range r"; // Criteria to sort dictionaries $tabsqlsort=array(); @@ -237,6 +243,8 @@ $tabsqlsort[30]="code ASC"; //$tabsqlsort[32]="position ASC"; $tabsqlsort[33]="code ASC"; $tabsqlsort[34]="code ASC"; +$tabsqlsort[35]="c.label ASC"; +$tabsqlsort[36]="r.fk_c_exp_tax_cat ASC, r.range_ik ASC"; // Nom des champs en resultat de select pour affichage du dictionnaire $tabfield=array(); @@ -249,7 +257,7 @@ $tabfield[6] = "code,libelle,type,color,position"; $tabfield[7] = "code,libelle,country,accountancy_code,deductible"; $tabfield[8] = "code,libelle,country_id,country".(! empty($conf->global->SOCIETE_SORT_ON_TYPEENT)?',position':''); $tabfield[9] = "code,label,unicode"; -$tabfield[10]= "country_id,country,code,taux,recuperableonly,localtax1_type,localtax1,localtax2_type,localtax2,accountancy_code_sell,accountancy_code_buy,note"; +$tabfield[10]= "country_id,country,code,taux,localtax1_type,localtax1,localtax2_type,localtax2,recuperableonly,accountancy_code_sell,accountancy_code_buy,note"; $tabfield[11]= "element,source,code,libelle,position"; $tabfield[12]= "code,libelle,libelle_facture,nbjour,type_cdr,decalage,sortorder"; $tabfield[13]= "code,libelle,type,accountancy_code"; @@ -272,8 +280,8 @@ $tabfield[29]= "code,label,percent,position"; $tabfield[30]= "code,name,paper_size,orientation,metric,leftmargin,topmargin,nx,ny,spacex,spacey,width,height,font_size,custom_x,custom_y"; //$tabfield[31]= "pcg_version,label"; //$tabfield[32]= "code,label,range_account,sens,category_type,formula,position,country_id,country"; -$tabfield[33]= "code,label"; -$tabfield[34]= "code,label"; +$tabfield[35]= "label"; +$tabfield[36]= "range_ik,fk_c_exp_tax_cat"; // Nom des champs d'edition pour modification d'un enregistrement $tabfieldvalue=array(); @@ -286,7 +294,7 @@ $tabfieldvalue[6] = "code,libelle,type,color,position"; $tabfieldvalue[7] = "code,libelle,country,accountancy_code,deductible"; $tabfieldvalue[8] = "code,libelle,country".(! empty($conf->global->SOCIETE_SORT_ON_TYPEENT)?',position':''); $tabfieldvalue[9] = "code,label,unicode"; -$tabfieldvalue[10]= "country,code,taux,recuperableonly,localtax1_type,localtax1,localtax2_type,localtax2,accountancy_code_sell,accountancy_code_buy,note"; +$tabfieldvalue[10]= "country,code,taux,localtax1_type,localtax1,localtax2_type,localtax2,recuperableonly,accountancy_code_sell,accountancy_code_buy,note"; $tabfieldvalue[11]= "element,source,code,libelle,position"; $tabfieldvalue[12]= "code,libelle,libelle_facture,nbjour,type_cdr,decalage,sortorder"; $tabfieldvalue[13]= "code,libelle,type,accountancy_code"; @@ -311,6 +319,8 @@ $tabfieldvalue[30]= "code,name,paper_size,orientation,metric,leftmargin,topmargi //$tabfieldvalue[32]= "code,label,range_account,sens,category_type,formula,position,country"; $tabfieldvalue[33]= "code,label"; $tabfieldvalue[34]= "code,label"; +$tabfieldvalue[35]= "label"; +$tabfieldvalue[36]= "range_ik,fk_c_exp_tax_cat"; // Nom des champs dans la table pour insertion d'un enregistrement $tabfieldinsert=array(); @@ -323,7 +333,7 @@ $tabfieldinsert[6] = "code,libelle,type,color,position"; $tabfieldinsert[7] = "code,libelle,fk_pays,accountancy_code,deductible"; $tabfieldinsert[8] = "code,libelle,fk_country".(! empty($conf->global->SOCIETE_SORT_ON_TYPEENT)?',position':''); $tabfieldinsert[9] = "code_iso,label,unicode"; -$tabfieldinsert[10]= "fk_pays,code,taux,recuperableonly,localtax1_type,localtax1,localtax2_type,localtax2,accountancy_code_sell,accountancy_code_buy,note"; +$tabfieldinsert[10]= "fk_pays,code,taux,localtax1_type,localtax1,localtax2_type,localtax2,recuperableonly,accountancy_code_sell,accountancy_code_buy,note"; $tabfieldinsert[11]= "element,source,code,libelle,position"; $tabfieldinsert[12]= "code,libelle,libelle_facture,nbjour,type_cdr,decalage,sortorder"; $tabfieldinsert[13]= "code,libelle,type,accountancy_code"; @@ -348,6 +358,8 @@ $tabfieldinsert[30]= "code,name,paper_size,orientation,metric,leftmargin,topmarg //$tabfieldinsert[32]= "code,label,range_account,sens,category_type,formula,position,fk_country"; $tabfieldinsert[33]= "code,label"; $tabfieldinsert[34]= "code,label"; +$tabfieldinsert[35]= "label"; +$tabfieldinsert[36]= "range_ik,fk_c_exp_tax_cat"; // Nom du rowid si le champ n'est pas de type autoincrement // Example: "" if id field is "rowid" and has autoincrement on @@ -387,6 +399,8 @@ $tabrowid[30]= ""; //$tabrowid[32]= ""; $tabrowid[33]= "rowid"; $tabrowid[34]= "rowid"; +$tabrowid[35]= ""; +$tabrowid[36]= ""; // Condition to show dictionary in setup page $tabcond=array(); @@ -424,6 +438,8 @@ $tabcond[30]= ! empty($conf->label->enabled); //$tabcond[32]= ! empty($conf->accounting->enabled); $tabcond[33]= ! empty($conf->hrm->enabled); $tabcond[34]= ! empty($conf->hrm->enabled); +$tabcond[35]= ! empty($conf->expensereport->enabled); +$tabcond[36]= ! empty($conf->expensereport->enabled); // List of help for fields $tabhelp=array(); @@ -461,6 +477,8 @@ $tabhelp[30] = array('code'=>$langs->trans("EnterAnyCode"), 'name'=>$langs->tran //$tabhelp[32] = array('code'=>$langs->trans("EnterAnyCode")); $tabhelp[33] = array('code'=>$langs->trans("EnterAnyCode")); $tabhelp[34] = array('code'=>$langs->trans("EnterAnyCode")); +$tabhelp[35]= array(); +$tabhelp[36]= array('range_ik'=>$langs->trans('PrevRangeToThisRange')); // List of check for fields (NOT USED YET) $tabfieldcheck=array(); @@ -498,6 +516,8 @@ $tabfieldcheck[30] = array(); //$tabfieldcheck[32] = array(); $tabfieldcheck[33] = array(); $tabfieldcheck[34] = array(); +$tabfieldcheck[35]= array(); +$tabfieldcheck[36]= array(); // Complete all arrays with entries found into modules complete_dictionary_with_modules($taborder,$tabname,$tablib,$tabsql,$tabsqlsort,$tabfield,$tabfieldvalue,$tabfieldinsert,$tabrowid,$tabcond,$tabhelp,$tabfieldcheck); @@ -1065,6 +1085,9 @@ if ($id) if ($fieldlist[$field]=='affect') { $valuetoshow=$langs->trans("WithCounter"); } if ($fieldlist[$field]=='delay') { $valuetoshow=$langs->trans("NoticePeriod"); } if ($fieldlist[$field]=='newbymonth') { $valuetoshow=$langs->trans("NewByMonth"); } + if ($fieldlist[$field]=='fk_tva') { $valuetoshow=$langs->trans("VAT"); } + if ($fieldlist[$field]=='range_ik') { $valuetoshow=$langs->trans("RangeIk"); } + if ($fieldlist[$field]=='fk_c_exp_tax_cat'){ $valuetoshow=$langs->trans("CarCategory"); } if ($id == 2) // Special cas for state page { @@ -1284,6 +1307,9 @@ if ($id) if ($fieldlist[$field]=='affect') { $valuetoshow=$langs->trans("WithCounter"); } if ($fieldlist[$field]=='delay') { $valuetoshow=$langs->trans("NoticePeriod"); } if ($fieldlist[$field]=='newbymonth') { $valuetoshow=$langs->trans("NewByMonth"); } + if ($fieldlist[$field]=='fk_tva') { $valuetoshow=$langs->trans("VAT"); } + if ($fieldlist[$field]=='range_ik') { $valuetoshow=$langs->trans("RangeIk"); } + if ($fieldlist[$field]=='fk_c_exp_tax_cat'){ $valuetoshow=$langs->trans("CarCategory"); } // Affiche nom du champ if ($showfield) @@ -1501,6 +1527,26 @@ if ($id) else if ($fieldlist[$field]=='accountancy_code' || $fieldlist[$field]=='accountancy_code_sell' || $fieldlist[$field]=='accountancy_code_buy') { $valuetoshow = length_accountg($valuetoshow); } + elseif ($fieldlist[$field] == 'fk_tva') + { + foreach ($form->cache_vatrates as $key => $Tab) + { + if ($form->cache_vatrates[$key]['rowid'] == $valuetoshow) + { + $valuetoshow = $form->cache_vatrates[$key]['libtva']; + break; + } + } + } + elseif ($fieldlist[$field] == 'fk_c_exp_tax_cat') + { + $valuetoshow = getDictvalue(MAIN_DB_PREFIX.'c_exp_tax_cat', 'label', $valuetoshow); + $valuetoshow = $langs->trans($valuetoshow); + } + elseif ($tabname[$id] == MAIN_DB_PREFIX.'c_exp_tax_cat') + { + $valuetoshow = $langs->trans($valuetoshow); + } $class='tddict'; if ($fieldlist[$field] == 'note' && $id == 10) $class.=' tdoverflowmax200'; @@ -1667,7 +1713,7 @@ $db->close(); */ function fieldList($fieldlist, $obj='', $tabname='', $context='') { - global $conf,$langs,$db; + global $conf,$langs,$db,$mysoc; global $form; global $region_id; global $elementList,$sourceList,$localtax_typeList; @@ -1834,6 +1880,24 @@ function fieldList($fieldlist, $obj='', $tabname='', $context='') } print ''; } + elseif ($fieldlist[$field] == 'fk_tva') + { + print ''; + print $form->load_tva('fk_tva', $obj->taux, $mysoc, new Societe($db), 0, 0, '', false, -1); + print ''; + } + elseif ($fieldlist[$field] == 'fk_c_exp_tax_cat') + { + print ''; + print $form->selectExpenseCategories($obj->fk_c_exp_tax_cat); + print ''; + } + elseif ($fieldlist[$field] == 'fk_range') + { + print ''; + print $form->selectExpenseRanges($obj->fk_range); + print ''; + } else { $classtd=''; $class=''; diff --git a/htdocs/admin/expensereport_ik.php b/htdocs/admin/expensereport_ik.php new file mode 100644 index 00000000000..9e653dce906 --- /dev/null +++ b/htdocs/admin/expensereport_ik.php @@ -0,0 +1,188 @@ + + * Copyright (C) 2017 ATM Consulting + * Copyright (C) 2017 Pierre-Henry Favre + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +/** + * \file htdocs/admin/expensereport_ik.php + * \ingroup expensereport + * \brief Page to display expense tax ik + */ + +require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/expensereport.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php'; +require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport_ik.class.php'; + +$langs->load('admin'); +$langs->load('other'); +$langs->load('trips'); +$langs->load('errors'); +$langs->load('dict'); + +if (!$user->admin) accessforbidden(); + +//Init error +$error = false; +$message = false; + +$action = GETPOST('action','alpha'); +$id = GETPOST('id','int'); +$offset = GETPOST('offset','int'); +$coef = GETPOST('coef','int'); + +$fk_c_exp_tax_cat = GETPOST('fk_c_exp_tax_cat'); +$fk_range = GETPOST('fk_range'); + +if ($action == 'updateik') +{ + $expIk = new ExpenseReportIk($db); + if ($id > 0) + { + $result = $expIk->fetch($id); + if ($result < 0) dol_print_error('', $expIk->error, $expIk->errors); + } + + $expIk->setValues($_POST); + $result = $expIk->create($user); + + if ($result > 0) setEventMessages('SetupSaved', null, 'mesgs'); + + header('Location: '.$_SERVER['PHP_SELF']); + exit; +} +elseif ($action == 'delete') // TODO add confirm +{ + $expIk = new ExpenseReportIk($db); + if ($id > 0) + { + $result = $expIk->fetch($id); + if ($result < 0) dol_print_error('', $expIk->error, $expIk->errors); + + $expIk->delete($user); + } + + + header('Location: '.$_SERVER['PHP_SELF']); + exit; +} + +$rangesbycateg = ExpenseReportIk::getAllRanges(); + +/* + * View + */ + +llxHeader(); + +$form=new Form($db); + +$linkback=''.$langs->trans("BackToModuleList").''; +print load_fiche_titre($langs->trans("ExpenseReportsIkSetup"),$linkback,'title_setup'); + +$head=expensereport_admin_prepare_head(); +dol_fiche_head($head, 'expenseik', $langs->trans("ExpenseReportsIk"), -1, 'trip'); + +echo $langs->trans('ExpenseReportIkDesc'); + +echo '
'; + +if ($action == 'edit') +{ + echo ''; + echo ''; + echo ''; + echo ''; +} + +echo ''; + +echo ''; + +foreach ($rangesbycateg as $fk_c_exp_tax_cat => $Tab) +{ + $title = ($Tab['active'] == 1) ? $langs->trans($Tab['label']) : $form->textwithpicto($langs->trans($Tab['label']), $langs->trans('expenseReportCatDisabled'), 1, 'help', '', 0, 3); + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + + if ($Tab['active'] == 0) continue; + + $tranche=1; + $var = true; + foreach ($Tab['ranges'] as $k => $range) + { + if (isset($Tab['ranges'][$k+1])) $label = $langs->trans('expenseReportRangeFromTo', $range->range_ik, ($Tab['ranges'][$k+1]->range_ik-1)); + else $label = $langs->trans('expenseReportRangeMoreThan', $range->range_ik); + + if ($range->range_active == 0) $label = $form->textwithpicto($label, $langs->trans('expenseReportRangeDisabled'), 1, 'help', '', 0, 3); + + echo ''; + + // Label + echo ''; + + // Offset + echo ''; + // Coef + echo ''; + + // Total for one + echo ''; + + // Action + echo ''; + + echo ''; + $var=!$var; + } +} + +echo '
'.$title.''.$langs->trans('expenseReportOffset').''.$langs->trans('expenseReportCoef').''.$langs->trans('expenseReportTotalForFive').' 
['.$langs->trans('RangeNum', $tranche++).'] - '.$label.''; + if ($action == 'edit' && $range->ik->id == $id && $range->rowid == $fk_range && $range->fk_c_exp_tax_cat == $fk_c_exp_tax_cat) echo ''; + else echo $range->ik->offset; + echo ''; + if ($action == 'edit' && $range->ik->id == $id && $range->rowid == $fk_range && $range->fk_c_exp_tax_cat == $fk_c_exp_tax_cat) echo ''; + else echo ($range->ik->id > 0 ? $range->ik->coef : $langs->trans('expenseReportCoefUndefined')); + echo ''.$langs->trans('expenseReportPrintExample', price($range->ik->offset + 5 * $range->ik->coef)).''; + if ($range->range_active == 1) + { + if ($action == 'edit' && $range->ik->id == $id && $range->rowid == $fk_range && $range->fk_c_exp_tax_cat == $fk_c_exp_tax_cat) + { + echo ''; + echo ''; + } + else + { + echo ''.img_edit().''; + if (!empty($range->ik->id)) echo ''.img_delete().''; + // TODO add delete link + } + } + echo '
'; +echo '
'; + +dol_fiche_end(); +llxFooter(); + +$db->close(); \ No newline at end of file diff --git a/htdocs/admin/expensereport_rules.php b/htdocs/admin/expensereport_rules.php new file mode 100644 index 00000000000..695bdf09a12 --- /dev/null +++ b/htdocs/admin/expensereport_rules.php @@ -0,0 +1,366 @@ + + * Copyright (C) 2017 ATM Consulting + * Copyright (C) 2017 Pierre-Henry Favre + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +/** + * \file htdocs/admin/expensereport_ik.php + * \ingroup expensereport + * \brief Page to display expense tax ik + */ + +require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/expensereport.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php'; +require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport_rule.class.php'; + +$langs->load('admin'); +$langs->load('other'); +$langs->load('trips'); +$langs->load('errors'); +$langs->load('dict'); + +if (!$user->admin) accessforbidden(); + +//Init error +$error = false; +$message = false; + +$action = GETPOST('action','alpha'); +$id = GETPOST('id','int'); + +$apply_to = GETPOST('apply_to'); +$fk_user = GETPOST('fk_user'); +$fk_usergroup = GETPOST('fk_usergroup'); + +$fk_c_type_fees = GETPOST('fk_c_type_fees'); +$code_expense_rules_type = GETPOST('code_expense_rules_type'); +$dates = dol_mktime(12, 0, 0, GETPOST('startmonth'), GETPOST('startday'), GETPOST('startyear')); +$datee = dol_mktime(12, 0, 0, GETPOST('endmonth'), GETPOST('endday'), GETPOST('endyear')); +$amount = GETPOST('amount'); +$restrictive = GETPOST('restrictive'); + +$object = new ExpenseReportRule($db); +if (!empty($id)) +{ + $result = $object->fetch($id); + if ($result < 0) dol_print_error('', $object->error, $object->errors); +} + +// TODO do action +if ($action == 'save') +{ + $error = 0; + + // check parameters + if (empty($apply_to)) { + $error++; + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ExpenseReportApplyTo")), null, 'errors'); + } + if (empty($fk_c_type_fees)) { + $error++; + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ExpenseReportDomain")), null, 'errors'); + } + if (empty($code_expense_rules_type)) { + $error++; + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ExpenseReportLimitOn")), null, 'errors'); + } + if (empty($dates)) { + $error++; + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ExpenseReportDateStart")), null, 'errors'); + } + if (empty($datee)) { + $error++; + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ExpenseReportDateEnd")), null, 'errors'); + } + if (empty($amount)) { + $error++; + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("ExpenseReportLimitAmount")), null, 'errors'); + } + + if (empty($error)) + { + $object->setValues($_POST); + + if($apply_to=='U'){ + $object->fk_user=$fk_user; + $object->fk_usergroup=0; + $object->is_for_all=0; + }elseif($apply_to=='G'){ + $object->fk_usergroup=$fk_usergroup; + $object->fk_user=0; + $object->is_for_all=0; + }elseif($apply_to=='A'){ + $object->is_for_all=1; + $object->fk_user=0; + $object->fk_usergroup=0; + } + + $object->dates = $dates; + $object->datee = $datee; + + $object->entity = $conf->entity; + + $res = $object->create($user); + if ($res > 0) setEventMessages($langs->trans('ExpenseReportRuleSave'), null); + else dol_print_error($object->db); + + header('Location: '.$_SERVER['PHP_SELF']); + exit; + } +} +elseif ($action == 'delete') +{ + // TODO add confirm + $res = $object->delete($user); + + if ($res < 0) dol_print_error($object->db); + + header('Location: '.$_SERVER['PHP_SELF']); + exit; +} + +$rules = ExpenseReportRule::getAllRule(); + +$tab_apply = array('A' => $langs->trans('All'), 'G' => $langs->trans('Group'), 'U' => $langs->trans('User')); +$tab_rules_type = array('EX_DAY' => $langs->trans('Day'), 'EX_MON' => $langs->trans('Month'), 'EX_YEA' => $langs->trans('Year'), 'EX_EXP' => $langs->trans('OnExpense')); + +/* + * View + */ + +llxHeader(); + +$form=new Form($db); + +$linkback=''.$langs->trans("BackToModuleList").''; +print load_fiche_titre($langs->trans("ExpenseReportsRulesSetup"),$linkback,'title_setup'); + +$head=expensereport_admin_prepare_head(); +dol_fiche_head($head, 'expenserules', $langs->trans("ExpenseReportsRules"), -1, 'trip'); + +echo $langs->trans('ExpenseReportRulesDesc'); + +if ($action != 'edit') +{ + echo '
'; + echo ''; + echo ''; + + echo ''; + + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + + $var=true; + echo ''; + echo ''; + + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + + echo '
'.$langs->trans('ExpenseReportApplyTo').''.$langs->trans('ExpenseReportDomain').''.$langs->trans('ExpenseReportLimitOn').''.$langs->trans('ExpenseReportDateStart').''.$langs->trans('ExpenseReportDateEnd').''.$langs->trans('ExpenseReportLimitAmount').''.$langs->trans('ExpenseReportRestrictive').' 
'; + echo '
'.$form->selectarray('apply_to', $tab_apply, '', 0).'
'; + echo '
'.$form->select_dolusers('', 'fk_user').'
'; + echo '
'.$form->select_dolgroups('', 'fk_usergroup').'
'; + echo '
'.$form->selectExpense('', 'fk_c_type_fees', 0, 1, 1).''.$form->selectarray('code_expense_rules_type', $tab_rules_type, '', 0).''.$form->select_date(strtotime(date('Y-m-01', dol_now())), 'start', '', '', 0, '', 1, 0, 1).''.$form->select_date(strtotime(date('Y-m-t', dol_now())), 'end', '', '', 0, '', 1, 0, 1).''.$conf->currency.''.$form->selectyesno('restrictive', 0, 1).'
'; + echo '
'; +} + + +echo '
'; +echo ''; + +if ($action == 'edit') +{ + echo ''; + echo ''; +} + +echo ''; + +echo ''; +echo ''; +echo ''; +echo ''; +echo ''; +echo ''; +echo ''; +echo ''; +echo ''; +echo ''; + +$var=true; +foreach ($rules as $rule) +{ + echo ''; + + echo ''; + + + echo ''; + + + + echo ''; + + + echo ''; + + + echo ''; + + + echo ''; + + + echo ''; + + + echo ''; + + echo ''; + $var=!$var; +} + + +echo '
'.$langs->trans('ExpenseReportApplyTo').''.$langs->trans('ExpenseReportDomain').''.$langs->trans('ExpenseReportLimitOn').''.$langs->trans('ExpenseReportDateStart').''.$langs->trans('ExpenseReportDateEnd').''.$langs->trans('ExpenseReportLimitAmount').''.$langs->trans('ExpenseReportRestrictive').' 
'; + if ($action == 'edit' && $object->id == $rule->id) + { + $selected = ($object->is_for_all > 0) ? 'A' : ($object->fk_usergroup > 0 ? 'G' : 'U'); + echo '
'.$form->selectarray('apply_to', $tab_apply, $selected, 0).'
'; + echo '
'.$form->select_dolusers($object->fk_user, 'fk_user').'
'; + echo '
'.$form->select_dolgroups($object->fk_usergroup, 'fk_usergroup').'
'; + } + else + { + if ($rule->is_for_all > 0) echo $tab_apply['A']; + elseif ($rule->fk_usergroup > 0) echo $tab_apply['G'].' ('.$rule->getGroupLabel().')'; + elseif ($rule->fk_user > 0) echo $tab_apply['U'].' ('.$rule->getUserName().')'; + } + echo '
'; + if ($action == 'edit' && $object->id == $rule->id) + { + echo $form->selectExpense($object->fk_c_type_fees, 'fk_c_type_fees', 0, 1, 1); + } + else + { + if ($rule->fk_c_type_fees == -1) echo $langs->trans('AllExpenseReport'); + else + { + $key = getDictvalue(MAIN_DB_PREFIX.'c_type_fees', 'code', $rule->fk_c_type_fees, false, 'id'); + if ($key != $langs->trans($key)) echo $langs->trans($key); + else echo $langs->trans(getDictvalue(MAIN_DB_PREFIX.'c_type_fees', 'label', $rule->fk_c_type_fees, false, 'id')); // TODO check to return trans of 'code' + } + } + echo ''; + if ($action == 'edit' && $object->id == $rule->id) + { + echo $form->selectarray('code_expense_rules_type', $tab_rules_type, $object->code_expense_rules_type, 0); + } + else + { + echo $tab_rules_type[$rule->code_expense_rules_type]; + } + echo ''; + if ($action == 'edit' && $object->id == $rule->id) + { + echo $form->select_date(strtotime(date('Y-m-d', $object->dates)), 'start', '', '', 0, '', 1, 0, 1); + } + else + { + echo dol_print_date($rule->dates, 'day'); + } + echo ''; + if ($action == 'edit' && $object->id == $rule->id) + { + echo $form->select_date(strtotime(date('Y-m-d', $object->datee)), 'end', '', '', 0, '', 1, 0, 1); + } + else + { + echo dol_print_date($rule->datee, 'day'); + } + echo ''; + if ($action == 'edit' && $object->id == $rule->id) + { + echo ''.$conf->currency; + } + else + { + echo price($rule->amount, 0, $langs, 1, -1, -1, $conf->currency); + } + echo ''; + if ($action == 'edit' && $object->id == $rule->id) + { + echo $form->selectyesno('restrictive', $object->restrictive, 1); + } + else + { + echo yn($rule->restrictive, 1, 1); + } + echo ''; + if ($object->id != $rule->id) + { + echo ''.img_edit().' '; + echo ''.img_delete().''; + } + else + { + echo ' '; + echo ''.$langs->trans('Cancel').''; + } + echo '
'; +echo '
'; + +echo ''; + +dol_fiche_end(); +llxFooter(); + +$db->close(); \ No newline at end of file diff --git a/htdocs/admin/menus/index.php b/htdocs/admin/menus/index.php index 5fb19b0b5ec..c3211fc2d75 100644 --- a/htdocs/admin/menus/index.php +++ b/htdocs/admin/menus/index.php @@ -296,7 +296,7 @@ if ($conf->use_javascript_ajax) //puis tous les elements enfants - $sql = "SELECT m.rowid, m.titre, m.langs, m.mainmenu, m.leftmenu, m.fk_menu, m.fk_mainmenu, m.fk_leftmenu, m.module"; + $sql = "SELECT m.rowid, m.titre, m.langs, m.mainmenu, m.leftmenu, m.fk_menu, m.fk_mainmenu, m.fk_leftmenu, m.position, m.module"; $sql.= " FROM ".MAIN_DB_PREFIX."menu as m"; $sql.= " WHERE menu_handler = '".$db->escape($menu_handler_to_search)."'"; $sql.= " AND entity = ".$conf->entity; @@ -323,6 +323,7 @@ if ($conf->use_javascript_ajax) 'leftmenu'=>$menu['leftmenu'], 'fk_mainmenu'=>$menu['fk_mainmenu'], 'fk_leftmenu'=>$menu['fk_leftmenu'], + 'position'=>$menu['position'], 'entry'=>''; @@ -376,7 +378,6 @@ if ($conf->use_javascript_ajax) print ''; print ''; - print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"e.dateevent","",$param,'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Code"),$_SERVER["PHP_SELF"],"e.type","",$param,'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("IP"),$_SERVER["PHP_SELF"],"e.ip","",$param,'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("User"),$_SERVER["PHP_SELF"],"u.login","",$param,'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Description"),$_SERVER["PHP_SELF"],"e.description","",$param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"e.dateevent","",$param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre("Code",$_SERVER["PHP_SELF"],"e.type","",$param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre("IP",$_SERVER["PHP_SELF"],"e.ip","",$param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre("User",$_SERVER["PHP_SELF"],"u.login","",$param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre("Description",$_SERVER["PHP_SELF"],"e.description","",$param,'align="left"',$sortfield,$sortorder); print_liste_field_titre(''); print "\n"; diff --git a/htdocs/admin/tools/listsessions.php b/htdocs/admin/tools/listsessions.php index c57a78974ed..6106fbe8dd8 100644 --- a/htdocs/admin/tools/listsessions.php +++ b/htdocs/admin/tools/listsessions.php @@ -128,12 +128,12 @@ if ($savehandler == 'files') { print '
'. '   '.$titre.''. ''. @@ -344,10 +345,11 @@ if ($conf->use_javascript_ajax) global $tree_recur_alreadyadded; // This var was def into tree_recur - // Appelle de la fonction recursive (ammorce) - // avec recherche depuis la racine. //var_dump($data); - tree_recur($data, $data[0], 0, 'iddivjstree'); // $data[0] is virtual record 'racine' + + // Appelle de la fonction recursive (ammorce) avec recherche depuis la racine. + //tree_recur($data, $data[0], 0, 'iddivjstree', 0, 1); // use this to get info on name and foreign keys of menu entry + tree_recur($data, $data[0], 0, 'iddivjstree', 0, 0); // $data[0] is virtual record 'racine' print '
'; - foreach($remainingdata as $datar) { $father = array('rowid'=>$datar['rowid'],'title'=>"???",'mainmenu'=>$datar['fk_mainmenu'],'leftmenu'=>$datar['fk_leftmenu'],'fk_mainmenu'=>'','fk_leftmenu'=>''); diff --git a/htdocs/admin/modulehelp.php b/htdocs/admin/modulehelp.php index 143ebc627f8..830b323545f 100644 --- a/htdocs/admin/modulehelp.php +++ b/htdocs/admin/modulehelp.php @@ -269,7 +269,7 @@ if ($objMod->isCoreOrExternalModule() == 'external') $modulename=$objMod->getName(); $moduledesc=$objMod->getDesc(); $moduleauthor=$objMod->getPublisher(); - +$moduledir=strtolower(preg_replace('/^mod/i','',get_class($objMod))); print '
'; @@ -449,11 +449,28 @@ if ($mode == 'feature') $text.='
'; $text.='
'.$langs->trans("AddTriggers").': '; + $moreinfoontriggerfile=''; if (isset($objMod->module_parts) && isset($objMod->module_parts['triggers']) && $objMod->module_parts['triggers']) { - $text.=$langs->trans("Yes"); + $yesno='Yes'; } - else $text.=$langs->trans("No"); + else + { + $yesno='No'; + } + require_once DOL_DOCUMENT_ROOT.'/core/class/interfaces.class.php'; + $interfaces = new Interfaces($db); + $triggers = $interfaces->getTriggersList(array((($objMod->isCoreOrExternalModule() == 'external')?'/'.$moduledir:'').'/core/triggers')); + foreach($triggers as $triggercursor) + { + if ($triggercursor['module'] == $moduledir) + { + $yesno='Yes'; + $moreinfoontriggerfile=' ('.$triggercursor['relpath'].')'; + } + } + + $text.=$langs->trans($yesno).$moreinfoontriggerfile; $text.='
'; diff --git a/htdocs/admin/multicurrency.php b/htdocs/admin/multicurrency.php index 0229f4fc150..c6d00501015 100644 --- a/htdocs/admin/multicurrency.php +++ b/htdocs/admin/multicurrency.php @@ -100,7 +100,7 @@ elseif ($action == 'update_currency') if ($submit == $langs->trans('Modify')) { $fk_multicurrency = GETPOST('fk_multicurrency', 'int'); - $rate = GETPOST('rate', 'float'); + $rate = price2num(GETPOST('rate', 'alpha')); $currency = new MultiCurrency($db); if ($currency->fetch($fk_multicurrency) > 0) diff --git a/htdocs/admin/security_file.php b/htdocs/admin/security_file.php index 8c1b1fa5b07..66e31f0c7c1 100644 --- a/htdocs/admin/security_file.php +++ b/htdocs/admin/security_file.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2004-2017 Laurent Destailleur * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2013 Juanjo Menent * @@ -103,6 +103,7 @@ else if ($action == 'delete') exit; } + /* * View */ diff --git a/htdocs/admin/tools/listevents.php b/htdocs/admin/tools/listevents.php index 516d9e41bb2..ac520ce22b3 100644 --- a/htdocs/admin/tools/listevents.php +++ b/htdocs/admin/tools/listevents.php @@ -260,11 +260,11 @@ if ($result) print '
'; print ''; - print_liste_field_titre($langs->trans("Login"),$_SERVER["PHP_SELF"],"login","","",'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("SessionId"),$_SERVER["PHP_SELF"],"id","","",'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"datec","","",'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DateModification"),$_SERVER["PHP_SELF"],"datem","","",'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Age"),$_SERVER["PHP_SELF"],"age","","",'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Raw"),$_SERVER["PHP_SELF"],"raw","","",'align="left"',$sortfield,$sortorder); + print_liste_field_titre("Login",$_SERVER["PHP_SELF"],"login","","",'align="left"',$sortfield,$sortorder); + print_liste_field_titre("SessionId",$_SERVER["PHP_SELF"],"id","","",'align="left"',$sortfield,$sortorder); + print_liste_field_titre("DateCreation",$_SERVER["PHP_SELF"],"datec","","",'align="left"',$sortfield,$sortorder); + print_liste_field_titre("DateModification",$_SERVER["PHP_SELF"],"datem","","",'align="left"',$sortfield,$sortorder); + print_liste_field_titre("Age",$_SERVER["PHP_SELF"],"age","","",'align="left"',$sortfield,$sortorder); + print_liste_field_titre("Raw",$_SERVER["PHP_SELF"],"raw","","",'align="left"',$sortfield,$sortorder); print_liste_field_titre(''); print "\n"; @@ -141,7 +141,7 @@ if ($savehandler == 'files') foreach ($listofsessions as $key => $sessionentry) { - + print ''; diff --git a/htdocs/admin/translation.php b/htdocs/admin/translation.php index 5236315daf3..016d1ff8bb1 100644 --- a/htdocs/admin/translation.php +++ b/htdocs/admin/translation.php @@ -235,10 +235,10 @@ if ($mode == 'overwrite') print '
'; print ''; - print_liste_field_titre($langs->trans("Language").' (en_US, es_MX, ...)',$_SERVER["PHP_SELF"],'lang,transkey','',$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Key"),$_SERVER["PHP_SELF"],'transkey','',$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("NewTranslationStringToShow"),$_SERVER["PHP_SELF"],'transvalue','',$param,'',$sortfield,$sortorder); - //if (! empty($conf->multicompany->enabled) && !$user->entity) print_liste_field_titre($langs->trans("Entity"),$_SERVER["PHP_SELF"],'entity,transkey','',$param,'',$sortfield,$sortorder); + print_liste_field_titre( $langs->trans("Language").' (en_US, es_MX, ...)',$_SERVER["PHP_SELF"],'lang,transkey','',$param,'',$sortfield,$sortorder); + print_liste_field_titre("Key",$_SERVER["PHP_SELF"],'transkey','',$param,'',$sortfield,$sortorder); + print_liste_field_titre("NewTranslationStringToShow",$_SERVER["PHP_SELF"],'transvalue','',$param,'',$sortfield,$sortorder); + //if (! empty($conf->multicompany->enabled) && !$user->entity) print_liste_field_titre("Entity"),$_SERVER["PHP_SELF"],'entity,transkey','',$param,'',$sortfield,$sortorder); print ''; print "\n"; @@ -393,10 +393,10 @@ if ($mode == 'searchkey') print '
'; print ''; - print_liste_field_titre($langs->trans("Language").' (en_US, es_MX, ...)',$_SERVER["PHP_SELF"],'lang,transkey','',$param,'',$sortfield,$sortorder).''; - print_liste_field_titre($langs->trans("Key"),$_SERVER["PHP_SELF"],'transkey','',$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("CurrentTranslationString"),$_SERVER["PHP_SELF"],'transvalue','',$param,'',$sortfield,$sortorder); - //if (! empty($conf->multicompany->enabled) && !$user->entity) print_liste_field_titre($langs->trans("Entity"),$_SERVER["PHP_SELF"],'entity,transkey','',$param,'',$sortfield,$sortorder); + print_liste_field_titre( $langs->trans("Language").' (en_US, es_MX, ...)',$_SERVER["PHP_SELF"],'lang,transkey','',$param,'',$sortfield,$sortorder).''; + print_liste_field_titre("Key",$_SERVER["PHP_SELF"],'transkey','',$param,'',$sortfield,$sortorder); + print_liste_field_titre("CurrentTranslationString",$_SERVER["PHP_SELF"],'transvalue','',$param,'',$sortfield,$sortorder); + //if (! empty($conf->multicompany->enabled) && !$user->entity) print_liste_field_titre("Entity",$_SERVER["PHP_SELF"],'entity,transkey','',$param,'',$sortfield,$sortorder); print ''; print "\n"; diff --git a/htdocs/admin/websites.php b/htdocs/admin/websites.php index 61fa7bc17f3..bab1cc0f80f 100644 --- a/htdocs/admin/websites.php +++ b/htdocs/admin/websites.php @@ -73,7 +73,7 @@ $tablib[1] = "Websites"; // Requests to extract data $tabsql=array(); -$tabsql[1] = "SELECT f.rowid as rowid, f.entity, f.ref, f.description, f.status FROM ".MAIN_DB_PREFIX."website as f"; +$tabsql[1] = "SELECT f.rowid as rowid, f.entity, f.ref, f.description, f.virtualhost, f.status FROM ".MAIN_DB_PREFIX."website as f"; // Criteria to sort dictionaries $tabsqlsort=array(); @@ -81,15 +81,15 @@ $tabsqlsort[1] ="ref ASC"; // Nom des champs en resultat de select pour affichage du dictionnaire $tabfield=array(); -$tabfield[1] = "ref,description"; +$tabfield[1] = "ref,description,virtualhost"; // Nom des champs d'edition pour modification d'un enregistrement $tabfieldvalue=array(); -$tabfieldvalue[1] = "ref,description"; +$tabfieldvalue[1] = "ref,description,virtualhost"; // Nom des champs dans la table pour insertion d'un enregistrement $tabfieldinsert=array(); -$tabfieldinsert[1] = "ref,description,entity"; +$tabfieldinsert[1] = "ref,description,virtualhost,entity"; // Nom du rowid si le champ n'est pas de type autoincrement // Example: "" if id field is "rowid" and has autoincrement on @@ -103,7 +103,7 @@ $tabcond[1] = (! empty($conf->websites->enabled)); // List of help for fields $tabhelp=array(); -$tabhelp[1] = array(); +$tabhelp[1] = array('ref'=>$langs->trans("EnterAnyCode"), 'virtualhost'=>$langs->trans("SetHereVirtualHost", DOL_DATA_ROOT.'/websites/websiteref')); // List of check for fields (NOT USED YET) $tabfieldcheck=array(); @@ -114,7 +114,7 @@ $tabfieldcheck[1] = array(); $elementList = array(); $sourceList=array(); -// Actions add or modify an entry into a dictionary +// Actions add or modify a website if (GETPOST('actionadd','alpha') || GETPOST('actionmodify','alpha')) { $listfield=explode(',',$tabfield[$id]); @@ -126,12 +126,25 @@ if (GETPOST('actionadd','alpha') || GETPOST('actionmodify','alpha')) $ok=1; foreach ($listfield as $f => $value) { - if (! isset($_POST[$value]) || $_POST[$value]=='') // Fields that are not mandatory + if ((! isset($_POST[$value]) || $_POST[$value]=='') + && (! in_array($listfield[$f], array('virtualhost')))) // Fields that are not mandatory { $ok=0; $fieldnamekey=$listfield[$f]; setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentities($fieldnamekey)), null, 'errors'); } + if ($value == 'ref' && ! preg_match('/^[a-z0-9_\-\.]+$/i', $_POST[$value])) + { + $ok=0; + $fieldnamekey=$listfield[$f]; + setEventMessages($langs->transnoentities("ErrorFieldCanNotContainSpecialCharacters", $langs->transnoentities($fieldnamekey)), null, 'errors'); + } + } + + // Clean parameters + if (! empty($_POST['ref'])) + { + $websitekey=strtolower($_POST['ref']); } // Si verif ok et action add, on ajoute la ligne @@ -153,6 +166,12 @@ if (GETPOST('actionadd','alpha') || GETPOST('actionmodify','alpha')) } } + /* $website=new Website($db); + $website->ref= + $website->description= + $website->virtualhost= + $website->create($user); */ + // Add new entry $sql = "INSERT INTO ".$tabname[$id]." ("; // List of fields @@ -171,6 +190,9 @@ if (GETPOST('actionadd','alpha') || GETPOST('actionmodify','alpha')) if ($value == 'entity') { $_POST[$listfieldvalue[$i]] = $conf->entity; } + if ($value == 'ref') { + $_POST[$listfieldvalue[$i]] = strtolower($_POST[$listfieldvalue[$i]]); + } if ($i) $sql.=","; if ($_POST[$listfieldvalue[$i]] == '') $sql.="null"; else $sql.="'".$db->escape($_POST[$listfieldvalue[$i]])."'"; @@ -182,6 +204,29 @@ if (GETPOST('actionadd','alpha') || GETPOST('actionmodify','alpha')) $result = $db->query($sql); if ($result) // Add is ok { + global $dolibarr_main_data_root; + $pathofwebsite=$dolibarr_main_data_root.'/websites/'.$websitekey; + $filehtmlheader=$pathofwebsite.'/htmlheader.html'; + $filecss=$pathofwebsite.'/styles.css.php'; + $filetpl=$pathofwebsite.'/page'.$pageid.'.tpl.php'; + $fileindex=$pathofwebsite.'/index.php'; + + // Css file + $csscontent = ''."\n"; + $csscontent.= ''."\n"; + $csscontent.= '"."\n"; + $csscontent.= ''."\n"; + $csscontent.= 'body { margin: 0; }'."\n"; + + dol_syslog("Save file css into ".$filecss); + + dol_mkdir($pathofwebsite); + $result = file_put_contents($filecss, $csscontent); + if (! empty($conf->global->MAIN_UMASK)) + @chmod($filecss, octdec($conf->global->MAIN_UMASK)); + setEventMessages($langs->transnoentities("RecordSaved"), null, 'mesgs'); unset($_POST); // Clean $_POST array, we keep only } @@ -393,7 +438,11 @@ if ($id) { print ''; } diff --git a/htdocs/api/index.php b/htdocs/api/index.php index 905d560f9c2..9f734c9e24d 100644 --- a/htdocs/api/index.php +++ b/htdocs/api/index.php @@ -238,6 +238,7 @@ if (! empty($reg[1]) && ($reg[1] != 'explorer' || ($reg[2] != '/resources.json' { $classfile = str_replace('_', '', $module); if ($module == 'supplierinvoices') $classfile = 'supplier_invoices'; + if ($module == 'supplierorders') $classfile = 'supplier_orders'; $dir_part_file = dol_buildpath('/'.$moduledirforclass.'/class/api_'.$classfile.'.class.php'); $classname=ucwords($module); diff --git a/htdocs/bookmarks/list.php b/htdocs/bookmarks/list.php index a192076e88a..c9387561837 100644 --- a/htdocs/bookmarks/list.php +++ b/htdocs/bookmarks/list.php @@ -101,19 +101,19 @@ if ($resql) if ($optioncss != '') $param ='&optioncss='.$optioncss; $moreforfilter=''; - + print '
'; print '
'; if (! empty($tabhelp[$id][$value]) && preg_match('/^http(s*):/i',$tabhelp[$id][$value])) print ''.$valuetoshow.' '.img_help(1,$valuetoshow).''; - else if (! empty($tabhelp[$id][$value])) print $form->textwithpicto($valuetoshow,$tabhelp[$id][$value]); + elseif (! empty($tabhelp[$id][$value])) + { + if ($value == 'virtualhost') print $form->textwithpicto($valuetoshow, $tabhelp[$id][$value], 1, 'help', '', 0, 2, 'tooltipvirtual'); + else print $form->textwithpicto($valuetoshow, $tabhelp[$id][$value]); + } else print $valuetoshow; print '
'."\n"; - + print ""; //print ""; - print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"bid","", $param,'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Title"),$_SERVER["PHP_SELF"],"title","", $param,'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Link"),'',''); - print_liste_field_titre($langs->trans("Target"),'','','','','align="center"'); - print_liste_field_titre($langs->trans("Owner"),$_SERVER["PHP_SELF"],"u.lastname","", $param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"b.dateb","", $param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Position"),$_SERVER["PHP_SELF"],"b.position","", $param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"bid","", $param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre("Title",$_SERVER["PHP_SELF"],"title","", $param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre("Link",'',''); + print_liste_field_titre("Target",'','','','','align="center"'); + print_liste_field_titre("Owner",$_SERVER["PHP_SELF"],"u.lastname","", $param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"b.dateb","", $param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Position",$_SERVER["PHP_SELF"],"b.position","", $param,'align="right"',$sortfield,$sortorder); print_liste_field_titre(''); print "\n"; @@ -122,7 +122,7 @@ if ($resql) { $obj = $db->fetch_object($resql); - + print ''; // Id @@ -209,7 +209,7 @@ if ($resql) } print "
 
"; print ''; - + $db->free($resql); } else diff --git a/htdocs/categories/class/categorie.class.php b/htdocs/categories/class/categorie.class.php index ecf95c5096d..d1b8975eaf4 100644 --- a/htdocs/categories/class/categorie.class.php +++ b/htdocs/categories/class/categorie.class.php @@ -42,24 +42,24 @@ require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; */ class Categorie extends CommonObject { - // Categories types - const TYPE_PRODUCT = 0; // TODO Replace with value 'product' - const TYPE_SUPPLIER = 1; // TODO Replace this value with 'supplier' - const TYPE_CUSTOMER = 2; // TODO Replace this value with 'customer' - const TYPE_MEMBER = 3; // TODO Replace this value with 'member' - const TYPE_CONTACT = 4; // TODO Replace this value with 'contact' - const TYPE_USER = 4; // categorie contact and user are same ! TODO Replace this value with 'user' - - const TYPE_ACCOUNT = 5; // TODO Replace this value with 'bank_account' - const TYPE_PROJECT = 6; // TODO Replace this value with 'project' + // Categories types (we use string because we want to accept any modules/types in a future) + const TYPE_PRODUCT = 'product'; + const TYPE_SUPPLIER = 'supplier'; + const TYPE_CUSTOMER = 'customer'; + const TYPE_MEMBER = 'member'; + const TYPE_CONTACT = 'contact'; + const TYPE_USER = 'user'; + const TYPE_PROJECT = 'project'; + const TYPE_ACCOUNT = 'bank_account'; const TYPE_BANK_LINE = 'bank_line'; + public $picto = 'category'; /** * @var array ID mapping from type string * - * @note This array should be remove in future, once previous constants are moved to the string value. + * @note This array should be remove in future, once previous constants are moved to the string value. Deprecated */ private $MAP_ID = array( 'product' => 0, @@ -67,10 +67,21 @@ class Categorie extends CommonObject 'customer' => 2, 'member' => 3, 'contact' => 4, - 'user' => 4, 'account' => 5, 'project' => 6, + 'user' => 7, ); + public static $MAP_ID_TO_CODE = array( + 0 => 'product', + 1 => 'supplier', + 2 => 'customer', + 3 => 'member', + 4 => 'contact', + 5 => 'account', + 6 => 'project', + 7 => 'user', + ); + /** * @var array Foreign keys mapping from type string * @@ -82,9 +93,9 @@ class Categorie extends CommonObject 'supplier' => 'soc', 'member' => 'member', 'contact' => 'socpeople', - 'user' => 'user', - 'account' => 'account', - 'project' => 'project', + 'user' => 'user', + 'account' => 'account', + 'project' => 'project', ); /** * @var array Category tables mapping from type string @@ -97,9 +108,9 @@ class Categorie extends CommonObject 'supplier' => 'fournisseur', 'member' => 'member', 'contact' => 'contact', - 'user' => 'user', - 'account' => 'account', - 'project' => 'project', + 'user' => 'user', + 'account' => 'account', + 'project' => 'project', ); /** * @var array Object class mapping from type string @@ -113,8 +124,8 @@ class Categorie extends CommonObject 'member' => 'Adherent', 'contact' => 'Contact', 'user' => 'User', - 'account' => 'Account', - 'project' => 'Project', + 'account' => 'Account', + 'project' => 'Project', ); /** * @var array Object table mapping from type string @@ -128,8 +139,8 @@ class Categorie extends CommonObject 'member' => 'adherent', 'contact' => 'socpeople', 'user' => 'user', - 'account' => 'bank_account', - 'project' => 'projet', + 'account' => 'bank_account', + 'project' => 'projet', ); public $element='category'; @@ -178,15 +189,16 @@ class Categorie extends CommonObject * * @param int $id Id of category * @param string $label Label of category - * @param string $type Type of category + * @param string $type Type of category ('product', '...') or (0, 1, ...) * @return int <0 if KO, >0 if OK */ - function fetch($id,$label='',$type='') + function fetch($id, $label='', $type=null) { global $conf; // Check parameters if (empty($id) && empty($label)) return -1; + if (! is_numeric($type)) $type=$this->MAP_ID[$type]; $sql = "SELECT rowid, fk_parent, entity, label, description, color, fk_soc, visible, type"; $sql.= " FROM ".MAIN_DB_PREFIX."categorie"; @@ -197,7 +209,7 @@ class Categorie extends CommonObject else { $sql.= " WHERE label = '".$this->db->escape($label)."' AND entity IN (".getEntity('category').")"; - if ($type) $sql.= " AND type = '".$this->db->escape($type)."'"; + if (! is_null($type)) $sql.= " AND type = ".$this->db->escape($type); } dol_syslog(get_class($this)."::fetch", LOG_DEBUG); @@ -254,6 +266,10 @@ class Categorie extends CommonObject global $conf,$langs,$hookmanager; $langs->load('categories'); + $type=$this->type; + + if (! is_numeric($type)) $type=$this->MAP_ID[$type]; + $error=0; dol_syslog(get_class($this).'::create', LOG_DEBUG); @@ -299,7 +315,7 @@ class Categorie extends CommonObject $sql.= ($this->socid != -1 ? $this->socid : 'null').","; } $sql.= "'".$this->visible."',"; - $sql.= $this->type.","; + $sql.= $type.","; $sql.= (! empty($this->import_key)?"'".$this->db->escape($this->import_key)."'":'null').","; $sql.= $conf->entity; $sql.= ")"; @@ -618,12 +634,11 @@ class Categorie extends CommonObject /** * Link an object to the category * - * @param CommonObject $obj Object to link to category - * @param string $type Type of category ('customer', 'supplier', 'contact', 'product', 'member') - * - * @return int 1 : OK, -1 : erreur SQL, -2 : id not defined, -3 : Already linked + * @param CommonObject $obj Object to link to category + * @param string $type Type of category ('product', ...) + * @return int 1 : OK, -1 : erreur SQL, -2 : id not defined, -3 : Already linked */ - function add_type($obj,$type) + function add_type($obj, $type) { global $user,$langs,$conf; @@ -840,13 +855,12 @@ class Categorie extends CommonObject /** * Check for the presence of an object in a category * - * @param string $type Type of category ('customer', 'supplier', 'contact', 'product', 'member') - * @param int $object_id id of the object to search - * - * @return int number of occurrences + * @param string $type Type of category ('customer', 'supplier', 'contact', 'product', 'member') + * @param int $object_id Id of the object to search + * @return int Number of occurrences * @see getObjectsInCateg */ - function containsObject($type, $object_id ) + function containsObject($type, $object_id) { $sql = "SELECT COUNT(*) as nb FROM " . MAIN_DB_PREFIX . "categorie_" . $this->MAP_CAT_TABLE[$type]; $sql .= " WHERE fk_categorie = " . $this->id . " AND fk_" . $this->MAP_CAT_FK[$type] . " = " . $object_id; @@ -933,24 +947,16 @@ class Categorie extends CommonObject * fulllabel = nom avec chemin complet de la categorie * fullpath = chemin complet compose des id * - * @param string $type Type of categories ('customer', 'supplier', 'contact', 'product', 'member'). - * Old mode (0, 1, 2, ...) is deprecated. - * @param int $markafterid Removed all categories including the leaf $markafterid in category tree. + * @param string $type Type of categories ('customer', 'supplier', 'contact', 'product', 'member') or (0, 1, 2, ...). + * @param int $markafterid Removed all categories including the leaf $markafterid in category tree. * - * @return array Array of categories. this->cats and this->motherof are set. + * @return array Array of categories. this->cats and this->motherof are set. */ function get_full_arbo($type, $markafterid=0) { global $conf, $langs; - // For backward compatibility - if (is_numeric($type)) - { - // We want to reverse lookup - $map_type = array_flip($this->MAP_ID); - $type = $map_type[$type]; - dol_syslog( get_class( $this ) . "::get_full_arbo(): numeric types are deprecated, please use string instead", LOG_WARNING); - } + if (! is_numeric($type)) $type = $this->MAP_ID[$type]; $this->cats = array(); @@ -964,7 +970,7 @@ class Categorie extends CommonObject $sql.= " FROM ".MAIN_DB_PREFIX."categorie as c"; if (! empty($conf->global->MAIN_MULTILANGS)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie_lang as t ON t.fk_category=c.rowid AND t.lang='".$current_lang."'"; $sql .= " WHERE c.entity IN (" . getEntity( 'category', 1 ) . ")"; - $sql .= " AND c.type = " . $this->MAP_ID[$type]; + $sql .= " AND c.type = " . $type; dol_syslog(get_class($this)."::get_full_arbo get category list", LOG_DEBUG); $resql = $this->db->query($sql); @@ -1088,7 +1094,7 @@ class Categorie extends CommonObject /** * Returns all categories * - * @param int $type Type of category + * @param int $type Type of category (0, 1, ...) * @param boolean $parent Just parent categories if true * @return array Table of Object Category */ @@ -1151,13 +1157,17 @@ class Categorie extends CommonObject */ function already_exists() { + $type=$this->type; + + if (! is_numeric($type)) $type=$this->MAP_ID[$type]; + /* We have to select any rowid from llx_categorie which category's mother and label * are equals to those of the calling category */ $sql = "SELECT c.rowid"; $sql.= " FROM ".MAIN_DB_PREFIX."categorie as c "; $sql.= " WHERE c.entity IN (".getEntity('category').")"; - $sql.= " AND c.type = ".$this->type; + $sql.= " AND c.type = ".$type; $sql.= " AND c.fk_parent = ".$this->fk_parent; $sql.= " AND c.label = '".$this->db->escape($this->label)."'"; @@ -1192,7 +1202,7 @@ class Categorie extends CommonObject /** * Returns the top level categories (which are not girls) * - * @param int $type Type of category + * @param int $type Type of category (0, 1, ...) * @return array */ function get_main_categories($type=null) @@ -1330,24 +1340,17 @@ class Categorie extends CommonObject * Return list of categories (object instances or labels) linked to element of id $id and type $type * Should be named getListOfCategForObject * - * @param int $id Id of element - * @param string $type Type of category ('customer', 'supplier', 'contact', 'product', 'member'). Old mode (0, 1, 2, ...) is deprecated. - * @param string $mode 'id'=Get array of category ids, 'object'=Get array of fetched category instances, 'label'=Get array of category - * labels, 'id'= Get array of category IDs - * @return mixed Array of category objects or < 0 if KO + * @param int $id Id of element + * @param int $type Type of category ('customer', 'supplier', 'contact', 'product', 'member') or (0, 1, 2, ...) + * @param string $mode 'id'=Get array of category ids, 'object'=Get array of fetched category instances, 'label'=Get array of category + * labels, 'id'= Get array of category IDs + * @return mixed Array of category objects or < 0 if KO */ function containing($id, $type, $mode='object') { $cats = array(); - // For backward compatibility - if (is_numeric($type)) - { - dol_syslog(__METHOD__ . ': using numeric value for parameter type is deprecated. Use string code instead.', LOG_WARNING); - // We want to reverse lookup - $map_type = array_flip($this->MAP_ID); - $type = $map_type[$type]; - } + if (is_numeric($type)) $type = Categorie::$MAP_ID_TO_CODE[$type]; if ($type == Categorie::TYPE_BANK_LINE) // TODO Remove this with standard category code { diff --git a/htdocs/categories/index.php b/htdocs/categories/index.php index ea4d60e9b5b..c751fad67a7 100644 --- a/htdocs/categories/index.php +++ b/htdocs/categories/index.php @@ -39,6 +39,8 @@ $id=GETPOST('id','int'); $type=(GETPOST('type','aZ09') ? GETPOST('type','aZ09') : Categorie::TYPE_PRODUCT); $catname=GETPOST('catname','alpha'); +if (is_numeric($type)) $type=Categorie::$MAP_ID_TO_CODE[$type]; // For backward compatibility + /* * View @@ -53,8 +55,8 @@ elseif ($type == Categorie::TYPE_CUSTOMER) { $title=$langs->trans("CustomersCat elseif ($type == Categorie::TYPE_MEMBER) { $title=$langs->trans("MembersCategoriesArea"); $typetext='member'; } elseif ($type == Categorie::TYPE_CONTACT) { $title=$langs->trans("ContactsCategoriesArea"); $typetext='contact'; } elseif ($type == Categorie::TYPE_ACCOUNT) { $title=$langs->trans("AccountsCategoriesArea"); $typetext='account'; } -elseif ($type == Categorie::TYPE_USER) { $title=$langs->trans("UsersCategoriesArea"); $typetext='user'; } elseif ($type == Categorie::TYPE_PROJECT) { $title=$langs->trans("ProjectsCategoriesArea"); $typetext='project'; } +elseif ($type == Categorie::TYPE_USER) { $title=$langs->trans("UsersCategoriesArea"); $typetext='user'; } else { $title=$langs->trans("CategoriesArea"); $typetext='unknown'; } $arrayofjs=array('/includes/jquery/plugins/jquerytreeview/jquery.treeview.js', '/includes/jquery/plugins/jquerytreeview/lib/jquery.cookie.js'); diff --git a/htdocs/categories/photos.php b/htdocs/categories/photos.php index e99e081e015..e6047ed2149 100644 --- a/htdocs/categories/photos.php +++ b/htdocs/categories/photos.php @@ -42,6 +42,8 @@ $type=GETPOST('type'); $action=GETPOST('action','aZ09'); $confirm=GETPOST('confirm'); +if (is_numeric($type)) $type=Categorie::$MAP_ID_TO_CODE[$type]; // For backward compatibility + if ($id == "") { dol_print_error('','Missing parameter id'); @@ -100,15 +102,16 @@ if ($object->id) elseif ($type == Categorie::TYPE_CONTACT) $title=$langs->trans("ContactCategoriesShort"); elseif ($type == Categorie::TYPE_ACCOUNT) $title=$langs->trans("AccountsCategoriesShort"); elseif ($type == Categorie::TYPE_PROJECT) $title=$langs->trans("ProjectsCategoriesShort"); - else $title=$langs->trans("Category"); + elseif ($type == Categorie::TYPE_USER) $title=$langs->trans("UsersCategoriesShort"); + else $title=$langs->trans("Category"); $head = categories_prepare_head($object,$type); dol_fiche_head($head, 'photos', $title, -1, 'category'); - + $linkback = ''.$langs->trans("BackToList").''; - + $object->ref = $object->label; $morehtmlref='
'.$langs->trans("Root").' >> '; $ways = $object->print_all_ways(" >> ", '', 1); @@ -117,9 +120,9 @@ if ($object->id) $morehtmlref.=$way."
\n"; } $morehtmlref.='
'; - + dol_banner_tab($object, 'ref', $linkback, ($user->societe_id?0:1), 'ref', 'ref', $morehtmlref, '', 0, '', '', 1); - + /* * Confirmation de la suppression de photo */ @@ -129,7 +132,7 @@ if ($object->id) } print '
'; - + print '
'; print '
'; print ''; @@ -148,7 +151,7 @@ if ($object->id) print "
\n"; print '
'; - + print dol_fiche_end(); @@ -258,7 +261,7 @@ if ($object->id) } print ''; - + if ($nbphoto < 1) { print '
'.$langs->trans("NoPhotoYet")."
"; diff --git a/htdocs/categories/traduction.php b/htdocs/categories/traduction.php index 7dbe6325e1d..40b40eab921 100644 --- a/htdocs/categories/traduction.php +++ b/htdocs/categories/traduction.php @@ -35,11 +35,13 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; $langs->load("categories"); $langs->load("languages"); -$id = GETPOST('id', 'int'); -$ref = GETPOST('ref', 'alpha'); -$action=GETPOST('action','alpha'); -$cancel=GETPOST('cancel','alpha'); -$type=GETPOST('type'); +$id = GETPOST('id', 'int'); +$ref = GETPOST('ref', 'alpha'); +$action = GETPOST('action','alpha'); +$cancel = GETPOST('cancel','alpha'); +$type = GETPOST('type','aZ09'); + +if (is_numeric($type)) $type=Categorie::$MAP_ID_TO_CODE[$type]; // For backward compatibility // Security check $fieldvalue = (! empty($id) ? $id : (! empty($ref) ? $ref : '')); @@ -153,6 +155,7 @@ elseif ($type == Categorie::TYPE_MEMBER) $title=$langs->trans("MembersCategor elseif ($type == Categorie::TYPE_CONTACT) $title=$langs->trans("ContactCategoriesShort"); elseif ($type == Categorie::TYPE_ACCOUNT) $title=$langs->trans("AccountsCategoriesShort"); elseif ($type == Categorie::TYPE_PROJECT) $title=$langs->trans("ProjectsCategoriesShort"); +elseif ($type == Categorie::TYPE_USER) $title=$langs->trans("UsersCategoriesShort"); else $title=$langs->trans("Category"); $head = categories_prepare_head($object,$type); @@ -256,9 +259,9 @@ if ($action == 'edit') print ''; } } - + print '
'; - + print '
'; print ''; print '     '; @@ -271,7 +274,7 @@ if ($action == 'edit') else if ($action != 'add') { if ($cnt_trans) print '
'; - + if (! empty($object->multilangs)) { foreach ($object->multilangs as $key => $value) diff --git a/htdocs/categories/viewcat.php b/htdocs/categories/viewcat.php index 1c6186d5df4..75a9215e18d 100644 --- a/htdocs/categories/viewcat.php +++ b/htdocs/categories/viewcat.php @@ -34,13 +34,13 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; $langs->load("categories"); -$id=GETPOST('id','int'); -$label=GETPOST('label'); -$type=GETPOST('type'); +$id = GETPOST('id','int'); +$label= GETPOST('label','alpha'); +$type = GETPOST('type','az09'); $action=GETPOST('action','aZ09'); -$confirm=GETPOST('confirm'); +$confirm = GETPOST('confirm','alpha'); $removeelem = GETPOST('removeelem','int'); -$elemid=GETPOST('elemid'); +$elemid = GETPOST('elemid','alpha'); if ($id == "" && $label == "") { @@ -61,6 +61,7 @@ if ($result <= 0) } $type=$object->type; +if (is_numeric($type)) $type=Categorie::$MAP_ID_TO_CODE[$type]; // For backward compatibility $extrafields = new ExtraFields($db); $extralabels = $extrafields->fetch_name_optionals_label($object->table_element); @@ -187,6 +188,7 @@ elseif ($type == Categorie::TYPE_MEMBER) $title=$langs->trans("MembersCategor elseif ($type == Categorie::TYPE_CONTACT) $title=$langs->trans("ContactCategoriesShort"); elseif ($type == Categorie::TYPE_ACCOUNT) $title=$langs->trans("AccountsCategoriesShort"); elseif ($type == Categorie::TYPE_PROJECT) $title=$langs->trans("ProjectsCategoriesShort"); +elseif ($type == Categorie::TYPE_USER) $title=$langs->trans("ProjectsCategoriesShort"); else $title=$langs->trans("Category"); $head = categories_prepare_head($object,$type); diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php index 14ab91a2f31..16bb308c966 100644 --- a/htdocs/comm/action/card.php +++ b/htdocs/comm/action/card.php @@ -38,11 +38,8 @@ require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php'; -if (! empty($conf->projet->enabled)) -{ - require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; - require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; -} +require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; $langs->load("companies"); @@ -585,6 +582,8 @@ if ($action == 'mupdate') * View */ +$formproject=new FormProjets($db); + $help_url='EN:Module_Agenda_En|FR:Module_Agenda|ES:M&omodulodulo_Agenda'; llxHeader('',$langs->trans("Agenda"),$help_url); @@ -786,8 +785,6 @@ if ($action == 'create') // Project if (! empty($conf->projet->enabled)) { - $formproject=new FormProjets($db); - // Projet associe $langs->load("projects"); @@ -1133,8 +1130,6 @@ if ($id > 0) // Project if (! empty($conf->projet->enabled)) { - $formproject=new FormProjets($db); - $langs->load("projects"); print ''.$langs->trans("Project").''; diff --git a/htdocs/comm/action/class/actioncomm.class.php b/htdocs/comm/action/class/actioncomm.class.php index 70b2acb86b7..f6d6b4a0975 100644 --- a/htdocs/comm/action/class/actioncomm.class.php +++ b/htdocs/comm/action/class/actioncomm.class.php @@ -1194,7 +1194,7 @@ class ActionComm extends CommonObject { $libelle.=(($this->type_code && $libelle!=$langs->transnoentities("Action".$this->type_code) && $langs->transnoentities("Action".$this->type_code)!="Action".$this->type_code)?' ('.$langs->transnoentities("Action".$this->type_code).')':''); } - $result.=$linkstart.img_object(($notooltip?'':$langs->trans("ShowAction").': '.$libelle), ($overwritepicto?$overwritepicto:'action'), ($notooltip?'':'class="classfortooltip"'), 0, 0, $notooltip?0:1).$linkend; + $result.=$linkstart.img_object(($notooltip?'':$langs->trans("ShowAction").': '.$libelle), ($overwritepicto?$overwritepicto:'action'), ($notooltip?'class="valigntextbottom"':'class="classfortooltip valigntextbottom"'), 0, 0, $notooltip?0:1).$linkend; } if ($withpicto==1) $result.=' '; $result.=$linkstart.$libelleshort.$linkend; @@ -1498,5 +1498,22 @@ class ActionComm extends CommonObject return $this->datep && ($this->datep < ($now - $conf->agenda->warning_delay)); } + + /** + * Send reminders by emails + * CAN BE A CRON TASK + * + * @return int 0 if OK, <>0 if KO (this function is used also by cron so only 0 is OK) + */ + public function sendEmailsReminder() + { + global $conf, $langs; + + dol_syslog(__METHOD__, LOG_DEBUG); + + + return 0; + } + } diff --git a/htdocs/comm/action/listactions.php b/htdocs/comm/action/listactions.php index 59755728e81..c77c4279439 100644 --- a/htdocs/comm/action/listactions.php +++ b/htdocs/comm/action/listactions.php @@ -394,17 +394,17 @@ if ($resql) print "\n"; print ''; - print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"a.id",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Title"),$_SERVER["PHP_SELF"],"a.label",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"a.id",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("Title",$_SERVER["PHP_SELF"],"a.label",$param,"","",$sortfield,$sortorder); //if (! empty($conf->global->AGENDA_USE_EVENT_TYPE)) - print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"c.libelle",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DateStart"),$_SERVER["PHP_SELF"],"a.datep",$param,'','align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DateEnd"),$_SERVER["PHP_SELF"],"a.datep2",$param,'','align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Contact"),$_SERVER["PHP_SELF"],"a.fk_contact",$param,"","",$sortfield,$sortorder); - if (! empty($conf->global->AGENDA_SHOW_LINKED_OBJECT)) print_liste_field_titre($langs->trans("LinkedObject"),$_SERVER["PHP_SELF"],"a.fk_element",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("ActionsOwnedByShort"),$_SERVER["PHP_SELF"],"",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"a.percent",$param,"",'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"c.libelle",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("DateStart",$_SERVER["PHP_SELF"],"a.datep",$param,'','align="center"',$sortfield,$sortorder); + print_liste_field_titre("DateEnd",$_SERVER["PHP_SELF"],"a.datep2",$param,'','align="center"',$sortfield,$sortorder); + print_liste_field_titre("ThirdParty",$_SERVER["PHP_SELF"],"s.nom",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("Contact",$_SERVER["PHP_SELF"],"a.fk_contact",$param,"","",$sortfield,$sortorder); + if (! empty($conf->global->AGENDA_SHOW_LINKED_OBJECT)) print_liste_field_titre("LinkedObject",$_SERVER["PHP_SELF"],"a.fk_element",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("ActionsOwnedByShort",$_SERVER["PHP_SELF"],"",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"a.percent",$param,"",'align="center"',$sortfield,$sortorder); print_liste_field_titre(""); print "\n"; diff --git a/htdocs/comm/action/pertype.php b/htdocs/comm/action/pertype.php index cd96a4fa8ad..b10ab8dc05b 100644 --- a/htdocs/comm/action/pertype.php +++ b/htdocs/comm/action/pertype.php @@ -30,15 +30,17 @@ require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; +require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/user/class/usergroup.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php'; -if (! empty($conf->projet->enabled)) require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; +require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; if (! isset($conf->global->AGENDA_MAX_EVENTS_DAY_VIEW)) $conf->global->AGENDA_MAX_EVENTS_DAY_VIEW=3; -$filter = GETPOST("filter",'',3); +$filter = GETPOST("filter",'alpha',3); $filtert = GETPOST("filtert","int",3); $usergroup = GETPOST("usergroup","int",3); //if (! ($usergroup > 0) && ! ($filtert > 0)) $filtert = $user->id; @@ -55,7 +57,7 @@ $sortfield = GETPOST("sortfield",'alpha'); $sortorder = GETPOST("sortorder",'alpha'); $page = GETPOST("page","int"); if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 -$limit = GETPOST('limit')?GETPOST('limit','int'):$conf->liste_limit; +$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit; $offset = $limit * $page; if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="a.datec"; @@ -82,9 +84,9 @@ $month=GETPOST("month","int")?GETPOST("month","int"):date("m"); $week=GETPOST("week","int")?GETPOST("week","int"):date("W"); $day=GETPOST("day","int")?GETPOST("day","int"):date("d"); $pid=GETPOST("projectid","int",3); -$status=GETPOST("status"); -$type=GETPOST("type"); -$maxprint=(isset($_GET["maxprint"])?GETPOST("maxprint"):$conf->global->AGENDA_MAX_EVENTS_DAY_VIEW); +$status=GETPOST("status",'alpha'); +$type=GETPOST("type",'alpha'); +$maxprint=((GETPOST("maxprint",'int')!='')?GETPOST("maxprint",'int'):$conf->global->AGENDA_MAX_EVENTS_DAY_VIEW); // Set actioncode (this code must be same for setting actioncode into peruser, listacton and index) if (GETPOST('actioncode','array')) { @@ -93,22 +95,22 @@ if (GETPOST('actioncode','array')) } else { - $actioncode=GETPOST("actioncode","alpha",3)?GETPOST("actioncode","alpha",3):(GETPOST("actioncode")=='0'?'0':(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE)); + $actioncode=GETPOST("actioncode","alpha",3)?GETPOST("actioncode","alpha",3):(GETPOST("actioncode","alpha")=='0'?'0':(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE)); } if ($actioncode == '' && empty($actioncodearray)) $actioncode=(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE); -$dateselect=dol_mktime(0, 0, 0, GETPOST('dateselectmonth'), GETPOST('dateselectday'), GETPOST('dateselectyear')); +$dateselect=dol_mktime(0, 0, 0, GETPOST('dateselectmonth','int'), GETPOST('dateselectday','int'), GETPOST('dateselectyear','int')); if ($dateselect > 0) { - $day=GETPOST('dateselectday'); - $month=GETPOST('dateselectmonth'); - $year=GETPOST('dateselectyear'); + $day=GETPOST('dateselectday','int'); + $month=GETPOST('dateselectmonth','int'); + $year=GETPOST('dateselectyear','int'); } $tmp=empty($conf->global->MAIN_DEFAULT_WORKING_HOURS)?'9-18':$conf->global->MAIN_DEFAULT_WORKING_HOURS; $tmparray=explode('-',$tmp); -$begin_h = GETPOST('begin_h')!=''?GETPOST('begin_h','int'):($tmparray[0] != '' ? $tmparray[0] : 9); -$end_h = GETPOST('end_h')?GETPOST('end_h'):($tmparray[1] != '' ? $tmparray[1] : 18); +$begin_h = GETPOST('begin_h','int')!=''?GETPOST('begin_h','int'):($tmparray[0] != '' ? $tmparray[0] : 9); +$end_h = GETPOST('end_h','int')?GETPOST('end_h','int'):($tmparray[1] != '' ? $tmparray[1] : 18); if ($begin_h < 0 || $begin_h > 23) $begin_h = 9; if ($end_h < 1 || $end_h > 24) $end_h = 18; if ($end_h <= $begin_h) $end_h = $begin_h + 1; @@ -124,13 +126,13 @@ if (empty($action) && ! isset($_GET['action']) && ! isset($_POST['action'])) $ac if (GETPOST('viewcal') && $action != 'show_day' && $action != 'show_week' && $action != 'show_peruser') { $action='show_month'; $day=''; } // View by month -if (GETPOST('viewweek') || $action == 'show_week') { +if (GETPOST('viewweek','alpha') || $action == 'show_week') { $action='show_week'; $week=($week?$week:date("W")); $day=($day?$day:date("d")); } // View by week -if (GETPOST('viewday') || $action == 'show_day') { +if (GETPOST('viewday','alpha') || $action == 'show_day') { $action='show_day'; $day=($day?$day:date("d")); } // View by day -if (GETPOST('viewyear') || $action == 'show_year') { +if (GETPOST('viewyear','alpha') || $action == 'show_year') { $action='show_year'; } // View by year @@ -161,12 +163,12 @@ if ($action =='delete_action') * View */ -$help_url='EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda'; -llxHeader('',$langs->trans("Agenda"),$help_url); - $form=new Form($db); $companystatic=new Societe($db); +$help_url='EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda'; +llxHeader('',$langs->trans("Agenda"),$help_url); + $now=dol_now(); $nowarray=dol_getdate($now); $nowyear=$nowarray['year']; @@ -354,7 +356,7 @@ $sql.= ' a.datep2,'; $sql.= ' a.percent,'; $sql.= ' a.fk_user_author,a.fk_user_action,'; $sql.= ' a.transparency, a.priority, a.fulldayevent, a.location,'; -$sql.= ' a.fk_soc, a.fk_contact, a.fk_element, a.elementtype,'; +$sql.= ' a.fk_soc, a.fk_contact, a.fk_element, a.elementtype, a.fk_project,'; $sql.= ' ca.code, ca.color'; $sql.= ' FROM '.MAIN_DB_PREFIX.'c_actioncomm as ca, '.MAIN_DB_PREFIX."actioncomm as a"; if (! $user->rights->societe->client->voir && ! $socid) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON a.fk_soc = sc.fk_soc"; @@ -456,11 +458,14 @@ if ($resql) continue; } + $datep=$db->jdate($obj->datep); + $datep2=$db->jdate($obj->datep2); + // Create a new object action $event=new ActionComm($db); $event->id=$obj->id; - $event->datep=$db->jdate($obj->datep); // datep and datef are GMT date - $event->datef=$db->jdate($obj->datep2); + $event->datep=$datep; // datep and datef are GMT date + $event->datef=$datep2; $event->type_code=$obj->code; $event->type_color=$obj->color; //$event->libelle=$obj->label; // deprecated @@ -469,12 +474,13 @@ if ($resql) //$event->author->id=$obj->fk_user_author; // user id of creator $event->authorid=$obj->fk_user_author; // user id of creator $event->userownerid=$obj->fk_user_action; // user id of owner - $event->fetch_userassigned(); // This load $event->userassigned $event->priority=$obj->priority; $event->fulldayevent=$obj->fulldayevent; $event->location=$obj->location; $event->transparency=$obj->transparency; + $event->fk_project=$obj->fk_project; + $event->socid=$obj->fk_soc; $event->contactid=$obj->fk_contact; //$event->societe->id=$obj->fk_soc; // deprecated @@ -487,15 +493,15 @@ if ($resql) // They are date start and end of action but modified to not be outside calendar view. if ($event->percentage <= 0) { - $event->date_start_in_calendar=$event->datep; - if ($event->datef != '' && $event->datef >= $event->datep) $event->date_end_in_calendar=$event->datef; - else $event->date_end_in_calendar=$event->datep; + $event->date_start_in_calendar=$datep; + if ($datep2 != '' && $datep2 >= $datep) $event->date_end_in_calendar=$datep2; + else $event->date_end_in_calendar=$datep; } else - { - $event->date_start_in_calendar=$event->datep; - if ($event->datef != '' && $event->datef >= $event->datep) $event->date_end_in_calendar=$event->datef; - else $event->date_end_in_calendar=$event->datep; + { + $event->date_start_in_calendar=$datep; + if ($datep2 != '' && $datep2 >= $datep) $event->date_end_in_calendar=$datep2; + else $event->date_end_in_calendar=$datep; } // Define ponctual property if ($event->date_start_in_calendar == $event->date_end_in_calendar) @@ -508,10 +514,14 @@ if ($resql) $event->date_start_in_calendar >= $lastdaytoshow) { // This record is out of visible range + unset($event); } else { - if ($event->date_start_in_calendar < $firstdaytoshow) $event->date_start_in_calendar=$firstdaytoshow; + //print $i.' - '.dol_print_date($this->date_start_in_calendar, 'dayhour').' - '.dol_print_date($this->date_end_in_calendar, 'dayhour').'
'."\n"; + $event->fetch_userassigned(); // This load $event->userassigned + + if ($event->date_start_in_calendar < $firstdaytoshow) $event->date_start_in_calendar=$firstdaytoshow; if ($event->date_end_in_calendar >= $lastdaytoshow) $event->date_end_in_calendar=($lastdaytoshow - 1); // Add an entry in actionarray for each day @@ -881,11 +891,37 @@ function show_day_events_pertype($username, $day, $month, $year, $monthshown, $s } $cases1[$h][$event->id]['string'].=' - '.$event->label; $cases1[$h][$event->id]['typecode']=$event->type_code; - if ($event->socid) - { - //$cases1[$h][$event->id]['string'].='xxx'; - } $cases1[$h][$event->id]['color']=$color; + if ($event->fk_project > 0) + { + if (empty($cache_project[$event->fk_project])) + { + $tmpproj=new Project($db); + $tmpproj->fetch($event->fk_project); + $cache_project[$event->fk_project]=$tmpproj; + } + $cases1[$h][$event->id]['string'].=', '.$langs->trans("Project").': '.$cache_project[$event->fk_project]->ref.' - '.$cache_project[$event->fk_project]->title; + } + if ($event->socid > 0) + { + if (empty($cache_thirdparty[$event->socid])) + { + $tmpthirdparty=new Societe($db); + $tmpthirdparty->fetch($event->socid); + $cache_thirdparty[$event->socid]=$tmpthirdparty; + } + $cases1[$h][$event->id]['string'].=', '.$cache_thirdparty[$event->socid]->name; + } + if ($event->contactid > 0) + { + if (empty($cache_contact[$event->contactid])) + { + $tmpcontact=new Contact($db); + $tmpcontact->fetch($event->contactid); + $cache_contact[$event->contactid]=$tmpcontact; + } + $cases1[$h][$event->id]['string'].=', '.$cache_contact[$event->contactid]->getFullName($langs); + } } if ($event->date_start_in_calendar < $c && $dateendtouse > $b) { @@ -901,11 +937,37 @@ function show_day_events_pertype($username, $day, $month, $year, $monthshown, $s } $cases2[$h][$event->id]['string'].=' - '.$event->label; $cases2[$h][$event->id]['typecode']=$event->type_code; - if ($event->socid) - { - //$cases2[$h][$event->id]['string'].='xxx'; - } $cases2[$h][$event->id]['color']=$color; + if ($event->fk_project > 0) + { + if (empty($cache_project[$event->fk_project])) + { + $tmpproj=new Project($db); + $tmpproj->fetch($event->fk_project); + $cache_project[$event->fk_project]=$tmpproj; + } + $cases2[$h][$event->id]['string'].=', '.$langs->trans("Project").': '.$cache_project[$event->fk_project]->ref.' - '.$cache_project[$event->fk_project]->title; + } + if ($event->socid > 0) + { + if (empty($cache_thirdparty[$event->socid])) + { + $tmpthirdparty=new Societe($db); + $tmpthirdparty->fetch($event->socid); + $cache_thirdparty[$event->socid]=$tmpthirdparty; + } + $cases2[$h][$event->id]['string'].=', '.$cache_thirdparty[$event->socid]->name; + } + if ($event->contactid > 0) + { + if (empty($cache_contact[$event->contactid])) + { + $tmpcontact=new Contact($db); + $tmpcontact->fetch($event->contactid); + $cache_contact[$event->contactid]=$tmpcontact; + } + $cases2[$h][$event->id]['string'].=', '.$cache_contact[$event->contactid]->getFullName($langs); + } } } else @@ -928,6 +990,7 @@ function show_day_events_pertype($username, $day, $month, $year, $monthshown, $s } } + // Now output $casesX for ($h = $begin_h; $h < $end_h; $h++) { $color1='';$color2=''; diff --git a/htdocs/comm/action/peruser.php b/htdocs/comm/action/peruser.php index 7453b84d477..792d4f9760d 100644 --- a/htdocs/comm/action/peruser.php +++ b/htdocs/comm/action/peruser.php @@ -30,15 +30,17 @@ require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php'; +require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/user/class/usergroup.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php'; -if (! empty($conf->projet->enabled)) require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; +require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; if (! isset($conf->global->AGENDA_MAX_EVENTS_DAY_VIEW)) $conf->global->AGENDA_MAX_EVENTS_DAY_VIEW=3; -$filter = GETPOST("filter",'',3); +$filter = GETPOST("filter",'alpha',3); $filtert = GETPOST("filtert","int",3); $usergroup = GETPOST("usergroup","int",3); //if (! ($usergroup > 0) && ! ($filtert > 0)) $filtert = $user->id; @@ -55,7 +57,7 @@ $sortfield = GETPOST("sortfield",'alpha'); $sortorder = GETPOST("sortorder",'alpha'); $page = GETPOST("page","int"); if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 -$limit = GETPOST('limit')?GETPOST('limit','int'):$conf->liste_limit; +$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit; $offset = $limit * $page; if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="a.datec"; @@ -82,9 +84,9 @@ $month=GETPOST("month","int")?GETPOST("month","int"):date("m"); $week=GETPOST("week","int")?GETPOST("week","int"):date("W"); $day=GETPOST("day","int")?GETPOST("day","int"):date("d"); $pid=GETPOST("projectid","int",3); -$status=GETPOST("status"); -$type=GETPOST("type"); -$maxprint=(isset($_GET["maxprint"])?GETPOST("maxprint"):$conf->global->AGENDA_MAX_EVENTS_DAY_VIEW); +$status=GETPOST("status",'alpha'); +$type=GETPOST("type",'alpha'); +$maxprint=((GETPOST("maxprint",'int')!='')?GETPOST("maxprint",'int'):$conf->global->AGENDA_MAX_EVENTS_DAY_VIEW); // Set actioncode (this code must be same for setting actioncode into peruser, listacton and index) if (GETPOST('actioncode','array')) { @@ -93,29 +95,30 @@ if (GETPOST('actioncode','array')) } else { - $actioncode=GETPOST("actioncode","alpha",3)?GETPOST("actioncode","alpha",3):(GETPOST("actioncode")=='0'?'0':(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE)); + $actioncode=GETPOST("actioncode","alpha",3)?GETPOST("actioncode","alpha",3):(GETPOST("actioncode","alpha")=='0'?'0':(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE)); } if ($actioncode == '' && empty($actioncodearray)) $actioncode=(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE); -$dateselect=dol_mktime(0, 0, 0, GETPOST('dateselectmonth'), GETPOST('dateselectday'), GETPOST('dateselectyear')); + +$dateselect=dol_mktime(0, 0, 0, GETPOST('dateselectmonth','int'), GETPOST('dateselectday','int'), GETPOST('dateselectyear','int')); if ($dateselect > 0) { - $day=GETPOST('dateselectday'); - $month=GETPOST('dateselectmonth'); - $year=GETPOST('dateselectyear'); + $day=GETPOST('dateselectday','int'); + $month=GETPOST('dateselectmonth','int'); + $year=GETPOST('dateselectyear','int'); } $tmp=empty($conf->global->MAIN_DEFAULT_WORKING_HOURS)?'9-18':$conf->global->MAIN_DEFAULT_WORKING_HOURS; $tmparray=explode('-',$tmp); -$begin_h = GETPOST('begin_h')!=''?GETPOST('begin_h','int'):($tmparray[0] != '' ? $tmparray[0] : 9); -$end_h = GETPOST('end_h')?GETPOST('end_h'):($tmparray[1] != '' ? $tmparray[1] : 18); +$begin_h = GETPOST('begin_h','int')!=''?GETPOST('begin_h','int'):($tmparray[0] != '' ? $tmparray[0] : 9); +$end_h = GETPOST('end_h','int')?GETPOST('end_h','int'):($tmparray[1] != '' ? $tmparray[1] : 18); if ($begin_h < 0 || $begin_h > 23) $begin_h = 9; if ($end_h < 1 || $end_h > 24) $end_h = 18; if ($end_h <= $begin_h) $end_h = $begin_h + 1; $tmp=empty($conf->global->MAIN_DEFAULT_WORKING_DAYS)?'1-5':$conf->global->MAIN_DEFAULT_WORKING_DAYS; $tmparray=explode('-',$tmp); -$begin_d = GETPOST('begin_d')?GETPOST('begin_d','int'):($tmparray[0] != '' ? $tmparray[0] : 1); -$end_d = GETPOST('end_d')?GETPOST('end_d'):($tmparray[1] != '' ? $tmparray[1] : 5); +$begin_d = GETPOST('begin_d','int')?GETPOST('begin_d','int'):($tmparray[0] != '' ? $tmparray[0] : 1); +$end_d = GETPOST('end_d','int')?GETPOST('end_d','int'):($tmparray[1] != '' ? $tmparray[1] : 5); if ($begin_d < 1 || $begin_d > 7) $begin_d = 1; if ($end_d < 1 || $end_d > 7) $end_d = 7; if ($end_d < $begin_d) $end_d = $begin_d + 1; @@ -123,13 +126,13 @@ if ($end_d < $begin_d) $end_d = $begin_d + 1; if ($status == '' && ! isset($_GET['status']) && ! isset($_POST['status'])) $status=(empty($conf->global->AGENDA_DEFAULT_FILTER_STATUS)?'':$conf->global->AGENDA_DEFAULT_FILTER_STATUS); if (empty($action) && ! isset($_GET['action']) && ! isset($_POST['action'])) $action=(empty($conf->global->AGENDA_DEFAULT_VIEW)?'show_month':$conf->global->AGENDA_DEFAULT_VIEW); -if (GETPOST('viewcal') && $action != 'show_day' && $action != 'show_week' && $action != 'show_peruser') { +if (GETPOST('viewcal','alpha') && $action != 'show_day' && $action != 'show_week' && $action != 'show_peruser') { $action='show_month'; $day=''; } // View by month -if (GETPOST('viewweek') || $action == 'show_week') { +if (GETPOST('viewweek','alpha') || $action == 'show_week') { $action='show_week'; $week=($week?$week:date("W")); $day=($day?$day:date("d")); } // View by week -if (GETPOST('viewday') || $action == 'show_day') { +if (GETPOST('viewday','alpha') || $action == 'show_day') { $action='show_day'; $day=($day?$day:date("d")); } // View by day @@ -160,12 +163,12 @@ if ($action =='delete_action') * View */ -$help_url='EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda'; -llxHeader('',$langs->trans("Agenda"),$help_url); - $form=new Form($db); $companystatic=new Societe($db); +$help_url='EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda'; +llxHeader('',$langs->trans("Agenda"),$help_url); + $now=dol_now(); $nowarray=dol_getdate($now); $nowyear=$nowarray['year']; @@ -361,7 +364,7 @@ $sql.= ' a.datep2,'; $sql.= ' a.percent,'; $sql.= ' a.fk_user_author,a.fk_user_action,'; $sql.= ' a.transparency, a.priority, a.fulldayevent, a.location,'; -$sql.= ' a.fk_soc, a.fk_contact, a.fk_element, a.elementtype,'; +$sql.= ' a.fk_soc, a.fk_contact, a.fk_element, a.elementtype, a.fk_project,'; $sql.= ' ca.code, ca.color'; $sql.= ' FROM '.MAIN_DB_PREFIX.'c_actioncomm as ca, '.MAIN_DB_PREFIX."actioncomm as a"; if (! $user->rights->societe->client->voir && ! $socid) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as sc ON a.fk_soc = sc.fk_soc"; @@ -418,14 +421,14 @@ else { // To limit array $sql.= " AND ("; - $sql.= " (a.datep BETWEEN '".$db->idate(dol_mktime(0,0,0,$month,1,$year)-(60*60*24*7))."'"; // Start 7 days before - $sql.= " AND '".$db->idate(dol_mktime(23,59,59,$month,28,$year)+(60*60*24*10))."')"; // End 7 days after + 3 to go from 28 to 31 + $sql.= " (a.datep BETWEEN '".$db->idate($firstdaytoshow-(60*60*24*2))."'"; // Start 2 day before $firstdaytoshow + $sql.= " AND '".$db->idate($lastdaytoshow+(60*60*24*2))."')"; // End 2 day after $lastdaytoshow $sql.= " OR "; - $sql.= " (a.datep2 BETWEEN '".$db->idate(dol_mktime(0,0,0,$month,1,$year)-(60*60*24*7))."'"; - $sql.= " AND '".$db->idate(dol_mktime(23,59,59,$month,28,$year)+(60*60*24*10))."')"; + $sql.= " (a.datep2 BETWEEN '".$db->idate($firstdaytoshow-(60*60*24*2))."'"; + $sql.= " AND '".$db->idate($lastdaytoshow+(60*60*24*2))."')"; $sql.= " OR "; - $sql.= " (a.datep < '".$db->idate(dol_mktime(0,0,0,$month,1,$year)-(60*60*24*7))."'"; - $sql.= " AND a.datep2 > '".$db->idate(dol_mktime(23,59,59,$month,28,$year)+(60*60*24*10))."')"; + $sql.= " (a.datep < '".$db->idate($firstdaytoshow-(60*60*24*2))."'"; + $sql.= " AND a.datep2 > '".$db->idate($lastdaytoshow+(60*60*24*2))."')"; $sql.= ')'; } if ($type) $sql.= " AND ca.id = ".$type; @@ -444,13 +447,14 @@ if ($filtert > 0 || $usergroup > 0) } // Sort on date $sql.= ' ORDER BY fk_user_action, datep'; //fk_user_action -//print $sql; +//print $sql;exit; dol_syslog("comm/action/peruser.php", LOG_DEBUG); $resql=$db->query($sql); if ($resql) { $num = $db->num_rows($resql); + $i=0; while ($i < $num) { @@ -463,11 +467,14 @@ if ($resql) continue; } + $datep=$db->jdate($obj->datep); + $datep2=$db->jdate($obj->datep2); + // Create a new object action $event=new ActionComm($db); $event->id=$obj->id; - $event->datep=$db->jdate($obj->datep); // datep and datef are GMT date - $event->datef=$db->jdate($obj->datep2); + $event->datep=$datep; // datep and datef are GMT date + $event->datef=$datep2; $event->type_code=$obj->code; $event->type_color=$obj->color; //$event->libelle=$obj->label; // deprecated @@ -476,12 +483,13 @@ if ($resql) //$event->author->id=$obj->fk_user_author; // user id of creator $event->authorid=$obj->fk_user_author; // user id of creator $event->userownerid=$obj->fk_user_action; // user id of owner - $event->fetch_userassigned(); // This load $event->userassigned $event->priority=$obj->priority; $event->fulldayevent=$obj->fulldayevent; $event->location=$obj->location; $event->transparency=$obj->transparency; + $event->fk_project=$obj->fk_project; + $event->socid=$obj->fk_soc; $event->contactid=$obj->fk_contact; //$event->societe->id=$obj->fk_soc; // deprecated @@ -494,15 +502,15 @@ if ($resql) // They are date start and end of action but modified to not be outside calendar view. if ($event->percentage <= 0) { - $event->date_start_in_calendar=$event->datep; - if ($event->datef != '' && $event->datef >= $event->datep) $event->date_end_in_calendar=$event->datef; - else $event->date_end_in_calendar=$event->datep; + $event->date_start_in_calendar=$datep; + if ($datep2 != '' && $datep2 >= $datep) $event->date_end_in_calendar=$datep2; + else $event->date_end_in_calendar=$datep; } else { - $event->date_start_in_calendar=$event->datep; - if ($event->datef != '' && $event->datef >= $event->datep) $event->date_end_in_calendar=$event->datef; - else $event->date_end_in_calendar=$event->datep; + $event->date_start_in_calendar=$datep; + if ($datep2 != '' && $datep2 >= $datep) $event->date_end_in_calendar=$datep2; + else $event->date_end_in_calendar=$datep; } // Define ponctual property if ($event->date_start_in_calendar == $event->date_end_in_calendar) @@ -515,10 +523,14 @@ if ($resql) $event->date_start_in_calendar >= $lastdaytoshow) { // This record is out of visible range + unset($event); } else { - if ($event->date_start_in_calendar < $firstdaytoshow) $event->date_start_in_calendar=$firstdaytoshow; + //print $i.' - '.dol_print_date($this->date_start_in_calendar, 'dayhour').' - '.dol_print_date($this->date_end_in_calendar, 'dayhour').'
'."\n"; + $event->fetch_userassigned(); // This load $event->userassigned + + if ($event->date_start_in_calendar < $firstdaytoshow) $event->date_start_in_calendar=$firstdaytoshow; if ($event->date_end_in_calendar >= $lastdaytoshow) $event->date_end_in_calendar=($lastdaytoshow - 1); // Add an entry in actionarray for each day @@ -548,6 +560,7 @@ if ($resql) $i++; } + $db->free($resql); } else { @@ -865,11 +878,12 @@ function show_day_events2($username, $day, $month, $year, $monthshown, $style, & global $theme_datacolor; // Array with a list of different we can use (come from theme) global $cachethirdparties, $cachecontacts, $colorindexused; global $begin_h, $end_h; + global $cache_project, $cache_thirdparty, $cache_contact; $cases1 = array(); // Color first half hour $cases2 = array(); // Color second half hour - $curtime = dol_mktime(0, 0, 0, $month, $day, $year); + $curtime = dol_mktime(0, 0, 0, $month, $day, $year, false, 0); $i=0; $nummytasks=0; $numother=0; $numbirthday=0; $numical=0; $numicals=array(); $ymd=sprintf("%04d",$year).sprintf("%02d",$month).sprintf("%02d",$day); @@ -980,13 +994,39 @@ function show_day_events2($username, $day, $month, $year, $monthshown, $style, & if ($tmpa['mday'] == $tmpb['mday'] && $tmpa['mon'] == $tmpb['mon'] && $tmpa['year'] == $tmpb['year']) $cases1[$h][$event->id]['string'].='-'.dol_print_date($event->date_end_in_calendar,'hour'); else $cases1[$h][$event->id]['string'].='-'.dol_print_date($event->date_end_in_calendar,'dayhour'); } - $cases1[$h][$event->id]['string'].=' - '.$event->label; + if ($event->label) $cases1[$h][$event->id]['string'].=' - '.$event->label; $cases1[$h][$event->id]['typecode']=$event->type_code; - if ($event->socid) - { - //$cases1[$h][$event->id]['string'].='xxx'; - } $cases1[$h][$event->id]['color']=$color; + if ($event->fk_project > 0) + { + if (empty($cache_project[$event->fk_project])) + { + $tmpproj=new Project($db); + $tmpproj->fetch($event->fk_project); + $cache_project[$event->fk_project]=$tmpproj; + } + $cases1[$h][$event->id]['string'].=', '.$langs->trans("Project").': '.$cache_project[$event->fk_project]->ref.' - '.$cache_project[$event->fk_project]->title; + } + if ($event->socid > 0) + { + if (empty($cache_thirdparty[$event->socid])) + { + $tmpthirdparty=new Societe($db); + $tmpthirdparty->fetch($event->socid); + $cache_thirdparty[$event->socid]=$tmpthirdparty; + } + $cases1[$h][$event->id]['string'].=', '.$cache_thirdparty[$event->socid]->name; + } + if ($event->contactid > 0) + { + if (empty($cache_contact[$event->contactid])) + { + $tmpcontact=new Contact($db); + $tmpcontact->fetch($event->contactid); + $cache_contact[$event->contactid]=$tmpcontact; + } + $cases1[$h][$event->id]['string'].=', '.$cache_contact[$event->contactid]->getFullName($langs); + } } if ($event->date_start_in_calendar < $c && $dateendtouse > $b) { @@ -1000,13 +1040,39 @@ function show_day_events2($username, $day, $month, $year, $monthshown, $style, & if ($tmpa['mday'] == $tmpb['mday'] && $tmpa['mon'] == $tmpb['mon'] && $tmpa['year'] == $tmpb['year']) $cases2[$h][$event->id]['string'].='-'.dol_print_date($event->date_end_in_calendar,'hour'); else $cases2[$h][$event->id]['string'].='-'.dol_print_date($event->date_end_in_calendar,'dayhour'); } - $cases2[$h][$event->id]['string'].=' - '.$event->label; + if ($event->label) $cases2[$h][$event->id]['string'].=' - '.$event->label; $cases2[$h][$event->id]['typecode']=$event->type_code; - if ($event->socid) - { - //$cases2[$h][$event->id]['string'].='xxx'; - } $cases2[$h][$event->id]['color']=$color; + if ($event->fk_project > 0) + { + if (empty($cache_project[$event->fk_project])) + { + $tmpproj=new Project($db); + $tmpproj->fetch($event->fk_project); + $cache_project[$event->fk_project]=$tmpproj; + } + $cases2[$h][$event->id]['string'].=', '.$langs->trans("Project").': '.$cache_project[$event->fk_project]->ref.' - '.$cache_project[$event->fk_project]->title; + } + if ($event->socid > 0) + { + if (empty($cache_thirdparty[$event->socid])) + { + $tmpthirdparty=new Societe($db); + $tmpthirdparty->fetch($event->socid); + $cache_thirdparty[$event->socid]=$tmpthirdparty; + } + $cases2[$h][$event->id]['string'].=', '.$cache_thirdparty[$event->socid]->name; + } + if ($event->contactid > 0) + { + if (empty($cache_contact[$event->contactid])) + { + $tmpcontact=new Contact($db); + $tmpcontact->fetch($event->contactid); + $cache_contact[$event->contactid]=$tmpcontact; + } + $cases2[$h][$event->id]['string'].=', '.$cache_contact[$event->contactid]->getFullName($langs); + } } } else @@ -1029,6 +1095,7 @@ function show_day_events2($username, $day, $month, $year, $monthshown, $style, & } } + // Now output $casesX for ($h = $begin_h; $h < $end_h; $h++) { $color1='';$color2=''; diff --git a/htdocs/comm/card.php b/htdocs/comm/card.php index dfdc9183886..cf7b5bf3dc0 100644 --- a/htdocs/comm/card.php +++ b/htdocs/comm/card.php @@ -603,11 +603,17 @@ if ($id > 0) if ($link) $boxstat.=''; } + $parameters = array(); + $reshook = $hookmanager->executeHooks('addMoreBoxStatsCustomer', $parameters, $object, $action); + if(empty($reshook)){ + $boxstat.= $hookmanager->resPrint; + } + $boxstat.=''; $boxstat.=''; $boxstat.='
'; - print $boxstat; + print $boxstat; $now=dol_now(); diff --git a/htdocs/comm/contact.php b/htdocs/comm/contact.php index a13ffe61c76..5c160bfab16 100644 --- a/htdocs/comm/contact.php +++ b/htdocs/comm/contact.php @@ -126,14 +126,14 @@ if ($resql) print_barre_liste($title.($label?" (".$label.")":""),$page, $_SERVER["PHP_SELF"], $param,$sortfield,$sortorder,"",$num); print '
'; - + print ''; print ''; - print_liste_field_titre($langs->trans("Lastname"),$_SERVER["PHP_SELF"],"p.name", $begin, $param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Firstname"),$_SERVER["PHP_SELF"],"p.firstname", $begin, $param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom", $begin, $param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Email")); - print_liste_field_titre($langs->trans("Phone")); + print_liste_field_titre("Lastname",$_SERVER["PHP_SELF"],"p.name", $begin, $param,"",$sortfield,$sortorder); + print_liste_field_titre("Firstname",$_SERVER["PHP_SELF"],"p.firstname", $begin, $param,"",$sortfield,$sortorder); + print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom", $begin, $param,"",$sortfield,$sortorder); + print_liste_field_titre("Email"); + print_liste_field_titre("Phone"); print "\n"; print ''; @@ -150,7 +150,7 @@ if ($resql) { $obj = $db->fetch_object($resql); - + print ''; print '
'.img_object($langs->trans("ShowContact"),"contact"); @@ -168,9 +168,9 @@ if ($resql) $i++; } print "
"; - + print '
'; - + $db->free($resql); } else diff --git a/htdocs/comm/mailing/cibles.php b/htdocs/comm/mailing/cibles.php index 6c580cc93d6..a2743246560 100644 --- a/htdocs/comm/mailing/cibles.php +++ b/htdocs/comm/mailing/cibles.php @@ -184,12 +184,12 @@ if ($object->fetch($id) >= 0) $morehtmlright=''; if ($object->statut == 2) $morehtmlright.=' ('.$object->countNbOfTargets('alreadysent').'/'.$object->nbemail.') '; - + dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', '', '', 0, '', $morehtmlright); print '
'; print '
'; - + print ''; print ''; @@ -221,7 +221,7 @@ if ($object->fetch($id) >= 0) print ""; dol_fiche_end(); - + $allowaddtarget=($object->statut == 0); @@ -232,7 +232,7 @@ if ($object->fetch($id) >= 0) //print '
'.$langs->trans("MailTitle").''.$object->titre.'
'; print '
'; - + //print '
'; print '
'; //print '
'; @@ -245,11 +245,11 @@ if ($object->fetch($id) >= 0) print '
 
'; //print "\n"; print ''; - + clearstatcache(); $var = true; - + foreach ($modulesdir as $dir) { $modulenames=array(); @@ -324,7 +324,7 @@ if ($object->fetch($id) >= 0) print $obj->getDesc(); //print ''; print ''; - + try { $nbofrecipient=$obj->getNbOfRecipients(''); } @@ -345,7 +345,7 @@ if ($object->fetch($id) >= 0) } //print ''; print ''; - + //print ''; print ''; - + //print ''; print ''; - + if ($allowaddtarget) print ''; else print ''; - + //print "\n"; // print ''."\n"; } @@ -389,7 +389,7 @@ if ($object->fetch($id) >= 0) //print '
'.$langs->trans("RecipientSelectionModules").'
'; print '
'; if ($allowaddtarget) @@ -362,7 +362,7 @@ if ($object->fetch($id) >= 0) } //print '
'; print '
'; if ($allowaddtarget) @@ -377,10 +377,10 @@ if ($object->fetch($id) >= 0) } //print '
'; print '
'; - + print '

'; } @@ -412,11 +412,11 @@ if ($object->fetch($id) >= 0) } //$nbtotalofrecords=$object->nbemail; // nbemail is a denormalized field storing nb of targets $sql .= $db->plimit($limit+1, $offset); - + $resql=$db->query($sql); if ($resql) { - + $num = $db->num_rows($resql); $param = "&id=".$object->id; @@ -436,7 +436,7 @@ if ($object->fetch($id) >= 0) $cleartext=$langs->trans("ToClearAllRecipientsClickHere").' '.'id.'" class="button reposition">'.$langs->trans("TargetsReset").''; } print_barre_liste($langs->trans("MailSelectedRecipients"),$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,$cleartext,$num,$nbtotalofrecords,'title_generic',0,'','',$limit); - + print ''; print "\n\n"; @@ -447,12 +447,12 @@ if ($object->fetch($id) >= 0) print ''; print ''; print ''; - + if ($page) $param.= "&page=".$page; - + print ''; - + // Ligne des champs de filtres print ''; // EMail @@ -475,7 +475,7 @@ if ($object->fetch($id) >= 0) print ''; - + // Date sending print ''; print ''; - + print ''; - print_liste_field_titre($langs->trans("EMail"),$_SERVER["PHP_SELF"],"mc.email",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Lastname"),$_SERVER["PHP_SELF"],"mc.lastname",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Firstname"),$_SERVER["PHP_SELF"],"mc.firstname",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("OtherInformations"),$_SERVER["PHP_SELF"],"",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Source"),$_SERVER["PHP_SELF"],"",$param,"",'align="center"',$sortfield,$sortorder); + print_liste_field_titre("EMail",$_SERVER["PHP_SELF"],"mc.email",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("Lastname",$_SERVER["PHP_SELF"],"mc.lastname",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("Firstname",$_SERVER["PHP_SELF"],"mc.firstname",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("OtherInformations",$_SERVER["PHP_SELF"],"",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("Source",$_SERVER["PHP_SELF"],"",$param,"",'align="center"',$sortfield,$sortorder); // Date sending if ($object->statut < 2) { @@ -504,9 +504,9 @@ if ($object->fetch($id) >= 0) } else { - print_liste_field_titre($langs->trans("DateSending"),$_SERVER["PHP_SELF"],"mc.date_envoi",$param,'','align="center"',$sortfield,$sortorder); + print_liste_field_titre("DateSending",$_SERVER["PHP_SELF"],"mc.date_envoi",$param,'','align="center"',$sortfield,$sortorder); } - print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"mc.statut",$param,'','align="right"',$sortfield,$sortorder); + print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"mc.statut",$param,'','align="right"',$sortfield,$sortorder); print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch '); print ''; @@ -590,7 +590,7 @@ if ($object->fetch($id) >= 0) } else { - if ($object->statut < 2) + if ($object->statut < 2) { print ' - - barcode->enabled)) { ?> - - - global->INVENTORY_USE_MIN_PA_IF_NO_LAST_PA)){ - echo ''; - } - ?> - - - rights->stock->changePMP)) { - echo ''; - } - ?> - - global->INVENTORY_USE_MIN_PA_IF_NO_LAST_PA)){ - echo ''; - } - ?> - - - - - - - - - - - barcode->enabled)) { ?> - - - - - global->INVENTORY_USE_MIN_PA_IF_NO_LAST_PA)){ - echo ''; - } - else { - echo ''; - } - - ?> - - - - - - global->INVENTORY_USE_MIN_PA_IF_NO_LAST_PA)) $colspan++; - if(!empty($conf->global->INVENTORY_USE_MIN_PA_IF_NO_LAST_PA)) $colspan++; - - echo ''; - - ?> - - - - - - - - - - - - - - global->INVENTORY_USE_MIN_PA_IF_NO_LAST_PA)){ - echo ''; - } - - ?> - - - rights->stock->changePMP)) { - echo ''; - } - ?> - - global->INVENTORY_USE_MIN_PA_IF_NO_LAST_PA)){ - echo ''; - } - - ?> - - - - - - +/* Copyright (C) 2007-2017 Laurent Destailleur + * Copyright (C) 2014-2016 Juanjo Menent + * Copyright (C) 2015 Florian Henry + * Copyright (C) 2015 Raphaël Doursenaud + * Copyright (C) ---Put here your own copyright and developer email--- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,698 +20,271 @@ */ /** - * \file htdocs/inventory/class/product.class.php - * \ingroup product - * \brief File of class to manage predefined products stock + * \file product/inventory/class/inventory.class.php + * \ingroup inventory + * \brief This file is a CRUD class file for Inventory (Create/Read/Update/Delete) */ - -require_once DOL_DOCUMENT_ROOT.'/core/class/coreobject.class.php'; -require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; + +// 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 to manage inventories + * Class for Inventory */ -class Inventory extends CoreObject +class Inventory extends CommonObject { - public $element='inventory'; - public $table_element='inventory'; - public $fk_element='fk_inventory'; - protected $childtables=array('inventorydet'); // To test if we can delete object - protected $isnolinkedbythird = 1; // No field fk_soc - protected $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe - /** - * Warehouse Id - * @var int + * @var string ID to identify managed object */ - public $fk_warehouse; + public $element = 'inventory'; /** - * Entity Id - * @var int + * @var string Name of table without prefix where object is stored */ + public $table_element = 'inventory'; + + /** + * @var array Does this field is linked to a thirdparty ? + */ + protected $isnolinkedbythird = 1; + /** + * @var array Does inventory support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe + */ + protected $ismultientitymanaged = 1; + /** + * @var string String with name of icon for inventory + */ + public $picto = 'inventory'; + + + /** + * 'type' if the field format, 'label' the translation key, 'enabled' is a condition when the filed must be managed, + * 'visible' says if field is visible in list (-1 means not shown by default but can be aded into list to be viewed) + * 'notnull' if not null in database + * 'index' if we want an index in database + * 'position' is the sort order of field + * 'searchall' is 1 if we want to search in this field when making a search from the quick search button + * 'isameasure' must be set to 1 if you want to have a total on list for this field. Field type must be summable like integer or double(24,8). + * 'comment' is not used. You can store here any text of your choice. + */ + + // BEGIN MODULEBUILDER PROPERTIES + /** + * @var array Array with all fields and their property + */ + public $fields=array( + 'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'visible'=>-1, 'enabled'=>1, 'position'=>1, 'notnull'=>1, 'index'=>1, 'comment'=>'Id',), + 'ref' => array('type'=>'varchar(64)', 'label'=>'Ref', 'visible'=>1, 'enabled'=>1, 'position'=>10, 'notnull'=>1, 'index'=>1, 'searchall'=>1, 'comment'=>'Reference of object',), + 'entity' => array('type'=>'integer', 'label'=>'Entity', 'visible'=>0, 'enabled'=>1, 'position'=>20, 'notnull'=>1, 'index'=>1,), + 'fk_warehouse' => array('type'=>'integer', 'label'=>'', 'visible'=>1, 'enabled'=>1, 'index'=>1,), + 'date_inventory' => array('type'=>'date', 'label'=>'', 'visible'=>1, 'enabled'=>1,), + 'title' => array('type'=>'varchar(255)', 'label'=>'', 'visible'=>1, 'enabled'=>1,), + 'status' => array('type'=>'integer', 'label'=>'Status', 'visible'=>1, 'enabled'=>1, 'position'=>1000, 'index'=>1,), + 'date_creation' => array('type'=>'datetime', 'label'=>'DateCreation', 'visible'=>-1, 'enabled'=>1, 'position'=>500,), + 'date_validation' => array('type'=>'datetime', 'label'=>'DateValidation', 'visible'=>-1, 'enabled'=>1, 'position'=>500,), + 'tms' => array('type'=>'timestamp', 'label'=>'DateModification', 'visible'=>-1, 'enabled'=>1, 'position'=>500, 'notnull'=>1,), + 'fk_user_creat' => array('type'=>'integer', 'label'=>'UserAuthor', 'visible'=>-1, 'enabled'=>1, 'position'=>500,), + 'fk_user_modif' => array('type'=>'integer', 'label'=>'UserModif', 'visible'=>-1, 'enabled'=>1, 'position'=>500,), + 'fk_user_valid' => array('type'=>'integer', 'label'=>'UserValid', 'visible'=>-1, 'enabled'=>1, 'position'=>500,), + 'import_key' => array('type'=>'varchar(14)', 'label'=>'ImportId', 'visible'=>-1, 'enabled'=>1, 'position'=>1000, 'index'=>1,), + ); + + public $rowid; + public $ref; public $entity; - - /** - * Status - * @var int - */ - public $status; - /** - * Inventory Date - * @var date - */ + public $fk_warehouse; public $date_inventory; - /** - * Inventory Title - * @var string - */ public $title; + public $status; + public $date_creation; + public $date_validation; + public $tms; + public $fk_user_creat; + public $fk_user_modif; + public $fk_user_valid; + public $import_key; + // END MODULEBUILDER PROPERTIES - /** - * Attribute object linked with database - * @var array - */ - protected $fields=array( - 'fk_warehouse'=>array('type'=>'integer','index'=>true) - ,'ref'=>array('type'=>'string','index'=>true) - ,'entity'=>array('type'=>'integer','index'=>true) - ,'status'=>array('type'=>'integer','index'=>true) - ,'date_inventory'=>array('type'=>'date') - ,'title'=>array('type'=>'string') - ); - /** - * Constructor - * - * @param DoliDB $db Database handler - */ - public function __construct(DoliDB &$db) + + // If this object has a subtable with lines + + /** + * @var int Name of subtable line + */ + //public $table_element_line = 'inventorydet'; + /** + * @var int Field with ID of parent key if this field has a parent + */ + //public $fk_element = 'fk_inventory'; + /** + * @var int Name of subtable class that manage subtable lines + */ + //public $class_element_line = 'Inventoryline'; + /** + * @var array Array of child tables (child tables to delete before deleting a record) + */ + //protected $childtables=array('inventorydet'); + /** + * @var InventoryLine[] Array of subtable lines + */ + //public $lines = array(); + + + + /** + * Constructor + * + * @param DoliDb $db Database handler + */ + public function __construct(DoliDB $db) { - global $conf; - - parent::__construct($db); - parent::init(); - - $this->status = 0; - $this->entity = $conf->entity; - $this->errors = array(); - $this->amount = 0; + $this->db = $db; } - /** - * Function to sort children object - */ - public function sortDet() + + /** + * Return a link to the object card (with optionaly the picto) + * + * @param int $withpicto Include picto in link (0=No picto, 1=Include picto into link, 2=Only picto) + * @param string $option On what the link point to + * @param int $notooltip 1=Disable tooltip + * @param string $morecss Add more css on link + * @return string String with URL + */ + function getNomUrl($withpicto=0, $option='', $notooltip=0, $morecss='') { - if(!empty($this->Inventorydet)) usort($this->Inventorydet, array('Inventory', 'customSort')); - } + global $db, $conf, $langs; + global $dolibarr_main_authentication, $dolibarr_main_demo; + global $menumanager; - /** - * Get object and children from database - * - * @param int $id Id of object to load - * @param bool $loadChild used to load children from database - * @return int >0 if OK, <0 if KO, 0 if not found - */ - public function fetch($id, $loadChild = true) - { - if(!$loadChild) $this->withChild = false; - - $res = parent::fetch($id, $loadChild); + if (! empty($conf->dol_no_mouse_hover)) $notooltip=1; // Force disable tooltips - if ($res > 0) - { - $this->sortDet(); - $this->amount = 0; - if(!empty($this->Inventorydet )) - { - foreach($this->Inventorydet as &$det) - { - $this->amount += $det->qty_view * $det->pmp; - } - } - } - - return $res; - } + $result = ''; + $companylink = ''; - /** - * Custom function call by usort - * - * @param Inventorydet $objA first Inventorydet object - * @param Inventorydet $objB second Inventorydet object - * @return int - */ - private function customSort(&$objA, &$objB) - { - $r = strcmp(strtoupper(trim($objA->product->ref)), strtoupper(trim($objB->product->ref))); - - if ($r < 0) $r = -1; - elseif ($r > 0) $r = 1; - else $r = 0; - - return $r; - } + $label = '' . $langs->trans("Inventory") . ''; + $label.= '
'; + $label.= '' . $langs->trans('Ref') . ': ' . $this->ref; - /** - * @param User $user user object - * @return int - */ - public function changePMP(User &$user) - { - $error = 0; - $this->db->begin(); + $url = $url = dol_buildpath('/inventory/m_card.php',1).'?id='.$this->id; - if(!empty($this->Inventorydet)) - { - foreach ($this->Inventorydet as $k => &$Inventorydet) - { - if($Inventorydet->new_pmp>0) - { - $Inventorydet->pmp = $Inventorydet->new_pmp; - $Inventorydet->new_pmp = 0; - - $res = $this->db->query('UPDATE '.MAIN_DB_PREFIX.'product as p SET pmp = '.$Inventorydet->pmp.' WHERE rowid = '.$Inventorydet->fk_product ); - if (!$res) - { - $error++; - $this->error = $this->db->lasterror(); - $this->errors[] = $this->db->lasterror(); - } - } - } - } - - $res = parent::update($user); - if (!$res) + $linkclose=''; + if (empty($notooltip)) { - $error++; - $this->error = $this->db->lasterror(); - $this->errors[] = $this->db->lasterror(); - } - - - if (!$error) - { - $this->db->commit(); - return 1; - } - else - { - $this->db->rollback(); - return -1; - } - } - - /** - * Function to update object or create or delete if needed - * - * @param User $user user object - * @return < 0 if ko, > 0 if ok - */ - public function update(User &$user) - { - $error = 0; - $this->db->begin(); - - // if we valid the inventory we save the stock at the same time - if ($this->status) - { - $res = $this->regulate(); - if ($res < 0) + if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { - $error++; - $this->error = $this->db->lasterror(); - $this->errors[] = $this->db->lasterror(); + $label=$langs->trans("ShowInventory"); + $linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"'; } + $linkclose.=' title="'.dol_escape_htmltag($label, 1).'"'; + $linkclose.=' class="classfortooltip'.($morecss?' '.$morecss:'').'"'; + } + else $linkclose = ($morecss?' class="'.$morecss.'"':''); + + $linkstart = ''; + $linkend=''; + + if ($withpicto) + { + $result.=($linkstart.img_object(($notooltip?'':$label), 'label', ($notooltip?'':'class="classfortooltip"')).$linkend); + if ($withpicto != 2) $result.=' '; } - - $res = parent::update($user); - if (!$res) - { - $error++; - $this->error = $this->db->lasterror(); - $this->errors[] = $this->db->lasterror(); - } - - if (!$error) - { - $this->db->commit(); - return $this->id; - } - else - { - $this->db->rollback(); - return -1; - } + $result.= $linkstart . $this->ref . $linkend; + return $result; } - /** - * Function to update current object - * - * @param array $Tab Array of values - * @return int - */ - public function setValues(&$Tab) + /** + * Retourne le libelle du status d'un user (actif, inactif) + * + * @param int $mode 0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long, 5=Libelle court + Picto + * @return string Label of status + */ + function getLibStatut($mode=0) + { + return $this->LibStatut($this->status,$mode); + } + + /** + * Return the status + * + * @param int $status Id status + * @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 5=Long label + Picto + * @return string Label of status + */ + static function LibStatut($status,$mode=0) { global $langs; - - if (isset($Tab['qty_to_add'])) + + if ($mode == 0) { - foreach ($Tab['qty_to_add'] as $k => $qty) - { - $qty = (float) price2num($qty); - - if ($qty < 0) - { - $this->errors[] = $langs->trans('inventoryErrorQtyAdd'); - return -1; - } - - $product = new Product($this->db); - $product->fetch($this->Inventorydet[$k]->fk_product); - - $this->Inventorydet[$k]->pmp = $product->pmp; - $this->Inventorydet[$k]->qty_view += $qty; - } + $prefix=''; + if ($status == 1) return $langs->trans('Enabled'); + if ($status == 0) return $langs->trans('Disabled'); + } + if ($mode == 1) + { + if ($status == 1) return $langs->trans('Enabled'); + if ($status == 0) return $langs->trans('Disabled'); + } + if ($mode == 2) + { + if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled'); + if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled'); + } + if ($mode == 3) + { + if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4'); + if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5'); + } + if ($mode == 4) + { + if ($status == 1) return img_picto($langs->trans('Enabled'),'statut4').' '.$langs->trans('Enabled'); + if ($status == 0) return img_picto($langs->trans('Disabled'),'statut5').' '.$langs->trans('Disabled'); + } + if ($mode == 5) + { + if ($status == 1) return $langs->trans('Enabled').' '.img_picto($langs->trans('Enabled'),'statut4'); + if ($status == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5'); + } + if ($mode == 6) + { + if ($status == 1) return $langs->trans('Enabled').' '.img_picto($langs->trans('Enabled'),'statut4'); + if ($status == 0) return $langs->trans('Disabled').' '.img_picto($langs->trans('Disabled'),'statut5'); } - - return parent::setValues($Tab); } - /** - * Function to delete all Inventorydet - * - * @param User $user user object - * @return < 0 if ko, > 0 if ok - */ - public function deleteAllLine(User &$user) - { - foreach($this->Inventorydet as &$det) - { - $det->to_delete = true; - } - - $res = $this->update($user); - if ($res > 0) $this->Inventorydet = array(); - else return -1; - } - - /** - * Function to add Inventorydet - * - * @param int $fk_product fk_product of Inventorydet - * @param int $fk_warehouse fk_warehouse target - * @return bool - */ - public function addProduct($fk_product, $fk_warehouse=0) - { - $k = $this->addChild('Inventorydet'); - $det = &$this->Inventorydet[$k]; - - $det->fk_inventory = $this->id; - $det->fk_product = $fk_product; - $det->fk_warehouse = empty($fk_warehouse) ? $this->fk_warehouse : $fk_warehouse; - - $det->load_product(); - - $date = $this->getDate('date_inventory', 'Y-m-d'); - if(empty($date)) $date = $this->getDate('datec', 'Y-m-d'); - $det->setStockDate($date, $fk_warehouse); - - return true; - } - - /** - * Duplication method product to add datem - * Adjust stock in a warehouse for product - * - * @param int $fk_product id of product - * @param int $fk_warehouse id of warehouse - * @param double $nbpiece nb of units - * @param int $movement 0 = add, 1 = remove - * @param string $label Label of stock movement - * @param double $price Unit price HT of product, used to calculate average weighted price (PMP in french). If 0, average weighted price is not changed. - * @param string $inventorycode Inventory code - * @return int <0 if KO, >0 if OK - */ - public function correctStock($fk_product, $fk_warehouse, $nbpiece, $movement, $label='', $price=0, $inventorycode='') + /** + * Initialise object with example values + * Id must be 0 if object instance is a specimen + * + * @return void + */ + public function initAsSpecimen() { - global $conf, $user; - - if ($fk_warehouse) - { - $this->db->begin(); - - require_once DOL_DOCUMENT_ROOT .'/product/stock/class/mouvementstock.class.php'; - - $op[0] = "+".trim($nbpiece); - $op[1] = "-".trim($nbpiece); - - $datem = empty($conf->global->INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT) ? dol_now() : $this->date_inventory; - - $movementstock=new MouvementStock($this->db); - $movementstock->origin = new stdClass(); - $movementstock->origin->element = 'inventory'; - $movementstock->origin->id = $this->id; - $result=$movementstock->_create($user,$fk_product,$fk_warehouse,$op[$movement],$movement,$price,$label,$inventorycode, $datem); - - if ($result >= 0) - { - $this->db->commit(); - return 1; - } - else - { - $this->error=$movementstock->error; - $this->errors=$movementstock->errors; - - $this->db->rollback(); - return -1; - } - } + $this->initAsSpecimenCommon(); } - /** - * Function to regulate stock - * - * @return int - */ - public function regulate() - { - global $langs,$conf; - - if($conf->global->INVENTORY_DISABLE_VIRTUAL) - { - $pdt_virtuel = false; - // Test if virtual product is enabled - if($conf->global->PRODUIT_SOUSPRODUITS) - { - $pdt_virtuel = true; - $conf->global->PRODUIT_SOUSPRODUITS = 0; - } - } - - foreach ($this->Inventorydet as $k => $Inventorydet) - { - $product = new Product($this->db); - $product->fetch($Inventorydet->fk_product); - - if ($Inventorydet->qty_view != $Inventorydet->qty_stock) - { - $Inventorydet->qty_regulated = $Inventorydet->qty_view - $Inventorydet->qty_stock; - $nbpiece = abs($Inventorydet->qty_regulated); - $movement = (int) ($Inventorydet->qty_view < $Inventorydet->qty_stock); // 0 = add ; 1 = remove - - //$href = dol_buildpath('/inventory/inventory.php?id='.$this->id.'&action=view', 1); - - $res = $this->correctStock($product->id, $Inventorydet->fk_warehouse, $nbpiece, $movement, $langs->trans('inventoryMvtStock')); - if ($res < 0) return -1; - } - } - - if($conf->global->INVENTORY_DISABLE_VIRTUAL) - { - // Test if virtual product was enabled before regulate - if($pdt_virtuel) $conf->global->PRODUIT_SOUSPRODUITS = 1; - } - - return 1; - } - - /** - * Get the title - * @return string - */ - public function getTitle() - { - global $langs; - - return !empty($this->title) ? $this->title : $langs->trans('inventoryTitle').' '.$this->id; - } - - - /** - * Return clicable link of object (with eventually picto) - * - * @param int $withpicto Add picto into link - * @return string - */ - public function getNomUrl($withpicto = 1) - { - return ''.($withpicto ? img_picto('','object_list.png','',0).' ' : '').$this->getTitle().''; - } - - /** - * Function to add products by default from warehouse and children - * - * @param int $fk_warehouse id of warehouse - * @param int $fk_category id of category - * @param int $fk_supplier id of supplier - * @param int $only_prods_in_stock only product with stock - * - * @return int - */ - public function addProductsFor($fk_warehouse,$fk_category=0,$fk_supplier=0,$only_prods_in_stock=0) - { - $warehouse = new Entrepot($this->db); - $warehouse->fetch($fk_warehouse); - $TChildWarehouses = array($fk_warehouse); - $warehouse->get_children_warehouses($fk_warehouse, $TChildWarehouses); - - $sql = 'SELECT ps.fk_product, ps.fk_entrepot'; - $sql.= ' FROM '.MAIN_DB_PREFIX.'product_stock ps'; - $sql.= ' INNER JOIN '.MAIN_DB_PREFIX.'product p ON (p.rowid = ps.fk_product)'; - $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product cp ON (cp.fk_product = p.rowid)'; - $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product_fournisseur_price pfp ON (pfp.fk_product = p.rowid)'; - $sql.= ' WHERE ps.fk_entrepot IN ('.implode(', ', $TChildWarehouses).')'; - - if ($fk_category>0) $sql.= ' AND cp.fk_categorie='.$fk_category; - if ($fk_supplier>0) $sql.= ' AND pfp.fk_soc = '.$fk_supplier; - if (!empty($only_prods_in_stock)) $sql.= ' AND ps.reel > 0'; - - $sql.=' GROUP BY ps.fk_product, ps.fk_entrepot ORDER BY p.ref ASC,p.label ASC'; - - $res = $this->db->query($sql); - if($res) - { - while($obj = $this->db->fetch_object($res)) - { - $this->addProduct($obj->fk_product, $obj->fk_entrepot); - } - - return 1; - } - else - { - $this->error = $this->db->lasterror(); - $this->errors[] = $this->db->lasterror(); - return -1; - } - } - - /** - * Return clicable link of inventory object - * - * @param int $id id of inventory - * @param int $withpicto Add picto into link - * @return string - */ - static function getLink($id, $withpicto=1) - { - global $langs,$db; - - $inventory = new Inventory($db); - if($inventory->fetch($id, false) > 0) return $inventory->getNomUrl($withpicto); - else return $langs->trans('InventoryUnableToFetchObject'); - } - - /** - * Function to get the sql select of inventory - * - * @param string $type 'All' to get all data - * @return string - */ - static function getSQL($type) - { - global $conf; - - $sql = ''; - if($type == 'All') - { - $sql = 'SELECT i.rowid,i.title, e.label, i.date_inventory, i.fk_warehouse, i.datec, i.tms, i.status'; - $sql.= ' FROM '.MAIN_DB_PREFIX.'inventory i'; - $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'entrepot e ON (e.rowid = i.fk_warehouse)'; - $sql.= ' WHERE i.entity IN ('.getEntity('inventory').')'; - } - - return $sql; - } } -class Inventorydet extends CoreObject +/** + * Class InventoryObjectLine + */ +class InventoryObjectLine { - public $element='inventorydet'; - public $table_element='inventorydet'; - protected $isnolinkedbythird = 1; // No field fk_soc - protected $ismultientitymanaged = 0; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe - - public $fk_inventory; - public $fk_warehouse; - public $fk_product; - public $entity; - public $qty_view; - public $qty_stock; - public $qty_regulated; - public $pmp; - public $pa; - public $new_pmp; - - protected $fields=array( - 'fk_inventory'=>array('type'=>'int') - ,'fk_warehouse'=>array('type'=>'int') - ,'fk_product'=>array('type'=>'int') - ,'entity'=>array('type'=>'int') - ,'qty_view'=>array('type'=>'float') - ,'qty_stock'=>array('type'=>'float') - ,'qty_regulated'=>array('type'=>'float') - ,'pmp'=>array('type'=>'float') - ,'pa'=>array('type'=>'float') - ,'new_pmp'=>array('type'=>'float') - ); - - /** - * Constructor - * - * @param DoliDB $db Database handler - */ - function __construct(DoliDB &$db) - { - global $conf; - - parent::__construct($db); - parent::init(); - - $this->entity = $conf->entity; - $this->errors = array(); - - $this->product = null; - $this->current_pa = 0; - } - - /** - * Get object and children from database - * - * @param int $id id of inventorydet object - * @param bool $loadChild load children - * @return int - */ - function fetch($id, $loadChild = true) - { - $res = parent::fetch($id); - $this->load_product(); - $this->fetch_current_pa(); - - return $res; - } - - /** - * Function to get the unit buy price - * - * @return bool - */ - function fetch_current_pa() - { - global $db,$conf; - - if(empty($conf->global->INVENTORY_USE_MIN_PA_IF_NO_LAST_PA)) return false; - - if($this->pa > 0) - { - $this->current_pa = $this->pa; - } - else - { - dol_include_once('/fourn/class/fournisseur.product.class.php'); - $p= new ProductFournisseur($db); - $p->find_min_price_product_fournisseur($this->fk_product); - - if($p->fourn_qty>0) $this->current_pa = $p->fourn_price / $p->fourn_qty; - } - - return true; - } - - /** - * Function to set pa attribute from date en fk_warehouse - * - * @param date $date date value - * @param int $fk_warehouse fk_warehouse target - */ - function setStockDate($date, $fk_warehouse) - { - list($pmp, $stock) = $this->getPmpStockFromDate($date, $fk_warehouse); - - $this->qty_stock = $stock; - $this->pmp = $pmp; - - $last_pa = 0; - $sql = 'SELECT price FROM '.MAIN_DB_PREFIX.'stock_mouvement'; - $sql.= ' WHERE fk_entrepot = '.$fk_warehouse; - $sql.= ' AND fk_product = '.$this->fk_product; - $sql.= ' AND (origintype=\'order_supplier\' || origintype=\'invoice_supplier\')'; - $sql.= ' AND price > 0'; - $sql.= ' AND datem <= \''.$date.' 23:59:59\''; - $sql.= ' ORDER BY datem DESC LIMIT 1'; - - $res = $this->db->query($sql); - if($res && $obj = $this->db->fetch_object($res)) - { - $last_pa = $obj->price; - } - - $this->pa = $last_pa; - } - - - /** - * Get the last pmp and last stock from date and warehouse - * - * @param date $date date to check - * @param int $fk_warehouse id of warehouse - * @return array - */ - function getPmpStockFromDate($date, $fk_warehouse) - { - $res = $this->product->load_stock(); - - if($res>0) - { - $stock = isset($this->product->stock_warehouse[$fk_warehouse]->real) ? $this->product->stock_warehouse[$fk_warehouse]->real : 0; - $pmp = $this->product->pmp; - } - - //All Stock mouvement between now and inventory date - $sql = 'SELECT value, price'; - $sql.= ' FROM '.MAIN_DB_PREFIX.'stock_mouvement'; - $sql.= ' WHERE fk_product = '.$this->product->id; - $sql.= ' AND fk_entrepot = '.$fk_warehouse; - $sql.= ' AND datem > \''.date('Y-m-d 23:59:59', strtotime($date)).'\''; - $sql.= ' ORDER BY datem DESC'; - - $res = $this->db->query($sql); - - $laststock = $stock; - $lastpmp = $pmp; - - if($res) - { - while($mouvement = $this->db->fetch_object($res)) - { - $price = ($mouvement->price > 0 && $mouvement->value > 0) ? $mouvement->price : $lastpmp; - $stock_value = $laststock * $lastpmp; - $laststock -= $mouvement->value; - $last_stock_value = $stock_value - ($mouvement->value * $price); - $lastpmp = ($laststock != 0) ? $last_stock_value / $laststock : $lastpmp; - } - } - - return array($lastpmp, $laststock); - } - - /** - * Fetch the product linked with the line - * @return void - */ - function load_product() - { - global $db; - - if($this->fk_product>0) - { - $this->product = new Product($db); - $this->product->fetch($this->fk_product); - } - } + /** + * @var int ID + */ + public $id; + /** + * @var mixed Sample line property 1 + */ + public $prop1; + /** + * @var mixed Sample line property 2 + */ + public $prop2; } diff --git a/htdocs/product/inventory/list.php b/htdocs/product/inventory/list.php index c8d570a6fd7..2a8d9861e5a 100644 --- a/htdocs/product/inventory/list.php +++ b/htdocs/product/inventory/list.php @@ -1,5 +1,6 @@ +/* Copyright (C) 2007-2017 Laurent Destailleur + * Copyright (C) ---Put here your own copyright and developer email--- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,119 +17,623 @@ */ /** - * \file htdocs/inventory/list.php - * \ingroup product - * \brief File of class to manage inventory + * \file product/inventory/list.php + * \ingroup inventory + * \brief List page for monmodule */ - -require_once '../../main.inc.php'; -require_once DOL_DOCUMENT_ROOT.'/product/inventory/listview.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/ajax.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/product.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; -include_once DOL_DOCUMENT_ROOT.'/product/stock/class/entrepot.class.php'; -require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; -require_once DOL_DOCUMENT_ROOT.'/product/inventory/class/inventory.class.php'; -require_once DOL_DOCUMENT_ROOT.'/product/inventory/lib/inventory.lib.php'; +//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); +//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); +//if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1'); +//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); +//if (! defined('NOSCANGETFORINJECTION')) define('NOSCANGETFORINJECTION','1'); // Do not check anti CSRF attack test +//if (! defined('NOSCANPOSTFORINJECTION')) define('NOSCANPOSTFORINJECTION','1'); // Do not check anti CSRF attack test +//if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK','1'); // Do not check anti CSRF attack test +//if (! defined('NOSTYLECHECK')) define('NOSTYLECHECK','1'); // Do not check style html tag into posted data +//if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Do not check anti POST attack test +//if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); // If there is no need to load and show top and left menu +//if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); // If we don't need to load the html.form.class.php +//if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); // Do not load ajax.lib.php library +//if (! defined("NOLOGIN")) define("NOLOGIN",'1'); // If this page is public (can be called outside logged session) -$langs->load("stock"); -$langs->load("inventory"); +// 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 caluclated from SCRIPT_FILENAME +$tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1; +while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; } +if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include(substr($tmp, 0, ($i+1))."/main.inc.php"); +if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php"); +// Try main.inc.php using relative path +if (! $res && file_exists("../main.inc.php")) $res=@include("../main.inc.php"); +if (! $res && file_exists("../../main.inc.php")) $res=@include("../../main.inc.php"); +if (! $res && file_exists("../../../main.inc.php")) $res=@include("../../../main.inc.php"); +if (! $res) die("Include of main fails"); + +require_once(DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'); +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; +dol_include_once('/inventory/class/inventory.class.php'); + +// Load traductions files requiredby by page +$langs->loadLangs(array("inventory","other")); + +$action = GETPOST('action','alpha'); +$massaction = GETPOST('massaction','alpha'); +$show_files = GETPOST('show_files','int'); +$confirm = GETPOST('confirm','alpha'); +$cancel = GETPOST('cancel', 'alpha'); +$toselect = GETPOST('toselect', 'array'); +$contextpage= GETPOST('contextpage','aZ')?GETPOST('contextpage','aZ'):'inventorylist'; // To manage different context of search + +$id = GETPOST('id','int'); +$backtopage = GETPOST('backtopage'); +$optioncss = GETPOST('optioncss','alpha'); + +// Load variable for pagination $limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit; -$sortfield = GETPOST("sortfield",'alpha'); -$sortorder = GETPOST("sortorder",'alpha'); -$page = (GETPOST("page",'int')?GETPOST("page", 'int'):0); +$sortfield = GETPOST('sortfield','alpha'); +$sortorder = GETPOST('sortorder','alpha'); +$page = GETPOST('page','int'); if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; -if (! $sortfield) $sortfield="i.title"; + +// Initialize technical objects +$object=new Inventory($db); +$extrafields = new ExtraFields($db); +$diroutputmassaction=$conf->inventory->dir_output . '/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('inventorylist')); // Note that conf->hooks_modules contains array +// Fetch optionals attributes and labels +$extralabels = $extrafields->fetch_name_optionals_label('inventory'); +$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_'); + +// Default sort order (if not yet defined by previous GETPOST) +if (! $sortfield) $sortfield="t.".key($object->fields); // Set here default search field. By default 1st field in definition. if (! $sortorder) $sortorder="ASC"; -if (empty($user->rights->stock->lire)) accessforbidden(); - - -/* - * Actions - */ - -// None - - -/* - * View - */ - -llxHeader('',$langs->trans('inventoryListTitle'),'',''); - -echo '
'; - -$inventory = new Inventory($db); -$list = new ListView($db, 'listInventory'); - -$THide = array('label','title'); - -echo $list->render(Inventory::getSQL('All'), array( - 'param' => array( - 'limit' => $limit, - 'offset' => $offset, - 'sortfield' => $sortfield, - 'sortorder'=> $sortorder, - 'page'=>$page - ), - 'limit' => array( - 'nbLine' => $limit, - ), - 'allow-field-select' => true, - 'link'=>array( - 'fk_warehouse'=>''.img_picto('','object_stock.png','',0).' @label@' - ), - 'translate'=>array(), - 'hide'=>$THide, - 'type'=>array( - 'datec'=>'date', - 'tms'=>'datetime', - 'date_inventory'=>'date' - ), - 'list'=>array( - 'title'=>$langs->trans('inventoryListTitle'), - 'messageNothing'=>$langs->trans('inventoryListEmpty'), - 'image' => 'title_products.png' - ), - 'title'=>array( - 'rowid'=>$langs->trans('Title'), - 'date_inventory'=>$langs->trans('InventoryDate'), - 'fk_warehouse'=>$langs->trans('Warehouse'), - 'datec'=>$langs->trans('DateCreation'), - 'tms'=>$langs->trans('DateModification'), - 'status'=>$langs->trans('Status') - ), - 'eval'=>array( - 'status' => '(@val@ ? img_picto("'.$langs->trans("inventoryValidate").'", "statut4") : img_picto("'.$langs->trans("inventoryDraft").'", "statut3"))', - 'rowid'=>'Inventory::getLink(@val@)' - ), - 'position' => array( - 'text-align' => array('status' => 'right') - - ), - 'search'=>array( - 'rowid' => array('search_type' => true, 'table' => array('i'), 'field' => array('title')), - 'date_inventory'=>array('search_type' => 'calendars', 'table' => array('i'), 'field' => array('date_inventory')), - 'status'=>array('search_type' => array(1=>$langs->trans("inventoryValidate"), 0=>$langs->trans("inventoryDraft"))) - ) -)); - - -/*if (!empty($user->rights->stock->create)) +// Protection if external user +$socid=0; +if ($user->societe_id > 0) { - print '
'; - print ''.$langs->trans('inventoryCreate').''; + //$socid = $user->societe_id; + accessforbidden(); +} + +// Initialize array of search criterias +$search_all=trim(GETPOST("search_all",'alpha')); +$search=array(); +foreach($object->fields as $key => $val) +{ + if (GETPOST('search_'.$key,'alpha')) $search[$key]=GETPOST('search_'.$key,'alpha'); +} + +// List of fields to search into when doing a "search in all" +$fieldstosearchall = array(); +foreach($object->fields as $key => $val) +{ + if ($val['searchall']) $fieldstosearchall['t.'.$key]=$val['label']; +} + +// Definition of fields for list +$arrayfields=array(); +foreach($object->fields as $key => $val) +{ + // If $val['visible']==0, then we never show the field + if (! empty($val['visible'])) $arrayfields['t.'.$key]=array('label'=>$val['label'], 'checked'=>(($val['visible']<0)?0:1), 'enabled'=>$val['enabled']); +} +// Extra fields +if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) +{ + foreach($extrafields->attribute_label as $key => $val) + { + $arrayfields["ef.".$key]=array('label'=>$extrafields->attribute_label[$key], 'checked'=>$extrafields->attribute_list[$key], 'position'=>$extrafields->attribute_pos[$key], 'enabled'=>$extrafields->attribute_perms[$key]); + } +} + + + + +/* + * ACTIONS + * + * Put here all code to do according to value of "$action" parameter + */ + +if (GETPOST('cancel')) { $action='list'; $massaction=''; } +if (! GETPOST('confirmmassaction') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction=''; } + +$parameters=array(); +$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + +if (empty($reshook)) +{ + // Selection of new fields + include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php'; + + // Purge search criteria + if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') ||GETPOST('button_removefilter','alpha')) // All tests are required to be compatible with all browsers + { + foreach($object->fields as $key => $val) + { + $search[$key]=''; + } + $toselect=''; + $search_array_options=array(); + } + if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha') + || GETPOST('button_search_x','alpha') || GETPOST('button_search.x','alpha') || GETPOST('button_search','alpha')) + { + $massaction=''; // Protection to avoid mass action if we force a new search during a mass action confirmation + } + + // Mass actions + $objectclass='Inventory'; + $objectlabel='Inventory'; + $permtoread = $user->rights->inventory->read; + $permtodelete = $user->rights->inventory->delete; + $uploaddir = $conf->inventory->dir_output; + include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; +} + + + +/* + * VIEW + * + * Put here all code to build page + */ + +$form=new Form($db); + +$now=dol_now(); + +//$help_url="EN:Module_Inventory|FR:Module_Inventory_FR|ES:Módulo_Inventory"; +$help_url=''; +$title = $langs->trans('ListOf', $langs->transnoentitiesnoconv("Inventorys")); + + +// Build and execute select +// -------------------------------------------------------------------- +$sql = 'SELECT '; +foreach($object->fields as $key => $val) +{ + $sql.='t.'.$key.', '; +} +// Add fields from extrafields +foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_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=preg_replace('/, $/','', $sql); +$sql.= " FROM ".MAIN_DB_PREFIX."inventory as t"; +if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."inventory_extrafields as ef on (t.rowid = ef.fk_object)"; +$sql.= " WHERE t.entity IN (".getEntity('inventory').")"; +foreach($search as $key => $val) +{ + if ($search[$key] != '') $sql.=natural_search($key, $search[$key], (($key == 'status')?2:($object->fields[$key]['type'] == 'integer'?1:0))); +} +if ($search_all) $sql.= natural_search(array_keys($fieldstosearchall), $search_all); +// Add where from extra fields +foreach ($search_array_options as $key => $val) +{ + $crit=$val; + $tmpkey=preg_replace('/search_options_/','',$key); + $typ=$extrafields->attribute_type[$tmpkey]; + $mode=0; + if (in_array($typ, array('int','double','real'))) $mode=1; // Search on a numeric + if ($val && ( ($crit != '' && ! in_array($typ, array('select'))) || ! empty($crit))) + { + $sql .= natural_search('ef.'.$tmpkey, $crit, $mode); + } +} +// 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; +$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); +} + +$sql.= $db->plimit($limit+1, $offset); + +dol_syslog($script_file, LOG_DEBUG); +$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) +{ + $obj = $db->fetch_object($resql); + $id = $obj->rowid; + header("Location: ".DOL_URL_ROOT.'/inventory/inventory_card.php?id='.$id); + exit; +} + + +// Output page +// -------------------------------------------------------------------- + +llxHeader('', $title, $help_url); + +// Example : Adding jquery code +print ''; + +$arrayofselected=is_array($toselect)?$toselect:array(); + +$param=''; +if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; +if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; +foreach($search as $key => $val) +{ + $param.= '&search_'.$key.'='.urlencode($search[$key]); +} +if ($optioncss != '') $param.='&optioncss='.$optioncss; +// Add $param from extra fields +foreach ($search_array_options as $key => $val) +{ + $crit=$val; + $tmpkey=preg_replace('/search_options_/','',$key); + if ($val != '') $param.='&search_options_'.$tmpkey.'='.urlencode($val); +} + +$arrayofmassactions = array( + 'presend'=>$langs->trans("SendByMail"), + 'builddoc'=>$langs->trans("PDFMerge"), +); +if ($user->rights->inventory->delete) $arrayofmassactions['delete']=$langs->trans("Delete"); +if ($massaction == 'presend') $arrayofmassactions=array(); +$massactionbutton=$form->selectMassAction('', $arrayofmassactions); + +print ''; +if ($optioncss != '') print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; + +print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_companies', 0, '', '', $limit); + +if ($sall) +{ + foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val); + print $langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall); +} + +$moreforfilter = ''; +$moreforfilter.='
'; +$moreforfilter.= $langs->trans('MyFilter') . ': '; +$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 '
'; -}*/ +} -echo ''; +$varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage; +$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields +$selectedfields.=$form->showCheckAddButtons('checkforselect', 1); -llxFooter(''); -$db->close(); \ No newline at end of file +print '
'; +print '
'; print ' '; print ''; print ' '; @@ -490,13 +490,13 @@ if ($object->fetch($id) >= 0) print $searchpicto; print '
'; print $langs->trans("NoTargetYet"); diff --git a/htdocs/comm/mailing/class/advtargetemailing.class.php b/htdocs/comm/mailing/class/advtargetemailing.class.php index b0d970248eb..a0744fcfa04 100644 --- a/htdocs/comm/mailing/class/advtargetemailing.class.php +++ b/htdocs/comm/mailing/class/advtargetemailing.class.php @@ -124,7 +124,7 @@ class AdvanceTargetingMailing extends CommonObject $sql.= " ".(! isset($this->fk_mailing)?'NULL':"'".$this->fk_mailing."'").","; $sql.= " ".(! isset($this->filtervalue)?'NULL':"'".$this->db->escape($this->filtervalue)."'").","; $sql.= " ".$user->id.","; - $sql.= " ".$this->db->idate(dol_now()).","; + $sql.= " '".$this->db->idate(dol_now())."',"; $sql.= " ".$user->id; diff --git a/htdocs/comm/mailing/list.php b/htdocs/comm/mailing/list.php index fb513c99b9b..82cb53fdfbf 100644 --- a/htdocs/comm/mailing/list.php +++ b/htdocs/comm/mailing/list.php @@ -109,7 +109,7 @@ if ($result) $param = "&sall=".urlencode($sall); if ($filteremail) $param.='&filteremail='.urlencode($filteremail); - + print '
'; if ($optioncss != '') print ''; print ''; @@ -117,9 +117,9 @@ if ($result) print ''; print ''; print ''; - + $moreforfilter = ''; - + print '
'; print ''."\n"; @@ -142,24 +142,24 @@ if ($result) print "\n"; print ''; - print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"m.rowid",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Title"),$_SERVER["PHP_SELF"],"m.titre",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"m.date_creat",$param,"",'align="center"',$sortfield,$sortorder); - if (! $filteremail) print_liste_field_titre($langs->trans("NbOfEMails"),$_SERVER["PHP_SELF"],"m.nbemail",$param,"",'align="center"',$sortfield,$sortorder); - if (! $filteremail) print_liste_field_titre($langs->trans("DateLastSend"),$_SERVER["PHP_SELF"],"m.date_envoi",$param,"",'align="center"',$sortfield,$sortorder); - else print_liste_field_titre($langs->trans("DateSending"),$_SERVER["PHP_SELF"],"mc.date_envoi",$param,"",'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],($filteremail?"mc.statut":"m.statut"),$param,"",'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"m.rowid",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("Title",$_SERVER["PHP_SELF"],"m.titre",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("DateCreation",$_SERVER["PHP_SELF"],"m.date_creat",$param,"",'align="center"',$sortfield,$sortorder); + if (! $filteremail) print_liste_field_titre("NbOfEMails",$_SERVER["PHP_SELF"],"m.nbemail",$param,"",'align="center"',$sortfield,$sortorder); + if (! $filteremail) print_liste_field_titre("DateLastSend",$_SERVER["PHP_SELF"],"m.date_envoi",$param,"",'align="center"',$sortfield,$sortorder); + else print_liste_field_titre("DateSending",$_SERVER["PHP_SELF"],"mc.date_envoi",$param,"",'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Status",$_SERVER["PHP_SELF"],($filteremail?"mc.statut":"m.statut"),$param,"",'align="right"',$sortfield,$sortorder); print_liste_field_titre('', $_SERVER["PHP_SELF"],"",'','','align="right"',$sortfield,$sortorder,'maxwidthsearch '); print "\n"; - - + + $email=new Mailing($db); while ($i < min($num,$limit)) { $obj = $db->fetch_object($result); - + print ""; print ' +multicompany->enabled) { ?> + +global->MAIN_FEATURES_LEVEL >= 2) { ?> +multicompany->enabled) { ?> + +global->MAIN_FEATURES_LEVEL >= 2) { ?> '; print ''; print ''; if (! empty($conf->global->MAIN_CAN_HIDE_EXTRAFIELDS)) print ''; +if ($conf->multicompany->enabled) { + print ''; +} print ''; print "\n"; @@ -68,6 +71,9 @@ if (count($extrafields->attribute_type)) print '\n"; print '\n"; if (! empty($conf->global->MAIN_CAN_HIDE_EXTRAFIELDS)) print '\n"; // Add hidden option on not working feature. Why hide if user can't see it. + if ($conf->multicompany->enabled) { + print ''; + } print '\n"; print ""; diff --git a/htdocs/core/tpl/bloc_showhide.tpl.php b/htdocs/core/tpl/bloc_showhide.tpl.php index 2c5d71c79d5..80b928815cb 100644 --- a/htdocs/core/tpl/bloc_showhide.tpl.php +++ b/htdocs/core/tpl/bloc_showhide.tpl.php @@ -21,43 +21,45 @@ if (isset($parameters['showblocbydefault'])) $hide=(empty($parameters['showblocb if (isset($object->extraparams[$blocname]['showhide'])) $hide = (empty($object->extraparams[$blocname]['showhide']) ? true : false); ?> + - +'."\n"; +print '$(document).ready(function() {'."\n"; +print '$("#hide-'.$blocname.'").click(function(){'."\n"; +print ' setShowHide(0);'."\n"; +print ' $("#'.$blocname.'_bloc").hide("blind", {direction: "vertical"}, 300).removeClass("nohideobject");'."\n"; +print ' $(this).hide();'."\n"; +print ' $("#show-'.$blocname.'").show();'."\n"; +print '});'."\n"; - +print 'function setShowHide(status) {'."\n"; +print ' var id = '.$object->id.";\n"; +print " var element = '".$object->element."';\n"; +print " var htmlelement = '".$blocname."';\n"; +print ' var type = "showhide";'."\n"; +print ' $.get("'.dol_buildpath('/core/ajax/extraparams.php', 1); +print '?id="+id+"&element="+element+"&htmlelement="+htmlelement+"&type="+type+"&value="+status);'."\n"; +print '}'."\n"; -
-
-
+print '});'."\n"; +print ''."\n"; -
+print '
'.img_picto('', '1uparrow.png').'
'."\n"; +print '
'.img_picto('', '1downarrow.png').'
'."\n"; +print '
'.$title.'
'."\n"; +print '
'."\n"; - - -
-
- - \ No newline at end of file +include DOL_DOCUMENT_ROOT.'/core/tpl/'.$blocname.'.tpl.php'; +print '

'; +?> + diff --git a/htdocs/core/tpl/login.tpl.php b/htdocs/core/tpl/login.tpl.php index 9cddb8d183d..a1fdc3e9e9d 100644 --- a/htdocs/core/tpl/login.tpl.php +++ b/htdocs/core/tpl/login.tpl.php @@ -17,7 +17,7 @@ */ // Need global variable $title to be defined by caller (like dol_loginfunction) - +// Caller can also set $morelogincontent = array(['options']=>array('js'=>..., 'table'=>...); header('Cache-Control: Public, must-revalidate'); header("Content-type: text/html; charset=".$conf->file->character_set_client); @@ -123,8 +123,8 @@ if ($disablenofollow) echo ''; resArray['options'])) { - foreach ($hookmanager->resArray['options'] as $format => $option) +if (! empty($morelogincontent) && is_array($morelogincontent)) { + foreach ($morelogincontent as $format => $option) { if ($format == 'table') { echo ''; @@ -249,7 +249,7 @@ if (!empty($conf->global->MAIN_EASTER_EGG_COMMITSTRIP)) { } else { $resgetcommitstrip = getURLContent("http://www.commitstrip.com/en/feed/"); } - if ($resgetcommitstrip && $resgetcommitstrip['http_code'] == '200') + if ($resgetcommitstrip && $resgetcommitstrip['http_code'] == '200') { $xml = simplexml_load_string($resgetcommitstrip['content']); $little = $xml->channel->item[0]->children('content',true); @@ -278,8 +278,8 @@ if (!empty($conf->global->MAIN_EASTER_EGG_COMMITSTRIP)) { global->MAIN_HTML_FOOTER)) print $conf->global->MAIN_HTML_FOOTER; ?> resArray['options'])) { - foreach ($hookmanager->resArray['options'] as $format => $option) +if (! empty($morelogincontent) && is_array($morelogincontent)) { + foreach ($morelogincontent as $format => $option) { if ($format == 'js') { echo "\n".''; diff --git a/htdocs/core/tpl/notes.tpl.php b/htdocs/core/tpl/notes.tpl.php index 2538e052ae4..77cbd38f042 100644 --- a/htdocs/core/tpl/notes.tpl.php +++ b/htdocs/core/tpl/notes.tpl.php @@ -1,7 +1,7 @@ - * Copyright (C) 2013 Florian Henry - * Copyright (C) 2014 Laurent Destailleur +/* Copyright (C) 2012 Regis Houssin + * Copyright (C) 2013 Florian Henry + * Copyright (C) 2014-2017 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 @@ -17,9 +17,10 @@ * along with this program. If not, see . */ -// $cssclass must be defined by caller. For example cssclass='fieldtitle" -$module = $object->element; -$note_public = 'note_public'; +// $permission must be defined by caller. +// $cssclass must be defined by caller. For example cssclass='fieldtitle" +$module = $object->element; +$note_public = 'note_public'; $note_private = 'note_private'; $colwidth=(isset($colwidth)?$colwidth:(empty($cssclass)?'25':'')); @@ -66,21 +67,29 @@ elseif ($module == 'product') { $permission=$user->rights->produit->creer; if (! empty($conf->global->FCKEDITOR_ENABLE_SOCIETE)) $typeofdata='ckeditor:dolibarr_notes:100%:200::1:12:95%'; // Rem: This var is for all notes, not only thirdparties note. else $typeofdata='textarea:12:95%'; +print ''."\n"; +print '
'."\n"; +if ($module != 'product') { + // No public note yet on products + print '
'."\n"; + print '
'."\n"; + print $form->editfieldkey("NotePublic", $note_public, $value_public, $object, $permission, $typeofdata, $moreparam, '', 0); + print '
'."\n"; + print '
'."\n"; + print $form->editfieldval("NotePublic", $note_public, $value_public, $object, $permission, $typeofdata, '', null, null, $moreparam, 1)."\n"; + print '
'."\n"; + print '
'."\n"; +} +if (empty($user->societe_id)) { + print '
'."\n"; + print '
'."\n"; + print $form->editfieldkey("NotePrivate", $note_private, $value_private, $object, $permission, $typeofdata, $moreparam, '', 0); + print '
'."\n"; + print '
'."\n"; + print $form->editfieldval("NotePrivate", $note_private, $value_private, $object, $permission, $typeofdata, '', null, null, $moreparam, 1); + print '
'."\n"; + print '
'."\n"; +} +print '
'."\n"; ?> - - -
- -
-
>editfieldkey("NotePublic", $note_public, $value_public, $object, $permission, $typeofdata, $moreparam, '', 0); ?>
-
editfieldval("NotePublic", $note_public, $value_public, $object, $permission, $typeofdata, '', null, null, $moreparam, 1); ?>
-
- -societe_id)) { ?> -
-
>editfieldkey("NotePrivate", $note_private, $value_private, $object, $permission, $typeofdata, $moreparam, '', 0); ?>
-
editfieldval("NotePrivate", $note_private, $value_private, $object, $permission, $typeofdata, '', null, null, $moreparam, 1); ?>
-
- -
diff --git a/htdocs/core/tpl/originproductline.tpl.php b/htdocs/core/tpl/originproductline.tpl.php index 78006316f63..c8cd6674a7a 100644 --- a/htdocs/core/tpl/originproductline.tpl.php +++ b/htdocs/core/tpl/originproductline.tpl.php @@ -1,5 +1,6 @@ +/* Copyright (C) 2017 Charlie Benke * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,16 +19,20 @@ ?> -
> - - - - - multicurrency->enabled)) { ?> - - global->PRODUCT_USE_UNITS) echo ''; - ?> - - +'; +print ''; +print ''; +print ''; +print ''; +if (!empty($conf->multicurrency->enabled)) + print ''; + +print ''; +if($conf->global->PRODUCT_USE_UNITS) + print ''; + +print ''; +print ''."\n"; +?> diff --git a/htdocs/core/website.inc.php b/htdocs/core/website.inc.php new file mode 100644 index 00000000000..65db787734a --- /dev/null +++ b/htdocs/core/website.inc.php @@ -0,0 +1,28 @@ + + * +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* or see http://www.gnu.org/ +*/ + +/** + * \file htdocs/core/website.inc.php + * \brief Common file loaded used by all website pages (after master.inc.php) + * The global variable $website must be defined. + */ + + +include_once DOL_DOCUMENT_ROOT.'/websites/class/website.class.php'; +$website=new Website($db); +$website->fetch(0,$websitekey); diff --git a/htdocs/cron/admin/cron.php b/htdocs/cron/admin/cron.php index 62cca5a0f20..3efec52edfa 100644 --- a/htdocs/cron/admin/cron.php +++ b/htdocs/cron/admin/cron.php @@ -74,7 +74,7 @@ $head = cronadmin_prepare_head(); print '
'; print ''; -dol_fiche_head($head,'setup',$langs->trans("Module2300Name"),0,'cron'); +dol_fiche_head($head, 'setup', $langs->trans("Module2300Name"), -1, 'cron'); print "
\n"; @@ -91,16 +91,16 @@ print '
'; $disabled=''; if (! empty($conf->global->CRON_DISABLE_KEY_CHANGE)) $disabled=' disabled="disabled"'; print ''; print ''; diff --git a/htdocs/cron/card.php b/htdocs/cron/card.php index a371069d7cf..dce56ff5468 100644 --- a/htdocs/cron/card.php +++ b/htdocs/cron/card.php @@ -380,7 +380,7 @@ if (($action=="create") || ($action=="edit")) print '"; print ""; print "'; print ''; print ''; -print_liste_field_titre($langs->trans("ID"),$_SERVER["PHP_SELF"],"t.rowid","",$param,'',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("CronLabel"),$_SERVER["PHP_SELF"],"t.label","",$param,'',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("CronTask"),'','',"",$param,'',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("CronFrequency"),'',"","",$param,'',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("CronDtStart"),$_SERVER["PHP_SELF"],"t.datestart","",$param,'align="center"',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("CronDtEnd"),$_SERVER["PHP_SELF"],"t.dateend","",$param,'align="center"',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("CronMaxRun"),$_SERVER["PHP_SELF"],"t.maxrun","",$param,'align="right"',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("CronNbRun"),$_SERVER["PHP_SELF"],"t.nbrun","",$param,'align="right"',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("CronDtNextLaunch"),$_SERVER["PHP_SELF"],"t.datenextrun","",$param,'align="center"',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("CronDtLastLaunch"),$_SERVER["PHP_SELF"],"t.datelastrun","",$param,'align="center"',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("CronLastResult"),$_SERVER["PHP_SELF"],"t.lastresult","",$param,'align="center"',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("CronLastOutput"),$_SERVER["PHP_SELF"],"t.lastoutput","",$param,'',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"t.status","",$param,'align="center"',$sortfield,$sortorder); +print_liste_field_titre("ID",$_SERVER["PHP_SELF"],"t.rowid","",$param,'',$sortfield,$sortorder); +print_liste_field_titre("CronLabel",$_SERVER["PHP_SELF"],"t.label","",$param,'',$sortfield,$sortorder); +print_liste_field_titre("CronTask",'','',"",$param,'',$sortfield,$sortorder); +print_liste_field_titre("CronFrequency",'',"","",$param,'',$sortfield,$sortorder); +print_liste_field_titre("CronDtStart",$_SERVER["PHP_SELF"],"t.datestart","",$param,'align="center"',$sortfield,$sortorder); +print_liste_field_titre("CronDtEnd",$_SERVER["PHP_SELF"],"t.dateend","",$param,'align="center"',$sortfield,$sortorder); +print_liste_field_titre("CronMaxRun",$_SERVER["PHP_SELF"],"t.maxrun","",$param,'align="right"',$sortfield,$sortorder); +print_liste_field_titre("CronNbRun",$_SERVER["PHP_SELF"],"t.nbrun","",$param,'align="right"',$sortfield,$sortorder); +print_liste_field_titre("CronDtNextLaunch",$_SERVER["PHP_SELF"],"t.datenextrun","",$param,'align="center"',$sortfield,$sortorder); +print_liste_field_titre("CronDtLastLaunch",$_SERVER["PHP_SELF"],"t.datelastrun","",$param,'align="center"',$sortfield,$sortorder); +print_liste_field_titre("CronLastResult",$_SERVER["PHP_SELF"],"t.lastresult","",$param,'align="center"',$sortfield,$sortorder); +print_liste_field_titre("CronLastOutput",$_SERVER["PHP_SELF"],"t.lastoutput","",$param,'',$sortfield,$sortorder); +print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"t.status","",$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre(''); print "\n"; @@ -353,14 +353,10 @@ if ($num > 0) { $obj = $db->fetch_object($result); - + if (empty($obj)) break; if (! verifCond($obj->test)) continue; // Discard line with test = false - // title profil - if ($style=='pair') {$style='impair';} - else {$style='pair';} - - print ''; + print ''; print ''; $entity=(! empty($objexport->array_export_entities[0][$code])?$objexport->array_export_entities[0][$code]:$objexport->array_export_icon[0]); - $entityicon=(! empty($entitytoicon[$entity])?$entitytoicon[$entity]:$entity); + $entityicon=strtolower(! empty($entitytoicon[$entity])?$entitytoicon[$entity]:$entity); $entitylang=(! empty($entitytolang[$entity])?$entitytolang[$entity]:$entity); print '\n"; print ''; - if (! empty($arrayfields['f.ref']['checked'])) print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"f.ref","",$param,'',$sortfield,$sortorder); - if (! empty($arrayfields['s.nom']['checked'])) print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom","",$param,'',$sortfield,$sortorder); - if (! empty($arrayfields['f.description']['checked'])) print_liste_field_titre($langs->trans("Description"),$_SERVER["PHP_SELF"],"f.description","",$param,'',$sortfield,$sortorder); + if (! empty($arrayfields['f.ref']['checked'])) print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"f.ref","",$param,'',$sortfield,$sortorder); + if (! empty($arrayfields['s.nom']['checked'])) print_liste_field_titre("ThirdParty",$_SERVER["PHP_SELF"],"s.nom","",$param,'',$sortfield,$sortorder); + if (! empty($arrayfields['f.description']['checked'])) print_liste_field_titre("Description",$_SERVER["PHP_SELF"],"f.description","",$param,'',$sortfield,$sortorder); if (! empty($arrayfields['fd.description']['checked'])) print_liste_field_titre('',$_SERVER["PHP_SELF"],''); - if (! empty($arrayfields['fd.date']['checked'])) print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"fd.date","",$param,'align="center"',$sortfield,$sortorder); - if (! empty($arrayfields['fd.duree']['checked'])) print_liste_field_titre($langs->trans("Duration"),$_SERVER["PHP_SELF"],"fd.duree","",$param,'align="right"',$sortfield,$sortorder); + if (! empty($arrayfields['fd.date']['checked'])) print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"fd.date","",$param,'align="center"',$sortfield,$sortorder); + if (! empty($arrayfields['fd.duree']['checked'])) print_liste_field_titre("Duration",$_SERVER["PHP_SELF"],"fd.duree","",$param,'align="right"',$sortfield,$sortorder); // Extra fields if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) { @@ -426,7 +433,7 @@ if ($resql) $align=$extrafields->getAlignFlag($key); $sortonfield = "ef.".$key; if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } @@ -434,9 +441,9 @@ if ($resql) $parameters=array('arrayfields'=>$arrayfields); $reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; - if (! empty($arrayfields['f.datec']['checked'])) print_liste_field_titre($langs->trans("DateCreationShort"),$_SERVER["PHP_SELF"],"f.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder); - if (! empty($arrayfields['f.tms']['checked'])) print_liste_field_titre($langs->trans("DateModificationShort"),$_SERVER["PHP_SELF"],"f.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder); - if (! empty($arrayfields['f.fk_statut']['checked'])) print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"f.fk_statut","",$param,'align="right"',$sortfield,$sortorder); + if (! empty($arrayfields['f.datec']['checked'])) print_liste_field_titre("DateCreationShort",$_SERVER["PHP_SELF"],"f.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder); + if (! empty($arrayfields['f.tms']['checked'])) print_liste_field_titre("DateModificationShort",$_SERVER["PHP_SELF"],"f.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder); + if (! empty($arrayfields['f.fk_statut']['checked'])) print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"f.fk_statut","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch '); print "\n"; diff --git a/htdocs/fourn/card.php b/htdocs/fourn/card.php index 36910458aa3..fd54e833e4a 100644 --- a/htdocs/fourn/card.php +++ b/htdocs/fourn/card.php @@ -571,7 +571,7 @@ if ($object->id > 0) print ''; print ''; diff --git a/htdocs/fourn/class/api_supplier_invoices.class.php b/htdocs/fourn/class/api_supplier_invoices.class.php index 6f3291518ca..26ae936d5a0 100644 --- a/htdocs/fourn/class/api_supplier_invoices.class.php +++ b/htdocs/fourn/class/api_supplier_invoices.class.php @@ -23,14 +23,14 @@ require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; /** * API class for supplier invoices * - * @access protected + * @access protected * @class DolibarrApiAccess {@requires user,external} */ class SupplierInvoices extends DolibarrApi { /** * - * @var array $FIELDS Mandatory fields, checked when create and update object + * @var array $FIELDS Mandatory fields, checked when create and update object */ static $FIELDS = array( 'socid' @@ -55,24 +55,24 @@ class SupplierInvoices extends DolibarrApi * Get properties of a supplier invoice object * * Return an array with supplier invoice information - * + * * @param int $id ID of supplier invoice * @return array|mixed data without useless information * * @throws RestException */ function get($id) - { + { if(! DolibarrApiAccess::$user->rights->fournisseur->facture->lire) { throw new RestException(401); } - + $result = $this->invoice->fetch($id); if( ! $result ) { throw new RestException(404, 'Supplier invoice not found'); } - - if( ! DolibarrApi::_checkAccessToResource('facture',$this->invoice->id)) { + + if( ! DolibarrApi::_checkAccessToResource('fournisseur',$this->invoice->id,'facture_fourn','facture')) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } @@ -81,9 +81,9 @@ class SupplierInvoices extends DolibarrApi /** * List invoices - * + * * Get a list of supplier invoices - * + * * @param string $sortfield Sort field * @param string $sortorder Sort order * @param int $limit Limit for list @@ -97,12 +97,12 @@ class SupplierInvoices extends DolibarrApi */ function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 0, $page = 0, $thirdparty_ids='', $status='', $sqlfilters = '') { global $db, $conf; - + $obj_ret = array(); // case of external user, $thirdparty_ids param is ignored and replaced by user's socid $socids = DolibarrApiAccess::$user->societe_id ? DolibarrApiAccess::$user->societe_id : $thirdparty_ids; - + // If the internal user must only see his customers, force searching by him $search_sale = 0; if (! DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) $search_sale = DolibarrApiAccess::$user->id; @@ -110,14 +110,14 @@ class SupplierInvoices extends DolibarrApi $sql = "SELECT t.rowid"; if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql .= ", sc.fk_soc, sc.fk_user"; // We need these fields in order to filter by sale (including the case where the user can only see his prospects) $sql.= " FROM ".MAIN_DB_PREFIX."facture_fourn as t"; - + if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We need this table joined to the select in order to filter by sale $sql.= ' WHERE t.entity IN ('.getEntity('supplier_invoice').')'; if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql.= " AND t.fk_soc = sc.fk_soc"; if ($socids) $sql.= " AND t.fk_soc IN (".$socids.")"; if ($search_sale > 0) $sql.= " AND t.rowid = sc.fk_soc"; // Join for the needed table to filter by sale - + // Filter by status if ($status == 'draft') $sql.= " AND t.fk_statut IN (0)"; if ($status == 'unpaid') $sql.= " AND t.fk_statut IN (1)"; @@ -129,7 +129,7 @@ class SupplierInvoices extends DolibarrApi $sql .= " AND sc.fk_user = ".$search_sale; } // Add sql filters - if ($sqlfilters) + if ($sqlfilters) { if (! DolibarrApi::_checkFilters($sqlfilters)) { @@ -138,7 +138,7 @@ class SupplierInvoices extends DolibarrApi $regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; $sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; } - + $sql.= $db->order($sortfield, $sortorder); if ($limit) { if ($page < 0) @@ -174,10 +174,10 @@ class SupplierInvoices extends DolibarrApi } return $obj_ret; } - + /** * Create supplier invoice object - * + * * @param array $request_data Request datas * @return int ID of supplier invoice */ @@ -188,7 +188,7 @@ class SupplierInvoices extends DolibarrApi } // Check mandatory fields $result = $this->_validate($request_data); - + foreach($request_data as $field => $value) { $this->invoice->$field = $value; } @@ -203,7 +203,7 @@ class SupplierInvoices extends DolibarrApi } $this->invoice->lines = $lines; }*/ - + if ($this->invoice->create(DolibarrApiAccess::$user) < 0) { throw new RestException(500, "Error creating order", array_merge(array($this->invoice->error), $this->invoice->errors)); } @@ -214,21 +214,21 @@ class SupplierInvoices extends DolibarrApi * Update supplier invoice * * @param int $id Id of supplier invoice to update - * @param array $request_data Datas - * @return int + * @param array $request_data Datas + * @return int */ function put($id, $request_data = NULL) { if(! DolibarrApiAccess::$user->rights->fournisseur->facture->creer) { throw new RestException(401); } - + $result = $this->invoice->fetch($id); if( ! $result ) { throw new RestException(404, 'Supplier invoice not found'); } - - if( ! DolibarrApi::_checkAccessToResource('facture',$this->invoice->id)) { + + if( ! DolibarrApi::_checkAccessToResource('fournisseur',$this->invoice->id,'facture_fourn','facture')) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } @@ -236,13 +236,13 @@ class SupplierInvoices extends DolibarrApi if ($field == 'id') continue; $this->invoice->$field = $value; } - + if($this->invoice->update($id, DolibarrApiAccess::$user)) return $this->get ($id); - + return false; } - + /** * Delete supplier invoice * @@ -258,16 +258,16 @@ class SupplierInvoices extends DolibarrApi if( ! $result ) { throw new RestException(404, 'Supplier invoice not found'); } - - if( ! DolibarrApi::_checkAccessToResource('facture',$this->invoice->id)) { + + if( ! DolibarrApi::_checkAccessToResource('fournisseur',$this->invoice->id,'facture_fourn','facture')) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } - + if( $this->invoice->delete(DolibarrApiAccess::$user) < 0) { throw new RestException(500); } - + return array( 'success' => array( 'code' => 200, @@ -275,8 +275,56 @@ class SupplierInvoices extends DolibarrApi ) ); } - - + + + /** + * Validate an order + * + * @param int $id Order ID + * @param int $idwarehouse Warehouse ID + * @param int $notrigger 1=Does not execute triggers, 0= execute triggers + * + * @url POST {id}/validate + * + * @return array + * FIXME An error 403 is returned if the request has an empty body. + * Error message: "Forbidden: Content type `text/plain` is not supported." + * Workaround: send this in the body + * { + * "idwarehouse": 0, + * "notrigger": 0 + * } + */ + function validate($id, $idwarehouse=0, $notrigger=0) + { + if(! DolibarrApiAccess::$user->rights->fournisseur->facture->creer) { + throw new RestException(401); + } + $result = $this->invoice->fetch($id); + if( ! $result ) { + throw new RestException(404, 'Invoice not found'); + } + + if( ! DolibarrApi::_checkAccessToResource('fournisseur',$this->invoice->id,'facture_fourn','facture')) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + + $result = $this->invoice->validate(DolibarrApiAccess::$user, '', $idwarehouse, $notrigger); + if ($result == 0) { + throw new RestException(500, 'Error nothing done. May be object is already validated'); + } + if ($result < 0) { + throw new RestException(500, 'Error when validating Invoice: '.$this->invoice->error); + } + + return array( + 'success' => array( + 'code' => 200, + 'message' => 'Invoice validated (Ref='.$this->invoice->ref.')' + ) + ); + } + /** * Clean sensible object datas * @@ -284,20 +332,20 @@ class SupplierInvoices extends DolibarrApi * @return array Array of cleaned object properties */ function _cleanObjectDatas($object) { - + $object = parent::_cleanObjectDatas($object); - + unset($object->rowid); - + return $object; } - + /** * Validate fields before create or update object - * + * * @param array $data Datas to validate * @return array - * + * * @throws RestException */ function _validate($data) diff --git a/htdocs/fourn/class/api_supplier_orders.class.php b/htdocs/fourn/class/api_supplier_orders.class.php new file mode 100644 index 00000000000..2695727c3ee --- /dev/null +++ b/htdocs/fourn/class/api_supplier_orders.class.php @@ -0,0 +1,365 @@ + + * Copyright (C) 2016 Laurent Destailleur + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +use Luracast\Restler\RestException; + +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; + +/** + * API class for supplier orders + * + * @access protected + * @class DolibarrApiAccess {@requires user,external} + */ +class SupplierOrders extends DolibarrApi +{ + /** + * + * @var array $FIELDS Mandatory fields, checked when create and update object + */ + static $FIELDS = array( + 'socid' + ); + + /** + * @var CommandeFournisseur $order {@type CommandeFournisseur} + */ + public $order; + + /** + * Constructor + */ + function __construct() + { + global $db, $conf; + $this->db = $db; + $this->order = new CommandeFournisseur($this->db); + } + + /** + * Get properties of a supplier order object + * + * Return an array with supplier order information + * + * @param int $id ID of supplier order + * @return array|mixed data without useless information + * + * @throws RestException + */ + function get($id) + { + 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')) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + + return $this->_cleanObjectDatas($this->order); + } + + /** + * List orders + * + * Get a list of supplier orders + * + * @param string $sortfield Sort field + * @param string $sortorder Sort order + * @param int $limit Limit for list + * @param int $page Page number + * @param string $thirdparty_ids Thirdparty ids to filter orders of. {@example '1' or '1,2,3'} {@pattern /^[0-9,]*$/i} + * @param string $status Filter by order status : draft | validated | approved | running | received_start | received_end | cancelled | refused + * @param string $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.ref:like:'SO-%') and (t.datec:<:'20160101')" + * @return array Array of order objects + * + * @throws RestException + */ + function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 0, $page = 0, $thirdparty_ids='', $status='', $sqlfilters = '') { + global $db, $conf; + + $obj_ret = array(); + + // case of external user, $thirdparty_ids param is ignored and replaced by user's socid + $socids = DolibarrApiAccess::$user->societe_id ? DolibarrApiAccess::$user->societe_id : $thirdparty_ids; + + // If the internal user must only see his customers, force searching by him + $search_sale = 0; + if (! DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) $search_sale = DolibarrApiAccess::$user->id; + + $sql = "SELECT t.rowid"; + if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql .= ", sc.fk_soc, sc.fk_user"; // We need these fields in order to filter by sale (including the case where the user can only see his prospects) + $sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur as t"; + + if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We need this table joined to the select in order to filter by sale + + $sql.= ' WHERE t.entity IN ('.getEntity('supplier_order').')'; + if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socid) || $search_sale > 0) $sql.= " AND t.fk_soc = sc.fk_soc"; + if ($socids) $sql.= " AND t.fk_soc IN (".$socids.")"; + if ($search_sale > 0) $sql.= " AND t.rowid = sc.fk_soc"; // Join for the needed table to filter by sale + + // Filter by status + if ($status == 'draft') $sql.= " AND t.fk_statut IN (0)"; + if ($status == 'validated') $sql.= " AND t.fk_statut IN (1)"; + if ($status == 'approved') $sql.= " AND t.fk_statut IN (2)"; + if ($status == 'running') $sql.= " AND t.fk_statut IN (3)"; + if ($status == 'received_start') $sql.= " AND t.fk_statut IN (4)"; + if ($status == 'received_end') $sql.= " AND t.fk_statut IN (5)"; + if ($status == 'cancelled') $sql.= " AND t.fk_statut IN (6,7)"; + if ($status == 'refused') $sql.= " AND t.fk_statut IN (9)"; + // Insert sale filter + if ($search_sale > 0) + { + $sql .= " AND sc.fk_user = ".$search_sale; + } + // Add sql filters + if ($sqlfilters) + { + if (! DolibarrApi::_checkFilters($sqlfilters)) + { + throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters); + } + $regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; + $sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; + } + + $sql.= $db->order($sortfield, $sortorder); + if ($limit) { + if ($page < 0) + { + $page = 0; + } + $offset = $limit * $page; + + $sql.= $db->plimit($limit + 1, $offset); + } + + $result = $db->query($sql); + if ($result) + { + $i = 0; + $num = $db->num_rows($result); + $min = min($num, ($limit <= 0 ? $num : $limit)); + while ($i < $min) + { + $obj = $db->fetch_object($result); + $order_static = new CommandeFournisseur($db); + if($order_static->fetch($obj->rowid)) { + $obj_ret[] = $this->_cleanObjectDatas($order_static); + } + $i++; + } + } + else { + throw new RestException(503, 'Error when retrieve supplier order list : '.$db->lasterror()); + } + if( ! count($obj_ret)) { + throw new RestException(404, 'No supplier order found'); + } + return $obj_ret; + } + + /** + * Create supplier order object + * + * @param array $request_data Request datas + * @return int ID of supplier order + */ + function post($request_data = NULL) + { + if(! DolibarrApiAccess::$user->rights->fournisseur->commande->creer) { + throw new RestException(401, "Insuffisant rights"); + } + // Check mandatory fields + $result = $this->_validate($request_data); + + foreach($request_data as $field => $value) { + $this->order->$field = $value; + } + if(! array_keys($request_data,'date')) { + $this->order->date = dol_now(); + } + /* We keep lines as an array + if (isset($request_data["lines"])) { + $lines = array(); + foreach ($request_data["lines"] as $line) { + array_push($lines, (object) $line); + } + $this->order->lines = $lines; + }*/ + + if ($this->order->create(DolibarrApiAccess::$user) < 0) { + throw new RestException(500, "Error creating order", array_merge(array($this->order->error), $this->order->errors)); + } + return $this->order->id; + } + + /** + * Update supplier order + * + * @param int $id Id of supplier order to update + * @param array $request_data Datas + * @return int + */ + function put($id, $request_data = NULL) + { + 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')) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + + foreach($request_data as $field => $value) { + if ($field == 'id') continue; + $this->order->$field = $value; + } + + if($this->order->update($id, DolibarrApiAccess::$user)) + return $this->get ($id); + + return false; + } + + /** + * Delete supplier order + * + * @param int $id Supplier order ID + * @return type + */ + function delete($id) + { + if(! DolibarrApiAccess::$user->rights->fournisseur->commande->supprimer) { + 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')) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + + if( $this->order->delete(DolibarrApiAccess::$user) < 0) + { + throw new RestException(500); + } + + return array( + 'success' => array( + 'code' => 200, + 'message' => 'Supplier order deleted' + ) + ); + } + + + /** + * Validate an order + * + * @param int $id Order ID + * @param int $idwarehouse Warehouse ID + * @param int $notrigger 1=Does not execute triggers, 0= execute triggers + * + * @url POST {id}/validate + * + * @return array + * FIXME An error 403 is returned if the request has an empty body. + * Error message: "Forbidden: Content type `text/plain` is not supported." + * Workaround: send this in the body + * { + * "idwarehouse": 0, + * "notrigger": 0 + * } + */ + function validate($id, $idwarehouse=0, $notrigger=0) + { + if(! DolibarrApiAccess::$user->rights->fournisseur->commande->creer) { + throw new RestException(401); + } + $result = $this->order->fetch($id); + if( ! $result ) { + throw new RestException(404, 'Order not found'); + } + + if( ! DolibarrApi::_checkAccessToResource('fournisseur',$this->order->id,'','commande')) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + + $result = $this->order->valid(DolibarrApiAccess::$user, $idwarehouse, $notrigger); + if ($result == 0) { + throw new RestException(500, 'Error nothing done. May be object is already validated'); + } + if ($result < 0) { + throw new RestException(500, 'Error when validating Order: '.$this->order->error); + } + + return array( + 'success' => array( + 'code' => 200, + 'message' => 'Order validated (Ref='.$this->order->ref.')' + ) + ); + } + + /** + * Clean sensible object datas + * + * @param Object $object Object to clean + * @return array Array of cleaned object properties + */ + function _cleanObjectDatas($object) { + + $object = parent::_cleanObjectDatas($object); + + unset($object->rowid); + + return $object; + } + + /** + * Validate fields before create or update object + * + * @param array $data Datas to validate + * @return array + * + * @throws RestException + */ + function _validate($data) + { + $order = array(); + foreach (SupplierOrders::$FIELDS as $field) { + if (!isset($data[$field])) + throw new RestException(400, "$field field missing"); + $order[$field] = $data[$field]; + } + return $order; + } +} diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php index 860783abaa1..4e3362d36ac 100644 --- a/htdocs/fourn/commande/card.php +++ b/htdocs/fourn/commande/card.php @@ -288,6 +288,7 @@ if (empty($reshook)) $product_desc=(GETPOST('dp_desc')?GETPOST('dp_desc'):''); $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')); + $prod_entry_mode = GETPOST('prod_entry_mode'); if ($prod_entry_mode == 'free') { $idprod=0; diff --git a/htdocs/fourn/commande/list.php b/htdocs/fourn/commande/list.php index 41c9988e903..8495c1030fd 100644 --- a/htdocs/fourn/commande/list.php +++ b/htdocs/fourn/commande/list.php @@ -1052,7 +1052,7 @@ if ($resql) $align=$extrafields->getAlignFlag($key); $sortonfield = "ef.".$key; if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/fourn/commande/orderstoinvoice.php b/htdocs/fourn/commande/orderstoinvoice.php index 86c177c4313..b1a8c0c08c1 100644 --- a/htdocs/fourn/commande/orderstoinvoice.php +++ b/htdocs/fourn/commande/orderstoinvoice.php @@ -501,12 +501,12 @@ if (($action != 'create' && $action != 'add') && !$error) { print ''; print '
'; diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php index b1d8aa03022..b603d1e6a17 100644 --- a/htdocs/comm/propal/card.php +++ b/htdocs/comm/propal/card.php @@ -1750,6 +1750,7 @@ if ($action == 'create') $morehtmlref.=$form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, $user->rights->propal->creer, 'string', '', null, null, '', 1); // Thirdparty $morehtmlref.='
'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1); + if (empty($conf->global->MAIN_DISABLE_OTHER_LINK) && $object->thirdparty->id > 0) $morehtmlref.=' (
'.$langs->trans("OtherProposals").')'; // Project if (! empty($conf->projet->enabled)) { diff --git a/htdocs/comm/propal/class/api_proposals.class.php b/htdocs/comm/propal/class/api_proposals.class.php index 2f067f46b18..42dbdbf9d2c 100644 --- a/htdocs/comm/propal/class/api_proposals.class.php +++ b/htdocs/comm/propal/class/api_proposals.class.php @@ -24,14 +24,14 @@ require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; /** * API class for orders * - * @access protected + * @access protected * @class DolibarrApiAccess {@requires user,external} */ class Proposals extends DolibarrApi { /** - * @var array $FIELDS Mandatory fields, checked when create and update object + * @var array $FIELDS Mandatory fields, checked when create and update object */ static $FIELDS = array( 'socid' @@ -56,36 +56,36 @@ class Proposals extends DolibarrApi * Get properties of a commercial proposal object * * Return an array with commercial proposal informations - * + * * @param int $id ID of commercial proposal * @return array|mixed data without useless information * * @throws RestException */ function get($id) - { + { if(! DolibarrApiAccess::$user->rights->propal->lire) { throw new RestException(401); } - + $result = $this->propal->fetch($id); if( ! $result ) { throw new RestException(404, 'Commercial Proposal not found'); } - + if( ! DolibarrApi::_checkAccessToResource('propal',$this->propal->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } - + $this->propal->fetchObjectLinked(); return $this->_cleanObjectDatas($this->propal); } /** * List commercial proposals - * + * * Get a list of commercial proposals - * + * * @param string $sortfield Sort field * @param string $sortorder Sort order * @param int $limit Limit for list @@ -96,12 +96,12 @@ class Proposals extends DolibarrApi */ function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 0, $page = 0, $thirdparty_ids = '', $sqlfilters = '') { global $db, $conf; - + $obj_ret = array(); // case of external user, $thirdparty_ids param is ignored and replaced by user's socid $socids = DolibarrApiAccess::$user->societe_id ? DolibarrApiAccess::$user->societe_id : $thirdparty_ids; - + // If the internal user must only see his customers, force searching by him $search_sale = 0; if (! DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) $search_sale = DolibarrApiAccess::$user->id; @@ -109,7 +109,7 @@ class Proposals extends DolibarrApi $sql = "SELECT t.rowid"; if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) || $search_sale > 0) $sql .= ", sc.fk_soc, sc.fk_user"; // We need these fields in order to filter by sale (including the case where the user can only see his prospects) $sql.= " FROM ".MAIN_DB_PREFIX."propal as t"; - + if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) || $search_sale > 0) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We need this table joined to the select in order to filter by sale $sql.= ' WHERE t.entity IN ('.getEntity('propal').')'; @@ -122,7 +122,7 @@ class Proposals extends DolibarrApi $sql .= " AND sc.fk_user = ".$search_sale; } // Add sql filters - if ($sqlfilters) + if ($sqlfilters) { if (! DolibarrApi::_checkFilters($sqlfilters)) { @@ -131,7 +131,7 @@ class Proposals extends DolibarrApi $regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; $sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; } - + $sql.= $db->order($sortfield, $sortorder); if ($limit) { if ($page < 0) @@ -144,7 +144,7 @@ class Proposals extends DolibarrApi } $result = $db->query($sql); - + if ($result) { $num = $db->num_rows($result); @@ -195,7 +195,7 @@ class Proposals extends DolibarrApi if ($this->propal->create(DolibarrApiAccess::$user) < 0) { throw new RestException(500, "Error creating order", array_merge(array($this->propal->error), $this->propal->errors)); } - + return $this->propal->id; } @@ -203,21 +203,21 @@ class Proposals extends DolibarrApi * Get lines of a commercial proposal * * @param int $id Id of commercial proposal - * + * * @url GET {id}/lines - * - * @return int + * + * @return int */ function getLines($id) { if(! DolibarrApiAccess::$user->rights->propal->lire) { throw new RestException(401); } - + $result = $this->propal->fetch($id); if( ! $result ) { throw new RestException(404, 'Commercial Proposal not found'); } - + if( ! DolibarrApi::_checkAccessToResource('propal',$this->propal->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } @@ -233,22 +233,22 @@ class Proposals extends DolibarrApi * Add a line to given commercial proposal * * @param int $id Id of commercial proposal to update - * @param array $request_data Commercial proposal line data - * + * @param array $request_data Commercial proposal line data + * * @url POST {id}/lines - * - * @return int + * + * @return int */ function postLine($id, $request_data = NULL) { if(! DolibarrApiAccess::$user->rights->propal->creer) { throw new RestException(401); } - + $result = $this->propal->fetch($id); if( ! $result ) { throw new RestException(404, 'Commercial Proposal not found'); } - + if( ! DolibarrApi::_checkAccessToResource('propal',$this->propal->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } @@ -294,22 +294,22 @@ class Proposals extends DolibarrApi * * @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 array $request_data Commercial proposal line data + * * @url PUT {id}/lines/{lineid} - * - * @return object + * + * @return object */ function putLine($id, $lineid, $request_data = NULL) { if(! DolibarrApiAccess::$user->rights->propal->creer) { throw new RestException(401); } - + $result = $this->propal->fetch($id); if( ! $result ) { throw new RestException(404, 'Proposal not found'); } - + if( ! DolibarrApi::_checkAccessToResource('propal',$this->propal->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } @@ -352,21 +352,21 @@ class Proposals extends DolibarrApi * * @param int $id Id of commercial proposal to update * @param int $lineid Id of line to delete - * + * * @url DELETE {id}/lines/{lineid} - * - * @return int + * + * @return int */ function delLine($id, $lineid) { if(! DolibarrApiAccess::$user->rights->propal->creer) { throw new RestException(401); } - + $result = $this->propal->fetch($id); if( ! $result ) { throw new RestException(404, 'Proposal not found'); } - + if( ! DolibarrApi::_checkAccessToResource('propal',$this->propal->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } @@ -382,20 +382,20 @@ 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 array $request_data Datas + * + * @return int */ function put($id, $request_data = NULL) { if(! DolibarrApiAccess::$user->rights->propal->creer) { throw new RestException(401); } - + $result = $this->propal->fetch($id); if( ! $result ) { throw new RestException(404, 'Proposal not found'); } - + if( ! DolibarrApi::_checkAccessToResource('propal',$this->propal->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } @@ -403,18 +403,18 @@ class Proposals extends DolibarrApi if ($field == 'id') continue; $this->propal->$field = $value; } - + if($this->propal->update($id, DolibarrApiAccess::$user,1,'','','update')) return $this->get($id); - + return false; } - + /** * Delete commercial proposal * * @param int $id Commercial proposal ID - * + * * @return array */ function delete($id) @@ -426,32 +426,32 @@ class Proposals extends DolibarrApi if( ! $result ) { throw new RestException(404, 'Commercial Proposal not found'); } - + if( ! DolibarrApi::_checkAccessToResource('propal',$this->propal->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } - + if( ! $this->propal->delete(DolibarrApiAccess::$user)) { throw new RestException(500, 'Error when delete Commercial Proposal : '.$this->propal->error); } - + return array( 'success' => array( 'code' => 200, 'message' => 'Commercial Proposal deleted' ) ); - + } - + /** * Validate a commercial proposal - * + * * @param int $id Commercial proposal ID * @param int $notrigger Use {} - * + * * @url POST {id}/validate - * + * * @return array * FIXME An error 403 is returned if the request has an empty body. * Error message: "Forbidden: Content type `text/plain` is not supported." @@ -469,11 +469,11 @@ class Proposals extends DolibarrApi if( ! $result ) { throw new RestException(404, 'Commercial Proposal not found'); } - + if( ! DolibarrApi::_checkAccessToResource('propal',$this->propal->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } - + $result = $this->propal->valid(DolibarrApiAccess::$user, $notrigger); if ($result == 0) { throw new RestException(500, 'Error nothing done. May be object is already validated'); @@ -481,30 +481,30 @@ class Proposals extends DolibarrApi if ($result < 0) { throw new RestException(500, 'Error when validating Commercial Proposal: '.$this->propal->error); } - + return array( 'success' => array( 'code' => 200, - 'message' => 'Commercial Proposal validated' + 'message' => 'Commercial Proposal validated (Ref='.$this->propal->ref.')' ) ); } - + /** * Validate fields before create or update object - * + * * @param array $data Array with data to verify - * @return array + * @return array * @throws RestException */ function _validate($data) { $propal = array(); - foreach (Orders::$FIELDS as $field) { + foreach (Proposals::$FIELDS as $field) { if (!isset($data[$field])) throw new RestException(400, "$field field missing"); $propal[$field] = $data[$field]; - + } return $propal; } diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php index 70953e58fbf..9292a378327 100644 --- a/htdocs/comm/propal/list.php +++ b/htdocs/comm/propal/list.php @@ -73,9 +73,9 @@ $search_zip=GETPOST('search_zip','alpha'); $search_state=trim(GETPOST("search_state")); $search_country=GETPOST("search_country",'int'); $search_type_thirdparty=GETPOST("search_type_thirdparty",'int'); -$viewstatut=GETPOST('viewstatut'); +$viewstatut=GETPOST('viewstatut','alpha'); $optioncss = GETPOST('optioncss','alpha'); -$object_statut=GETPOST('propal_statut'); +$object_statut=GETPOST('propal_statut','alpha'); $sall=GETPOST('sall', 'alphanohtml'); $mesg=(GETPOST("msg") ? GETPOST("msg") : GETPOST("mesg")); @@ -355,6 +355,7 @@ if ($resql) $soc = new Societe($db); $soc->fetch($socid); $title = $langs->trans('ListOfProposals') . ' - '.$soc->name; + if (empty($search_societe)) $search_societe = $soc->name; } else { @@ -733,7 +734,7 @@ if ($resql) $align=$extrafields->getAlignFlag($key); $sortonfield = "ef.".$key; if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index a4888b44861..ddb44153e49 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -1924,6 +1924,7 @@ if ($action == 'create' && $user->rights->commande->creer) $morehtmlref.=$form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, $user->rights->commande->creer, 'string', '', null, null, '', 1); // Thirdparty $morehtmlref.='
'.$langs->trans('ThirdParty') . ' : ' . $soc->getNomUrl(1); + if (empty($conf->global->MAIN_DISABLE_OTHER_LINK) && $object->thirdparty->id > 0) $morehtmlref.=' ('.$langs->trans("OtherOrders").')'; // Project if (! empty($conf->projet->enabled)) { diff --git a/htdocs/commande/class/api_orders.class.php b/htdocs/commande/class/api_orders.class.php index a1330a7be04..d4b4502d4ed 100644 --- a/htdocs/commande/class/api_orders.class.php +++ b/htdocs/commande/class/api_orders.class.php @@ -80,8 +80,8 @@ class Orders extends DolibarrApi return $this->_cleanObjectDatas($this->commande); } - - + + /** * List orders * @@ -101,7 +101,7 @@ class Orders extends DolibarrApi global $db, $conf; $obj_ret = array(); - + // case of external user, $thirdparty_ids param is ignored and replaced by user's socid $socids = DolibarrApiAccess::$user->societe_id ? DolibarrApiAccess::$user->societe_id : $thirdparty_ids; @@ -125,7 +125,7 @@ class Orders extends DolibarrApi $sql .= " AND sc.fk_user = ".$search_sale; } // Add sql filters - if ($sqlfilters) + if ($sqlfilters) { if (! DolibarrApi::_checkFilters($sqlfilters)) { @@ -134,7 +134,7 @@ class Orders extends DolibarrApi $regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; $sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; } - + $sql.= $db->order($sortfield, $sortorder); if ($limit) { if ($page < 0) @@ -490,7 +490,7 @@ class Orders extends DolibarrApi return array( 'success' => array( 'code' => 200, - 'message' => 'Order validated' + 'message' => 'Order validated (Ref='.$this->commande->ref.')' ) ); } @@ -502,14 +502,14 @@ class Orders extends DolibarrApi * @return array Array of cleaned object properties */ function _cleanObjectDatas($object) { - + $object = parent::_cleanObjectDatas($object); - + unset($object->address); - + return $object; } - + /** * Validate fields before create or update object * diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index f9ebf8a4cde..3262a563f4c 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -1000,7 +1000,7 @@ class Commande extends CommonOrder $this->db->begin(); - // get extrafields so they will be clone + // get lines so they will be clone foreach($this->lines as $line) $line->fetch_optionals($line->rowid); diff --git a/htdocs/commande/customer.php b/htdocs/commande/customer.php index 8aa699fed71..205efc3ad91 100644 --- a/htdocs/commande/customer.php +++ b/htdocs/commande/customer.php @@ -120,11 +120,11 @@ if ($resql) print ''; print ''; - print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","","",'valign="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"s.town","","",'valign="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("CustomerCode"),$_SERVER["PHP_SELF"],"s.code_client","","",'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("AccountancyCode"),$_SERVER["PHP_SELF"],"s.code_compta","","",'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"datec",$addu,"",'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom","","",'valign="center"',$sortfield,$sortorder); + print_liste_field_titre("Town",$_SERVER["PHP_SELF"],"s.town","","",'valign="center"',$sortfield,$sortorder); + print_liste_field_titre("CustomerCode",$_SERVER["PHP_SELF"],"s.code_client","","",'align="left"',$sortfield,$sortorder); + print_liste_field_titre("AccountancyCode",$_SERVER["PHP_SELF"],"s.code_compta","","",'align="left"',$sortfield,$sortorder); + print_liste_field_titre("DateCreation",$_SERVER["PHP_SELF"],"datec",$addu,"",'align="right"',$sortfield,$sortorder); print "\n"; // Lignes des champs de filtre @@ -146,7 +146,7 @@ if ($resql) print ''; - + print "\n"; $var=true; @@ -155,7 +155,7 @@ if ($resql) { $obj = $db->fetch_object($resql); - + print ''; print '\n"; + print '\n"; if (! $i) $totalarray['nbfield']++; } diff --git a/htdocs/compta/bank/class/account.class.php b/htdocs/compta/bank/class/account.class.php index 08631abec79..47c3e5122ff 100644 --- a/htdocs/compta/bank/class/account.class.php +++ b/htdocs/compta/bank/class/account.class.php @@ -1959,6 +1959,67 @@ class AccountLine extends CommonObject } + /** + * Increase/decrease operation date of a rowid + * + * @param int $rowid Id of line + * @param int $sign 1 or -1 + * @return int >0 if OK, 0 if KO + */ + function dateo_change($rowid,$sign=1) + { + $sql = "SELECT dateo FROM ".MAIN_DB_PREFIX."bank WHERE rowid = ".$rowid; + $resql = $this->db->query($sql); + if ($resql) + { + $obj=$this->db->fetch_object($resql); + $newdate=$this->db->jdate($obj->dateo)+(3600*24*$sign); + + $sql = "UPDATE ".MAIN_DB_PREFIX."bank SET"; + $sql.= " dateo = '".$this->db->idate($newdate)."'"; + $sql.= " WHERE rowid = ".$rowid; + + $result = $this->db->query($sql); + if ($result) + { + if ($this->db->affected_rows($result)) + { + return 1; + } + } + else + { + dol_print_error($this->db); + return 0; + } + } + else dol_print_error($this->db); + return 0; + } + + /** + * Increase operation date of a rowid + * + * @param int $id Id of line to change + * @return int >0 if OK, 0 if KO + */ + function dateo_next($id) + { + return $this->dateo_change($id,1); + } + + /** + * Decrease operation date of a rowid + * + * @param int $id Id of line to change + * @return int >0 if OK, 0 if KO + */ + function dateo_previous($id) + { + return $this->dateo_change($id,-1); + } + + /** * Load miscellaneous information for tab "Info" * diff --git a/htdocs/compta/bank/class/api_bankaccounts.class.php b/htdocs/compta/bank/class/api_bankaccounts.class.php index 869b86238ff..c6fd3f72def 100644 --- a/htdocs/compta/bank/class/api_bankaccounts.class.php +++ b/htdocs/compta/bank/class/api_bankaccounts.class.php @@ -72,7 +72,7 @@ class BankAccounts extends DolibarrApi $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."bank_account as t"; $sql.= ' WHERE t.entity IN ('.getEntity('bank_account').')'; // Add sql filters - if ($sqlfilters) + if ($sqlfilters) { if (! DolibarrApi::_checkFilters($sqlfilters)) { @@ -81,7 +81,7 @@ class BankAccounts extends DolibarrApi $regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; $sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; } - + $sql.= $this->db->order($sortfield, $sortorder); if ($limit) { if ($page < 0) @@ -89,10 +89,10 @@ class BankAccounts extends DolibarrApi $page = 0; } $offset = $limit * $page; - + $sql.= $this->db->plimit($limit + 1, $offset); } - + dol_syslog("API Rest request"); $result = $this->db->query($sql); @@ -236,7 +236,7 @@ class BankAccounts extends DolibarrApi function _validate($data) { $account = array(); - foreach (Accounts::$FIELDS as $field) { + foreach (BankAccounts::$FIELDS as $field) { if (! isset($data[$field])) throw new RestException(400, "$field field missing"); $account[$field] = $data[$field]; diff --git a/htdocs/compta/bank/class/paymentvarious.class.php b/htdocs/compta/bank/class/paymentvarious.class.php index 9812269dcb6..1d0568c8064 100644 --- a/htdocs/compta/bank/class/paymentvarious.class.php +++ b/htdocs/compta/bank/class/paymentvarious.class.php @@ -86,9 +86,9 @@ class PaymentVarious extends CommonObject // Update request $sql = "UPDATE ".MAIN_DB_PREFIX."payment_various SET"; - $sql.= " tms=".$this->db->idate($this->tms).","; - $sql.= " datep=".$this->db->idate($this->datep).","; - $sql.= " datev=".$this->db->idate($this->datev).","; + $sql.= " tms='".$this->db->idate($this->tms)."',"; + $sql.= " datep='".$this->db->idate($this->datep)."',"; + $sql.= " datev='".$this->db->idate($this->datev)."',"; $sql.= " sens=".$this->sens.","; $sql.= " amount=".price2num($this->amount).","; $sql.= " fk_typepayment=".$this->fk_typepayment."',"; diff --git a/htdocs/compta/bank/index.php b/htdocs/compta/bank/index.php index 9bc8608692d..7d5046d18c9 100644 --- a/htdocs/compta/bank/index.php +++ b/htdocs/compta/bank/index.php @@ -418,7 +418,7 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab $align=$extrafields->getAlignFlag($key); $sortonfield = "ef.".$key; if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } @@ -492,12 +492,10 @@ foreach ($accounts as $key=>$type) // Account number if (! empty($arrayfields['b.account_number']['checked'])) { - include_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; - $accountingaccount = new AccountingAccount($db); $accountingaccount->fetch('',$acc->account_number); - print ''; + print ''; if (! $i) $totalarray['nbfield']++; } diff --git a/htdocs/compta/bank/ligne.php b/htdocs/compta/bank/ligne.php index 99362167a07..525b7a72e12 100644 --- a/htdocs/compta/bank/ligne.php +++ b/htdocs/compta/bank/ligne.php @@ -71,13 +71,20 @@ if ($cancel) } } -if ($user->rights->banque->consolidate && $action == 'dvnext') + +if ($user->rights->banque->consolidate && $action == 'donext') +{ + $al = new AccountLine($db); + $al->dateo_next($_GET["rowid"]); +}elseif ($user->rights->banque->consolidate && $action == 'doprev') +{ + $al = new AccountLine($db); + $al->dateo_previous($_GET["rowid"]); +}elseif ($user->rights->banque->consolidate && $action == 'dvnext') { $al = new AccountLine($db); $al->datev_next($_GET["rowid"]); -} - -if ($user->rights->banque->consolidate && $action == 'dvprev') +}elseif ($user->rights->banque->consolidate && $action == 'dvprev') { $al = new AccountLine($db); $al->datev_previous($_GET["rowid"]); @@ -479,6 +486,14 @@ if ($result) { print ''; } else diff --git a/htdocs/compta/bank/treso.php b/htdocs/compta/bank/treso.php index 1dbe17d6a13..0e2d3b35f38 100644 --- a/htdocs/compta/bank/treso.php +++ b/htdocs/compta/bank/treso.php @@ -275,6 +275,8 @@ if ($_REQUEST["account"] || $_REQUEST["ref"]) $refcomp=$societestatic->getNomUrl(1,'',24); $paiement = $facturestatic->getSommePaiement(); // Payment already done + $paiement+= $facturestatic->getSumDepositsUsed(); + $paiement+= $facturestatic->getSumCreditNotesUsed(); } if ($obj->family == 'social_contribution') { diff --git a/htdocs/compta/bank/various_payment/card.php b/htdocs/compta/bank/various_payment/card.php index f75c111094d..e16c822db9b 100644 --- a/htdocs/compta/bank/various_payment/card.php +++ b/htdocs/compta/bank/various_payment/card.php @@ -28,6 +28,7 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/paymentvarious.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php'; +if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; $langs->loadLangs(array("compta", "banks", "bills", "users", "accountancy")); @@ -70,7 +71,7 @@ if (empty($reshook)) { if ($action != 'addlink') { - $urltogo=$backtopage?$backtopage:dol_buildpath('/mymodule/myobject_list.php',1); + $urltogo=$backtopage?$backtopage:dol_buildpath('/compta/bank/various_payment/index.php',1); header("Location: ".$urltogo); exit; } @@ -172,7 +173,7 @@ if (empty($reshook)) if ($result >= 0) { $db->commit(); - header("Location: ".DOL_URL_ROOT.'/compta/salaries/index.php'); + header("Location: ".DOL_URL_ROOT.'/compta/bank/various_payment/index.php'); exit; } else @@ -339,9 +340,9 @@ if ($id) print '
'; print ''; print '
'; diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php index 9e0b04ab6e9..b2d4f5d9a61 100644 --- a/htdocs/commande/list.php +++ b/htdocs/commande/list.php @@ -578,6 +578,7 @@ if ($resql) $soc = new Societe($db); $soc->fetch($socid); $title = $langs->trans('ListOfOrders') . ' - '.$soc->name; + if (empty($search_company)) $search_company = $soc->name; } else { @@ -1035,7 +1036,7 @@ if ($resql) $align=$extrafields->getAlignFlag($key); $sortonfield = "ef.".$key; if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/commande/orderstoinvoice.php b/htdocs/commande/orderstoinvoice.php index fa9f810b036..83ec75043c3 100644 --- a/htdocs/commande/orderstoinvoice.php +++ b/htdocs/commande/orderstoinvoice.php @@ -602,12 +602,12 @@ if (($action != 'create' && $action != 'add') || ($action == 'create' && $error) print ''; print ''; - print_liste_field_titre($langs->trans('Ref'),$_SERVER["PHP_SELF"],'c.ref','','&socid='.$socid,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('RefCustomerOrder'),$_SERVER["PHP_SELF"],'c.ref_client','','&socid='.$socid,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('OrderDate'),$_SERVER["PHP_SELF"],'c.date_commande','','&socid='.$socid, 'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('DeliveryDate'),$_SERVER["PHP_SELF"],'c.date_livraison','','&socid='.$socid, 'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('Status'),'','','','','align="right"'); - print_liste_field_titre($langs->trans('GenerateBill'),'','','','','align="center"'); + print_liste_field_titre('Ref',$_SERVER["PHP_SELF"],'c.ref','','&socid='.$socid,'',$sortfield,$sortorder); + print_liste_field_titre('RefCustomerOrder',$_SERVER["PHP_SELF"],'c.ref_client','','&socid='.$socid,'',$sortfield,$sortorder); + print_liste_field_titre('OrderDate',$_SERVER["PHP_SELF"],'c.date_commande','','&socid='.$socid, 'align="center"',$sortfield,$sortorder); + print_liste_field_titre('DeliveryDate',$_SERVER["PHP_SELF"],'c.date_livraison','','&socid='.$socid, 'align="center"',$sortfield,$sortorder); + print_liste_field_titre('Status','','','','','align="right"'); + print_liste_field_titre('GenerateBill','','','','','align="center"'); print ''; // Lignes des champs de filtre diff --git a/htdocs/compta/bank/bankentries.php b/htdocs/compta/bank/bankentries.php index a19ccbb6b7c..f7a33741d02 100644 --- a/htdocs/compta/bank/bankentries.php +++ b/htdocs/compta/bank/bankentries.php @@ -605,7 +605,7 @@ if ($resql) // print '
'; print '
'; print ''.$langs->trans("InputReceiptNumber").': '; - print ''; // The only default value is value we just entered + print ''; // The only default value is value we just entered print '
'; if ($options) { print $langs->trans("EventualyAddCategory").': '; @@ -649,6 +649,16 @@ if ($resql) { dol_print_error($db); } + /** + * Using BANK_REPORT_LAST_NUM_RELEVE to automatically report last num (or not) + */ + if ($conf->global->BANK_REPORT_LAST_NUM_RELEVE == 1) { + print ' + + '; + } print '

'; // print '
'; } @@ -896,7 +906,7 @@ if ($resql) $align=$extrafields->getAlignFlag($key); $sortonfield = "ef.".$key; if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } @@ -1117,7 +1127,16 @@ if ($resql) // Date ope if (! empty($arrayfields['b.dateo']['checked'])) { - print '
'.dol_print_date($db->jdate($objp->do),"day")."'; + print ''.dol_print_date($db->jdate($objp->do),"day").""; + print ' '; + print ''; + print ''; + print img_edit_remove() . " "; + print ''; + print img_edit_add() .""; + print ''; + print "'.length_accountg($accountingaccount->getNomUrl(0,1,1,'',1)).''.$accountingaccount->getNomUrl(0,1,1,'',1).''; print $form->select_date($db->jdate($objp->do),'dateo','','','','update',1,0,1,$objp->rappro); + if (! $objp->rappro) + { + print '   '; + print ''; + print img_edit_remove() . " "; + print ''; + print img_edit_add() .""; + } print '
'; - $linkback = ''.$langs->trans("BackToList").''; + $linkback = ''.$langs->trans("BackToList").''; - print ""; + print ""; print ''; @@ -349,11 +350,13 @@ if ($id) // Label print ''; + // Payment date print ""; print ''; + // Value date print ''; @@ -370,11 +373,10 @@ if ($id) print ''; - print_liste_field_titre($langs->trans("Name"),$_SERVER["PHP_SELF"],"p.lastname","",$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Poste"),$_SERVER["PHP_SELF"],"p.poste","",$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Address").' / '.$langs->trans("Phone").' / '.$langs->trans("Email"),$_SERVER["PHP_SELF"],"","",$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"p.statut","",$param,'',$sortfield,$sortorder); + print_liste_field_titre("Name",$_SERVER["PHP_SELF"],"p.lastname","",$param,'',$sortfield,$sortorder); + print_liste_field_titre("Poste",$_SERVER["PHP_SELF"],"p.poste","",$param,'',$sortfield,$sortorder); + print_liste_field_titre( $langs->trans("Address").' / '.$langs->trans("Phone").' / '.$langs->trans("Email"),$_SERVER["PHP_SELF"],"","",$param,'',$sortfield,$sortorder); + print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"p.statut","",$param,'',$sortfield,$sortorder); // Add to agenda if (! empty($conf->agenda->enabled) && ! empty($user->rights->agenda->myactions->create)) { diff --git a/htdocs/core/lib/date.lib.php b/htdocs/core/lib/date.lib.php index 202a598d8ae..71912714b90 100644 --- a/htdocs/core/lib/date.lib.php +++ b/htdocs/core/lib/date.lib.php @@ -2,6 +2,7 @@ /* Copyright (C) 2004-2011 Laurent Destailleur * Copyright (C) 2005-2011 Regis Houssin * Copyright (C) 2011-2015 Juanjo Menent + * Copyright (C) 2017 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 @@ -419,7 +420,7 @@ function dol_get_next_week($day, $week, $month, $year) { $tmparray = dol_get_first_day_week($day, $month, $year); - $time=dol_mktime(12,0,0,$month,$tmparray['first_day'],$year,1,0); + $time=dol_mktime(12,0,0,$tmparray['first_month'],$tmparray['first_day'],$tmparray['first_year'],1,0); $time+=24*60*60*7; $tmparray=dol_getdate($time,true); diff --git a/htdocs/core/lib/expensereport.lib.php b/htdocs/core/lib/expensereport.lib.php index a5f19174a84..1efdc73f247 100644 --- a/htdocs/core/lib/expensereport.lib.php +++ b/htdocs/core/lib/expensereport.lib.php @@ -132,6 +132,22 @@ function expensereport_admin_prepare_head() $head[$h][2] = 'expensereport'; $h++; + if (!empty($conf->global->MAIN_USE_EXPENSE_IK)) + { + $head[$h][0] = DOL_URL_ROOT."/admin/expensereport_ik.php"; + $head[$h][1] = $langs->trans("ExpenseReportsIk"); + $head[$h][2] = 'expenseik'; + $h++; + } + + if (!empty($conf->global->MAIN_USE_EXPENSE_RULE)) + { + $head[$h][0] = DOL_URL_ROOT."/admin/expensereport_rules.php"; + $head[$h][1] = $langs->trans("ExpenseReportsRules"); + $head[$h][2] = 'expenserules'; + $h++; + } + // Show more tabs from modules // Entries must be declared in modules descriptor with line // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab diff --git a/htdocs/core/lib/files.lib.php b/htdocs/core/lib/files.lib.php index 77502f1737c..42324ec2e3b 100644 --- a/htdocs/core/lib/files.lib.php +++ b/htdocs/core/lib/files.lib.php @@ -284,6 +284,90 @@ function dol_dir_list_in_database($path, $filter="", $excludefilter=null, $sortc } +/** + * Complete $filearray with data from database. + * This will call doldir_list_indatabase to complate filearray. + * + * @param $filearray Array of files get using dol_dir_list + * @param $relativedir Relative dir from DOL_DATA_ROOT + * @return void + */ +function completeFileArrayWithDatabaseInfo(&$filearray, $relativedir) +{ + global $db, $user; + + $filearrayindatabase = dol_dir_list_in_database($relativedir, '', null, 'name', SORT_ASC); + + //var_dump($filearray); + //var_dump($filearrayindatabase); + + // Complete filearray with properties found into $filearrayindatabase + foreach($filearray as $key => $val) + { + $found=0; + // Search if it exists into $filearrayindatabase + foreach($filearrayindatabase as $key2 => $val2) + { + if ($filearrayindatabase[$key2]['name'] == $filearray[$key]['name']) + { + $filearray[$key]['position_name']=($filearrayindatabase[$key2]['position']?$filearrayindatabase[$key2]['position']:'0').'_'.$filearrayindatabase[$key2]['name']; + $filearray[$key]['position']=$filearrayindatabase[$key2]['position']; + $filearray[$key]['cover']=$filearrayindatabase[$key2]['cover']; + $filearray[$key]['acl']=$filearrayindatabase[$key2]['acl']; + $filearray[$key]['rowid']=$filearrayindatabase[$key2]['rowid']; + $filearray[$key]['label']=$filearrayindatabase[$key2]['label']; + $found=1; + break; + } + } + + if (! $found) // This happen in transition toward version 6, or if files were added manually into os dir. + { + $filearray[$key]['position']='999999'; // File not indexed are at end. So if we add a file, it will not replace an existing position + $filearray[$key]['cover']=0; + $filearray[$key]['acl']=''; + + $rel_filename = preg_replace('/^'.preg_quote(DOL_DATA_ROOT,'/').'/', '', $filearray[$key]['fullname']); + if (! preg_match('/([\\/]temp[\\/]|[\\/]thumbs|\.meta$)/', $rel_filetorenameafter)) // If not a tmp file + { + dol_syslog("list_of_documents We found a file called '".$filearray[$key]['name']."' not indexed into database. We add it"); + include_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmfiles.class.php'; + $ecmfile=new EcmFiles($db); + + // Add entry into database + $filename = basename($rel_filename); + $rel_dir = dirname($rel_filename); + $rel_dir = preg_replace('/[\\/]$/', '', $rel_dir); + $rel_dir = preg_replace('/^[\\/]/', '', $rel_dir); + + $ecmfile->filepath = $rel_dir; + $ecmfile->filename = $filename; + $ecmfile->label = md5_file(dol_osencode($filearray[$key]['fullname'])); // $destfile is a full path to file + $ecmfile->fullpath_orig = $filearray[$key]['fullname']; + $ecmfile->gen_or_uploaded = 'unknown'; + $ecmfile->description = ''; // indexed content + $ecmfile->keyword = ''; // keyword content + $result = $ecmfile->create($user); + if ($result < 0) + { + setEventMessages($ecmfile->error, $ecmfile->errors, 'warnings'); + } + else + { + $filearray[$key]['rowid']=$result; + } + } + else + { + $filearray[$key]['rowid']=0; // Should not happened + } + } + } + + /*var_dump($filearray);*/ +} + + /** * Fast compare of 2 files identified by their properties ->name, ->date and ->size * @@ -393,6 +477,7 @@ function dol_dir_is_emtpy($folder) * * @param string $file Filename * @return int <0 if KO, Number of lines in files if OK + * @see dol_nboflines */ function dol_count_nb_of_line($file) { @@ -448,12 +533,12 @@ function dol_filemtime($pathoffile) * Make replacement of strings into a file. * * @param string $srcfile Source file (can't be a directory) - * @param array $arrayreplacement Array with strings to replace + * @param array $arrayreplacement Array with strings to replace. Example: array('valuebefore'=>'valueafter', ...) * @param string $destfile Destination file (can't be a directory). If empty, will be same than source file. * @param int $newmask Mask for new file (0 by default means $conf->global->MAIN_UMASK). Example: '0666' * @param int $indexdatabase Index new file into database. * @return int <0 if error, 0 if nothing done (dest file already exists), >0 if OK - * @see dolCopyr + * @see dolCopyr dolReplaceRegExInFile */ function dolReplaceInFile($srcfile, $arrayreplacement, $destfile='', $newmask=0, $indexdatabase=0) { @@ -514,6 +599,23 @@ function dolReplaceInFile($srcfile, $arrayreplacement, $destfile='', $newmask=0, return 1; } +/** + * Make replacement of strings into a file. + * + * @param string $srcfile Source file (can't be a directory) + * @param array $arrayreplacement Array with strings to replace. Example: array('valuebefore'=>'valueafter', ...) + * @param string $destfile Destination file (can't be a directory). If empty, will be same than source file. + * @param int $newmask Mask for new file (0 by default means $conf->global->MAIN_UMASK). Example: '0666' + * @param int $indexdatabase Index new file into database. + * @return int <0 if error, 0 if nothing done (dest file already exists), >0 if OK + * @see dolCopyr dolReplaceInFile + */ +function dolReplaceRegExInFile($srcfile, $arrayreplacement, $destfile='', $newmask=0, $indexdatabase=0) +{ + // TODO + +} + /** * Copy a file to another file. * @@ -570,7 +672,7 @@ function dol_copy($srcfile, $destfile, $newmask=0, $overwriteifexists=1) } /** - * Copy a dir to another dir. + * Copy a dir to another dir. This include recursive subdirectories. * * @param string $srcfile Source file (a directory) * @param string $destfile Destination file (a directory) @@ -612,7 +714,7 @@ function dolCopyDir($srcfile, $destfile, $newmask, $overwriteifexists, $arrayrep $dir_handle=opendir($ossrcfile); while ($file=readdir($dir_handle)) { - if ($file!="." && $file!="..") + if ($file != "." && $file != ".." && ! is_link($ossrcfile."/".$file)) { if (is_dir($ossrcfile."/".$file)) { @@ -661,7 +763,7 @@ function dolCopyDir($srcfile, $destfile, $newmask, $overwriteifexists, $arrayrep * Move a file into another name. * Note: * - This function differs from dol_move_uploaded_file, because it can be called in any context. - * - Database of files is updated. + * - Database indexes for files are updated. * - Test on antivirus is done only if param testvirus is provided and an antivirus was set. * * @param string $srcfile Source file (can't be a directory. use native php @rename() to move a directory) @@ -724,7 +826,7 @@ function dol_move($srcfile, $destfile, $newmask=0, $overwriteifexists=1, $testvi // Rename entry into ecm database $rel_filetorenamebefore = preg_replace('/^'.preg_quote(DOL_DATA_ROOT,'/').'/', '', $srcfile); $rel_filetorenameafter = preg_replace('/^'.preg_quote(DOL_DATA_ROOT,'/').'/', '', $destfile); - if (! preg_match('/(\/temp\/|\/thumbs|\.meta$)/', $rel_filetorenameafter)) // If not a tmp file + if (! preg_match('/([\\/]temp[\\/]|[\\/]thumbs|\.meta$)/', $rel_filetorenameafter)) // If not a tmp file { $rel_filetorenamebefore = preg_replace('/^[\\/]/', '', $rel_filetorenamebefore); $rel_filetorenameafter = preg_replace('/^[\\/]/', '', $rel_filetorenameafter); @@ -981,7 +1083,8 @@ function dol_move_uploaded_file($src_file, $dest_file, $allowoverwrite, $disable } /** - * Remove a file or several files with a mask + * Remove a file or several files with a mask. + * This delete file physically but also database indexes. * * @param string $file File to delete or mask of files to delete * @param int $disableglob Disable usage of glob like * so function is an exact delete function that will return error if no file found @@ -1136,7 +1239,7 @@ function dol_delete_dir_recursive($dir, $count=0, $nophperrors=0, $onlysub=0, &$ if ($item != "." && $item != "..") { - if (is_dir(dol_osencode("$dir/$item"))) + if (is_dir(dol_osencode("$dir/$item")) && ! is_link(dol_osencode("$dir/$item"))) { $count=dol_delete_dir_recursive("$dir/$item", $count, $nophperrors, 0, $countdeleted); } @@ -1221,16 +1324,17 @@ function dol_delete_preview($object) /** * Create a meta file with document file into same directory. - * This should allow "grep" search. - * This feature is enabled only if option MAIN_DOC_CREATE_METAFILE is set. + * This make "grep" search possible. + * This feature to generate the meta file is enabled only if option MAIN_DOC_CREATE_METAFILE is set. * * @param CommonObject $object Object - * @return int 0 if we did nothing, >0 success, <0 error + * @return int 0 if do nothing, >0 if we update meta file too, <0 if KO */ function dol_meta_create($object) { global $conf; + // Create meta file if (empty($conf->global->MAIN_DOC_CREATE_METAFILE)) return 0; // By default, no metafile. // Define parent dir of elements @@ -1248,9 +1352,9 @@ function dol_meta_create($object) { $object->fetch_thirdparty(); - $facref = dol_sanitizeFileName($object->ref); - $dir = $dir . "/" . $facref; - $file = $dir . "/" . $facref . ".meta"; + $objectref = dol_sanitizeFileName($object->ref); + $dir = $dir . "/" . $objectref; + $file = $dir . "/" . $objectref . ".meta"; if (! is_dir($dir)) { @@ -1265,15 +1369,15 @@ function dol_meta_create($object) DATE=\"" . dol_print_date($object->date,'') . "\" NB_ITEMS=\"" . $nblignes . "\" CLIENT=\"" . $client . "\" - TOTAL_HT=\"" . $object->total_ht . "\" - TOTAL_TTC=\"" . $object->total_ttc . "\"\n"; + AMOUNT_WO_TAX=\"" . $object->total_ht . "\" + AMOUNT_INC_TAX=\"" . $object->total_ttc . "\"\n"; for ($i = 0 ; $i < $nblignes ; $i++) { //Pour les articles $meta .= "ITEM_" . $i . "_QUANTITY=\"" . $object->lines[$i]->qty . "\" - ITEM_" . $i . "_TOTAL_HT=\"" . $object->lines[$i]->total_ht . "\" - ITEM_" . $i . "_TVA=\"" .$object->lines[$i]->tva_tx . "\" + ITEM_" . $i . "_AMOUNT_WO_TAX=\"" . $object->lines[$i]->total_ht . "\" + ITEM_" . $i . "_VAT=\"" .$object->lines[$i]->tva_tx . "\" ITEM_" . $i . "_DESCRIPTION=\"" . str_replace("\r\n","",nl2br($object->lines[$i]->desc)) . "\" "; } @@ -1287,6 +1391,10 @@ function dol_meta_create($object) return 1; } + else + { + dol_syslog('FailedToDetectDirInDolMetaCreateFor'.$object->element, LOG_WARNING); + } return 0; } @@ -1325,20 +1433,21 @@ function dol_init_file_process($pathtoscan='', $trackid='') /** - * Get and save an upload file (for example after submitting a new file a mail form). + * Get and save an upload file (for example after submitting a new file a mail form). Database index of file is also updated if donotupdatesession is set. * All information used are in db, conf, langs, user and _FILES. * Note: This function can be used only into a HTML page context. * * @param string $upload_dir Directory where to store uploaded file (note: used to forge $destpath = $upload_dir + filename) * @param int $allowoverwrite 1=Allow overwrite existing file - * @param int $donotupdatesession 1=Do no edit _SESSION variable + * @param int $donotupdatesession 1=Do no edit _SESSION variable but update database index. 0=Update _SESSION and not database index. * @param string $varfiles _FILES var name * @param string $savingdocmask Mask to use to define output filename. For example 'XXXXX-__YYYYMMDD__-__file__' * @param string $link Link to add (to add a link instead of a file) * @param string $trackid Track id (used to prefix name of session vars to avoid conflict) + * @param int $generatethumbs 1=Generate also thumbs for uploaded image files * @return int <=0 if KO, >0 if OK */ -function dol_add_file_process($upload_dir, $allowoverwrite=0, $donotupdatesession=0, $varfiles='addedfile', $savingdocmask='', $link=null, $trackid='') +function dol_add_file_process($upload_dir, $allowoverwrite=0, $donotupdatesession=0, $varfiles='addedfile', $savingdocmask='', $link=null, $trackid='', $generatethumbs=1) { global $db,$user,$conf,$langs; @@ -1389,16 +1498,19 @@ function dol_add_file_process($upload_dir, $allowoverwrite=0, $donotupdatesessio include_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; // Generate thumbs. - if (image_format_supported($destfull) == 1) + if ($generatethumbs) { - // Create thumbs - // We can't use $object->addThumbs here because there is no $object known + if (image_format_supported($destfull) == 1) + { + // Create thumbs + // We can't use $object->addThumbs here because there is no $object known - // Used on logon for example - $imgThumbSmall = vignette($destfull, $maxwidthsmall, $maxheightsmall, '_small', 50, "thumbs"); - // Create mini thumbs for image (Ratio is near 16/9) - // Used on menu or for setup page for example - $imgThumbMini = vignette($destfull, $maxwidthmini, $maxheightmini, '_mini', 50, "thumbs"); + // Used on logon for example + $imgThumbSmall = vignette($destfull, $maxwidthsmall, $maxheightsmall, '_small', 50, "thumbs"); + // Create mini thumbs for image (Ratio is near 16/9) + // Used on menu or for setup page for example + $imgThumbMini = vignette($destfull, $maxwidthmini, $maxheightmini, '_mini', 50, "thumbs"); + } } // Update session @@ -1415,7 +1527,7 @@ function dol_add_file_process($upload_dir, $allowoverwrite=0, $donotupdatesessio { $rel_dir = preg_replace('/^'.preg_quote(DOL_DATA_ROOT,'/').'/', '', $upload_dir); - if (! preg_match('/[\\/]temp[\\/]/', $rel_dir)) // If not a tmp dir + if (! preg_match('/[\\/]temp[\\/]|[\\/]thumbs|\.meta$/', $rel_dir)) // If not a tmp dir { $filename = basename($destfile); $rel_dir = preg_replace('/[\\/]$/', '', $rel_dir); diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index fae3c4eae5e..15af95ffb9c 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -624,18 +624,26 @@ function dol_buildpath($path, $type=0) /** * Create a clone of instance of object (new instance with same value for properties) - * Property that are reference are also new object (true clone) + * With native = 0: Property that are reference are also new object (true clone). This means $this->db is not valid. + * With native = 1: Use PHP clone. Property that are reference are same pointer. This means $this->db is still valid. * * @param object $object Object to clone + * @param int $native Native method or true method * @return object Object clone * @see https://php.net/manual/language.oop5.cloning.php */ -function dol_clone($object) +function dol_clone($object, $native=0) { //dol_syslog(__FUNCTION__ . " is deprecated", LOG_WARNING); - //$myclone = clone $object; // PHP clone is a shallow copy only, not a real clone, so properties of references will keep references (refer to the same target/variable - $myclone=unserialize(serialize($object)); + if (empty($native)) + { + $myclone=unserialize(serialize($object)); + } + else + { + $myclone = clone $object; // PHP clone is a shallow copy only, not a real clone, so properties of references will keep references (refer to the same target/variable) + } return $myclone; } @@ -1127,7 +1135,7 @@ function dol_get_fiche_end($notab=0) * @param string $paramid Name of parameter to use to name the id into the URL next/previous link * @param string $morehtml More html content to output just before the nav bar * @param int $shownav Show Condition (navigation is shown if value is 1) - * @param string $fieldid Nom du champ en base a utiliser pour select next et previous (we make the select max and min on this field) + * @param string $fieldid Nom du champ en base a utiliser pour select next et previous (we make the select max and min on this field). Use 'none' for no prev/next search. * @param string $fieldref Nom du champ objet ref (object->ref) a utiliser pour select next et previous * @param string $morehtmlref More html to show after ref * @param string $moreparam More param to add in nav link url. @@ -1278,7 +1286,8 @@ function dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='r if ($object->element == 'project' && ! $object->public) $picto = 'project'; // instead of projectpub $nophoto=img_picto('', 'object_'.$picto, '', false, 1); } - $morehtmlleft.='
No photo
'; + $morehtmlleft.=''; + $morehtmlleft.='
No photo
'; $morehtmlleft.=''; } } @@ -1333,7 +1342,7 @@ function dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='r if (! empty($object->label)) $morehtmlref.='
'.$object->label.'
'; } - if ($object->element != 'product' && $object->element != 'bookmark') + if ($object->element != 'product' && $object->element != 'bookmark' && $object->element != 'ecm_directories') { $morehtmlref.='
'; $morehtmlref.=$object->getBannerAddress('refaddress',$object); @@ -2545,7 +2554,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ if ($pictoisfullpath) { // Clean parameters - if (! preg_match('/(\.png|\.gif)$/i',$picto)) $picto .= '.png'; + if (! preg_match('/(\.png|\.gif|\.svg)$/i',$picto)) $picto .= '.png'; $fullpathpicto = $picto; } else @@ -2567,7 +2576,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $ } // Clean parameters - if (! preg_match('/(\.png|\.gif)$/i',$picto)) $picto .= '.png'; + if (! preg_match('/(\.png|\.gif|\.svg)$/i',$picto)) $picto .= '.png'; // If alt path are defined, define url where img file is, according to physical path foreach ($conf->file->dol_document_root as $type => $dirroot) // ex: array(["main"]=>"/home/maindir/htdocs", ["alt0"]=>"/home/moddir0/htdocs", ...) { @@ -4766,22 +4775,57 @@ function dol_string_nohtmltag($StringHtml,$removelinefeed=1,$pagecodeto='UTF-8') * Return first line of text. Cut will depends if content is HTML or not. * * @param string $text Input text + * @param int $nboflines Nb of lines to get (default is 1 = first line only) * @return string Output text * @see dol_nboflines_bis, dol_string_nohtmltag, dol_escape_htmltag */ -function dolGetFirstLineOfText($text) +function dolGetFirstLineOfText($text, $nboflines=1) { - if (dol_textishtml($text)) + if ($nboflines == 1) { - $firstline=preg_replace('/]*>.*$/s','',$text); // The s pattern modifier means the . can match newline characters - $firstline=preg_replace('/]*>.*$/s','',$firstline); // The s pattern modifier means the . can match newline characters + if (dol_textishtml($text)) + { + $firstline=preg_replace('/]*>.*$/s','',$text); // The s pattern modifier means the . can match newline characters + $firstline=preg_replace('/]*>.*$/s','',$firstline); // The s pattern modifier means the . can match newline characters + } + else + { + $firstline=preg_replace('/[\n\r].*/','',$text); + } + return $firstline.((strlen($firstline) != strlen($text))?'...':''); } else { - $firstline=preg_replace('/[\n\r].*/','',$text); + $ishtml=0; + if (dol_textishtml($text)) + { + $text=preg_replace('/\n/','',$text); + $ishtml=1; + $repTable = array("\t" => " ", "\n" => " ", "\r" => " ", "\0" => " ", "\x0B" => " "); + } + else + { + $repTable = array("\t" => " ", "\n" => "
", "\r" => " ", "\0" => " ", "\x0B" => " "); + } + + $text = strtr($text, $repTable); + if ($charset == 'UTF-8') { $pattern = '/(]*>)/Uu'; } // /U is to have UNGREEDY regex to limit to one html tag. /u is for UTF8 support + else $pattern = '/(]*>)/U'; // /U is to have UNGREEDY regex to limit to one html tag. + $a = preg_split($pattern, $text, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY); + + $firstline=''; + $i=0; + $nba = count($a); // 2x nb of lines in $a because $a contains also a line for each new line separator + while (($i < $nba) && ($i < ($nboflines * 2))) + { + if ($i % 2 == 0) $firstline .= $a[$i]; + elseif (($i < (($nboflines * 2) - 1)) && ($i < ($nba - 1))) $firstline .= ($ishtml?"
\n":"\n"); + $i++; + } + unset($a); + return $firstline.(($i < $nba)?'...':''); } - return $firstline.((strlen($firstline) != strlen($text))?'...':''); } @@ -4943,7 +4987,7 @@ function dol_nboflines($s,$maxchar=0) /** - * Return nb of lines of a formated text with \n and
(we can't have both \n and br) + * Return nb of lines of a formated text with \n and
(WARNING: string must not have mixed \n and br separators) * * @param string $text Text * @param int $maxlinesize Largeur de ligne en caracteres (ou 0 si pas de limite - defaut) @@ -4979,6 +5023,8 @@ function dol_nboflines_bis($text,$maxlinesize=0,$charset='UTF-8') } } } + + unset($a); return $nblines; } @@ -6128,7 +6174,7 @@ function dol_getmypid() * or like "keyword1|keyword2" = We want record field like keyword1 OR field like keyword2 * If param $mode is 1, can contains an operator <, > or = like "<10" or ">=100.5 < 1000" * If param $mode is 2, can contains a list of id separated by comma like "1,3,4" - * @param integer $mode 0=value is list of keywords, 1=value is a numeric test (Example ">5.5 <10"), 2=value is a list of id separated with comma (Example '1,3,4') + * @param integer $mode 0=value is list of keyword strings, 1=value is a numeric test (Example ">5.5 <10"), 2=value is a list of id separated with comma (Example '1,3,4') * @param integer $nofirstand 1=Do not output the first 'AND' * @return string $res The statement to append to the SQL query */ @@ -6406,3 +6452,43 @@ function dol_mimetype($file,$default='application/octet-stream',$mode=0) return $mime; } +/** + * Return value from dictionary + * + * @param string $tablename name of dictionary + * @param string $field the value to return + * @param int $id id of line + * @param bool $checkentity add filter on entity + * @param string $rowidfield name of the column rowid + */ +function getDictvalue($tablename, $field, $id, $checkentity=false, $rowidfield='rowid') +{ + global $dictvalues,$db,$langs; + + if (!isset($dictvalues[$tablename])) + { + $dictvalues[$tablename] = array(); + $sql = 'SELECT * FROM '.$tablename.' WHERE 1'; + if ($checkentity) $sql.= ' entity IN (0,'.getEntity('').')'; + + $resql = $db->query($sql); + if ($resql) + { + while ($obj = $db->fetch_object($resql)) + { + $dictvalues[$tablename][$obj->{$rowidfield}] = $obj; + } + } + else + { + dol_print_error($db); + } + } + + if (!empty($dictvalues[$tablename][$id])) return $dictvalues[$tablename][$id]->{$field}; // Found + else // Not found + { + if ($id > 0) return $id; + return ''; + } +} \ No newline at end of file diff --git a/htdocs/core/lib/functions2.lib.php b/htdocs/core/lib/functions2.lib.php index 72f27a16602..181e8a7fe11 100644 --- a/htdocs/core/lib/functions2.lib.php +++ b/htdocs/core/lib/functions2.lib.php @@ -2200,7 +2200,7 @@ function getModuleDirForApiClass($module) elseif ($module == 'stock' || $module == 'stockmovements' || $module == 'warehouses') { $moduledirforclass = 'product/stock'; } - elseif ($module == 'fournisseur' || $module == 'supplierinvoices') { + elseif ($module == 'fournisseur' || $module == 'supplierinvoices' || $module == 'supplierorders') { $moduledirforclass = 'fourn'; } elseif ($module == 'expensereports') { diff --git a/htdocs/core/lib/images.lib.php b/htdocs/core/lib/images.lib.php index d9d7d0d9730..e6f69da1d93 100644 --- a/htdocs/core/lib/images.lib.php +++ b/htdocs/core/lib/images.lib.php @@ -347,7 +347,7 @@ function dolRotateImage($file_path) * @param int $quality Quality of compression (0=worst, 100=best) * @param string $outdir Directory where to store thumb * @param int $targetformat New format of target (IMAGETYPE_GIF, IMAGETYPE_JPG, IMAGETYPE_PNG, IMAGETYPE_BMP, IMAGETYPE_WBMP ... or 0 to keep old format) - * @return string Full path of thumb or '' if it fails + * @return string Full path of thumb or '' if it fails or 'Error...' if it fails */ function vignette($file, $maxWidth = 160, $maxHeight = 120, $extName='_small', $quality=50, $outdir='thumbs', $targetformat=0) { diff --git a/htdocs/core/lib/modulebuilder.lib.php b/htdocs/core/lib/modulebuilder.lib.php index af9ab67d8fe..48e31235476 100644 --- a/htdocs/core/lib/modulebuilder.lib.php +++ b/htdocs/core/lib/modulebuilder.lib.php @@ -31,19 +31,21 @@ * @param string $module Module name * @param string $objectname Name of object * @param string $newmask New mask - * @return int <0 if KO, >0 if OK + * @param string $readdir Directory source (use $destdir when not defined) + * @return int <=0 if KO, >0 if OK */ -function rebuildObjectClass($destdir, $module, $objectname, $newmask) +function rebuildObjectClass($destdir, $module, $objectname, $newmask, $readdir='') { global $db, $langs; if (empty($objectname)) return -1; + if (empty($readdir)) $readdir=$destdir; - $pathoffiletoeditsrc=$destdir.'/class/'.strtolower($objectname).'.class.php'; - $pathoffiletoedittarget=$destdir.'/class/'.strtolower($objectname).'.class.php'; + $pathoffiletoeditsrc=$readdir.'/class/'.strtolower($objectname).'.class.php'; + $pathoffiletoedittarget=$destdir.'/class/'.strtolower($objectname).'.class.php'.($readdir != $destdir ? '.new' : ''); if (! dol_is_file($pathoffiletoeditsrc)) { - //$pathoffiletoeditsrc=DOL_DOCUMENT_ROOT.'/modulebuilder/template/class/myobject.class.php'; + $langs->load("errors"); setEventMessages($langs->trans("ErrorFileNotFound", $pathoffiletoeditsrc), null, 'errors'); return -1; } @@ -58,7 +60,7 @@ function rebuildObjectClass($destdir, $module, $objectname, $newmask) else return -1; // Backup old file - dol_copy($pathoffiletoeditsrc, $pathoffiletoeditsrc.'.back', $newmask, 1); + dol_copy($pathoffiletoedittarget, $pathoffiletoedittarget.'.back', $newmask, 1); // Edit class files $contentclass = file_get_contents(dol_osencode($pathoffiletoeditsrc), 'r'); @@ -77,6 +79,8 @@ function rebuildObjectClass($destdir, $module, $objectname, $newmask) $i++; $typephp=''; $texttoinsert.= "\t\t'".$key."' => array('type'=>'".$val['type']."', 'label'=>'".$val['label']."',"; + $texttoinsert.= " 'visible'=>".($val['visible']?$val['visible']:0).","; + $texttoinsert.= " 'enabled'=>".($val['enabled']?$val['enabled']:0).","; if ($val['position']) $texttoinsert.= " 'position'=>".$val['position'].","; if ($val['notnull']) $texttoinsert.= " 'notnull'=>".$val['notnull'].","; if ($val['index']) $texttoinsert.= " 'index'=>".$val['index'].","; @@ -108,6 +112,8 @@ function rebuildObjectClass($destdir, $module, $objectname, $newmask) $contentclass = preg_replace('/\/\/ BEGIN MODULEBUILDER PROPERTIES.*END MODULEBUILDER PROPERTIES/ims', $texttoinsert, $contentclass); + dol_mkdir(dirname($pathoffiletoedittarget)); + //file_put_contents($pathoffiletoedittmp, $contentclass); file_put_contents(dol_osencode($pathoffiletoedittarget), $contentclass); @chmod($pathoffiletoedittarget, octdec($newmask)); @@ -128,17 +134,31 @@ function rebuildObjectClass($destdir, $module, $objectname, $newmask) * @param string $module Module name * @param string $objectname Name of object * @param string $newmask New mask - * @return int <0 if KO, >0 if OK + * @param string $readdir Directory source (use $destdir when not defined) + * @return int <=0 if KO, >0 if OK */ -function rebuildObjectSql($destdir, $module, $objectname, $newmask) +function rebuildObjectSql($destdir, $module, $objectname, $newmask, $readdir='') { global $db, $langs; if (empty($objectname)) return -1; + if (empty($readdir)) $readdir=$destdir; + + $pathoffiletoclasssrc=$readdir.'/class/'.strtolower($objectname).'.class.php'; + + // Edit .sql file + $pathoffiletoeditsrc=$readdir.'/sql/llx_'.strtolower($objectname).'.sql'; + $pathoffiletoedittarget=$destdir.'/sql/llx_'.strtolower($objectname).'.sql'.($readdir != $destdir ? '.new' : ''); + if (! dol_is_file($pathoffiletoeditsrc)) + { + $langs->load("errors"); + setEventMessages($langs->trans("ErrorFileNotFound", $pathoffiletoeditsrc), null, 'errors'); + return -1; + } try { - dol_include_once(strtolower($module).'/class/'.strtolower($objectname).'.class.php'); + include_once $pathoffiletoclasssrc; if (class_exists($objectname)) $object=new $objectname($db); else return -1; } @@ -147,11 +167,10 @@ function rebuildObjectSql($destdir, $module, $objectname, $newmask) print $e->getMessage(); } - // Edit .sql file - $pathoffiletoeditsrc=dol_osencode($destdir.'/sql/llx_'.strtolower($objectname).'.sql'); - $pathoffiletoedittarget=dol_osencode($destdir.'/sql/llx_'.strtolower($objectname).'.sql'); + // Backup old file + dol_copy($pathoffiletoedittarget, $pathoffiletoedittarget.'.back', $newmask, 1); - $contentsql = file_get_contents($pathoffiletoeditsrc, 'r'); + $contentsql = file_get_contents(dol_osencode($pathoffiletoeditsrc), 'r'); $i=0; $texttoinsert = '-- BEGIN MODULEBUILDER FIELDS'."\n"; @@ -177,10 +196,10 @@ function rebuildObjectSql($destdir, $module, $objectname, $newmask) // Edit .key.sql file - $pathoffiletoeditsrc=dol_osencode($destdir.'/sql/llx_'.strtolower($objectname).'.key.sql'); - $pathoffiletoedittarget=dol_osencode($destdir.'/sql/llx_'.strtolower($objectname).'.key.sql'); + $pathoffiletoeditsrc=$destdir.'/sql/llx_'.strtolower($objectname).'.key.sql'; + $pathoffiletoedittarget=$destdir.'/sql/llx_'.strtolower($objectname).'.key.sql'.($readdir != $destdir ? '.new' : ''); - $contentsql = file_get_contents($pathoffiletoeditsrc, 'r'); + $contentsql = file_get_contents(dol_osencode($pathoffiletoeditsrc), 'r'); $i=0; $texttoinsert = '-- BEGIN MODULEBUILDER INDEXES'."\n"; @@ -200,6 +219,8 @@ function rebuildObjectSql($destdir, $module, $objectname, $newmask) $contentsql = preg_replace('/-- BEGIN MODULEBUILDER INDEXES.*END MODULEBUILDER INDEXES/ims', $texttoinsert, $contentsql); + dol_mkdir(dirname($pathoffiletoedittarget)); + file_put_contents($pathoffiletoedittarget, $contentsql); @chmod($pathoffiletoedittarget, octdec($newmask)); diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index 19063ae79c2..5b344056efb 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -748,7 +748,7 @@ function pdf_bank(&$pdf,$outputlangs,$curx,$cury,$account,$onlynumber=0,$default $pdf->MultiCell($tmplength, 3, $outputlangs->convToOutputCharset($content), 0, 'C', 0); $pdf->SetXY($curx, $cury + 1); $curx += $tmplength; - $pdf->SetFont('', 'B', $default_font_size - 4); + $pdf->SetFont('', 'B', $default_font_size - $diffsizecontent); $pdf->MultiCell($tmplength, 3, $outputlangs->transnoentities($val), 0, 'C', 0); if (empty($onlynumber)) { $pdf->line($curx, $cury + 1, $curx, $cury + 7); @@ -794,6 +794,7 @@ function pdf_bank(&$pdf,$outputlangs,$curx,$cury,$account,$onlynumber=0,$default $pdf->MultiCell(100, 3, $val, 0, 'L', 0); $tmpy=$pdf->getStringHeight(100, $val); $cury+=$tmpy; + $cur+=1; } else if (! $usedetailedbban) $cury+=1; diff --git a/htdocs/core/lib/product.lib.php b/htdocs/core/lib/product.lib.php index 7048b8570c6..b01637d7b08 100644 --- a/htdocs/core/lib/product.lib.php +++ b/htdocs/core/lib/product.lib.php @@ -52,7 +52,7 @@ function product_prepare_head($object) $head[$h][2] = 'price'; $h++; } - + if (! empty($object->status_buy) || (! empty($conf->margin->enabled) && ! empty($object->status))) // If margin is on and product on sell, we may need the cost price even if product os not on purchase { if ((! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->lire) @@ -102,7 +102,7 @@ function product_prepare_head($object) $prodcomb = new ProductCombination($db); - if ($prodcomb->fetchByFkProductChild($object->id) == -1) + if ($prodcomb->fetchByFkProductChild($object->id) == -1) { $head[$h][0] = DOL_URL_ROOT."/variants/combinations.php?id=".$object->id; $head[$h][1] = $langs->trans('ProductCombinations'); @@ -184,7 +184,7 @@ function productlot_prepare_head($object) global $db, $langs, $conf, $user; $langs->load("products"); $langs->load("productbatch"); - + $h = 0; $head = array(); @@ -208,7 +208,7 @@ function productlot_prepare_head($object) $head[$h][2] = 'info'; $h++; */ - + return $head; } @@ -301,9 +301,9 @@ function show_stats_for_company($product,$socid) global $conf,$langs,$user,$db; $nblines = 0; - - print '
'; - print ''; + + print ''; + print ''; print ''; print ''; print ''; diff --git a/htdocs/core/lib/project.lib.php b/htdocs/core/lib/project.lib.php index c3583e72ac8..607b107de2c 100644 --- a/htdocs/core/lib/project.lib.php +++ b/htdocs/core/lib/project.lib.php @@ -629,9 +629,11 @@ function projectLinesPerDay(&$inc, $parent, $fuser, $lines, &$level, &$projectsr print ''."\n"; // User + /* print ''; + */ // Ref print ''."\n"; // User + /* print ''; + */ // Ref print ''; print_liste_field_titre($title.' '.$num.'',$_SERVER["PHP_SELF"],"","","","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"","","","",$sortfield,$sortorder); + print_liste_field_titre("ThirdParty",$_SERVER["PHP_SELF"],"","","","",$sortfield,$sortorder); if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES)) { - print_liste_field_titre($langs->trans("OpportunityAmount"),"","","","",'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("OpportunityStatus"),"","","","",'align="right"',$sortfield,$sortorder); + print_liste_field_titre("OpportunityAmount","","","","",'align="right"',$sortfield,$sortorder); + print_liste_field_titre("OpportunityStatus","","","","",'align="right"',$sortfield,$sortorder); } if (empty($conf->global->PROJECT_HIDE_TASKS)) { - print_liste_field_titre($langs->trans("Tasks"),"","","","",'align="right"',$sortfield,$sortorder); - if (! in_array('plannedworkload', $hiddenfields)) print_liste_field_titre($langs->trans("PlannedWorkload"),"","","","",'align="right"',$sortfield,$sortorder); - if (! in_array('declaredprogress', $hiddenfields)) print_liste_field_titre($langs->trans("ProgressDeclared"),"","","","",'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Tasks","","","","",'align="right"',$sortfield,$sortorder); + if (! in_array('plannedworkload', $hiddenfields)) print_liste_field_titre("PlannedWorkload","","","","",'align="right"',$sortfield,$sortorder); + if (! in_array('declaredprogress', $hiddenfields)) print_liste_field_titre("ProgressDeclared","","","","",'align="right"',$sortfield,$sortorder); } - print_liste_field_titre($langs->trans("Status"),"","","","",'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Status","","","","",'align="right"',$sortfield,$sortorder); print "\n"; while ($i < $num) diff --git a/htdocs/core/lib/security2.lib.php b/htdocs/core/lib/security2.lib.php index 248c3bde43e..817fd2be8da 100644 --- a/htdocs/core/lib/security2.lib.php +++ b/htdocs/core/lib/security2.lib.php @@ -166,7 +166,7 @@ function dol_loginfunction($langs,$conf,$mysoc) } $conf_css = $themepath."?lang=".$langs->defaultlang; - // Select templates + // Select templates dir if (! empty($conf->modules_parts['tpl'])) // Using this feature slow down application { $dirtpls=array_merge($conf->modules_parts['tpl'],array('/core/tpl/')); @@ -205,6 +205,7 @@ function dol_loginfunction($langs,$conf,$mysoc) // Should be an array with differents options in $hookmanager->resArray $parameters=array('entity' => GETPOST('entity','int')); $reshook = $hookmanager->executeHooks('getLoginPageOptions',$parameters); // Note that $action and $object may have been modified by some hooks. resArray is filled by hook. + $morelogincontent = $hookmanager->resArray['options']; // TODO Use here a resprints // Login $login = (! empty($hookmanager->resArray['username']) ? $hookmanager->resArray['username'] : (GETPOST("username","alpha") ? GETPOST("username","alpha") : $demologin)); diff --git a/htdocs/core/lib/tax.lib.php b/htdocs/core/lib/tax.lib.php index fe84d1a15ec..6fbfbec3bf6 100644 --- a/htdocs/core/lib/tax.lib.php +++ b/htdocs/core/lib/tax.lib.php @@ -2,7 +2,7 @@ /* Copyright (C) 2004-2009 Laurent Destailleur * Copyright (C) 2006-2007 Yannick Warnier * Copyright (C) 2011 Regis Houssin - * Copyright (C) 2012-2016 Juanjo Menent + * Copyright (C) 2012-2017 Juanjo Menent * Copyright (C) 2012 Cédric Salvador * Copyright (C) 2012-2014 Raphaël Doursenaud * Copyright (C) 2015 Marcos García @@ -583,11 +583,11 @@ function tax_by_date($type, $db, $y, $q, $date_start, $date_end, $modetax, $dire { $oldrowid=$assoc['rowid']; $list[$assoc['rate']]['totalht'] += $assoc['total_ht']; + $list[$assoc['rate']]['vat'] += $assoc['total_vat']; $list[$assoc['rate']]['localtax1'] += $assoc['total_localtax1']; $list[$assoc['rate']]['localtax2'] += $assoc['total_localtax2']; } - $list[$assoc['rate']]['vat'] = $assoc['total_vat']; $list[$assoc['rate']]['dtotal_ttc'][] = $assoc['total_ttc']; $list[$assoc['rate']]['dtype'][] = 'ExpenseReportPayment'; $list[$assoc['rate']]['datef'][] = $assoc['datef']; diff --git a/htdocs/core/lib/treeview.lib.php b/htdocs/core/lib/treeview.lib.php index 944520d04d5..6c66079090a 100644 --- a/htdocs/core/lib/treeview.lib.php +++ b/htdocs/core/lib/treeview.lib.php @@ -182,7 +182,7 @@ function tree_recur($tab, $pere, $rang, $iddivjstree='iddivjstree', $donoresetal //print ' -> A '.$tab[$x]['rowid'].' mainmenu='.$tab[$x]['mainmenu'].' leftmenu='.$tab[$x]['leftmenu'].' fk_mainmenu='.$tab[$x]['fk_mainmenu'].' fk_leftmenu='.$tab[$x]['fk_leftmenu'].'
'."\n"; $tree_recur_alreadyadded[$tab[$x]['rowid']]=($rang + 1); // And now we search all its sons of lower level - tree_recur($tab,$tab[$x],$rang+1); + tree_recur($tab, $tab[$x], $rang+1, 'iddivjstree', 0, $showfk); print ''; } elseif (! empty($tab[$x]['rowid']) && $tab[$x]['fk_menu'] == -1 && $tab[$x]['fk_mainmenu'] == $pere['mainmenu'] && $tab[$x]['fk_leftmenu'] == $pere['leftmenu']) @@ -206,7 +206,7 @@ function tree_recur($tab, $pere, $rang, $iddivjstree='iddivjstree', $donoresetal print '   '; print $tab[$x]['title']; print ''; - print '  (fk_mainmenu='.$tab[$x]['fk_mainmenu'].' fk_leftmenu='.$tab[$x]['fk_leftmenu'].')'; + print '  (mainmenu='.$tab[$x]['mainmenu'].' leftmenu='.$tab[$x]['leftmenu'].' - fk_mainmenu='.$tab[$x]['fk_mainmenu'].' fk_leftmenu='.$tab[$x]['fk_leftmenu'].')'; print '
'.$langs->trans("Ref").''; print $form->showrefnav($object, 'id', $linkback, 1, 'rowid', 'ref', ''); print '
'.$langs->trans("Label").''.$object->label.'
'.$langs->trans("DatePayment").''; print dol_print_date($object->datep,'day'); print '
'.$langs->trans("DateValue").''; print dol_print_date($object->datev,'day'); print '
'; if (! empty($conf->accounting->enabled)) { - $accountancyaccount = new AccountingAccount($db); - $accountancyaccount->fetch('',$object->accountancy_code); + $accountingaccount = new AccountingAccount($db); + $accountingaccount->fetch('',$object->accountancy_code); - print $accountancyaccount->getNomUrl(1); - // print length_accountg($object->accountancy_code); + print $accountingaccount->getNomUrl(0,1,1,'',1); } else { print $object->accountancy_code; } @@ -411,7 +413,7 @@ if ($id) print '
'."\n"; if ($object->rappro == 0) { - if (! empty($user->rights->banque->delete)) + if (! empty($user->rights->banque->modifier)) { print ''.$langs->trans("Delete").''; } diff --git a/htdocs/compta/bank/various_payment/index.php b/htdocs/compta/bank/various_payment/index.php index 5b2488cc5e8..42558d11635 100644 --- a/htdocs/compta/bank/various_payment/index.php +++ b/htdocs/compta/bank/various_payment/index.php @@ -17,18 +17,18 @@ */ /** - * \file htdocs/compta/bank/various_payment/index.php + * \file htdocs/compta/bank/various_payment/index.php * \ingroup bank - * \brief List of various payments + * \brief List of various payments */ 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'; +if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingaccount.class.php'; +if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingjournal.class.php'; -$langs->load("compta"); -$langs->load("banks"); -$langs->load("bills"); +$langs->loadLangs(array("compta","banks","bills","accountancy")); // Security check $socid = GETPOST("socid","int"); @@ -41,7 +41,8 @@ $limit = GETPOST('limit')?GETPOST('limit','int'):$conf->liste_limit; $search_ref = GETPOST('search_ref','int'); $search_user = GETPOST('search_user','alpha'); $search_label = GETPOST('search_label','alpha'); -$search_amount = GETPOST('search_amount','alpha'); +$search_amount_deb = GETPOST('search_amount_deb','alpha'); +$search_amount_cred = GETPOST('search_amount_cred','alpha'); $search_account = GETPOST('search_account','int'); $sortfield = GETPOST("sortfield",'alpha'); @@ -75,7 +76,8 @@ if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x', { $search_ref=""; $search_label=""; - $search_amount=""; + $search_amount_deb=""; + $search_amount_cred=""; $search_account=''; $typeid=""; } @@ -90,8 +92,8 @@ $form = new Form($db); $variousstatic = new PaymentVarious($db); $accountstatic = new Account($db); -$sql = "SELECT v.rowid, v.amount, v.label, v.datep as datep, v.datev as datev, v.fk_typepayment as type, v.num_payment, v.fk_bank,"; -$sql.= " ba.rowid as bid, ba.ref as bref, ba.number as bnumber, ba.account_number, ba.fk_accountancy_journal, ba.label as blabel,"; +$sql = "SELECT v.rowid, v.amount, v.label, v.datep as datep, v.datev as datev, v.fk_typepayment as type, v.num_payment, v.fk_bank, v.accountancy_code,"; +$sql.= " ba.rowid as bid, ba.ref as bref, ba.number as bnumber, ba.account_number as bank_account_number, ba.fk_accountancy_journal as accountancy_journal, ba.label as blabel,"; $sql.= " pst.code as payment_code"; $sql.= " FROM ".MAIN_DB_PREFIX."payment_various as v"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_paiement as pst ON v.fk_typepayment = pst.id"; @@ -102,7 +104,8 @@ $sql.= " WHERE v.entity = ".$conf->entity; // Search criteria if ($search_ref) $sql.=" AND v.rowid=".$search_ref; if ($search_label) $sql.=natural_search(array('v.label'), $search_label); -if ($search_amount) $sql.=natural_search("v.amount", $search_amount, 1); +if ($search_amount_deb) $sql.=natural_search("v.amount", $search_amount_deb, 1); +if ($search_amount_cred) $sql.=natural_search("v.amount", $search_amount_cred, 1); if ($search_account > 0) $sql .=" AND b.fk_account=".$search_account; if ($filtre) { $filtre=str_replace(":","=",$filtre); @@ -113,7 +116,6 @@ if ($typeid) { } $sql.= $db->order($sortfield,$sortorder); -//$sql.= " GROUP BY u.rowid, u.lastname, u.firstname, v.rowid, v.fk_user, v.amount, v.label, v.datev, v.fk_typepayment, v.num_payment, pst.code"; $totalnboflines=0; $result=$db->query($sql); if ($result) @@ -151,29 +153,35 @@ if ($result) print ''."\n"; print ''; - print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"v.rowid","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"v.label","",$param,'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"v.datep","",$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("PaymentMode"),$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder); - if (! empty($conf->banque->enabled)) print_liste_field_titre($langs->trans("BankAccount"),$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"v.amount","",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Sens"),$_SERVER["PHP_SELF"],"v.sens","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"v.rowid","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"v.label","",$param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre("DatePayment",$_SERVER["PHP_SELF"],"v.datep","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("PaymentMode",$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder); + if (! empty($conf->banque->enabled)) print_liste_field_titre("BankAccount",$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("AccountAccounting",$_SERVER["PHP_SELF"],"v.accountancy_code","",$param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre("Debit",$_SERVER["PHP_SELF"],"v.amount","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Credit",$_SERVER["PHP_SELF"],"v.amount","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch '); print "\n"; print ''; + // Ref print ''; + // Label print ''; + // Date print ''; + // Type print ''; + // Account if (! empty($conf->banque->enabled)) { @@ -181,10 +189,15 @@ if ($result) $form->select_comptes($search_account,'search_account',0,'',1); print ''; } - // Amount - print ''; - // Sens - print ''; + + // Accounting account + if (! empty($conf->accounting->enabled)) print ''; + + // Debit + print ''; + + // Credit + print ''; print '\n"; + $totalarray=array(); while ($i < min($num,$limit)) { $obj = $db->fetch_object($result); @@ -201,50 +215,81 @@ if ($result) $variousstatic->id=$obj->rowid; $variousstatic->ref=$obj->rowid; + // Ref print "\n"; + // Label payment print "\n"; + // Date payment print '\n"; + // Type print ''; + // Account if (! empty($conf->banque->enabled)) { print ''; } - // Amount - print ""; - // Sens - if ($obj->sens == '1') $sens = $langs->trans("Credit"); else $sens = $langs->trans("Debit"); - print ""; - print ""; - print "\n"; - $total = $total + $obj->amount; + // Accounting account + if (! empty($conf->accounting->enabled)) { + $accountingaccount = new AccountingAccount($db); + $accountingaccount->fetch('',$obj->accountancy_code); + + print ''; + } + + // Debit + print ""; + + // Credit + print ""; + + print ""; $i++; } - $colspan=4; + $colspan=5; if (! empty($conf->banque->enabled)) $colspan++; print ''; print ''; - print '"; + print '"; + print '"; print ''; print ''; print ''; diff --git a/htdocs/compta/charges/index.php b/htdocs/compta/charges/index.php index d494f778df0..e048de2deb7 100644 --- a/htdocs/compta/charges/index.php +++ b/htdocs/compta/charges/index.php @@ -92,7 +92,7 @@ print ''; print ''; print ''; -if ($mode != 'sconly') +if ($mode != 'sconly') { $center=($year?''.img_previous($langs->trans("Previous"), 'class="valignbottom"')." ".$langs->trans("Year").' '.$year.' '.img_next($langs->trans("Next"), 'class="valignbottom"')."":""); print_barre_liste($title,$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,$center,$num,$totalnboflines, 'title_accountancy', 0, '', '', $limit, 1); @@ -120,15 +120,15 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) print '
'; print ''; print ' '; $form->select_types_paiements($typeid,'typeid','',0,0,1,16); print '  '; $searchpicto=$form->showFilterAndCheckAddButtons(0); @@ -193,6 +206,7 @@ if ($result) print "
".$variousstatic->getNomUrl(1)."".dol_trunc($obj->label,40)."'.dol_print_date($db->jdate($obj->datep),'day')."'.$langs->trans("PaymentTypeShort".$obj->payment_code).' '.$obj->num_payment.''; if ($obj->fk_bank > 0) { - //$accountstatic->fetch($obj->fk_bank); $accountstatic->id=$obj->bid; $accountstatic->ref=$obj->bref; $accountstatic->number=$obj->bnumber; - $accountstatic->accountancy_number=$obj->account_number; - $accountstatic->fk_accountancy_journal=$obj->fk_accountancy_journal; + + if (! empty($conf->accounting->enabled)) { + $accountstatic->account_number=$obj->bank_account_number; + + $accountingjournal = new AccountingJournal($db); + $accountingjournal->fetch($obj->accountancy_journal); + $accountstatic->accountancy_journal = $accountingjournal->code; + } + $accountstatic->label=$obj->blabel; print $accountstatic->getNomUrl(1); } else print ' '; print '".price($obj->amount)."".$sens."
'.$accountingaccount->getNomUrl(0,1,1,'',1).'"; + if ($obj->sens == 0) + { + print price($obj->amount); + $totalarray['totaldeb'] += $obj->amount; + } + print ""; + if ($obj->sens == 1) + { + print price($obj->amount); + $totalarray['totalcred'] += $obj->amount; + } + print "
'.$langs->trans("Total").''.price($total)."'.price($totalarray['totaldeb'])."'.price($totalarray['totalcred'])."
'; print ''; - print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"cs.date_ech","",$param,'width="140px"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"c.libelle","",$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"cs.fk_type","",$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("ExpectedToPay"),$_SERVER["PHP_SELF"],"cs.amount","",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"pc.rowid","",$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"pc.datep","",$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"pct.code","",$param,'',$sortfield,$sortorder); - if (! empty($conf->banque->enabled)) print_liste_field_titre($langs->trans("Account"),$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"pc.amount","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("PeriodEndDate",$_SERVER["PHP_SELF"],"cs.date_ech","",$param,'width="140px"',$sortfield,$sortorder); + print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"c.libelle","",$param,'',$sortfield,$sortorder); + print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"cs.fk_type","",$param,'',$sortfield,$sortorder); + print_liste_field_titre("ExpectedToPay",$_SERVER["PHP_SELF"],"cs.amount","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("RefPayment",$_SERVER["PHP_SELF"],"pc.rowid","",$param,'',$sortfield,$sortorder); + print_liste_field_titre("DatePayment",$_SERVER["PHP_SELF"],"pc.datep","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"pct.code","",$param,'',$sortfield,$sortorder); + if (! empty($conf->banque->enabled)) print_liste_field_titre("Account",$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("PayedByThisPayment",$_SERVER["PHP_SELF"],"pc.amount","",$param,'align="right"',$sortfield,$sortorder); print "\n"; $sql = "SELECT c.id, c.libelle as lib,"; @@ -278,14 +278,14 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) $total = 0 ; print '
'; print ''; - print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"pv.datev","",$param,'width="140px"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"pv.label","",$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("ExpectedToPay"),$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"pv.rowid","",$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"pv.datev","",$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"pct.code","",$param,'',$sortfield,$sortorder); - if (! empty($conf->banque->enabled)) print_liste_field_titre($langs->trans("Account"),$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("PeriodEndDate",$_SERVER["PHP_SELF"],"pv.datev","",$param,'width="140px"',$sortfield,$sortorder); + print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"pv.label","",$param,'',$sortfield,$sortorder); + print_liste_field_titre("ExpectedToPay",$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("RefPayment",$_SERVER["PHP_SELF"],"pv.rowid","",$param,'',$sortfield,$sortorder); + print_liste_field_titre("DatePayment",$_SERVER["PHP_SELF"],"pv.datev","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"pct.code","",$param,'',$sortfield,$sortorder); + if (! empty($conf->banque->enabled)) print_liste_field_titre("Account",$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("PayedByThisPayment",$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder); print "\n"; $var=1; while ($i < $num) @@ -294,7 +294,7 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) $total = $total + $obj->amount; - + print ''; print ''."\n"; @@ -309,12 +309,12 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) // Date print '\n"; - + // Type payment print ''; - + // Account if (! empty($conf->banque->enabled)) { @@ -333,7 +333,7 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) else print ' '; print ''; } - + // Paid print '"; print "\n"; @@ -411,11 +411,11 @@ while($j<$numlt) $total = 0 ; print '
'.dol_print_date($db->jdate($obj->dm),'day').''.dol_print_date($db->jdate($obj->dm),'day')."'; if ($obj->payment_code) print $langs->trans("PaymentTypeShort".$obj->payment_code).' '; print $obj->num_payment.''.price($obj->amount)."
'; print ''; - print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"pv.datev","",$param,'width="120"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"pv.label","",$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"pv.rowid","",$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"pv.datep","",$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("PeriodEndDate",$_SERVER["PHP_SELF"],"pv.datev","",$param,'width="120"',$sortfield,$sortorder); + print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"pv.label","",$param,'',$sortfield,$sortorder); + print_liste_field_titre("RefPayment",$_SERVER["PHP_SELF"],"pv.rowid","",$param,'',$sortfield,$sortorder); + print_liste_field_titre("DatePayment",$_SERVER["PHP_SELF"],"pv.datep","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("PayedByThisPayment",$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder); print "\n"; $var=1; while ($i < $num) @@ -424,7 +424,7 @@ while($j<$numlt) $total = $total + $obj->amount; - + print ''; print ''."\n"; @@ -465,8 +465,8 @@ if (! empty($conf->salaries->enabled) && $user->rights->salaries->read) $sal = new PaymentSalary($db); print "
"; - - print_fiche_titre($langs->trans("SalariesPayments").($year?' ('.$langs->trans("Year").' '.$year.')':''), '', ''); + + print_fiche_titre( $langs->trans("SalariesPayments").($year?' ('.$langs->trans("Year").' '.$year.')':''), '', ''); $sql = "SELECT s.rowid, s.amount, s.label, s.datep as datep, s.datev as datev, s.datesp, s.dateep, s.salary, s.fk_bank, u.salary as current_salary,"; $sql.= " pct.code as payment_code,"; @@ -493,13 +493,13 @@ if (! empty($conf->salaries->enabled) && $user->rights->salaries->read) $total = 0 ; print '
'.dol_print_date($db->jdate($obj->dm),'day').'
'; print ''; - print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"s.dateep","",$param,'width="140px"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"s.label","",$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"s.rowid","",$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"s.datep","",$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"pct.code","",$param,'',$sortfield,$sortorder); - if (! empty($conf->banque->enabled)) print_liste_field_titre($langs->trans("Account"),$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"s.amount","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("PeriodEndDate",$_SERVER["PHP_SELF"],"s.dateep","",$param,'width="140px"',$sortfield,$sortorder); + print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"s.label","",$param,'',$sortfield,$sortorder); + print_liste_field_titre("RefPayment",$_SERVER["PHP_SELF"],"s.rowid","",$param,'',$sortfield,$sortorder); + print_liste_field_titre("DatePayment",$_SERVER["PHP_SELF"],"s.datep","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"pct.code","",$param,'',$sortfield,$sortorder); + if (! empty($conf->banque->enabled)) print_liste_field_titre("Account",$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("PayedByThisPayment",$_SERVER["PHP_SELF"],"s.amount","",$param,'align="right"',$sortfield,$sortorder); print "\n"; $var=1; while ($i < $num) @@ -508,7 +508,7 @@ if (! empty($conf->salaries->enabled) && $user->rights->salaries->read) $total = $total + $obj->amount; - + print ''; print ''."\n"; @@ -527,7 +527,7 @@ if (! empty($conf->salaries->enabled) && $user->rights->salaries->read) print ''; - + // Account if (! empty($conf->banque->enabled)) { @@ -546,7 +546,7 @@ if (! empty($conf->salaries->enabled) && $user->rights->salaries->read) else print ' '; print ''; } - + // Paid print '"; print "\n"; diff --git a/htdocs/compta/clients.php b/htdocs/compta/clients.php index 5c57603bf31..c65a7a670ae 100644 --- a/htdocs/compta/clients.php +++ b/htdocs/compta/clients.php @@ -69,7 +69,7 @@ if ($action == 'note') $result = $db->query($sql); } -if ($mode == 'search') +if ($mode == 'search') { $resql=$db->query($sql); if ($resql) { @@ -144,11 +144,11 @@ if ($resql) print '
'.dol_print_date($db->jdate($obj->dateep),'day').''; if ($obj->payment_code) print $langs->trans("PaymentTypeShort".$obj->payment_code).' '; print $obj->num_payment.''.price($obj->amount)."
'; print ''; - print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","","",'valign="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"s.town","","",'valign="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("CustomerCode"),$_SERVER["PHP_SELF"],"s.code_client","","",'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("AccountancyCode"),$_SERVER["PHP_SELF"],"s.code_compta","","",'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"datec",$addu,"",'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom","","",'valign="center"',$sortfield,$sortorder); + print_liste_field_titre("Town",$_SERVER["PHP_SELF"],"s.town","","",'valign="center"',$sortfield,$sortorder); + print_liste_field_titre("CustomerCode",$_SERVER["PHP_SELF"],"s.code_client","","",'align="left"',$sortfield,$sortorder); + print_liste_field_titre("AccountancyCode",$_SERVER["PHP_SELF"],"s.code_compta","","",'align="left"',$sortfield,$sortorder); + print_liste_field_titre("DateCreation",$_SERVER["PHP_SELF"],"datec",$addu,"",'align="right"',$sortfield,$sortorder); print "\n"; // Lignes des champs de filtre @@ -178,7 +178,7 @@ if ($resql) { $obj = $db->fetch_object($resql); - + print ''; print '\n"; print ''; - print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"bc.ref","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DateCreation"),$_SERVER["PHP_SELF"],"dp","",$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Account"),$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("NbOfCheques"),$_SERVER["PHP_SELF"],"bc.nbcheque","",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"bc.amount","",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"bc.statut","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"bc.ref","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("DateCreation",$_SERVER["PHP_SELF"],"dp","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Account",$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("NbOfCheques",$_SERVER["PHP_SELF"],"bc.nbcheque","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"bc.amount","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"bc.statut","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre(''); print "\n"; diff --git a/htdocs/compta/paiement/class/paiement.class.php b/htdocs/compta/paiement/class/paiement.class.php index f4e61380a9c..8e67825c085 100644 --- a/htdocs/compta/paiement/class/paiement.class.php +++ b/htdocs/compta/paiement/class/paiement.class.php @@ -337,6 +337,24 @@ class Paiement extends CommonObject $error++; } } + } + + if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + $outputlangs = $langs; + if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $invoice->thirdparty->default_lang; + if (! empty($newlang)) { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + } + $ret = $invoice->fetch($id); // Reload to get new records + + $result = $invoice->generateDocument($invoice->modelpdf, $outputlangs); + if ($result < 0) { + setEventMessages($invoice->error, $invoice->errors, 'errors'); + $error++; + } + } } } diff --git a/htdocs/compta/paiement/list.php b/htdocs/compta/paiement/list.php index 4a7a2e3c81a..dd03cb86df9 100644 --- a/htdocs/compta/paiement/list.php +++ b/htdocs/compta/paiement/list.php @@ -3,8 +3,9 @@ * Copyright (C) 2004-2011 Laurent Destailleur * Copyright (C) 2005-2009 Regis Houssin * Copyright (C) 2013 Cédric Salvador - * Copyright (C) 2015 Jean-François Ferry + * Copyright (C) 2015 Jean-François Ferry * Copyright (C) 2015 Juanjo Menent + * Copyright (C) 2017 Alexandre Spangaro * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -31,14 +32,15 @@ require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; $langs->load("bills"); $langs->load("compta"); // Security check -$facid =GETPOST('facid','int'); -$socid =GETPOST('socid','int'); -$userid=GETPOST('userid','int'); +$facid = GETPOST('facid','int'); +$socid = GETPOST('socid','int'); +$userid = GETPOST('userid','int'); $day = GETPOST('day','int'); $month = GETPOST('month','int'); $year = GETPOST('year','int'); @@ -129,7 +131,7 @@ else $sql = "SELECT DISTINCT p.rowid, p.ref, p.datep as dp, p.amount,"; // DISTINCT is to avoid duplicate when there is a link to sales representatives $sql.= " p.statut, p.num_paiement,"; $sql.= " c.code as paiement_code,"; - $sql.= " ba.rowid as bid, ba.ref as bref, ba.label as blabel, ba.number, ba.account_number as account_number, ba.accountancy_journal as accountancy_journal,"; + $sql.= " ba.rowid as bid, ba.ref as bref, ba.label as blabel, ba.number, ba.account_number as account_number, ba.fk_accountancy_journal as accountancy_journal,"; $sql.= " s.rowid as socid, s.nom as name"; // Add fields for extrafields foreach ($extrafields->attribute_list as $key => $val) $sql.=",ef.".$key.' as options_'.$key; @@ -177,7 +179,7 @@ else if ($search_account > 0) $sql .=" AND b.fk_account=".$search_account; if ($search_paymenttype != "") $sql .=" AND c.code='".$db->escape($search_paymenttype)."'"; if ($search_payment_num != '') $sql .= natural_search('p.num_paiement', $search_payment_num); - if ($search_amount) $sql .= natural_search('p.amount', $search_amount, 1); + if ($search_amount) $sql .= natural_search('p.amount', $search_amount, 1); if ($search_company) $sql .= natural_search('s.nom', $search_company); // Add where from hooks $parameters=array(); @@ -211,7 +213,7 @@ if ($resql) $param.=($search_amount?"&search_amount=".urlencode($search_amount):""); $param.=($search_payment_num?"&search_payment_num=".urlencode($search_payment_num):""); if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss); - + print ''; if ($optioncss != '') print ''; print ''; @@ -220,9 +222,9 @@ if ($resql) print ''; print ''; print ''; - + print_barre_liste($langs->trans("ReceivedCustomersPayments"), $page, $_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num, $nbtotalofrecords,'title_accountancy.png', 0, '', '', $limit); - + print '
'; print '
'; diff --git a/htdocs/compta/deplacement/list.php b/htdocs/compta/deplacement/list.php index e42e9f2325a..807ddfee700 100644 --- a/htdocs/compta/deplacement/list.php +++ b/htdocs/compta/deplacement/list.php @@ -133,12 +133,12 @@ if ($resql) print ''."\n"; print ''; print ""; - print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"d.rowid","","&socid=$socid",'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"d.type","","&socid=$socid",'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"d.dated","","&socid=$socid",'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Person"),$_SERVER["PHP_SELF"],"u.lastname","","&socid=$socid",'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","","&socid=$socid",'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("FeesKilometersOrAmout"),$_SERVER["PHP_SELF"],"d.km","","&socid=$socid",'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"d.rowid","","&socid=$socid",'',$sortfield,$sortorder); + print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"d.type","","&socid=$socid",'',$sortfield,$sortorder); + print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"d.dated","","&socid=$socid",'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Person",$_SERVER["PHP_SELF"],"u.lastname","","&socid=$socid",'',$sortfield,$sortorder); + print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom","","&socid=$socid",'',$sortfield,$sortorder); + print_liste_field_titre("FeesKilometersOrAmout",$_SERVER["PHP_SELF"],"d.km","","&socid=$socid",'align="right"',$sortfield,$sortorder); print_liste_field_titre(''); print "\n"; @@ -178,7 +178,7 @@ if ($resql) $soc = new Societe($db); if ($obj->socid) $soc->fetch($obj->socid); - + print ''; // Id print ''; diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 63b978a9e04..e10544f3c18 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -400,6 +400,22 @@ if (empty($reshook)) setEventMessages($discount->error, $discount->errors, 'errors'); } } + + if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + $outputlangs = $langs; + $newlang = ''; + if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id','aZ09')) $newlang = GETPOST('lang_id','aZ09'); + if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; + if (! empty($newlang)) { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + } + $ret = $object->fetch($id); // Reload to get new records + + $result = $object->generateDocument($object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); + if ($result < 0) setEventMessages($object->error, $object->errors, 'errors'); + } } else if ($action == 'setref_client' && $user->rights->facture->creer) @@ -1105,8 +1121,17 @@ if (empty($reshook)) foreach ($amountdeposit as $tva => $amount) { + $arraylist = array('amount' => 'FixAmount','variable' => 'VarAmount'); + $descline = $langs->trans('Deposit'); + $descline.= ' - '.$langs->trans($arraylist[$typeamount]); + if ($typeamount=='amount') { + $descline.= ' ('. price($valuedeposit, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).')'; + } elseif ($typeamount=='variable') { + $descline.= ' ('. $valuedeposit.'%)'; + } + $descline.= ' - '.$srcobject->ref; $result = $object->addline( - $langs->trans('Deposit'), + $descline, $amount, // subprice 1, // quantity $tva, // vat rate @@ -1128,8 +1153,8 @@ if (empty($reshook)) 0, 0, 0, - 0, - $langs->trans('Deposit') + 0 + //,$langs->trans('Deposit') //Deprecated ); } @@ -1440,7 +1465,7 @@ if (empty($reshook)) { if (GETPOST('type') < 0 && ! GETPOST('search_idprod')) { - setEventMessages($langs->trans('ErrorChooseBetweenFreeAntryOrPredefinedProduct'), null, 'errors'); + setEventMessages($langs->trans('ErrorChooseBetweenFreeEntryOrPredefinedProduct'), null, 'errors'); $error ++; } } @@ -3075,6 +3100,7 @@ else if ($id > 0 || ! empty($ref)) $morehtmlref.=$form->editfieldval("RefCustomer", 'ref_client', $object->ref_client, $object, $user->rights->facture->creer, 'string', '', null, null, '', 1); // Thirdparty $morehtmlref.='
'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1); + if (empty($conf->global->MAIN_DISABLE_OTHER_LINK) && $object->thirdparty->id > 0) $morehtmlref.=' ('.$langs->trans("OtherBills").')'; // Project if (! empty($conf->projet->enabled)) { diff --git a/htdocs/compta/facture/class/api_invoices.class.php b/htdocs/compta/facture/class/api_invoices.class.php index 55304136ed6..f841fc80050 100644 --- a/htdocs/compta/facture/class/api_invoices.class.php +++ b/htdocs/compta/facture/class/api_invoices.class.php @@ -22,14 +22,14 @@ /** * API class for invoices * - * @access protected + * @access protected * @class DolibarrApiAccess {@requires user,external} */ class Invoices extends DolibarrApi { /** * - * @var array $FIELDS Mandatory fields, checked when create and update object + * @var array $FIELDS Mandatory fields, checked when create and update object */ static $FIELDS = array( 'socid' @@ -54,23 +54,23 @@ class Invoices extends DolibarrApi * Get properties of a invoice object * * Return an array with invoice informations - * + * * @param int $id ID of invoice * @return array|mixed data without useless information * * @throws RestException */ function get($id) - { + { if(! DolibarrApiAccess::$user->rights->facture->lire) { throw new RestException(401); } - + $result = $this->invoice->fetch($id); if( ! $result ) { throw new RestException(404, 'Invoice not found'); } - + if( ! DolibarrApi::_checkAccessToResource('facture',$this->invoice->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } @@ -80,9 +80,9 @@ class Invoices extends DolibarrApi /** * List invoices - * + * * Get a list of invoices - * + * * @param string $sortfield Sort field * @param string $sortorder Sort order * @param int $limit Limit for list @@ -96,12 +96,12 @@ class Invoices extends DolibarrApi */ function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 0, $page = 0, $thirdparty_ids='', $status='', $sqlfilters = '') { global $db, $conf; - + $obj_ret = array(); // case of external user, $thirdparty_ids param is ignored and replaced by user's socid $socids = DolibarrApiAccess::$user->societe_id ? DolibarrApiAccess::$user->societe_id : $thirdparty_ids; - + // If the internal user must only see his customers, force searching by him $search_sale = 0; if (! DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) $search_sale = DolibarrApiAccess::$user->id; @@ -109,7 +109,7 @@ class Invoices extends DolibarrApi $sql = "SELECT t.rowid"; if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) || $search_sale > 0) $sql .= ", sc.fk_soc, sc.fk_user"; // We need these fields in order to filter by sale (including the case where the user can only see his prospects) $sql.= " FROM ".MAIN_DB_PREFIX."facture as t"; - + if ((!DolibarrApiAccess::$user->rights->societe->client->voir && !$socids) || $search_sale > 0) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; // We need this table joined to the select in order to filter by sale $sql.= ' WHERE t.entity IN ('.getEntity('facture').')'; @@ -117,7 +117,7 @@ class Invoices extends DolibarrApi if ($socids) $sql.= " AND t.fk_soc IN (".$socids.")"; if ($search_sale > 0) $sql.= " AND t.rowid = sc.fk_soc"; // Join for the needed table to filter by sale - + // Filter by status if ($status == 'draft') $sql.= " AND t.fk_statut IN (0)"; if ($status == 'unpaid') $sql.= " AND t.fk_statut IN (1)"; @@ -129,7 +129,7 @@ class Invoices extends DolibarrApi $sql .= " AND sc.fk_user = ".$search_sale; } // Add sql filters - if ($sqlfilters) + if ($sqlfilters) { if (! DolibarrApi::_checkFilters($sqlfilters)) { @@ -138,7 +138,7 @@ class Invoices extends DolibarrApi $regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; $sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; } - + $sql.= $db->order($sortfield, $sortorder); if ($limit) { if ($page < 0) @@ -174,10 +174,10 @@ class Invoices extends DolibarrApi } return $obj_ret; } - + /** * Create invoice object - * + * * @param array $request_data Request datas * @return int ID of invoice */ @@ -188,7 +188,7 @@ class Invoices extends DolibarrApi } // Check mandatory fields $result = $this->_validate($request_data); - + foreach($request_data as $field => $value) { $this->invoice->$field = $value; } @@ -203,7 +203,7 @@ class Invoices extends DolibarrApi } $this->invoice->lines = $lines; }*/ - + if ($this->invoice->create(DolibarrApiAccess::$user) < 0) { throw new RestException(500, "Error creating invoice", array_merge(array($this->invoice->error), $this->invoice->errors)); } @@ -214,20 +214,20 @@ class Invoices extends DolibarrApi * Update invoice * * @param int $id Id of invoice to update - * @param array $request_data Datas - * @return int + * @param array $request_data Datas + * @return int */ function put($id, $request_data = NULL) { if(! DolibarrApiAccess::$user->rights->facture->creer) { throw new RestException(401); } - + $result = $this->invoice->fetch($id); if( ! $result ) { throw new RestException(404, 'Invoice not found'); } - + if( ! DolibarrApi::_checkAccessToResource('facture',$this->invoice->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } @@ -236,13 +236,13 @@ class Invoices extends DolibarrApi if ($field == 'id') continue; $this->invoice->$field = $value; } - + if($this->invoice->update($id, DolibarrApiAccess::$user)) return $this->get ($id); - + return false; } - + /** * Delete invoice * @@ -258,16 +258,16 @@ class Invoices extends DolibarrApi if( ! $result ) { throw new RestException(404, 'Invoice not found'); } - + if( ! DolibarrApi::_checkAccessToResource('facture',$this->invoice->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } - + if( $this->invoice->delete($id) < 0) { throw new RestException(500); } - + return array( 'success' => array( 'code' => 200, @@ -275,13 +275,76 @@ class Invoices extends DolibarrApi ) ); } - + + /** + * Validate an order + * + * @param int $id Order ID + * @param int $idwarehouse Warehouse ID + * @param int $notrigger 1=Does not execute triggers, 0= execute triggers + * + * @url POST {id}/validate + * + * @return array + * FIXME An error 403 is returned if the request has an empty body. + * Error message: "Forbidden: Content type `text/plain` is not supported." + * Workaround: send this in the body + * { + * "idwarehouse": 0, + * "notrigger": 0 + * } + */ + function validate($id, $idwarehouse=0, $notrigger=0) + { + if(! DolibarrApiAccess::$user->rights->facture->creer) { + throw new RestException(401); + } + $result = $this->invoice->fetch($id); + if( ! $result ) { + throw new RestException(404, 'Invoice not found'); + } + + if( ! DolibarrApi::_checkAccessToResource('facture',$this->invoice->id)) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + + $result = $this->invoice->validate(DolibarrApiAccess::$user, '', $idwarehouse, $notrigger); + if ($result == 0) { + throw new RestException(500, 'Error nothing done. May be object is already validated'); + } + if ($result < 0) { + throw new RestException(500, 'Error when validating Invoice: '.$this->invoice->error); + } + + return array( + 'success' => array( + 'code' => 200, + 'message' => 'Invoice validated (Ref='.$this->invoice->ref.')' + ) + ); + } + + /** + * Clean sensible object datas + * + * @param object $object Object to clean + * @return array Array of cleaned object properties + */ + function _cleanObjectDatas($object) { + + $object = parent::_cleanObjectDatas($object); + + unset($object->address); + + return $object; + } + /** * Validate fields before create or update object - * + * * @param array|null $data Datas to validate * @return array - * + * * @throws RestException */ function _validate($data) @@ -294,5 +357,5 @@ class Invoices extends DolibarrApi } return $invoice; } - + } diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index 508f71fdc86..598616798b6 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -748,6 +748,15 @@ class Facture extends CommonInvoice // Charge facture source $facture=new Facture($this->db); + + $this->fetch_optionals(); + if(!empty($this->array_options)){ + $facture->array_options = $this->array_options; + } + + foreach($this->lines as &$line){ + $line->fetch_optionals();//fetch extrafields + } $facture->fk_facture_source = $this->fk_facture_source; $facture->type = $this->type; diff --git a/htdocs/compta/facture/fiche-rec.php b/htdocs/compta/facture/fiche-rec.php index d38ea012c3c..3a072f946be 100644 --- a/htdocs/compta/facture/fiche-rec.php +++ b/htdocs/compta/facture/fiche-rec.php @@ -1311,7 +1311,7 @@ else print '
'.img_object($langs->trans("ShowTrip"),"trip").' '.$obj->rowid.'
'; print '
'; print $langs->trans('RIB'); print ''; - if (($action != 'editbankaccount') && $user->rights->commande->creer && ! empty($object->brouillon)) + if (($action != 'editbankaccount') && $user->rights->facture->creer && ! empty($object->brouillon)) print 'id.'">'.img_edit($langs->trans('SetBankAccount'),1).'
'; print '
'; diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php index 72ea7e1a647..a4840dd37be 100644 --- a/htdocs/compta/facture/list.php +++ b/htdocs/compta/facture/list.php @@ -531,6 +531,7 @@ if ($resql) { $soc = new Societe($db); $soc->fetch($socid); + if (empty($search_societe)) $search_societe = $soc->name; } $param='&socid='.$socid; @@ -978,7 +979,7 @@ if ($resql) $align=$extrafields->getAlignFlag($key); $sortonfield = "ef.".$key; if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/compta/localtax/class/localtax.class.php b/htdocs/compta/localtax/class/localtax.class.php index e59b2c6ce2b..870c123b468 100644 --- a/htdocs/compta/localtax/class/localtax.class.php +++ b/htdocs/compta/localtax/class/localtax.class.php @@ -151,9 +151,9 @@ class Localtax extends CommonObject // Update request $sql = "UPDATE ".MAIN_DB_PREFIX."localtax SET"; $sql.= " localtaxtype=".$this->ltt.","; - $sql.= " tms=".$this->db->idate($this->tms).","; - $sql.= " datep=".$this->db->idate($this->datep).","; - $sql.= " datev=".$this->db->idate($this->datev).","; + $sql.= " tms='".$this->db->idate($this->tms)."',"; + $sql.= " datep='".$this->db->idate($this->datep)."',"; + $sql.= " datev='".$this->db->idate($this->datev)."',"; $sql.= " amount=".price2num($this->amount).","; $sql.= " label='".$this->db->escape($this->label)."',"; $sql.= " note='".$this->db->escape($this->note)."',"; diff --git a/htdocs/compta/paiement.php b/htdocs/compta/paiement.php index 394e2f23841..37b23c03724 100644 --- a/htdocs/compta/paiement.php +++ b/htdocs/compta/paiement.php @@ -854,10 +854,10 @@ if (! GETPOST('action','aZ09')) print_barre_liste($langs->trans('Payments'), $page, $_SERVER["PHP_SELF"],'',$sortfield,$sortorder,'',$num); print ''; print ''; - print_liste_field_titre($langs->trans('Invoice'),$_SERVER["PHP_SELF"],'facnumber','','','',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('Date'),$_SERVER["PHP_SELF"],'dp','','','',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('Type'),$_SERVER["PHP_SELF"],'libelle','','','',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('Amount'),$_SERVER["PHP_SELF"],'fa_amount','','','align="right"',$sortfield,$sortorder); + print_liste_field_titre('Invoice',$_SERVER["PHP_SELF"],'facnumber','','','',$sortfield,$sortorder); + print_liste_field_titre('Date',$_SERVER["PHP_SELF"],'dp','','','',$sortfield,$sortorder); + print_liste_field_titre('Type',$_SERVER["PHP_SELF"],'libelle','','','',$sortfield,$sortorder); + print_liste_field_titre('Amount',$_SERVER["PHP_SELF"],'fa_amount','','','align="right"',$sortfield,$sortorder); print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch '); print "\n"; diff --git a/htdocs/compta/paiement/avalider.php b/htdocs/compta/paiement/avalider.php index 0fe627cf7ac..370fbdfdd05 100644 --- a/htdocs/compta/paiement/avalider.php +++ b/htdocs/compta/paiement/avalider.php @@ -101,17 +101,17 @@ if ($resql) print '
'; print ''; - print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"p.rowid","","",'width="60"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"dp","","",'width="80" align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"c.libelle","","","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("AmountTTC"),$_SERVER["PHP_SELF"],"c.libelle","","",'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"p.rowid","","",'width="60"',$sortfield,$sortorder); + print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"dp","","",'width="80" align="center"',$sortfield,$sortorder); + print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"c.libelle","","","",$sortfield,$sortorder); + print_liste_field_titre("AmountTTC",$_SERVER["PHP_SELF"],"c.libelle","","",'align="right"',$sortfield,$sortorder); print_liste_field_titre(''); print "\n"; while ($i < min($num,$limit)) { $objp = $db->fetch_object($resql); - + print ''; print ''; print '\n"; diff --git a/htdocs/compta/paiement/cheque/card.php b/htdocs/compta/paiement/cheque/card.php index b5767a6f0bc..01787ca3372 100644 --- a/htdocs/compta/paiement/cheque/card.php +++ b/htdocs/compta/paiement/cheque/card.php @@ -373,7 +373,7 @@ if ($action == 'new') { $paymentstatic=new Paiement($db); $accountlinestatic=new AccountLine($db); - + $lines = array(); $now=dol_now(); @@ -474,7 +474,7 @@ if ($action == 'new') $moreforfilter=''; print '
'; print '
'.img_object($langs->trans("ShowPayment"),"payment").' '.$objp->rowid.''.dol_print_date($db->jdate($objp->dp),'day')."
'."\n"; - + print ''; print ''."\n"; print '\n"; @@ -529,18 +529,18 @@ if ($action == 'new') print ' '; } print ''; - + print '' ; print ''; - + $i++; } } print "
'.$langs->trans("DateChequeReceived").''.$langs->trans("ChequeNumber")."'; print ''; print '
"; print ''; - + print '
'; if ($user->rights->banque->cheque) { @@ -563,15 +563,15 @@ else $accountstatic->fetch($object->account_id); $linkback=''.$langs->trans("BackToList").''; - + $morehtmlref=''; dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); - - + + print '
'; print '
'; - + print ''; print ''; print ''; */ - + print ''; @@ -648,7 +648,7 @@ else print ''; - + // List of cheques $sql = "SELECT b.rowid, b.amount, b.num_chq, b.emetteur,"; $sql.= " b.dateo as date, b.datec as datec, b.banque,"; @@ -670,16 +670,16 @@ else print '
'; @@ -626,7 +626,7 @@ else print '
'.$langs->trans('Account').''; print $accountstatic->getNomUrl(1); print '
'; $param="&id=".$object->id; - + print ''; - print_liste_field_titre($langs->trans("Cheques"),'','','','','width="30"'); - print_liste_field_titre($langs->trans("DateChequeReceived"),$_SERVER["PHP_SELF"],"b.dateo,b.rowid", "",$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Numero"),$_SERVER["PHP_SELF"],"b.num_chq", "",$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("CheckTransmitter"),$_SERVER["PHP_SELF"],"b.emetteur", "",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Bank"),$_SERVER["PHP_SELF"],"b.banque", "",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"b.amount", "",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Payment"),$_SERVER["PHP_SELF"],"p.rowid", "",$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("LineRecord"),$_SERVER["PHP_SELF"],"b.rowid", "",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Cheques",'','','','','width="30"'); + print_liste_field_titre("DateChequeReceived",$_SERVER["PHP_SELF"],"b.dateo,b.rowid", "",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Numero",$_SERVER["PHP_SELF"],"b.num_chq", "",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("CheckTransmitter",$_SERVER["PHP_SELF"],"b.emetteur", "",$param,"",$sortfield,$sortorder); + print_liste_field_titre("Bank",$_SERVER["PHP_SELF"],"b.banque", "",$param,"",$sortfield,$sortorder); + print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"b.amount", "",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Payment",$_SERVER["PHP_SELF"],"p.rowid", "",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("LineRecord",$_SERVER["PHP_SELF"],"b.rowid", "",$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre(''); print "\n"; $i=1; @@ -692,7 +692,7 @@ else if (! isset($accounts[$objp->bid])) $accounts[$objp->bid]=0; $accounts[$objp->bid] += 1; - + print ''; print ''; print ''; // Date operation @@ -735,13 +735,13 @@ else { print 'rowid.'">'.img_picto($langs->trans("RejectCheck"),'disable').''; } - if ($objp->statut == 2) + if ($objp->statut == 2) { print '   '.img_picto($langs->trans('CheckRejected'),'statut8').''; } print ''; print ''; - + $i++; } } @@ -751,7 +751,7 @@ else print $langs->trans("None"); print ''; } - + print "
'.$i.''.dol_print_date($db->jdate($objp->date),'day').'
"; print "
"; } diff --git a/htdocs/compta/paiement/cheque/list.php b/htdocs/compta/paiement/cheque/list.php index 3e2b43b7f34..d08b6c734cc 100644 --- a/htdocs/compta/paiement/cheque/list.php +++ b/htdocs/compta/paiement/cheque/list.php @@ -172,12 +172,12 @@ if ($resql) print "
'."\n"; @@ -266,26 +268,26 @@ if ($resql) print "\n"; print ''; - print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"p.rowid","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"dp","",$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"c.libelle","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Numero"),$_SERVER["PHP_SELF"],"p.num_paiement","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("RefPayment",$_SERVER["PHP_SELF"],"p.rowid","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"dp","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("ThirdParty",$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"c.libelle","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("Numero",$_SERVER["PHP_SELF"],"p.num_paiement","",$param,"",$sortfield,$sortorder); if (! empty($conf->banque->enabled)) { - print_liste_field_titre($langs->trans("Account"),$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("Account",$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder); } - print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"p.amount","",$param,'align="right"',$sortfield,$sortorder); - //print_liste_field_titre($langs->trans("Invoices"),"","","",$param,'align="left"',$sortfield,$sortorder); - + print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"p.amount","",$param,'align="right"',$sortfield,$sortorder); + //print_liste_field_titre("Invoices"),"","","",$param,'align="left"',$sortfield,$sortorder); + $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; - - if (! empty($conf->global->BILL_ADD_PAYMENT_VALIDATION)) print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"p.statut","",$param,'align="right"',$sortfield,$sortorder); + + if (! empty($conf->global->BILL_ADD_PAYMENT_VALIDATION)) print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"p.statut","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch '); print "\n"; - + while ($i < min($num,$limit)) { $objp = $db->fetch_object($resql); @@ -314,7 +316,7 @@ if ($resql) // Type print ''; - + // Payment number print ''; @@ -329,7 +331,11 @@ if ($resql) $accountstatic->label=$objp->blabel; $accountstatic->number=$objp->number; $accountstatic->account_number=$objp->account_number; - $accountstatic->accountancy_journal=$objp->accountancy_journal; + + $accountingjournal = new AccountingJournal($db); + $accountingjournal->fetch($objp->accountancy_journal); + $accountstatic->accountancy_journal = $accountingjournal->code; + print $accountstatic->getNomUrl(1); } else print ' '; diff --git a/htdocs/compta/prelevement/bons.php b/htdocs/compta/prelevement/bons.php index 6fcbb62b5d9..2a91ae13bfc 100644 --- a/htdocs/compta/prelevement/bons.php +++ b/htdocs/compta/prelevement/bons.php @@ -125,9 +125,9 @@ if ($result) print ''; print ''; - print_liste_field_titre($langs->trans("WithdrawalsReceipts"),$_SERVER["PHP_SELF"],"p.ref",'','','class="liste_titre"'); - print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"p.datec","","",'class="liste_titre" align="center"'); - print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"","","",'align="center"'); + print_liste_field_titre("WithdrawalsReceipts",$_SERVER["PHP_SELF"],"p.ref",'','','class="liste_titre"'); + print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"p.datec","","",'class="liste_titre" align="center"'); + print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"","","",'align="center"'); print "\n"; while ($i < min($num,$limit)) diff --git a/htdocs/compta/prelevement/card.php b/htdocs/compta/prelevement/card.php index 1a0435862ea..20d7b0232e9 100644 --- a/htdocs/compta/prelevement/card.php +++ b/htdocs/compta/prelevement/card.php @@ -308,9 +308,9 @@ if ($id > 0) print"\n\n"; print '
'.$langs->trans("PaymentTypeShort".$objp->paiement_code).''.$objp->num_paiement.'
'; print ''; - print_liste_field_titre($langs->trans("Lines"),$_SERVER["PHP_SELF"],"pl.rowid",'',$urladd); - print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom",'',$urladd); - print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"pl.amount","",$urladd,'align="right"'); + 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,'align="right"'); print_liste_field_titre(''); print "\n"; @@ -354,7 +354,7 @@ if ($id > 0) print ''; $total += $obj->amount; - + $i++; } diff --git a/htdocs/compta/prelevement/demandes.php b/htdocs/compta/prelevement/demandes.php index dd453bd7f4e..04ec746d7f6 100644 --- a/htdocs/compta/prelevement/demandes.php +++ b/htdocs/compta/prelevement/demandes.php @@ -106,14 +106,14 @@ if ($resql) } print ''; - + print '
'; print ''; - print_liste_field_titre($langs->trans("Bill"), $_SERVER["PHP_SELF"]); - print_liste_field_titre($langs->trans("Company"), $_SERVER["PHP_SELF"]); - print_liste_field_titre($langs->trans("Amount"), $_SERVER["PHP_SELF"], "", "", $param, 'align="right"'); - print_liste_field_titre($langs->trans("DateRequest"), $_SERVER["PHP_SELF"], "", "", $param, 'align="center"'); + print_liste_field_titre("Bill", $_SERVER["PHP_SELF"]); + print_liste_field_titre("Company", $_SERVER["PHP_SELF"]); + print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "", "", $param, 'align="right"'); + print_liste_field_titre("DateRequest", $_SERVER["PHP_SELF"], "", "", $param, 'align="center"'); print_liste_field_titre(''); print ''; @@ -136,7 +136,7 @@ if ($resql) while ($i < min($num,$limit)) { $obj = $db->fetch_object($resql); - + print ''; // Ref facture @@ -157,7 +157,7 @@ if ($resql) print ''; print ''; - + print ''; $i++; } diff --git a/htdocs/compta/prelevement/factures.php b/htdocs/compta/prelevement/factures.php index 996a1aabe88..437af529ad9 100644 --- a/htdocs/compta/prelevement/factures.php +++ b/htdocs/compta/prelevement/factures.php @@ -171,16 +171,16 @@ if ($result) print ''; $massactionbutton=''; - + print_barre_liste('', $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, '', 0, '', '', $limit); - + print"\n\n"; print '
'.dol_print_date($db->jdate($obj->date_demande),'day').'
'; print ''; - print_liste_field_titre($langs->trans("Bill"),$_SERVER["PHP_SELF"],"p.ref",'',$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom",'',$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"f.total_ttc","",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("StatusDebitCredit"),$_SERVER["PHP_SELF"],"","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Bill",$_SERVER["PHP_SELF"],"p.ref",'',$param,'',$sortfield,$sortorder); + print_liste_field_titre("ThirdParty",$_SERVER["PHP_SELF"],"s.nom",'',$param,'',$sortfield,$sortorder); + print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"f.total_ttc","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("StatusDebitCredit",$_SERVER["PHP_SELF"],"","",$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre(''); print "\n"; @@ -194,12 +194,12 @@ if ($result) $invoicetmp->id = $obj->facid; $invoicetmp->ref = $obj->ref; - + $thirdpartytmp->id = $obj->socid; $thirdpartytmp->name = $obj->name; - + print ''; - + print "\n"; @@ -228,13 +228,13 @@ if ($result) } print ""; - + print ""; - + print "\n"; $total += $obj->total_ttc; - + $i++; } diff --git a/htdocs/compta/prelevement/list.php b/htdocs/compta/prelevement/list.php index 6251a6f6521..245903101cf 100644 --- a/htdocs/compta/prelevement/list.php +++ b/htdocs/compta/prelevement/list.php @@ -149,13 +149,13 @@ if ($result) print ''; print ''; - print_liste_field_titre($langs->trans("Line"),$_SERVER["PHP_SELF"]); - print_liste_field_titre($langs->trans("WithdrawalsReceipts"),$_SERVER["PHP_SELF"],"p.ref"); - print_liste_field_titre($langs->trans("Bill"),$_SERVER["PHP_SELF"],"f.facnumber",'',$urladd); - print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom"); - print_liste_field_titre($langs->trans("CustomerCode"),$_SERVER["PHP_SELF"],"s.code_client",'','','align="center"'); - print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"p.datec","","",'align="center"'); - print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"pl.amount","","",'align="right"'); + print_liste_field_titre("Line",$_SERVER["PHP_SELF"]); + print_liste_field_titre("WithdrawalsReceipts",$_SERVER["PHP_SELF"],"p.ref"); + print_liste_field_titre("Bill",$_SERVER["PHP_SELF"],"f.facnumber",'',$urladd); + print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom"); + print_liste_field_titre("CustomerCode",$_SERVER["PHP_SELF"],"s.code_client",'','','align="center"'); + print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"p.datec","","",'align="center"'); + print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"pl.amount","","",'align="right"'); print_liste_field_titre(''); print "\n"; diff --git a/htdocs/compta/prelevement/rejets.php b/htdocs/compta/prelevement/rejets.php index 0f737a50f22..3c18207f451 100644 --- a/htdocs/compta/prelevement/rejets.php +++ b/htdocs/compta/prelevement/rejets.php @@ -89,9 +89,9 @@ if ($result) print"\n\n"; print '
"; print $invoicetmp->getNomUrl(1); print "
'; print ''; - print_liste_field_titre($langs->trans("Line"),$_SERVER["PHP_SELF"],"p.ref",'',$urladd); - print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom",'',$urladd); - print_liste_field_titre($langs->trans("Reason"),$_SERVER["PHP_SELF"],"pr.motif","",$urladd); + print_liste_field_titre("Line",$_SERVER["PHP_SELF"],"p.ref",'',$urladd); + print_liste_field_titre("ThirdParty",$_SERVER["PHP_SELF"],"s.nom",'',$urladd); + print_liste_field_titre("Reason",$_SERVER["PHP_SELF"],"pr.motif","",$urladd); print "\n"; $total = 0; @@ -110,7 +110,7 @@ if ($result) print ''; print "\n"; - + $i++; } diff --git a/htdocs/compta/resultat/clientfourn.php b/htdocs/compta/resultat/clientfourn.php index 62ee285d70b..a7cf8769711 100644 --- a/htdocs/compta/resultat/clientfourn.php +++ b/htdocs/compta/resultat/clientfourn.php @@ -177,12 +177,12 @@ if ($date_endyear) $param.='&date_endyear='.$date_startyear; print '
'.$rej->motifs[$obj->motif].'
'; print ''; print_liste_field_titre(''); -print_liste_field_titre($langs->trans("Name"), $_SERVER["PHP_SELF"],'s.nom, s.rowid','',$param,'',$sortfield,$sortorder); +print_liste_field_titre("Name", $_SERVER["PHP_SELF"],'s.nom, s.rowid','',$param,'',$sortfield,$sortorder); if ($modecompta == 'CREANCES-DETTES') { - print_liste_field_titre($langs->trans("AmountHT"), $_SERVER["PHP_SELF"],'amount_ht','',$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("AmountHT", $_SERVER["PHP_SELF"],'amount_ht','',$param,'align="right"',$sortfield,$sortorder); } -print_liste_field_titre($langs->trans("AmountTTC"), $_SERVER["PHP_SELF"],'amount_ttc','',$param,'align="right"',$sortfield,$sortorder); +print_liste_field_titre("AmountTTC", $_SERVER["PHP_SELF"],'amount_ttc','',$param,'align="right"',$sortfield,$sortorder); print "\n"; /* @@ -234,7 +234,7 @@ if ($result) { while ($i < $num) { $objp = $db->fetch_object($result); - + print ''; print "\n"; @@ -278,7 +278,7 @@ if ($modecompta != 'CREANCES-DETTES') while ($i < $num) { $objp = $db->fetch_object($result); - + print ''; print "'; print ''; print ''; @@ -363,7 +363,7 @@ if ($result) { while ($i < $num) { $objp = $db->fetch_object($result); - + print ''; print "\n"; @@ -381,7 +381,7 @@ if ($result) { } } else - { + { print ''; print ''; print ''; @@ -581,7 +581,7 @@ if (! empty($conf->salaries->enabled)) $column = 'p.datep'; } - print ''; + print ''; $sql = "SELECT u.rowid, u.firstname, u.lastname, p.fk_user, p.label as label, date_format($column,'%Y-%m') as dm, sum(p.amount) as amount"; $sql.= " FROM ".MAIN_DB_PREFIX."payment_salary as p"; $sql.= " INNER JOIN ".MAIN_DB_PREFIX."user as u ON u.rowid=p.fk_user"; @@ -595,7 +595,7 @@ if (! empty($conf->salaries->enabled)) if ($newsortfield == 'amount_ht') $newsortfield = 'amount'; if ($newsortfield == 'amount_ttc') $newsortfield = 'amount'; $sql.= $db->order($newsortfield, $sortorder); - + dol_syslog("get payment salaries"); $result=$db->query($sql); $subtotal_ht = 0; @@ -676,7 +676,7 @@ if (! empty($conf->expensereport->enabled)) { $sql.= " AND $column >= '".$db->idate($date_start)."' AND $column <= '".$db->idate($date_end)."'"; } - + $sql.= " GROUP BY u.rowid, p.rowid, p.ref, u.firstname, u.lastname, dm"; $newsortfield = $sortfield; if ($newsortfield == 's.nom, s.rowid') $newsortfield = 'p.ref'; @@ -746,7 +746,7 @@ if (! empty($conf->don->enabled)) $sql.= " INNER JOIN ".MAIN_DB_PREFIX."payment_donation as pe ON pe.fk_donation = p.rowid"; $sql.= " INNER JOIN ".MAIN_DB_PREFIX."c_paiement as c ON pe.fk_typepayment = c.id"; $sql.= " WHERE p.entity = ".getEntity('donation'); - $sql.= " AND fk_statut >= 2"; + $sql.= " AND fk_statut >= 2"; } if (! empty($date_start) && ! empty($date_end)) $sql.= " AND p.datedon >= '".$db->idate($date_start)."' AND p.datedon <= '".$db->idate($date_end)."'"; diff --git a/htdocs/compta/salaries/class/paymentsalary.class.php b/htdocs/compta/salaries/class/paymentsalary.class.php index d3f76a84bdf..ee2832cb08e 100644 --- a/htdocs/compta/salaries/class/paymentsalary.class.php +++ b/htdocs/compta/salaries/class/paymentsalary.class.php @@ -34,7 +34,7 @@ class PaymentSalary extends CommonObject //public $element='payment_salary'; //!< Id that identify managed objects //public $table_element='payment_salary'; //!< Name of table without prefix where object is stored public $picto='payment'; - + public $tms; public $fk_user; public $datep; @@ -97,16 +97,16 @@ class PaymentSalary extends CommonObject // Update request $sql = "UPDATE ".MAIN_DB_PREFIX."payment_salary SET"; - $sql.= " tms=".$this->db->idate($this->tms).","; + $sql.= " tms='".$this->db->idate($this->tms)."',"; $sql.= " fk_user=".$this->fk_user.","; - $sql.= " datep=".$this->db->idate($this->datep).","; - $sql.= " datev=".$this->db->idate($this->datev).","; + $sql.= " datep='".$this->db->idate($this->datep)."',"; + $sql.= " datev='".$this->db->idate($this->datev)."',"; $sql.= " amount=".price2num($this->amount).","; $sql.= " fk_typepayment=".$this->fk_typepayment."',"; $sql.= " num_payment='".$this->db->escape($this->num_payment)."',"; $sql.= " label='".$this->db->escape($this->label)."',"; - $sql.= " datesp=".$this->db->idate($this->datesp).","; - $sql.= " dateep=".$this->db->idate($this->dateep).","; + $sql.= " datesp='".$this->db->idate($this->datesp)."',"; + $sql.= " dateep='".$this->db->idate($this->dateep)."',"; $sql.= " note='".$this->db->escape($this->note)."',"; $sql.= " fk_bank=".($this->fk_bank > 0 ? "'".$this->fk_bank."'":"null").","; $sql.= " fk_user_author=".$this->fk_user_author.","; @@ -548,7 +548,7 @@ class PaymentSalary extends CommonObject } } - + /** * Retourne le libelle du statut d'une facture (brouillon, validee, abandonnee, payee) * @@ -559,7 +559,7 @@ class PaymentSalary extends CommonObject { return $this->LibStatut($this->statut,$mode); } - + /** * Renvoi le libelle d'un statut donne * @@ -570,7 +570,7 @@ class PaymentSalary extends CommonObject function LibStatut($status,$mode=0) { global $langs; // TODO Renvoyer le libelle anglais et faire traduction a affichage - + $langs->load('compta'); /*if ($mode == 0) { @@ -609,5 +609,5 @@ class PaymentSalary extends CommonObject }*/ return ''; } - + } diff --git a/htdocs/compta/salaries/index.php b/htdocs/compta/salaries/index.php index b25df5a71ac..f7c722e3e1d 100644 --- a/htdocs/compta/salaries/index.php +++ b/htdocs/compta/salaries/index.php @@ -197,13 +197,13 @@ if ($result) print ''; print ''; - print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"s.rowid","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Employee"),$_SERVER["PHP_SELF"],"u.rowid","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"s.label","",$param,'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"s.datep","",$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("PaymentMode"),$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder); - if (! empty($conf->banque->enabled)) print_liste_field_titre($langs->trans("BankAccount"),$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"s.amount","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"s.rowid","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("Employee",$_SERVER["PHP_SELF"],"u.rowid","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"s.label","",$param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre("DatePayment",$_SERVER["PHP_SELF"],"s.datep","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("PaymentMode",$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder); + if (! empty($conf->banque->enabled)) print_liste_field_titre("BankAccount",$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("PayedByThisPayment",$_SERVER["PHP_SELF"],"s.amount","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch '); print "\n"; diff --git a/htdocs/compta/sociales/index.php b/htdocs/compta/sociales/index.php index 50dd4d430ed..8723541efda 100644 --- a/htdocs/compta/sociales/index.php +++ b/htdocs/compta/sociales/index.php @@ -154,7 +154,7 @@ if ($resql) print ''; print ''; print ''; - + if ($year) { $center=($year?"".img_previous()." ".$langs->trans("Year")." $year ".img_next()."":""); @@ -177,7 +177,7 @@ if ($resql) { print '
'; print '
 ".$langs->trans("Bills").' '.$objp->name."
 ".$langs->trans("Bills")." ".$langs->trans("Other")." (".$langs->trans("PaymentsNotLinkedToInvoice").")\n"; @@ -301,7 +301,7 @@ if ($modecompta != 'CREANCES-DETTES') } if ($total_ttc == 0) -{ +{ print '
 '.$langs->trans("None").'
 ".$langs->trans("Bills")." socid."\">".$objp->name."
 '.$langs->trans("None").'
'.$langs->trans("Salaries").'
'.$langs->trans("Salaries").'
'."\n"; - + print ''; // Ref print '\n"; print ''; - print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"id","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"cs.libelle","",$param,'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"periode","",$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"cs.amount","",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DateDue"),$_SERVER["PHP_SELF"],"cs.date_ech","",$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"cs.paye","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"id","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"cs.libelle","",$param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre("PeriodEndDate",$_SERVER["PHP_SELF"],"periode","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"cs.amount","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("DateDue",$_SERVER["PHP_SELF"],"cs.date_ech","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"cs.paye","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch '); print "\n"; - + $i=0; $totalarray=array(); while ($i < min($num,$limit)) @@ -258,7 +258,7 @@ if ($resql) if (! $i) $totalarray['nbfield']++; if (! $i) $totalarray['totalttcfield']=$totalarray['nbfield']; $totalarray['totalttc'] += $obj->amount; - + // Due date print ''; @@ -285,7 +285,7 @@ if ($resql) print ''; print ''; } - + print '
'; @@ -209,16 +209,16 @@ if ($resql) print "
'.dol_print_date($db->jdate($obj->date_ech), 'day').'
'; print '
'; } diff --git a/htdocs/compta/sociales/payments.php b/htdocs/compta/sociales/payments.php index 6c88305f72e..879e9b69ee7 100644 --- a/htdocs/compta/sociales/payments.php +++ b/htdocs/compta/sociales/payments.php @@ -88,7 +88,7 @@ print ''; print ''; print ''; -if ($mode != 'sconly') +if ($mode != 'sconly') { $center=($year?''.img_previous($langs->trans("Previous"), 'class="valignbottom"')." ".$langs->trans("Year").' '.$year.' '.img_next($langs->trans("Next"), 'class="valignbottom"')."":""); print_barre_liste($title,$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,$center,$num,$totalnboflines, 'title_accountancy', 0, '', '', $limit, 1); @@ -116,14 +116,14 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) print ''; print ''; - print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"pc.rowid","",$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"pc.datep","",$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"pct.code","",$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("LabelContrib"),$_SERVER["PHP_SELF"],"c.libelle","",$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("TypeContrib"),$_SERVER["PHP_SELF"],"cs.fk_type","",$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"cs.date_ech","",$param,'width="140px"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("ExpectedToPay"),$_SERVER["PHP_SELF"],"cs.amount","",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"pc.amount","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("RefPayment",$_SERVER["PHP_SELF"],"pc.rowid","",$param,'',$sortfield,$sortorder); + print_liste_field_titre("DatePayment",$_SERVER["PHP_SELF"],"pc.datep","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"pct.code","",$param,'',$sortfield,$sortorder); + print_liste_field_titre("LabelContrib",$_SERVER["PHP_SELF"],"c.libelle","",$param,'',$sortfield,$sortorder); + print_liste_field_titre("TypeContrib",$_SERVER["PHP_SELF"],"cs.fk_type","",$param,'',$sortfield,$sortorder); + print_liste_field_titre("PeriodEndDate",$_SERVER["PHP_SELF"],"cs.date_ech","",$param,'width="140px"',$sortfield,$sortorder); + print_liste_field_titre("ExpectedToPay",$_SERVER["PHP_SELF"],"cs.amount","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("PayedByThisPayment",$_SERVER["PHP_SELF"],"pc.amount","",$param,'align="right"',$sortfield,$sortorder); print "\n"; $sql = "SELECT c.id, c.libelle as lib,"; @@ -246,12 +246,12 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) $total = 0 ; print '
'; print ''; - print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"pv.datev","",$param,'width="140px"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"pv.label","",$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("ExpectedToPay"),$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"pv.rowid","",$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"pv.datev","",$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("PeriodEndDate",$_SERVER["PHP_SELF"],"pv.datev","",$param,'width="140px"',$sortfield,$sortorder); + print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"pv.label","",$param,'',$sortfield,$sortorder); + print_liste_field_titre("ExpectedToPay",$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("RefPayment",$_SERVER["PHP_SELF"],"pv.rowid","",$param,'',$sortfield,$sortorder); + print_liste_field_titre("DatePayment",$_SERVER["PHP_SELF"],"pv.datev","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("PayedByThisPayment",$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder); print "\n"; $var=1; while ($i < $num) @@ -260,7 +260,7 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) $total = $total + $obj->amount; - + print ''; print ''."\n"; @@ -348,12 +348,12 @@ while($j<$numlt) $total = 0 ; print '
'.dol_print_date($db->jdate($obj->dm),'day').'
'; print ''; - print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"pv.datev","",$param,'width="120"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"pv.label","",$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("ExpectedToPay"),$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"pv.rowid","",$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"pv.datep","",$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("PeriodEndDate",$_SERVER["PHP_SELF"],"pv.datev","",$param,'width="120"',$sortfield,$sortorder); + print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"pv.label","",$param,'',$sortfield,$sortorder); + print_liste_field_titre("ExpectedToPay",$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("RefPayment",$_SERVER["PHP_SELF"],"pv.rowid","",$param,'',$sortfield,$sortorder); + print_liste_field_titre("DatePayment",$_SERVER["PHP_SELF"],"pv.datep","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("PayedByThisPayment",$_SERVER["PHP_SELF"],"pv.amount","",$param,'align="right"',$sortfield,$sortorder); print "\n"; $var=1; while ($i < $num) @@ -362,7 +362,7 @@ while($j<$numlt) $total = $total + $obj->amount; - + print ''; print ''."\n"; @@ -408,7 +408,7 @@ if (! empty($conf->salaries->enabled) && $user->rights->salaries->read) $sal = new PaymentSalary($db); print "
"; - + print_fiche_titre($langs->trans("SalariesPayments").($year?' ('.$langs->trans("Year").' '.$year.')':''), '', ''); $sql = "SELECT s.rowid, s.amount, s.label, s.datep as datep, s.datev as datev, s.datesp, s.dateep, s.salary, u.salary as current_salary"; @@ -430,12 +430,12 @@ if (! empty($conf->salaries->enabled) && $user->rights->salaries->read) $total = 0 ; print '
'.dol_print_date($db->jdate($obj->dm),'day').'
'; print ''; - print_liste_field_titre($langs->trans("PeriodEndDate"),$_SERVER["PHP_SELF"],"s.dateep","",$param,'width="140px"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"s.label","",$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("ExpectedToPay"),$_SERVER["PHP_SELF"],"s.amount","",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("RefPayment"),$_SERVER["PHP_SELF"],"s.rowid","",$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"s.datep","",$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"s.amount","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("PeriodEndDate",$_SERVER["PHP_SELF"],"s.dateep","",$param,'width="140px"',$sortfield,$sortorder); + print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"s.label","",$param,'',$sortfield,$sortorder); + print_liste_field_titre("ExpectedToPay",$_SERVER["PHP_SELF"],"s.amount","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("RefPayment",$_SERVER["PHP_SELF"],"s.rowid","",$param,'',$sortfield,$sortorder); + print_liste_field_titre("DatePayment",$_SERVER["PHP_SELF"],"s.datep","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("PayedByThisPayment",$_SERVER["PHP_SELF"],"s.amount","",$param,'align="right"',$sortfield,$sortorder); print "\n"; $var=1; while ($i < $num) @@ -444,7 +444,7 @@ if (! empty($conf->salaries->enabled) && $user->rights->salaries->read) $total = $total + $obj->amount; - + print ''; print ''."\n"; diff --git a/htdocs/compta/tva/class/tva.class.php b/htdocs/compta/tva/class/tva.class.php index ff26347576e..df1bc8c03cf 100644 --- a/htdocs/compta/tva/class/tva.class.php +++ b/htdocs/compta/tva/class/tva.class.php @@ -173,9 +173,9 @@ class Tva extends CommonObject // Update request $sql = "UPDATE ".MAIN_DB_PREFIX."tva SET"; - $sql.= " tms=".$this->db->idate($this->tms).","; - $sql.= " datep=".$this->db->idate($this->datep).","; - $sql.= " datev=".$this->db->idate($this->datev).","; + $sql.= " tms='".$this->db->idate($this->tms)."',"; + $sql.= " datep='".$this->db->idate($this->datep)."',"; + $sql.= " datev='".$this->db->idate($this->datev)."',"; $sql.= " amount=".price2num($this->amount).","; $sql.= " label='".$this->db->escape($this->label)."',"; $sql.= " note='".$this->db->escape($this->note)."',"; diff --git a/htdocs/compta/tva/index.php b/htdocs/compta/tva/index.php index 618ba11a37e..89accf57492 100644 --- a/htdocs/compta/tva/index.php +++ b/htdocs/compta/tva/index.php @@ -117,7 +117,7 @@ $textprevyear="".img_previo $textnextyear=" ".img_next($langs->trans("Next"), 'class="valignbottom"').""; print $conf->dol_optimize_smallscreen; -print load_fiche_titre($langs->trans("VAT"), $textprevyear." ".$langs->trans("Year")." ".$year_start." ".$textnextyear, 'title_accountancy.png'); +print load_fiche_titre($langs->transcountry("VAT", $mysoc->country_code), $textprevyear." ".$langs->trans("Year")." ".$year_start." ".$textnextyear, 'title_accountancy.png'); print $langs->trans("VATReportBuildWithOptionDefinedInModule").'
'; print '('.$langs->trans("TaxModuleSetupToModifyRules",DOL_URL_ROOT.'/admin/taxes.php').')
'; @@ -263,18 +263,18 @@ if (! empty($conf->global->MAIN_FEATURES_LEVEL)) print ""; print ''; // need to add translation - print ''; + print ''; print "\n"; print ""; print ''; - print '\n"; + print '\n"; print "\n"; $restopay = $total - $obj->mm; print ""; print ''; // need to add translation - print ''; + print ''; print "\n"; print '
'.dol_print_date($db->jdate($obj->dateep),'day').'
' . $langs->trans("VATDue") . '' . price(price2num($total, 1)) . '' . price(price2num($total, 'MT')) . '
' . $langs->trans("VATPaid") . '' . price(price2num($obj->mm, 1)) . "' . price(price2num($obj->mm, 'MT')) . "
' . $langs->trans("VATRestopay") . '' . price(price2num($restopay, 1)) . '' . price(price2num($restopay, 'MT')) . '
'; diff --git a/htdocs/compta/tva/reglement.php b/htdocs/compta/tva/reglement.php index c75730d2f8e..0d4d827e694 100644 --- a/htdocs/compta/tva/reglement.php +++ b/htdocs/compta/tva/reglement.php @@ -156,9 +156,9 @@ if ($result) print ''; print ''; print ''; - + print_barre_liste($langs->trans("VATPayments"),$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num,$totalnboflines, 'title_accountancy', 0, '', '', $limit); - + print '
'; print ''; @@ -190,16 +190,16 @@ if ($result) print "\n"; print ''; - print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"t.rowid","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"t.label","",$param,'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DateValue"),$_SERVER["PHP_SELF"],"dv","",$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"dp","",$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder); - if (! empty($conf->banque->enabled)) print_liste_field_titre($langs->trans("Account"),$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("PayedByThisPayment"),$_SERVER["PHP_SELF"],"t.amount","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"t.rowid","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"t.label","",$param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre("DateValue",$_SERVER["PHP_SELF"],"dv","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("DatePayment",$_SERVER["PHP_SELF"],"dp","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder); + if (! empty($conf->banque->enabled)) print_liste_field_titre("Account",$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("PayedByThisPayment",$_SERVER["PHP_SELF"],"t.amount","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch '); print "\n"; - + while ($i < min($num,$limit)) { $obj = $db->fetch_object($result); @@ -252,7 +252,7 @@ if ($result) $i++; } - + $colspan=5; if (! empty($conf->banque->enabled)) $colspan++; print ''; @@ -261,7 +261,7 @@ if ($result) print "
'.$langs->trans("Total").'
"; print '
'; - + print ''; $db->free($result); diff --git a/htdocs/contact/list.php b/htdocs/contact/list.php index 1293a258fab..03b6a0645f7 100644 --- a/htdocs/contact/list.php +++ b/htdocs/contact/list.php @@ -48,12 +48,15 @@ if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'contact', $contactid,''); $sall=GETPOST('sall', 'alphanohtml'); +$search_cti=preg_replace('/^0+/', '', preg_replace('/[^0-9]/', '', GETPOST('search_cti', 'alphanohtml'))); // Phone number without any special chars +$search_phone=GETPOST("search_phone"); + +$search_id=trim(GETPOST("search_id","int")); $search_firstlast_only=GETPOST("search_firstlast_only"); $search_lastname=GETPOST("search_lastname"); $search_firstname=GETPOST("search_firstname"); $search_societe=GETPOST("search_societe"); $search_poste=GETPOST("search_poste"); -$search_phone=GETPOST("search_phone"); $search_phone_perso=GETPOST("search_phone_perso"); $search_phone_pro=GETPOST("search_phone_pro"); $search_phone_mobile=GETPOST("search_phone_mobile"); @@ -66,6 +69,7 @@ $search_categ_thirdparty=GETPOST("search_categ_thirdparty",'int'); $search_categ_supplier=GETPOST("search_categ_supplier",'int'); $search_status=GETPOST("search_status",'int'); $search_type=GETPOST('search_type','alpha'); +$search_import_key = GETPOST("search_import_key","alpha"); if ($search_status=='') $search_status=1; // always display activ customer first $optioncss = GETPOST('optioncss','alpha'); @@ -132,22 +136,24 @@ $fieldstosearchall = array( // Definition of fields for list $arrayfields=array( - 'p.lastname'=>array('label'=>$langs->trans("Lastname"), 'checked'=>1), - 'p.firstname'=>array('label'=>$langs->trans("Firstname"), 'checked'=>1), - 'p.poste'=>array('label'=>$langs->trans("PostOrFunction"), 'checked'=>1), - 'p.town'=>array('label'=>$langs->trans("Town"), 'checked'=>0), - 'p.zip'=>array('label'=>$langs->trans("Zip"), 'checked'=>0), - 'p.phone'=>array('label'=>$langs->trans("Phone"), 'checked'=>1), - 'p.phone_perso'=>array('label'=>$langs->trans("PhonePerso"), 'checked'=>0), - 'p.phone_mobile'=>array('label'=>$langs->trans("PhoneMobile"), 'checked'=>1), - 'p.fax'=>array('label'=>$langs->trans("Fax"), 'checked'=>1), - 'p.email'=>array('label'=>$langs->trans("EMail"), 'checked'=>1), - 'p.skype'=>array('label'=>$langs->trans("Skype"), 'checked'=>1, 'enabled'=>(! empty($conf->skype->enabled))), - 'p.thirdparty'=>array('label'=>$langs->trans("ThirdParty"), 'checked'=>1, 'enabled'=>empty($conf->global->SOCIETE_DISABLE_CONTACTS)), - 'p.priv'=>array('label'=>$langs->trans("ContactVisibility"), 'checked'=>1, 'position'=>200), - 'p.datec'=>array('label'=>$langs->trans("DateCreationShort"), 'checked'=>0, 'position'=>500), - 'p.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500), - 'p.statut'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000), + 'p.rowid'=>array('label'=>"TechnicalID", 'checked'=>($conf->global->MAIN_SHOW_TECHNICAL_ID?1:0), 'enabled'=>($conf->global->MAIN_SHOW_TECHNICAL_ID?1:0)), + 'p.lastname'=>array('label'=>"Lastname", 'checked'=>1), + 'p.firstname'=>array('label'=>"Firstname", 'checked'=>1), + 'p.poste'=>array('label'=>"PostOrFunction", 'checked'=>1), + 'p.town'=>array('label'=>"Town", 'checked'=>0), + 'p.zip'=>array('label'=>"Zip", 'checked'=>0), + 'p.phone'=>array('label'=>"Phone", 'checked'=>1), + 'p.phone_perso'=>array('label'=>"PhonePerso", 'checked'=>0), + 'p.phone_mobile'=>array('label'=>"PhoneMobile", 'checked'=>1), + 'p.fax'=>array('label'=>"Fax", 'checked'=>1), + 'p.email'=>array('label'=>"EMail", 'checked'=>1), + 'p.skype'=>array('label'=>"Skype", 'checked'=>1, 'enabled'=>(! empty($conf->skype->enabled))), + 'p.thirdparty'=>array('label'=>"ThirdParty", 'checked'=>1, 'enabled'=>empty($conf->global->SOCIETE_DISABLE_CONTACTS)), + 'p.priv'=>array('label'=>"ContactVisibility", 'checked'=>1, 'position'=>200), + 'p.datec'=>array('label'=>"DateCreationShort", 'checked'=>0, 'position'=>500), + 'p.tms'=>array('label'=>"DateModificationShort", 'checked'=>0, 'position'=>500), + 'p.statut'=>array('label'=>"Status", 'checked'=>1, 'position'=>1000), + 'p.import_key'=>array('label'=>"ImportId", 'checked'=>0, 'position'=>1100), ); // Extra fields if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) @@ -186,6 +192,7 @@ if (empty($reshook)) if (GETPOST('button_removefilter_x') || GETPOST('button_removefilter.x') || GETPOST('button_removefilter')) // All tests are required to be compatible with all browsers { $sall=""; + $search_id=''; $search_firstlast_only=""; $search_lastname=""; $search_firstname=""; @@ -203,6 +210,7 @@ if (empty($reshook)) $search_categ=''; $search_categ_thirdparty=''; $search_categ_supplier=''; + $search_import_key=''; $toselect=''; $search_array_options=array(); } @@ -272,53 +280,27 @@ if ($search_categ > 0) $sql.= " AND cc.fk_categorie = ".$db->escape($search_ca if ($search_categ == -2) $sql.= " AND cc.fk_categorie IS NULL"; if ($search_categ_thirdparty > 0) $sql.= " AND cs.fk_categorie = ".$db->escape($search_categ_thirdparty); if ($search_categ_thirdparty == -2) $sql.= " AND cs.fk_categorie IS NULL"; -if ($search_categ_supplier > 0) $sql.= " AND cs2.fk_categorie = ".$db->escape($search_categ_supplier); -if ($search_categ_supplier == -2) $sql.= " AND cs2.fk_categorie IS NULL"; +if ($search_categ_supplier > 0) $sql.= " AND cs2.fk_categorie = ".$db->escape($search_categ_supplier); +if ($search_categ_supplier == -2) $sql.= " AND cs2.fk_categorie IS NULL"; -if ($search_firstlast_only) { - $sql .= natural_search(array('p.lastname','p.firstname'), $search_firstlast_only); -} -if ($search_lastname) { // filter on lastname - $sql .= natural_search('p.lastname', $search_lastname); -} -if ($search_firstname) { // filter on firstname - $sql .= natural_search('p.firstname', $search_firstname); -} -if ($search_societe) { // filtre sur la societe - $sql .= natural_search('s.nom', $search_societe); -} -if (strlen($search_poste)) { // filtre sur la societe - $sql .= natural_search('p.poste', $search_poste); -} -if (strlen($search_phone)) -{ - $sql .= " AND (p.phone LIKE '%".$db->escape($search_phone)."%' OR p.phone_perso LIKE '%".$db->escape($search_phone)."%' OR p.phone_mobile LIKE '%".$db->escape($search_phone)."%')"; -} -if (strlen($search_phone_perso)) -{ - $sql .= " AND p.phone_perso LIKE '%".$db->escape($search_phone_perso)."%'"; -} -if (strlen($search_phone_pro)) -{ - $sql .= " AND p.phone LIKE '%".$db->escape($search_phone_pro)."%'"; -} -if (strlen($search_phone_mobile)) -{ - $sql .= " AND p.phone_mobile LIKE '%".$db->escape($search_phone_mobile)."%'"; -} -if (strlen($search_fax)) -{ - $sql .= " AND p.fax LIKE '%".$db->escape($search_fax)."%'"; -} -if (strlen($search_email)) // filtre sur l'email -{ - $sql .= " AND p.email LIKE '%".$db->escape($search_email)."%'"; -} -if (strlen($search_skype)) // filtre sur skype -{ - $sql .= " AND p.skype LIKE '%".$db->escape($search_skype)."%'"; -} -if ($search_status != '' && $search_status >= 0) $sql .= " AND p.statut = ".$db->escape($search_status); +if ($sall) $sql.= natural_search(array_keys($fieldstosearchall), $sall); +if (strlen($search_phone)) $sql.= natural_search(array('p.phone', 'p.phone_perso', 'p.phone_mobile'), $search_phone); +if (strlen($search_cti)) $sql.= natural_search(array('p.phone', 'p.phone_perso', 'p.phone_mobile'), $search_cti); +if (strlen($search_firstlast_only)) $sql.= natural_search(array('p.lastname', 'p.firstname'), $search_firstlast_only); + +if ($search_id > 0) $sql.= natural_search("p.rowid",$search_id,1); +if ($search_lastname) $sql.= natural_search('p.lastname', $search_lastname); +if ($search_firstname) $sql.= natural_search('p.firstname', $search_firstname); +if ($search_societe) $sql.= natural_search('s.nom', $search_societe); +if (strlen($search_poste)) $sql.= natural_search('p.poste', $search_poste); +if (strlen($search_phone_perso)) $sql.= natural_search('p.phone_perso', $search_phone_perso); +if (strlen($search_phone_pro)) $sql.= natural_search('p.phone', $search_phone); +if (strlen($search_phone_mobile)) $sql.= natural_search('p.phone_mobile', $search_phone_mobile); +if (strlen($search_fax)) $sql.= natural_search('p.phone_fax', $search_fax); +if (strlen($search_skype)) $sql.= natural_search('p.skype', $search_skype); +if (strlen($search_email)) $sql.= natural_search('p.email', $search_email); +if ($search_status != '' && $search_status >= 0) $sql.= " AND p.statut = ".$db->escape($search_status); +if ($search_import_key) $sql.= natural_search("p.import_key",$search_import_key); if ($type == "o") // filtre sur type { $sql .= " AND p.fk_soc IS NULL"; @@ -335,10 +317,6 @@ else if ($type == "p") // filtre sur type { $sql .= " AND s.client IN (2, 3)"; } -if ($sall) -{ - $sql .= natural_search(array_keys($fieldstosearchall), $sall); -} if (! empty($socid)) { $sql .= " AND s.rowid = ".$socid; @@ -391,7 +369,7 @@ $num = $db->num_rows($result); $arrayofselected=is_array($toselect)?$toselect:array(); -if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $sall) +if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && ($sall != '' || $seearch_cti != '')) { $obj = $db->fetch_object($resql); $id = $obj->rowid; @@ -411,6 +389,7 @@ if (!empty($search_categ)) $param.='&search_categ='.urlencode($search_categ); if (!empty($search_categ_thirdparty)) $param.='&search_categ_thirdparty='.urlencode($search_categ_thirdparty); if (!empty($search_categ_supplier)) $param.='&search_categ_supplier='.urlencode($search_categ_supplier); if ($sall != '') $param.='&sall='.urlencode($sall); +if ($search_id > 0) $param.= "&search_id=".urlencode($search_id); if ($search_lastname != '') $param.='&search_lastname='.urlencode($search_lastname); if ($search_firstname != '') $param.='&search_firstname='.urlencode($search_firstname); if ($search_societe != '') $param.='&search_societe='.urlencode($search_societe); @@ -424,6 +403,7 @@ if ($search_fax != '') $param.='&search_fax='.urlencode($search_fax); if ($search_email != '') $param.='&search_email='.urlencode($search_email); if ($search_status != '') $param.='&search_status='.urlencode($search_status); if ($search_priv == '0' || $search_priv == '1') $param.="&search_priv=".urlencode($search_priv); +if ($search_import_key != '') $param.='&search_import_key='.urlencode($search_import_key); if ($optioncss != '') $param.='&optioncss='.$optioncss; // Add $param from extra fields foreach ($search_array_options as $key => $val) @@ -508,6 +488,12 @@ print ''; +if (! empty($arrayfields['p.rowid']['checked'])) +{ + print ''; +} if (! empty($arrayfields['p.lastname']['checked'])) { print ''; } +if (! empty($arrayfields['p.import_key']['checked'])) +{ + print ''; +} // Action column print ''; // Ligne des titres print ''; -if (! empty($arrayfields['p.lastname']['checked'])) print_liste_field_titre($langs->trans("Lastname"),$_SERVER["PHP_SELF"],"p.lastname", $begin, $param, '', $sortfield,$sortorder); -if (! empty($arrayfields['p.firstname']['checked'])) print_liste_field_titre($langs->trans("Firstname"),$_SERVER["PHP_SELF"],"p.firstname", $begin, $param, '', $sortfield,$sortorder); -if (! empty($arrayfields['p.zip']['checked'])) print_liste_field_titre($langs->trans("Zip"),$_SERVER["PHP_SELF"],"p.zip", $begin, $param, '', $sortfield,$sortorder); -if (! empty($arrayfields['p.town']['checked'])) print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"p.town", $begin, $param, '', $sortfield,$sortorder); -if (! empty($arrayfields['p.poste']['checked'])) print_liste_field_titre($langs->trans("PostOrFunction"),$_SERVER["PHP_SELF"],"p.poste", $begin, $param, '', $sortfield,$sortorder); -if (! empty($arrayfields['p.phone']['checked'])) print_liste_field_titre($langs->trans("Phone"),$_SERVER["PHP_SELF"],"p.phone", $begin, $param, '', $sortfield,$sortorder); -if (! empty($arrayfields['p.phone_perso']['checked'])) print_liste_field_titre($langs->trans("PhonePerso"),$_SERVER["PHP_SELF"],"p.phone_perso", $begin, $param, '', $sortfield,$sortorder); -if (! empty($arrayfields['p.phone_mobile']['checked'])) print_liste_field_titre($langs->trans("PhoneMobile"),$_SERVER["PHP_SELF"],"p.phone_mobile", $begin, $param, '', $sortfield,$sortorder); -if (! empty($arrayfields['p.fax']['checked'])) print_liste_field_titre($langs->trans("Fax"),$_SERVER["PHP_SELF"],"p.fax", $begin, $param, '', $sortfield,$sortorder); -if (! empty($arrayfields['p.email']['checked'])) print_liste_field_titre($langs->trans("EMail"),$_SERVER["PHP_SELF"],"p.email", $begin, $param, '', $sortfield,$sortorder); -if (! empty($arrayfields['p.skype']['checked'])) print_liste_field_titre($langs->trans("Skype"),$_SERVER["PHP_SELF"],"p.skype", $begin, $param, '', $sortfield,$sortorder); -if (! empty($arrayfields['p.thirdparty']['checked'])) print_liste_field_titre($langs->trans("ThirdParty"),$_SERVER["PHP_SELF"],"s.nom", $begin, $param, '', $sortfield,$sortorder); -if (! empty($arrayfields['p.priv']['checked'])) print_liste_field_titre($langs->trans("ContactVisibility"),$_SERVER["PHP_SELF"],"p.priv", $begin, $param, 'align="center"', $sortfield,$sortorder); +if (! empty($arrayfields['p.rowid']['checked'])) print_liste_field_titre($arrayfields['p.rowid']['label'], $_SERVER["PHP_SELF"],"p.rowid","",$param,"",$sortfield,$sortorder); +if (! empty($arrayfields['p.lastname']['checked'])) print_liste_field_titre($arrayfields['p.lastname']['label'],$_SERVER["PHP_SELF"],"p.lastname", $begin, $param, '', $sortfield,$sortorder); +if (! empty($arrayfields['p.firstname']['checked'])) print_liste_field_titre($arrayfields['p.firstname']['label'],$_SERVER["PHP_SELF"],"p.firstname", $begin, $param, '', $sortfield,$sortorder); +if (! empty($arrayfields['p.zip']['checked'])) print_liste_field_titre($arrayfields['p.zip']['label'],$_SERVER["PHP_SELF"],"p.zip", $begin, $param, '', $sortfield,$sortorder); +if (! empty($arrayfields['p.town']['checked'])) print_liste_field_titre($arrayfields['p.town']['label'],$_SERVER["PHP_SELF"],"p.town", $begin, $param, '', $sortfield,$sortorder); +if (! empty($arrayfields['p.poste']['checked'])) print_liste_field_titre($arrayfields['p.poste']['label'],$_SERVER["PHP_SELF"],"p.poste", $begin, $param, '', $sortfield,$sortorder); +if (! empty($arrayfields['p.phone']['checked'])) print_liste_field_titre($arrayfields['p.phone']['label'],$_SERVER["PHP_SELF"],"p.phone", $begin, $param, '', $sortfield,$sortorder); +if (! empty($arrayfields['p.phone_perso']['checked'])) print_liste_field_titre($arrayfields['p.phone_perso']['label'],$_SERVER["PHP_SELF"],"p.phone_perso", $begin, $param, '', $sortfield,$sortorder); +if (! empty($arrayfields['p.phone_mobile']['checked'])) print_liste_field_titre($arrayfields['p.phone_mobile']['label'],$_SERVER["PHP_SELF"],"p.phone_mobile", $begin, $param, '', $sortfield,$sortorder); +if (! empty($arrayfields['p.fax']['checked'])) print_liste_field_titre($arrayfields['p.fax']['label'],$_SERVER["PHP_SELF"],"p.fax", $begin, $param, '', $sortfield,$sortorder); +if (! empty($arrayfields['p.email']['checked'])) print_liste_field_titre($arrayfields['p.email']['label'],$_SERVER["PHP_SELF"],"p.email", $begin, $param, '', $sortfield,$sortorder); +if (! empty($arrayfields['p.skype']['checked'])) print_liste_field_titre($arrayfields['p.skype']['label'],$_SERVER["PHP_SELF"],"p.skype", $begin, $param, '', $sortfield,$sortorder); +if (! empty($arrayfields['p.thirdparty']['checked'])) print_liste_field_titre($arrayfields['p.thirdparty']['label'],$_SERVER["PHP_SELF"],"s.nom", $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, 'align="center"', $sortfield,$sortorder); // Extra fields if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) { @@ -666,7 +659,7 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab $align=$extrafields->getAlignFlag($key); $sortonfield = "ef.".$key; if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } @@ -674,9 +667,10 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab $parameters=array('arrayfields'=>$arrayfields); $reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; -if (! empty($arrayfields['p.datec']['checked'])) print_liste_field_titre($langs->trans("DateCreationShort"),$_SERVER["PHP_SELF"],"p.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder); -if (! empty($arrayfields['p.tms']['checked'])) print_liste_field_titre($langs->trans("DateModificationShort"),$_SERVER["PHP_SELF"],"p.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder); -if (! empty($arrayfields['p.statut']['checked'])) print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"p.statut","",$param,'align="center"',$sortfield,$sortorder); +if (! empty($arrayfields['p.datec']['checked'])) print_liste_field_titre($arrayfields['p.datec']['label'],$_SERVER["PHP_SELF"],"p.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder); +if (! empty($arrayfields['p.tms']['checked'])) print_liste_field_titre($arrayfields['p.tms']['label'],$_SERVER["PHP_SELF"],"p.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder); +if (! empty($arrayfields['p.statut']['checked'])) print_liste_field_titre($arrayfields['p.statut']['label'],$_SERVER["PHP_SELF"],"p.statut","",$param,'align="center"',$sortfield,$sortorder); +if (! empty($arrayfields['p.import_key']['checked'])) print_liste_field_titre($arrayfields['p.import_key']['label'],$_SERVER["PHP_SELF"],"p.import_key","",$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch '); print "\n"; @@ -701,7 +695,15 @@ while ($i < min($num,$limit)) $contactstatic->zip=$obj->zip; $contactstatic->town=$obj->town; - // Name + // 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']++; } + if (! empty($arrayfields['p.import_key']['checked'])) + { + print '\n"; + if (! $i) $totalarray['nbfield']++; + } - // Action column + // Action column print ''; - // Libelle + // Label if ($objp->fk_product > 0) { print '\n"; + print '\n"; } // TVA print ''; // Ref diff --git a/htdocs/core/actions_extrafields.inc.php b/htdocs/core/actions_extrafields.inc.php index b34cbe886ab..278a931b437 100644 --- a/htdocs/core/actions_extrafields.inc.php +++ b/htdocs/core/actions_extrafields.inc.php @@ -174,7 +174,9 @@ if ($action == 'add') (GETPOST('perms', 'alpha')?GETPOST('perms', 'alpha'):''), (GETPOST('list', 'alpha')?1:0), (GETPOST('ishidden', 'alpha')?1:0), - GETPOST('computed_value','alpha') + GETPOST('computed_value','alpha'), + (GETPOST('entitycurrentorall', 'alpha')?0:'') + ); if ($result > 0) { @@ -335,7 +337,8 @@ if ($action == 'update') (GETPOST('list', 'alpha')?1:0), (GETPOST('ishidden', 'alpha')?1:0), GETPOST('default_value','alpha'), - GETPOST('computed_value','alpha') + GETPOST('computed_value','alpha'), + (GETPOST('entitycurrentorall', 'alpha')?0:'') ); if ($result > 0) { diff --git a/htdocs/core/actions_fetchobject.inc.php b/htdocs/core/actions_fetchobject.inc.php index 520d3c2d6da..7c25fbe7981 100644 --- a/htdocs/core/actions_fetchobject.inc.php +++ b/htdocs/core/actions_fetchobject.inc.php @@ -28,9 +28,9 @@ // $cancel must be defined // $id or $ref must be defined (object is loaded in this file with fetch) -if (($id > 0 || (! empty($ref) && ! in_array($action, array('create','createtask')))) && empty($cancel)) +if (($id > 0 || (! empty($ref) && ! in_array($action, array('create', 'createtask', 'add')))) && empty($cancel)) { - $ret = $object->fetch($id,$ref); + $ret = $object->fetch($id, $ref); if ($ret > 0) { $object->fetch_thirdparty(); @@ -38,7 +38,8 @@ if (($id > 0 || (! empty($ref) && ! in_array($action, array('create','createtask } else { - setEventMessages($object->error, $object->errors, 'errors'); + if (empty($object->error) && ! count($object->errors)) setEventMessages('Fetch on object return an error without filling $object->error nor $object->errors', null, 'errors'); + else setEventMessages($object->error, $object->errors, 'errors'); $action=''; } } diff --git a/htdocs/core/actions_massactions.inc.php b/htdocs/core/actions_massactions.inc.php index be6f13a22c7..df1c45f66dd 100644 --- a/htdocs/core/actions_massactions.inc.php +++ b/htdocs/core/actions_massactions.inc.php @@ -91,6 +91,8 @@ if (! $error && $massaction == 'confirm_presend') } //var_dump($listofobjectthirdparties);exit; + + // Loop on each thirdparty foreach ($listofobjectthirdparties as $thirdpartyid) { $result = $thirdparty->fetch($thirdpartyid); @@ -100,62 +102,90 @@ if (! $error && $massaction == 'confirm_presend') exit; } - // Define recipient $sendto and $sendtocc + $sendto=''; + $sendtocc=''; + $sendtobcc=''; + $sendtoid = array(); + + // Define $sendto + $receiver=$_POST['receiver']; + if (! is_array($receiver)) + { + if ($receiver == '-1') $receiver=array(); + else $receiver=array($receiver); + } + $tmparray=array(); if (trim($_POST['sendto'])) { - // Recipient is provided into free text - $sendto = trim($_POST['sendto']); - $sendtoid = 0; + // Recipients are provided into free text + $tmparray[] = trim($_POST['sendto']); } - elseif ($_POST['receiver'] != '-1') + if (count($receiver)>0) { - // Recipient was provided from combo list - if ($_POST['receiver'] == 'thirdparty') // Id of third party - { - $sendto = $thirdparty->email; - $sendtoid = 0; - } - else // Id du contact - { - $sendto = $thirdparty->contact_get_property((int) $_POST['receiver'],'email'); - $sendtoid = $_POST['receiver']; - } + foreach($receiver as $key=>$val) + { + // Recipient was provided from combo list + if ($val == 'thirdparty') // Id of third party + { + $tmparray[] = $thirdparty->name.' <'.$thirdparty->email.'>'; + } + elseif ($val) // Id du contact + { + $tmparray[] = $thirdparty->contact_get_property((int) $val,'email'); + $sendtoid[] = $val; + } + } } + $sendto=implode(',',$tmparray); + + // Define $sendtocc + $receivercc=$_POST['receivercc']; + if (! is_array($receivercc)) + { + if ($receivercc == '-1') $receivercc=array(); + else $receivercc=array($receivercc); + } + $tmparray=array(); if (trim($_POST['sendtocc'])) { - $sendtocc = trim($_POST['sendtocc']); + $tmparray[] = trim($_POST['sendtocc']); } - elseif ($_POST['receivercc'] != '-1') + if (count($receivercc) > 0) { - // Recipient was provided from combo list - if ($_POST['receivercc'] == 'thirdparty') // Id of third party - { - $sendtocc = $thirdparty->email; - } - else // Id du contact - { - $sendtocc = $thirdparty->contact_get_property((int) $_POST['receivercc'],'email'); - } + foreach($receivercc as $key=>$val) + { + // Recipient was provided from combo list + if ($val == 'thirdparty') // Id of third party + { + $tmparray[] = $thirdparty->name.' <'.$thirdparty->email.'>'; + } + elseif ($val) // Id du contact + { + $tmparray[] = $thirdparty->contact_get_property((int) $val,'email'); + //$sendtoid[] = $val; TODO Add also id of contact in CC ? + } + } } + $sendtocc=implode(',',$tmparray); - //var_dump($listofobjectref[$thirdpartyid]); // Array of invoice for this thirdparty - + //var_dump($listofobjectref);exit; $attachedfiles=array('paths'=>array(), 'names'=>array(), 'mimes'=>array()); $listofqualifiedinvoice=array(); $listofqualifiedref=array(); foreach($listofobjectref[$thirdpartyid] as $objectid => $object) { - //var_dump($object); //var_dump($thirdpartyid.' - '.$objectid.' - '.$object->statut); if ($objectclass == 'Facture' && $object->statut != Facture::STATUS_VALIDATED) { + $langs->load("errors"); $nbignored++; $resaction.='
'.$langs->trans('ErrorOnlyInvoiceValidatedCanBeSentInMassAction',$object->ref).'

'; continue; // Payment done or started or canceled } if ($objectclass == 'Commande' && $object->statut == Commande::STATUS_DRAFT) { + $langs->load("errors"); $nbignored++; $resaction.='
'.$langs->trans('ErrorOnlyOrderNotDraftCanBeSentInMassAction',$object->ref).'

'; continue; @@ -209,6 +239,7 @@ if (! $error && $massaction == 'confirm_presend') //var_dump($listofqualifiedref); } + // Loop on each qualified invoice of the thirdparty if (count($listofqualifiedinvoice) > 0) { $langs->load("commercial"); @@ -409,26 +440,26 @@ if (! $error && $massaction == "builddoc" && $permtoread && ! GETPOST('button_se $outputlangs->setDefaultLang($newlang); } - if(!empty($conf->global->USE_PDFTK_FOR_PDF_CONCAT)) { + if (!empty($conf->global->USE_PDFTK_FOR_PDF_CONCAT)) + { // Create output dir if not exists - dol_mkdir($diroutputmassaction); - - // Defined name of merged file - $filename=strtolower(dol_sanitizeFileName($langs->transnoentities($objectlabel))); - $filename=preg_replace('/\s/','_',$filename); - - // Save merged file - if ($filter=='paye:0') - { - if ($option=='late') $filename.='_'.strtolower(dol_sanitizeFileName($langs->transnoentities("Unpaid"))).'_'.strtolower(dol_sanitizeFileName($langs->transnoentities("Late"))); - else $filename.='_'.strtolower(dol_sanitizeFileName($langs->transnoentities("Unpaid"))); - } - if ($year) $filename.='_'.$year; - if ($month) $filename.='_'.$month; + dol_mkdir($diroutputmassaction); + + // Defined name of merged file + $filename=strtolower(dol_sanitizeFileName($langs->transnoentities($objectlabel))); + $filename=preg_replace('/\s/','_',$filename); + + // Save merged file + if ($filter=='paye:0') + { + if ($option=='late') $filename.='_'.strtolower(dol_sanitizeFileName($langs->transnoentities("Unpaid"))).'_'.strtolower(dol_sanitizeFileName($langs->transnoentities("Late"))); + else $filename.='_'.strtolower(dol_sanitizeFileName($langs->transnoentities("Unpaid"))); + } + if ($year) $filename.='_'.$year; + if ($month) $filename.='_'.$month; if (count($files)>0) { - $now=dol_now(); $file=$diroutputmassaction.'/'.$filename.'_'.dol_print_date($now,'dayhourlog').'.pdf'; @@ -443,14 +474,13 @@ if (! $error && $massaction == "builddoc" && $permtoread && ! GETPOST('button_se if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); - $langs->load("exports"); - setEventMessages($langs->trans('FileSuccessfullyBuilt',$filename.'_'.dol_print_date($now,'dayhourlog')), null, 'mesgs'); + $langs->load("exports"); + setEventMessages($langs->trans('FileSuccessfullyBuilt',$filename.'_'.dol_print_date($now,'dayhourlog')), null, 'mesgs'); } else { setEventMessages($langs->trans('NoPDFAvailableForDocGenAmongChecked'), null, 'errors'); } - } else { // Create empty PDF @@ -488,18 +518,18 @@ if (! $error && $massaction == "builddoc" && $permtoread && ! GETPOST('button_se // Save merged file if ($filter=='paye:0') { - if ($option=='late') $filename.='_'.strtolower(dol_sanitizeFileName($langs->transnoentities("Unpaid"))).'_'.strtolower(dol_sanitizeFileName($langs->transnoentities("Late"))); - else $filename.='_'.strtolower(dol_sanitizeFileName($langs->transnoentities("Unpaid"))); + if ($option=='late') $filename.='_'.strtolower(dol_sanitizeFileName($langs->transnoentities("Unpaid"))).'_'.strtolower(dol_sanitizeFileName($langs->transnoentities("Late"))); + else $filename.='_'.strtolower(dol_sanitizeFileName($langs->transnoentities("Unpaid"))); } if ($year) $filename.='_'.$year; if ($month) $filename.='_'.$month; if ($pagecount) { - $now=dol_now(); - $file=$diroutputmassaction.'/'.$filename.'_'.dol_print_date($now,'dayhourlog').'.pdf'; - $pdf->Output($file,'F'); - if (! empty($conf->global->MAIN_UMASK)) - @chmod($file, octdec($conf->global->MAIN_UMASK)); + $now=dol_now(); + $file=$diroutputmassaction.'/'.$filename.'_'.dol_print_date($now,'dayhourlog').'.pdf'; + $pdf->Output($file,'F'); + if (! empty($conf->global->MAIN_UMASK)) + @chmod($file, octdec($conf->global->MAIN_UMASK)); $langs->load("exports"); setEventMessages($langs->trans('FileSuccessfullyBuilt',$filename.'_'.dol_print_date($now,'dayhourlog')), null, 'mesgs'); @@ -594,7 +624,7 @@ if (! $error && $massaction == 'delete' && $permtodelete) $nbok = 0; foreach($toselect as $toselectid) { - $result=$objecttmp->fetch($toselectid); + $result=$objecttmp->fetch($toselectid); if ($result > 0) { if (in_array($objecttmp->element, array('societe','member'))) $result = $objecttmp->delete($objecttmp->id, $user, 1); diff --git a/htdocs/core/actions_sendmails.inc.php b/htdocs/core/actions_sendmails.inc.php index a796a94c68c..1998808bf11 100644 --- a/htdocs/core/actions_sendmails.inc.php +++ b/htdocs/core/actions_sendmails.inc.php @@ -391,6 +391,9 @@ if (($action == 'send' || $action == 'relance') && ! $_POST['addfile'] && ! $_PO $object->trackid = $trackid; $object->fk_element = $object->id; $object->elementtype = $object->element; + if (is_array($attachedfiles) && count($attachedfiles)>0) { + $object->attachedfiles = $attachedfiles; + } // Call of triggers if (! empty($trigger_name)) diff --git a/htdocs/core/ajax/ajaxdirpreview.php b/htdocs/core/ajax/ajaxdirpreview.php index 709d07c0832..203bd71e645 100644 --- a/htdocs/core/ajax/ajaxdirpreview.php +++ b/htdocs/core/ajax/ajaxdirpreview.php @@ -32,7 +32,6 @@ if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); - if (! isset($mode) || $mode != 'noajax') // For ajax call { require_once '../../main.inc.php'; @@ -40,11 +39,12 @@ if (! isset($mode) || $mode != 'noajax') // For ajax call require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmdirectory.class.php'; - $action=GETPOST('action','aZ09'); - $file=urldecode(GETPOST('file')); - $section=GETPOST("section"); - $module=GETPOST("module"); - $urlsource=GETPOST("urlsource"); + $action=GETPOST('action','aZ09'); + $file=urldecode(GETPOST('file','alpha')); + $section=GETPOST("section",'alpha'); + $module=GETPOST("module",'alpha'); + $urlsource=GETPOST("urlsource",'alpha'); + $search_doc_ref=GETPOST('search_doc_ref','alpha'); $sortfield = GETPOST("sortfield",'alpha'); $sortorder = GETPOST("sortorder",'alpha'); @@ -56,7 +56,9 @@ if (! isset($mode) || $mode != 'noajax') // For ajax call if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="name"; - $upload_dir = dirname(str_replace("../","/", $conf->ecm->dir_output.'/'.$file)); + $rootdirfordoc = $conf->ecm->dir_output; + + $upload_dir = dirname(str_replace("../", "/", $rootdirfordoc.'/'.$file)); $ecmdir = new EcmDirectory($db); $result=$ecmdir->fetch($section); @@ -68,7 +70,9 @@ if (! isset($mode) || $mode != 'noajax') // For ajax call } else // For no ajax call { - $ecmdir = new EcmDirectory($db); + $rootdirfordoc = $conf->ecm->dir_output; + + $ecmdir = new EcmDirectory($db); $relativepath=''; if ($section > 0) { @@ -80,7 +84,7 @@ else // For no ajax call } } $relativepath=$ecmdir->getRelativePath(); - $upload_dir = $conf->ecm->dir_output.'/'.$relativepath; + $upload_dir = $rootdirfordoc.'/'.$relativepath; } if (empty($url)) $url=DOL_URL_ROOT.'/ecm/index.php'; @@ -95,8 +99,7 @@ if ($user->societe_id > 0) $socid = $user->societe_id; //print 'xxx'.$upload_dir; // Security: -// On interdit les remontees de repertoire ainsi que les pipe dans -// les noms de fichiers. +// On interdit les remontees de repertoire ainsi que les pipe dans les noms de fichiers. if (preg_match('/\.\./',$upload_dir) || preg_match('/[<>|]/',$upload_dir)) { dol_syslog("Refused to deliver file ".$upload_dir); @@ -105,6 +108,16 @@ if (preg_match('/\.\./',$upload_dir) || preg_match('/[<>|]/',$upload_dir)) exit; } +// Check permissions +if ($modulepart == 'ecm') +{ + if (! $user->rights->ecm->read) accessforbidden(); +} +if ($modulepart == 'medias') +{ + // Always allowed +} + /* * Action @@ -153,7 +166,7 @@ if ($type == 'directory') $excludefiles = array('^SPECIMEN\.pdf$','^\.','(\.meta|_preview.*\.png)$','^temp$','^payments$','^CVS$','^thumbs$'); $sorting = (strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC); - // Right area. If module is defined, we are in automatic ecm. + // Right area. If module is defined here, we are in automatic ecm. $automodules = array('company', 'invoice', 'invoice_supplier', 'propal', 'order', 'order_supplier', 'contract', 'product', 'tax', 'project', 'fichinter', 'user', 'expensereport'); // TODO change for multicompany sharing @@ -188,35 +201,65 @@ if ($type == 'directory') if (in_array($module, $automodules)) { $param.='&module='.$module; + if (isset($search_doc_ref) && $search_doc_ref != '') $param.='&search_doc_ref='.$search_doc_ref; + $textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("NoFileFound"))); if ($module == 'company') $excludefiles[]='^contact$'; // The subdir 'contact' contains files of contacts with no id of thirdparty. - $filearray=dol_dir_list($upload_dir,"files",1,'', $excludefiles, $sortfield, $sorting,1); - $formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$user->rights->ecm->upload,1,$textifempty,$maxlengthname,$url); + $filter=preg_quote($search_doc_ref, '/'); + $filearray=dol_dir_list($upload_dir, "files", 1, $filter, $excludefiles, $sortfield, $sorting,1); + + $perm=$user->rights->ecm->upload; + + $formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$perm,1,$textifempty,$maxlengthname,$url,1); } // Manual list else { - $relativepath=$ecmdir->getRelativePath(); - $upload_dir = $conf->ecm->dir_output.'/'.$relativepath; + if ($module == 'medias') + { + $relativepath=GETPOST('file','alpha'); + $upload_dir = $dolibarr_main_data_root.'/medias/'.$relativepath; + } + else + { + $relativepath=$ecmdir->getRelativePath(); + $upload_dir = $conf->ecm->dir_output.'/'.$relativepath; + } // If $section defined with value 0 - if ($section === '0') + if (($section === '0' || empty($section)) && ($module != 'medias')) { $filearray=array(); } - else $filearray=dol_dir_list($upload_dir,"files",0,'',array('^\.','(\.meta|_preview.*\.png)$','^temp$','^CVS$'),$sortfield, $sorting,1); + else + { + $filearray=dol_dir_list($upload_dir,"files",0,'',array('^\.','(\.meta|_preview.*\.png)$','^temp$','^CVS$'),$sortfield, $sorting,1); + } if ($section) { $param.='§ion='.$section; + if (isset($search_doc_ref) && $search_doc_ref != '') $param.='&search_doc_ref='.$search_doc_ref; + $textifempty = $langs->trans('NoFileFound'); } else if ($section === '0') $textifempty='
'.$langs->trans("DirNotSynchronizedSyncFirst").'

'; else $textifempty=($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("ECMSelectASection")); - $formfile->list_of_documents($filearray,'','ecm',$param,1,$relativepath,$user->rights->ecm->upload,1,$textifempty,$maxlengthname,'',$url); + if ($module == 'medias') + { + $modulepart='medias'; + $perm=($user->rights->websites->creer || $user->rights->emailing->creer); + } + else + { + $modulepart='ecm'; + $perm=$user->rights->ecm->upload; + } + + $formfile->list_of_documents($filearray,'',$modulepart,$param,1,$relativepath,$perm,1,$textifempty,$maxlengthname,'',$url); } } diff --git a/htdocs/core/ajax/ajaxdirtree.php b/htdocs/core/ajax/ajaxdirtree.php index 14b05c75905..c376bee9da3 100644 --- a/htdocs/core/ajax/ajaxdirtree.php +++ b/htdocs/core/ajax/ajaxdirtree.php @@ -45,13 +45,14 @@ if ($selecteddir != '/') $selecteddir = preg_replace('/\/$/','',$selecteddir); $langs->load("ecm"); -// Define selecteddir (fullpath). +// Define fullpathselecteddir. +$fullpathselecteddir=''; if ($modulepart == 'ecm') $fullpathselecteddir=$conf->ecm->dir_output.'/'.($selecteddir != '/' ? $selecteddir : ''); +if ($modulepart == 'medias') $fullpathselecteddir=$dolibarr_main_data_root.'/medias/'.($selecteddir != '/' ? $selecteddir : ''); // Security: -// On interdit les remontees de repertoire ainsi que les pipe dans -// les noms de fichiers. +// On interdit les remontees de repertoire ainsi que les pipe dans les noms de fichiers. if (preg_match('/\.\./',$fullpathselecteddir) || preg_match('/[<>|]/',$fullpathselecteddir)) { dol_syslog("Refused to deliver file ".$original_file); @@ -63,9 +64,12 @@ if (preg_match('/\.\./',$fullpathselecteddir) || preg_match('/[<>|]/',$fullpaths // Check permissions if ($modulepart == 'ecm') { - if (! $user->rights->ecm->read) accessforbidden(); + if (! $user->rights->ecm->read) accessforbidden(); +} +if ($modulepart == 'medias') +{ + // Always allowed } - /* @@ -97,7 +101,8 @@ foreach($sqltree as $keycursor => $val) if (file_exists($fullpathselecteddir)) { $files = @scandir($fullpathselecteddir); - if ($files) + + if ($files) { natcasesort($files); if ( count($files) > 2 ) /* The 2 accounts for . and .. */ diff --git a/htdocs/core/ajax/bankconciliate.php b/htdocs/core/ajax/bankconciliate.php index 65620c5429c..e5bfb674e8f 100644 --- a/htdocs/core/ajax/bankconciliate.php +++ b/htdocs/core/ajax/bankconciliate.php @@ -71,3 +71,27 @@ if (($user->rights->banque->modifier || $user->rights->banque->consolidate) && $ exit; } +if (($user->rights->banque->modifier || $user->rights->banque->consolidate) && $action == 'donext') +{ + // Increase date + $al = new AccountLine($db); + $al->dateo_next(GETPOST('rowid','int')); + $al->fetch(GETPOST('rowid','int')); + + print ''.dol_print_date($db->jdate($al->dateo),"day").''; + + exit; +} + +if (($user->rights->banque->modifier || $user->rights->banque->consolidate) && $action == 'doprev') +{ + // Decrease date + $al =new AccountLine($db); + $al->dateo_previous(GETPOST('rowid','int')); + $al->fetch(GETPOST('rowid','int')); + + print ''.dol_print_date($db->jdate($al->dateo),"day").''; + + exit; +} + diff --git a/htdocs/core/ajax/selectsearchbox.php b/htdocs/core/ajax/selectsearchbox.php index 2e837fcbaae..2d92bc8f938 100644 --- a/htdocs/core/ajax/selectsearchbox.php +++ b/htdocs/core/ajax/selectsearchbox.php @@ -31,8 +31,17 @@ if (! isset($usedbyinclude) || empty($usedbyinclude)) if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); + if (! defined('NOREDIRECTBYMAINTOLOGIN')) define('NOREDIRECTBYMAINTOLOGIN','1'); $res=@include '../../main.inc.php'; + if ($res == 'ERROR_NOT_LOGGED') + { + $langs->load("other"); + $arrayresult['jumptologin']=array('img'=>'object_generic', 'label'=>$langs->trans("JumpToLogin"), 'text'=>' '.$langs->trans("JumpToLogin"), 'url'=>DOL_URL_ROOT.'/index.php'); + print json_encode($arrayresult); + if (is_object($db)) $db->close(); + exit; + } } include_once DOL_DOCUMENT_ROOT.'/core/lib/json.lib.php'; diff --git a/htdocs/core/boxes/box_activity.php b/htdocs/core/boxes/box_activity.php index 8d8b2962688..ae3e270101e 100644 --- a/htdocs/core/boxes/box_activity.php +++ b/htdocs/core/boxes/box_activity.php @@ -83,17 +83,17 @@ class box_activity extends ModeleBoxes $cachetime = 3600; $fileid = '-e'.$conf->entity.'-u'.$user->id.'-s'.$user->societe_id.'-r'.($user->rights->societe->client->voir?'1':'0').'.cache'; $now = dol_now(); - $nbofyears=2; + $nbofperiod=3; - if (! empty($conf->global->MAIN_BOX_ACTIVITY_DURATION)) $nbofyears=$conf->global->MAIN_BOX_ACTIVITY_DURATION; - $textHead = $langs->trans("Activity").' - '.$langs->trans("LastXMonthRolling", $nbofyears*12); + if (! empty($conf->global->MAIN_BOX_ACTIVITY_DURATION)) $nbofperiod=$conf->global->MAIN_BOX_ACTIVITY_DURATION; + $textHead = $langs->trans("Activity").' - '.$langs->trans("LastXMonthRolling", $nbofperiod); $this->info_box_head = array( 'text' => $textHead, 'limit'=> dol_strlen($textHead), ); // compute the year limit to show - $tmpdate= dol_time_plus_duree(dol_now(), -1*$nbofyears, "y"); + $tmpdate= dol_time_plus_duree(dol_now(), -1*$nbofperiod, "m"); $cumuldata = array(); @@ -103,6 +103,7 @@ class box_activity extends ModeleBoxes include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; $facturestatic=new Facture($db); + // part 1 $cachedir = DOL_DATA_ROOT.'/facture/temp'; $filename = '/boxactivity-invoice'.$fileid; @@ -189,6 +190,7 @@ class box_activity extends ModeleBoxes ); } + // part 2 $cachedir = DOL_DATA_ROOT.'/facture/temp'; $filename = '/boxactivity-invoice2'.$fileid; diff --git a/htdocs/core/boxes/box_services_contracts.php b/htdocs/core/boxes/box_services_contracts.php index ccdcfbdbe5a..1795f7c6f2f 100644 --- a/htdocs/core/boxes/box_services_contracts.php +++ b/htdocs/core/boxes/box_services_contracts.php @@ -27,7 +27,7 @@ include_once DOL_DOCUMENT_ROOT.'/core/boxes/modules_boxes.php'; /** - * Class to manage the box to show last services lines + * Class to manage the box to show last contracted products/services lines */ class box_services_contracts extends ModeleBoxes { @@ -72,6 +72,8 @@ class box_services_contracts extends ModeleBoxes include_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php'; + $form = new Form($db); + $this->info_box_head = array('text' => $langs->trans("BoxLastProductsInContract",$max)); if ($user->rights->service->lire && $user->rights->contrat->lire) @@ -79,11 +81,12 @@ class box_services_contracts extends ModeleBoxes $contractstatic=new Contrat($db); $contratlignestatic=new ContratLigne($db); $thirdpartytmp = new Societe($db); + $productstatic = new Product($db); $sql = "SELECT s.nom as name, s.rowid as socid,"; $sql.= " c.rowid, c.ref, c.statut as contract_status,"; - $sql.= " cd.rowid as cdid, cd.tms as datem, cd.statut, cd.label, cd.description, cd.product_type as type,"; - $sql.= " p.rowid as product_id, p.ref as product_ref"; + $sql.= " cd.rowid as cdid, cd.label, cd.description, cd.tms as datem, cd.statut, cd.product_type as type,"; + $sql.= " p.rowid as product_id, p.ref as product_ref, p.label as plabel, p.fk_product_type as ptype, p.entity"; $sql.= " FROM (".MAIN_DB_PREFIX."societe as s"; $sql.= " INNER JOIN ".MAIN_DB_PREFIX."contrat as c ON s.rowid = c.fk_soc"; $sql.= " INNER JOIN ".MAIN_DB_PREFIX."contratdet as cd ON c.rowid = cd.fk_contrat"; @@ -140,8 +143,41 @@ class box_services_contracts extends ModeleBoxes } } + // Label + if ($objp->product_id > 0) + { + $productstatic->id=$objp->product_id; + $productstatic->type=$objp->ptype; + $productstatic->ref=$objp->product_ref; + $productstatic->entity=$objp->pentity; + $productstatic->label=$objp->plabel; + $text = $productstatic->getNomUrl(1,'',20); + if ($objp->plabel) + { + $text .= ' - '; + //$productstatic->ref=$objp->label; + //$text .= $productstatic->getNomUrl(0,'',16); + $text .= $objp->plabel; + } + $description = $objp->description; + + // Add description in form + if (! empty($conf->global->PRODUIT_DESC_IN_FORM)) + { + //$text .= (! empty($objp->description) && $objp->description!=$objp->plabel)?'
'.dol_htmlentitiesbr($objp->description):''; + $description = ''; // Already added into main visible desc + } + + $s = $form->textwithtooltip($text,$description,3,'','',$cursorline,0,(!empty($line->fk_parent_line)?img_picto('', 'rightarrow'):'')); + } + else + { + $s = img_object($langs->trans("ShowProductOrService"), ($objp->product_type ? 'service' : 'product')).' '.dol_htmlentitiesbr($objp->description); + } + + $this->info_box_contents[$i][] = array('td' => 'class="tdoverflowmax100 maxwidth100onsmartphone"', - 'text' => $contratlignestatic->getNomUrl(1), + 'text' => $s, 'asis' => 1 ); diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index ddfb2780f3f..1c516078dd4 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -334,23 +334,23 @@ abstract class CommonObject // No constructor as it is an abstract class - /** - * Check an object id/ref exists - * If you don't need/want to instantiate object and just need to know if object exists, use this method instead of fetch - * + /** + * Check an object id/ref exists + * If you don't need/want to instantiate object and just need to know if object exists, use this method instead of fetch + * * @param string $element String of element ('product', 'facture', ...) * @param int $id Id of object * @param string $ref Ref of object to check * @param string $ref_ext Ref ext of object to check * @return int <0 if KO, 0 if OK but not found, >0 if OK and exists - */ - static function isExistingObject($element, $id, $ref='', $ref_ext='') - { - global $db,$conf; + */ + static function isExistingObject($element, $id, $ref='', $ref_ext='') + { + global $db,$conf; $sql = "SELECT rowid, ref, ref_ext"; $sql.= " FROM ".MAIN_DB_PREFIX.$element; - $sql.= " WHERE entity IN (".getEntity($element, true).")" ; + $sql.= " WHERE entity IN (".getEntity($element).")" ; if ($id > 0) $sql.= " AND rowid = ".$db->escape($id); else if ($ref) $sql.= " AND ref = '".$db->escape($ref)."'"; @@ -371,17 +371,17 @@ abstract class CommonObject else return 0; } return -1; - } + } - /** - * Method to output saved errors - * - * @return string String with errors - */ - function errorsToString() - { - return $this->error.(is_array($this->errors)?(($this->error!=''?', ':'').join(', ',$this->errors)):''); - } + /** + * Method to output saved errors + * + * @return string String with errors + */ + function errorsToString() + { + return $this->error.(is_array($this->errors)?(($this->error!=''?', ':'').join(', ',$this->errors)):''); + } /** * Return full name (civility+' '+name+' '+lastname) @@ -1309,7 +1309,7 @@ abstract class CommonObject * Load properties id_previous and id_next * * @param string $filter Optional filter. Example: " AND (t.field1 = 'aa' OR t.field2 = 'bb')" - * @param int $fieldid Name of field to use for the select MAX and MIN + * @param string $fieldid Name of field to use for the select MAX and MIN * @param int $nodbprefix Do not include DB prefix to forge table name * @return int <0 if KO, >0 if OK */ @@ -1322,6 +1322,7 @@ abstract class CommonObject dol_print_error('',get_class($this)."::load_previous_next_ref was called on objet with property table_element not defined"); return -1; } + if ($fieldid == 'none') return 1; // this->ismultientitymanaged contains // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe @@ -3875,7 +3876,7 @@ abstract class CommonObject * * @param string $modelspath Relative folder where generators are placed * @param string $modele Generator to use. Caller must set it to obj->modelpdf or GETPOST('modelpdf') for example. - * @param Translate $outputlangs Language to use + * @param Translate $outputlangs Output language to use * @param int $hidedetails 1 to hide details. 0 by default * @param int $hidedesc 1 to hide product description. 0 by default * @param int $hideref 1 to hide product reference. 0 by default @@ -3884,7 +3885,7 @@ abstract class CommonObject */ protected function commonGenerateDocument($modelspath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams=null) { - global $conf, $langs; + global $conf, $langs, $user; $srctemplatepath=''; @@ -3902,7 +3903,6 @@ abstract class CommonObject $srctemplatepath=$tmp[1]; } - // Search template files $file=''; $classname=''; $filefound=0; $dirmodels=array('/'); @@ -3947,7 +3947,7 @@ abstract class CommonObject // Now we add first model found in directories scanned $listofdir=explode(',',$dirtoscan); - foreach($listofdir as $key=>$tmpdir) + foreach($listofdir as $key => $tmpdir) { $tmpdir=trim($tmpdir); $tmpdir=preg_replace('/DOL_DATA_ROOT/',DOL_DATA_ROOT,$tmpdir); @@ -3994,7 +3994,10 @@ abstract class CommonObject $arrayofrecords = array(); // The write_file of templates of adherent class need this $resultwritefile = $obj->write_file($this, $outputlangs, $srctemplatepath, 'member', 1, $moreparams); } - else $resultwritefile = $obj->write_file($this, $outputlangs, $srctemplatepath, $hidedetails, $hidedesc, $hideref, $moreparams); + else + { + $resultwritefile = $obj->write_file($this, $outputlangs, $srctemplatepath, $hidedetails, $hidedesc, $hideref, $moreparams); + } if ($resultwritefile > 0) { @@ -4004,6 +4007,58 @@ abstract class CommonObject require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; dol_delete_preview($this); + // Index file in database + if (! empty($obj->result['fullpath'])) + { + $destfull = $obj->result['fullpath']; + $upload_dir = dirname($destfull); + $destfile = basename($destfull); + $rel_dir = preg_replace('/^'.preg_quote(DOL_DATA_ROOT,'/').'/', '', $upload_dir); + + if (! preg_match('/[\\/]temp[\\/]|[\\/]thumbs|\.meta$/', $rel_dir)) // If not a tmp dir + { + $filename = basename($destfile); + $rel_dir = preg_replace('/[\\/]$/', '', $rel_dir); + $rel_dir = preg_replace('/^[\\/]/', '', $rel_dir); + + include_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmfiles.class.php'; + $ecmfile=new EcmFiles($this->db); + $result = $ecmfile->fetch(0, '', ($rel_dir?$rel_dir.'/':'').$filename); + if ($result > 0) + { + $ecmfile->label = md5_file(dol_osencode($destfull)); + $ecmfile->fullpath_orig = ''; + $ecmfile->gen_or_uploaded = 'generated'; + $ecmfile->description = ''; // indexed content + $ecmfile->keyword = ''; // keyword content + $result = $ecmfile->update($user); + if ($result < 0) + { + setEventMessages($ecmfile->error, $ecmfile->errors, 'warnings'); + } + } + else + { + $ecmfile->filepath = $rel_dir; + $ecmfile->filename = $filename; + $ecmfile->label = md5_file(dol_osencode($destfull)); + $ecmfile->fullpath_orig = ''; + $ecmfile->gen_or_uploaded = 'generated'; + $ecmfile->description = ''; // indexed content + $ecmfile->keyword = ''; // keyword content + $result = $ecmfile->create($user); + if ($result < 0) + { + setEventMessages($ecmfile->error, $ecmfile->errors, 'warnings'); + } + } + } + } + else + { + dol_syslog('Method ->write_file was called on object '.get_class($obj).' and return a success but the return array ->result["fullpath"] was not set.', LOG_WARNING); + } + // Success in building document. We build meta file. dol_meta_create($this); @@ -4736,19 +4791,6 @@ abstract class CommonObject - - /** - * Function test if type is date - * - * @param array $info content informations of field - * @return bool - */ - protected function isDate($info) - { - if(isset($info['type']) && ($info['type']=='date' || $info['type']=='datetime' || $info['type']=='timestamp')) return true; - else return false; - } - /** * Function test if type is array * @@ -4781,13 +4823,26 @@ abstract class CommonObject else return false; } + + /** + * Function test if type is date + * + * @param array $info content informations of field + * @return bool + */ + public function isDate($info) + { + if(isset($info['type']) && ($info['type']=='date' || $info['type']=='datetime' || $info['type']=='timestamp')) return true; + else return false; + } + /** * Function test if type is integer * * @param array $info content informations of field * @return bool */ - protected function isInt($info) + public function isInt($info) { if(is_array($info)) { @@ -4803,11 +4858,11 @@ abstract class CommonObject * @param array $info content informations of field * @return bool */ - protected function isFloat($info) + public function isFloat($info) { if(is_array($info)) { - if(isset($info['type']) && $info['type']=='float') return true; + if (isset($info['type']) && (preg_match('/^(double|real)/i', $info['type']))) return true; else return false; } else return false; @@ -4819,7 +4874,7 @@ abstract class CommonObject * @param array $info content informations of field * @return bool */ - protected function isText($info) + public function isText($info) { if(is_array($info)) { @@ -4846,49 +4901,58 @@ abstract class CommonObject } /** - * Function to prepare the values to insert + * Function to prepare the values to insert. + * Note $this->${field} are set by the page that make the createCommon or the updateCommon. * * @return array */ private function set_save_query() { - $query=array(); - foreach ($this->fields as $field=>$info) + global $conf; + + $queryarray=array(); + foreach ($this->fields as $field=>$info) // Loop on definition of fields { + // Depending on field type ('datetime', ...) if($this->isDate($info)) { if(empty($this->{$field})) { - $query[$field] = NULL; + $queryarray[$field] = NULL; } else { - $query[$field] = $this->db->idate($this->{$field}); + $queryarray[$field] = $this->db->idate($this->{$field}); } } else if($this->isArray($info)) { - $query[$field] = serialize($this->{$field}); + $queryarray[$field] = serialize($this->{$field}); } else if($this->isInt($info)) { - $query[$field] = (int) price2num($this->{$field}); + if ($field == 'entity' && is_null($this->{$field})) $queryarray[$field]=$conf->entity; + else + { + $queryarray[$field] = (int) price2num($this->{$field}); + if (empty($queryarray[$field])) $queryarray[$field]=0; // May be reset to null later if property 'notnull' is -1 for this field. + } } else if($this->isFloat($info)) { - $query[$field] = (double) price2num($this->{$field}); - } - elseif($this->isNull($info)) - { - $query[$field] = (is_null($this->{$field}) || (empty($this->{$field}) && $this->{$field}!==0 && $this->{$field}!=='0') ? null : $this->{$field}); + $queryarray[$field] = (double) price2num($this->{$field}); + if (empty($queryarray[$field])) $queryarray[$field]=0; } else { - $query[$field] = $this->{$field}; + $queryarray[$field] = $this->{$field}; } + + if ($info['type'] == 'timestamp' && empty($queryarray[$field])) unset($queryarray[$field]); + if (! empty($info['notnull']) && $info['notnull'] == -1 && empty($queryarray[$field])) $queryarray[$field] = null; } - return $query; + return $queryarray; } /** @@ -4896,7 +4960,7 @@ abstract class CommonObject * * @param stdClass $obj Contain data of object from database */ - private function set_vars_by_db(&$obj) + private function setVarsFromFetchObj(&$obj) { foreach ($this->fields as $field => $info) { @@ -4913,7 +4977,8 @@ abstract class CommonObject } elseif($this->isInt($info)) { - $this->{$field} = (int) $obj->{$field}; + if ($field == 'rowid') $this->id = (int) $obj->{$field}; + else $this->{$field} = (int) $obj->{$field}; } elseif($this->isFloat($info)) { @@ -4947,15 +5012,14 @@ abstract class CommonObject /** * Add quote to field value if necessary * - * @param string|int $value value to protect - * @return string|int + * @param string|int $value Value to protect + * @param array $fieldsentry Properties of field + * @return string */ - protected function quote($value) { - - if(is_null($value)) return 'NULL'; - else if(is_numeric($value)) return $value; - else return "'".$this->db->escape( $value )."'"; - + protected function quote($value, $fieldsentry) { + if (is_null($value)) return 'NULL'; + else if (preg_match('/^(int|double|real)/i', $fieldsentry['type'])) return $this->db->escape("$value"); + else return "'".$this->db->escape($value)."'"; } @@ -4970,23 +5034,29 @@ abstract class CommonObject { $error = 0; - $fields = array_merge(array('datec'=>$this->db->idate(dol_now())), $this->set_save_query()); + $now=dol_now(); + + $fieldvalues = $this->set_save_query(); + if (array_key_exists('date_creation', $fieldvalues) && empty($fieldvalues['date_creation'])) $fieldvalues['date_creation']=$this->db->idate($now); + if (array_key_exists('fk_user_creat', $fieldvalues) && ! ($fieldvalues['fk_user_creat'] > 0)) $fieldvalues['fk_user_creat']=$user->id; + unset($fieldvalues['rowid']); // The field 'rowid' is reserved field name for autoincrement field so we don't need it into insert. $keys=array(); $values = array(); - foreach ($fields as $k => $v) { + foreach ($fieldvalues as $k => $v) { $keys[] = $k; - $values[] = $this->quote($v); + $values[] = $this->quote($v, $this->fields[$k]); } $this->db->begin(); if (! $error) { - $sql = 'INSERT INTO '.MAIN_DB_PREFIX.$this->table_element.' - ( '.implode( ",", $keys ).' ) - VALUES ( '.implode( ",", $values ).' ) '; - $res = $this->db->query( $sql ); + $sql = 'INSERT INTO '.MAIN_DB_PREFIX.$this->table_element; + $sql.= ' ('.implode( ", ", $keys ).')'; + $sql.= ' VALUES ('.implode( ", ", $values ).')'; + + $res = $this->db->query($sql); if ($res===false) { $error++; $this->errors[] = $this->db->lasterror(); @@ -4998,7 +5068,7 @@ abstract class CommonObject if (!$notrigger) { // Call triggers - $result=$this->call_trigger(strtoupper(get_class(self)).'_CREATE',$user); + $result=$this->call_trigger(strtoupper(get_class($this)).'_CREATE',$user); if ($result < 0) { $error++; } // End call triggers } @@ -5014,52 +5084,6 @@ abstract class CommonObject } } - /** - * Load an object from its id and create a new one in database - * - * @param User $user User that creates - * @param int $fromid Id of object to clone - * @return int New id of clone - */ - public function createFromCloneCommon(User $user, $fromid) - { - global $user; - - $error = 0; - - dol_syslog(__METHOD__, LOG_DEBUG); - - $object = new self($this->db); - - $this->db->begin(); - - // Load source object - $object->fetchCommon($fromid); - // Reset object - $object->id = 0; - - // Clear fields - // ... - - // Create clone - $result = $object->createCommon($user); - - // Other options - if ($result < 0) { - $error ++; - $this->errors = $object->errors; - dol_syslog(__METHOD__ . ' ' . implode(',', $this->errors), LOG_ERR); - } - - // End - if (!$error) { - $this->db->commit(); - return $object->id; - } else { - $this->db->rollback(); - return -1; - } - } /** * Load object in memory from the database @@ -5072,11 +5096,11 @@ abstract class CommonObject { if (empty($id) && empty($ref)) return false; - $sql = 'SELECT '.$this->get_field_list().', datec, tms'; + $sql = 'SELECT '.$this->get_field_list(); $sql.= ' FROM '.MAIN_DB_PREFIX.$this->table_element; if(!empty($id)) $sql.= ' WHERE rowid = '.$id; - else $sql.= ' WHERE ref = \''.$this->quote($ref).'\''; + else $sql.= " WHERE ref = ".$this->quote($ref, $this->fields['ref']); $res = $this->db->query($sql); if ($res) @@ -5085,12 +5109,7 @@ abstract class CommonObject { if ($obj) { - $this->id = $id; - $this->set_vars_by_db($obj); - - $this->datec = $this->db->idate($obj->datec); - $this->tms = $this->db->idate($obj->tms); - + $this->setVarsFromFetchObj($obj); return $this->id; } else @@ -5124,27 +5143,27 @@ abstract class CommonObject { $error = 0; - $fields = $this->set_save_query(); + $fieldvalues = $this->set_save_query(); + unset($fieldvalues['rowid']); // We don't update this field, it is the key to define which record to update. - foreach ($fields as $k => $v) { + foreach ($fieldvalues as $k => $v) { if (is_array($key)){ $i=array_search($k, $key); if ( $i !== false) { - $where[] = $key[$i].'=' . $this->quote( $v ) ; + $where[] = $key[$i].'=' . $this->quote($v, $this->fields[$k]); continue; } } else { if ( $k == $key) { - $where[] = $k.'=' .$this->quote( $v ) ; + $where[] = $k.'=' .$this->quote($v, $this->fields[$k]); continue; } } - $tmp[] = $k.'='.$this->quote($v); + $tmp[] = $k.'='.$this->quote($v, $this->fields[$k]); } $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element.' SET '.implode( ',', $tmp ).' WHERE rowid='.$this->id ; $this->db->begin(); - if (! $error) { $res = $this->db->query($sql); @@ -5157,7 +5176,7 @@ abstract class CommonObject if (! $error && ! $notrigger) { // Call triggers - $result=$this->call_trigger(strtoupper(get_class(self)).'_MODIFY',$user); + $result=$this->call_trigger(strtoupper(get_class($this)).'_MODIFY',$user); if ($result < 0) { $error++; } //Do also here what you must do to rollback action if trigger fail // End call triggers } @@ -5188,7 +5207,7 @@ abstract class CommonObject if (! $error) { if (! $notrigger) { // Call triggers - $result=$this->call_trigger(strtoupper(get_class(self)).'_DELETE', $user); + $result=$this->call_trigger(strtoupper(get_class($this)).'_DELETE', $user); if ($result < 0) { $error++; } // Do also here what you must do to rollback action if trigger fail // End call triggers } diff --git a/htdocs/core/class/doleditor.class.php b/htdocs/core/class/doleditor.class.php index 3760dc04081..eaf72ffff71 100644 --- a/htdocs/core/class/doleditor.class.php +++ b/htdocs/core/class/doleditor.class.php @@ -52,7 +52,7 @@ class DolEditor * @param string $content Content of WYSIWIG field * @param int $width Width in pixel of edit area (auto by default) * @param int $height Height in pixel of edit area (200px by default) - * @param string $toolbarname Name of bar set to use ('Full', 'dolibarr_notes[_encoded]', 'dolibarr_details[_encoded]'=the less featured, 'dolibarr_mailings[_encoded]', 'dolibarr_readonly') + * @param string $toolbarname Name of bar set to use ('Full', 'dolibarr_notes[_encoded]', 'dolibarr_details[_encoded]'=the less featured, 'dolibarr_mailings[_encoded]', 'dolibarr_readonly', 'ace'). * @param string $toolbarlocation Where bar is stored : * 'In' each window has its own toolbar * 'Out:name' share toolbar into the div called 'name' @@ -82,7 +82,7 @@ class DolEditor // Check if extended editor is ok. If not we force textarea if ((empty($conf->fckeditor->enabled) && $okforextendededitor != 'ace') || empty($okforextendededitor)) $this->tool = 'textarea'; if ($okforextendededitor === 'ace') $this->tool='ace'; - if ($conf->dol_use_jmobile) $this->tool = 'textarea'; // TODO ckeditor ko with mobile ? ace ko with mobile ? + //if ($conf->dol_use_jmobile) $this->tool = 'textarea'; // ckeditor and ace seems ok with mobile // Define content and some properties if ($this->tool == 'ckeditor') @@ -145,9 +145,10 @@ class DolEditor * @param string $morejs Add more js. For example: ".on( \'saveSnapshot\', function(e) { alert(\'ee\'); });". Used by CKEditor only. * @param boolean $disallowAnyContent Disallow to use any content. true=restrict to a predefined list of allowed elements. Used by CKEditor only. * @param string $titlecontent Show title content before editor area. Used by ACE editor only. + * @param string $option For ACE editor, set the source language ('html', 'php', 'javascript', ...) * @return void|string */ - function Create($noprint=0, $morejs='', $disallowAnyContent=true, $titlecontent='') + function Create($noprint=0, $morejs='', $disallowAnyContent=true, $titlecontent='', $option='') { global $conf,$langs; @@ -254,21 +255,21 @@ class DolEditor if (preg_match('/^ace/', $this->tool)) { $found=1; - $format=(GETPOST('format','aZ09')?GETPOST('format','aZ09'):'php'); + $format=$option; - $out.= ''."\n"; + $out.= "\n".''."\n"; if ($titlecontent) { - $out.= '
'.$titlecontent; - $out.= '   -   '.dol_escape_htmltag($langs->trans("ShowMoreLines")).'     '; + $out.= '
'.$titlecontent; + $out.= '   -   '.dol_escape_htmltag($langs->trans("ShowMoreLines")).'     '; $out.= '
'; $out.= ''."\n"; diff --git a/htdocs/core/class/events.class.php b/htdocs/core/class/events.class.php index 2cfedfb7d1a..68f033870c2 100644 --- a/htdocs/core/class/events.class.php +++ b/htdocs/core/class/events.class.php @@ -172,7 +172,7 @@ class Events // extends CommonObject // Update request $sql = "UPDATE ".MAIN_DB_PREFIX."events SET"; $sql.= " type='".$this->db->escape($this->type)."',"; - $sql.= " dateevent=".$this->db->idate($this->dateevent).","; + $sql.= " dateevent='".$this->db->idate($this->dateevent)."',"; $sql.= " description='".$this->db->escape($this->description)."'"; $sql.= " WHERE rowid=".$this->id; diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index e44fa8a5aec..3fcb909fc51 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -139,9 +139,10 @@ class ExtraFields * @param int $list Into list view by default * @param int $ishidden Is hidden extrafield (warning, do not rely on this. If your module need a hidden data, it must use its own table) * @param string $computed Computed value + * @param string $entity Entity of extrafields * @return int <=0 if KO, >0 if OK */ - function addExtraField($attrname, $label, $type, $pos, $size, $elementtype, $unique=0, $required=0, $default_value='', $param=0, $alwayseditable=0, $perms='', $list=0, $ishidden=0, $computed='') + function addExtraField($attrname, $label, $type, $pos, $size, $elementtype, $unique=0, $required=0, $default_value='', $param=0, $alwayseditable=0, $perms='', $list=0, $ishidden=0, $computed='', $entity='') { if (empty($attrname)) return -1; if (empty($label)) return -1; @@ -158,7 +159,7 @@ class ExtraFields if ($result > 0 || $err1 == 'DB_ERROR_COLUMN_ALREADY_EXISTS' || $type == 'separate') { // Add declaration of field into table - $result2=$this->create_label($attrname, $label, $type, $pos, $size, $elementtype, $unique, $required, $param, $alwayseditable, $perms, $list, $ishidden, $default, $computed); + $result2=$this->create_label($attrname, $label, $type, $pos, $size, $elementtype, $unique, $required, $param, $alwayseditable, $perms, $list, $ishidden, $default, $computed, $entity); $err2=$this->errno; if ($result2 > 0 || ($err1 == 'DB_ERROR_COLUMN_ALREADY_EXISTS' && $err2 == 'DB_ERROR_RECORD_ALREADY_EXISTS')) { @@ -277,11 +278,12 @@ class ExtraFields * @param int $ishidden Is hidden extrafield (warning, do not rely on this. If your module need a hidden data, it must use its own table) * @param string $default Default value (in database. use the default_value feature for default value on screen). * @param string $computed Computed value + * @param string $entity Entity of extrafields * @return int <=0 if KO, >0 if OK */ - private function create_label($attrname, $label='', $type='', $pos=0, $size=0, $elementtype='member', $unique=0, $required=0, $param='', $alwayseditable=0, $perms='', $list=0, $ishidden=0, $default='', $computed='') + private function create_label($attrname, $label='', $type='', $pos=0, $size=0, $elementtype='member', $unique=0, $required=0, $param='', $alwayseditable=0, $perms='', $list=0, $ishidden=0, $default='', $computed='',$entity='') { - global $conf; + global $conf,$user; if ($elementtype == 'thirdparty') $elementtype='societe'; if ($elementtype == 'contact') $elementtype='socpeople'; @@ -305,13 +307,33 @@ class ExtraFields $params=''; } - $sql = "INSERT INTO ".MAIN_DB_PREFIX."extrafields(name, label, type, pos, size, entity, elementtype, fieldunique, fieldrequired, param, alwayseditable, perms, list, ishidden, fielddefault, fieldcomputed)"; + $sql = "INSERT INTO ".MAIN_DB_PREFIX."extrafields("; + $sql.= " name,"; + $sql.= " label,"; + $sql.= " type,"; + $sql.= " pos,"; + $sql.= " size,"; + $sql.= " entity,"; + $sql.= " elementtype,"; + $sql.= " fieldunique,"; + $sql.= " fieldrequired,"; + $sql.= " param,"; + $sql.= " alwayseditable,"; + $sql.= " perms,"; + $sql.= " list,"; + $sql.= " ishidden,"; + $sql.= " fielddefault,"; + $sql.= " fieldcomputed,"; + $sql.= " fk_user_author,"; + $sql.= " fk_user_modif,"; + $sql.= " datec"; + $sql.= " )"; $sql.= " VALUES('".$attrname."',"; $sql.= " '".$this->db->escape($label)."',"; $sql.= " '".$type."',"; $sql.= " '".$pos."',"; $sql.= " '".$size."',"; - $sql.= " ".$conf->entity.","; + $sql.= " ".($entity===''?$conf->entity:$entity).","; $sql.= " '".$elementtype."',"; $sql.= " '".$unique."',"; $sql.= " '".$required."',"; @@ -321,9 +343,12 @@ class ExtraFields $sql.= " ".$list.","; $sql.= " ".$ishidden.","; $sql.= " ".($default?"'".$this->db->escape($default)."'":"null").","; - $sql.= " ".($computed?"'".$this->db->escape($computed)."'":"null"); + $sql.= " ".($computed?"'".$this->db->escape($computed)."'":"null").","; + $sql .= " " . $user->id . ","; + $sql .= " " . $user->id . ","; + $sql .= "'" . $this->db->idate(dol_now()) . "'"; $sql.=')'; - + dol_syslog(get_class($this)."::create_label", LOG_DEBUG); if ($this->db->query($sql)) { @@ -454,9 +479,10 @@ class ExtraFields * @param int $ishidden Is hidden extrafield (warning, do not rely on this. If your module need a hidden data, it must use its own table) * @param string $default Default value (in database. use the default_value feature for default value on screen). * @param string $computed Computed value + * @param string $entity Entity of extrafields * @return int >0 if OK, <=0 if KO */ - function update($attrname,$label,$type,$length,$elementtype,$unique=0,$required=0,$pos=0,$param='',$alwayseditable=0, $perms='',$list='',$ishidden=0,$default='',$computed='') + function update($attrname,$label,$type,$length,$elementtype,$unique=0,$required=0,$pos=0,$param='',$alwayseditable=0, $perms='',$list='',$ishidden=0,$default='',$computed='',$entity='') { if ($elementtype == 'thirdparty') $elementtype='societe'; if ($elementtype == 'contact') $elementtype='socpeople'; @@ -504,7 +530,7 @@ class ExtraFields { if ($label) { - $result=$this->update_label($attrname,$label,$type,$length,$elementtype,$unique,$required,$pos,$param,$alwayseditable,$perms,$list,$ishidden,$default,$computed); + $result=$this->update_label($attrname,$label,$type,$length,$elementtype,$unique,$required,$pos,$param,$alwayseditable,$perms,$list,$ishidden,$default,$computed,$entity); } if ($result > 0) { @@ -558,12 +584,13 @@ class ExtraFields * @param int $ishidden Is hidden extrafield (warning, do not rely on this. If your module need a hidden data, it must use its own table) * @param string $default Default value (in database. use the default_value feature for default value on screen). * @param string $computed Computed value + * @param string $entity Entity of extrafields * @return int <=0 if KO, >0 if OK */ - private function update_label($attrname,$label,$type,$size,$elementtype,$unique=0,$required=0,$pos=0,$param='',$alwayseditable=0,$perms='',$list=0,$ishidden=0,$default='',$computed='') + private function update_label($attrname,$label,$type,$size,$elementtype,$unique=0,$required=0,$pos=0,$param='',$alwayseditable=0,$perms='',$list=0,$ishidden=0,$default='',$computed='',$entity='') { - global $conf; - dol_syslog(get_class($this)."::update_label ".$attrname.", ".$label.", ".$type.", ".$size.", ".$elementtype.", ".$unique.", ".$required.", ".$pos.", ".$alwayseditable.", ".$perms.", ".$list.", ".$ishidden.", ".$default.", ".$computed); + global $conf, $user; + dol_syslog(get_class($this)."::update_label ".$attrname.", ".$label.", ".$type.", ".$size.", ".$elementtype.", ".$unique.", ".$required.", ".$pos.", ".$alwayseditable.", ".$perms.", ".$list.", ".$ishidden.", ".$default.", ".$computed.", ".$entity); // Clean parameters if ($elementtype == 'thirdparty') $elementtype='societe'; @@ -582,7 +609,7 @@ class ExtraFields $sql_del = "DELETE FROM ".MAIN_DB_PREFIX."extrafields"; $sql_del.= " WHERE name = '".$attrname."'"; - $sql_del.= " AND entity = ".$conf->entity; + $sql_del.= " AND entity = ".($entity===''?$conf->entity:$entity); $sql_del.= " AND elementtype = '".$elementtype."'"; $resql1=$this->db->query($sql_del); @@ -603,10 +630,13 @@ class ExtraFields $sql.= " list,"; $sql.= " ishidden,"; $sql.= " fielddefault,"; - $sql.= " fieldcomputed"; + $sql.= " fieldcomputed,"; + $sql.= " fk_user_author,"; + $sql.= " fk_user_modif,"; + $sql.= " datec"; $sql.= ") VALUES ("; $sql.= "'".$attrname."',"; - $sql.= " ".$conf->entity.","; + $sql.= " ".($entity===''?$conf->entity:$entity).","; $sql.= " '".$this->db->escape($label)."',"; $sql.= " '".$type."',"; $sql.= " '".$size."',"; @@ -620,7 +650,10 @@ class ExtraFields $sql.= " ".$list.", "; $sql.= " ".$ishidden.", "; $sql.= " ".($default?"'".$this->db->escape($default)."'":"null").","; - $sql.= " ".($computed?"'".$this->db->escape($computed)."'":"null"); + $sql.= " ".($computed?"'".$this->db->escape($computed)."'":"null").","; + $sql .= " " . $user->id . ","; + $sql .= " " . $user->id . ","; + $sql .= "'" . $this->db->idate(dol_now()) . "'"; $sql.= ")"; $resql2=$this->db->query($sql); @@ -670,6 +703,7 @@ class ExtraFields dol_syslog("fetch_name_optionals_label elementtype=".$elementtype); $sql = "SELECT rowid,name,label,type,size,elementtype,fieldunique,fieldrequired,param,pos,alwayseditable,perms,list,ishidden,fielddefault,fieldcomputed"; + $sql .= ",entity"; $sql.= " FROM ".MAIN_DB_PREFIX."extrafields"; $sql.= " WHERE entity IN (0,".$conf->entity.")"; if ($elementtype) $sql.= " AND elementtype = '".$elementtype."'"; @@ -687,6 +721,8 @@ class ExtraFields { $array_name_label[$tab->name]=$tab->label; } + + // Old usage $this->attribute_type[$tab->name]=$tab->type; @@ -703,6 +739,9 @@ class ExtraFields $this->attribute_perms[$tab->name]=$tab->perms; $this->attribute_list[$tab->name]=$tab->list; $this->attribute_hidden[$tab->name]=$tab->ishidden; + $this->attribute_entityid[$tab->name]=$tab->entity; + + // New usage $this->attributes[$tab->elementtype]['type'][$tab->name]=$tab->type; @@ -719,6 +758,29 @@ class ExtraFields $this->attributes[$tab->elementtype]['perms'][$tab->name]=$tab->perms; $this->attributes[$tab->elementtype]['list'][$tab->name]=$tab->list; $this->attributes[$tab->elementtype]['ishidden'][$tab->name]=$tab->ishidden; + $this->attributes[$tab->elementtype]['entityid'][$tab->name]=$tab->entity; + + + if (!empty($conf->multicompany->enabled)) { + $sql_entity_name='SELECT label FROM '.MAIN_DB_PREFIX.'entity WHERE rowid='.$tab->entity; + $resql_entity_name=$this->db->query($sql_entity_name); + if ($resql_entity_name) + { + if ($this->db->num_rows($resql_entity_name)) + { + if ($obj = $this->db->fetch_object($resql_entity_name)) + { + $this->attribute_entitylabel[$tab->name]=$obj->label; + $this->attributes[$tab->elementtype]['entitylabel'][$tab->name]=$obj->label; + } + } + } + } + else + { + $this->error=$this->db->lasterror(); + dol_syslog(get_class($this)."::fetch_name_optionals_label ".$this->error, LOG_ERR); + } } } if ($elementtype) $this->attributes[$elementtype]['loaded']=1; diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 0f16a25c43f..a55952e28ac 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -4417,7 +4417,7 @@ class Form dol_syslog(__METHOD__, LOG_DEBUG); - $sql = "SELECT DISTINCT t.rowid, t.code, t.taux, t.recuperableonly"; + $sql = "SELECT DISTINCT t.rowid, t.code, t.taux, t.localtax1, t.localtax1_type, t.localtax2, t.localtax2_type, t.recuperableonly"; $sql.= " FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_country as c"; $sql.= " WHERE t.fk_pays = c.rowid"; $sql.= " AND t.active > 0"; @@ -4436,8 +4436,20 @@ class Form $this->cache_vatrates[$i]['rowid'] = $obj->rowid; $this->cache_vatrates[$i]['code'] = $obj->code; $this->cache_vatrates[$i]['txtva'] = $obj->taux; - $this->cache_vatrates[$i]['libtva'] = $obj->taux.'%'.($obj->code?' ('.$obj->code.')':''); // Label must contains only 0-9 , . % or * $this->cache_vatrates[$i]['nprtva'] = $obj->recuperableonly; + $this->cache_vatrates[$i]['localtax1'] = $obj->localtax1; + $this->cache_vatrates[$i]['localtax1_type'] = $obj->localtax1_type; + $this->cache_vatrates[$i]['localtax2'] = $obj->localtax2; + $this->cache_vatrates[$i]['localtax2_type'] = $obj->localtax1_type; + + $this->cache_vatrates[$i]['label'] = $obj->taux.'%'.($obj->code?' ('.$obj->code.')':''); // Label must contains only 0-9 , . % or * + $this->cache_vatrates[$i]['labelallrates'] = $obj->taux.'/'.($obj->localtax1?$obj->localtax1:'0').'/'.($obj->localtax2?$obj->localtax2:'0').($obj->code?' ('.$obj->code.')':''); // Must never be used as key, only label + $positiverates=''; + if ($obj->taux) $positiverates.=($positiverates?'/':'').$obj->taux; + if ($obj->localtax1) $positiverates.=($positiverates?'/':'').$obj->localtax1; + if ($obj->localtax2) $positiverates.=($positiverates?'/':'').$obj->localtax2; + if (empty($positiverates)) $positiverates='0'; + $this->cache_vatrates[$i]['labelpositiverates'] = $positiverates.($obj->code?' ('.$obj->code.')':''); // Must never be used as key, only label } return $num; @@ -4611,7 +4623,16 @@ class Form $selectedfound=true; } } - $return.= '>'.vatrate($rate['libtva']); + $return.= '>'; + //if (! empty($conf->global->MAIN_VAT_SHOW_POSITIVE_RATES)) + if ($mysoc->country_code == 'IN' || ! empty($conf->global->MAIN_VAT_LABEL_IS_POSITIVE_RATES)) + { + $return.= $rate['labelpositiverates']; + } + else + { + $return.= vatrate($rate['label']); + } //$return.=($rate['code']?' '.$rate['code']:''); $return.= (empty($rate['code']) && $rate['nprtva']) ? ' *': ''; // We show the * (old behaviour only if new vat code is not used) @@ -4706,6 +4727,7 @@ class Form $smin = !isset($conf->global->MAIN_DEFAULT_DATE_MIN) ? '' : $conf->global->MAIN_DEFAULT_DATE_MIN; } + // You can set MAIN_POPUP_CALENDAR to 'eldy' or 'jquery' $usecalendar='combo'; if (! empty($conf->use_javascript_ajax) && (empty($conf->global->MAIN_POPUP_CALENDAR) || $conf->global->MAIN_POPUP_CALENDAR != "none")) $usecalendar=empty($conf->global->MAIN_POPUP_CALENDAR)?'eldy':$conf->global->MAIN_POPUP_CALENDAR; if ($conf->browser->phone) $usecalendar='combo'; @@ -4737,7 +4759,8 @@ class Form { $retstring.=''; + $retstring.=' onClick="showDP(\''.$base.'\',\''.$prefix.'\',\''.$langs->trans("FormatDateShortJavaInput").'\',\''.$langs->defaultlang.'\');"'; + $retstring.='>'.img_object($langs->trans("SelectDate"),'calendarday','class="datecallink"').''; } else $retstring.=''; @@ -4745,6 +4768,37 @@ class Form $retstring.=''."\n"; $retstring.=''."\n"; } + elseif ($usecalendar == 'jquery') + { + if (! $disabled) + { + print ""; + } + + // Zone de saisie manuelle de la date + $retstring.='trans("FormatDateShortJavaInput").'\'); "'; // FormatDateShortInput for dol_print_date / FormatDateShortJavaInput that is same for javascript + $retstring.='>'; + + // Icone calendrier + if (! $disabled) + { + //$retstring.=''; + } + else $retstring.=''; + + $retstring.=''."\n"; + $retstring.=''."\n"; + $retstring.=''."\n"; + } else { print "Bad value of MAIN_POPUP_CALENDAR"; @@ -5604,6 +5658,14 @@ class Form { $listofidcompanytoscan=$object->thirdparty->id; if (($object->thirdparty->parent > 0) && ! empty($conf->global->THIRDPARTY_INCLUDE_PARENT_IN_LINKTO)) $listofidcompanytoscan.=','.$object->thirdparty->parent; + if (($object->fk_project > 0) && ! empty($conf->global->THIRDPARTY_INCLUDE_PROJECT_THIRDPARY_IN_LINKTO)) + { + include_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; + $tmpproject=new Project($this->db); + $tmpproject->fetch($object->fk_project); + if ($tmpproject->socid > 0 && ($tmpproject->socid != $object->thirdparty->id)) $listofidcompanytoscan.=','.$tmpproject->socid; + unset($tmpproject); + } $possiblelinks=array( 'propal'=>array('enabled'=>$conf->propal->enabled, 'perms'=>1, 'label'=>'LinkToProposal', 'sql'=>"SELECT s.rowid as socid, s.nom as name, s.client, t.rowid, t.ref, t.ref_client, t.total_ht FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."propal as t WHERE t.fk_soc = s.rowid AND t.fk_soc IN (".$listofidcompanytoscan.') AND t.entity IN ('.getEntity('propal').')'), @@ -5835,7 +5897,7 @@ class Form * @param string $paramid Name of parameter to use to name the id into the URL next/previous link. * @param string $morehtml More html content to output just before the nav bar. * @param int $shownav Show Condition (navigation is shown if value is 1). - * @param string $fieldid Name of field id into database to use for select next and previous (we make the select max and min on this field). + * @param string $fieldid Name of field id into database to use for select next and previous (we make the select max and min on this field). Use 'none' to disable next/prev. * @param string $fieldref Name of field ref of object (object->ref) to show or 'none' to not show ref. * @param string $morehtmlref More html to show after ref. * @param string $moreparam More param to add in nav link url. Must start with '&...'. @@ -5861,18 +5923,22 @@ class Form $object->next_prev_filter.=$hookmanager->resPrint; } - //print "paramid=$paramid,morehtml=$morehtml,shownav=$shownav,$fieldid,$fieldref,$morehtmlref,$moreparam"; - $object->load_previous_next_ref((isset($object->next_prev_filter)?$object->next_prev_filter:''),$fieldid,$nodbprefix); - - $navurl = $_SERVER["PHP_SELF"]; - // Special case for project/task page - if ($paramid == 'project_ref') + $previous_ref = $next_ref = ''; + if ($shownav) { - $navurl = preg_replace('/\/tasks\/(task|contact|time|note|document).php/','/tasks.php',$navurl); - $paramid='ref'; + //print "paramid=$paramid,morehtml=$morehtml,shownav=$shownav,$fieldid,$fieldref,$morehtmlref,$moreparam"; + $object->load_previous_next_ref((isset($object->next_prev_filter)?$object->next_prev_filter:''),$fieldid,$nodbprefix); + + $navurl = $_SERVER["PHP_SELF"]; + // Special case for project/task page + if ($paramid == 'project_ref') + { + $navurl = preg_replace('/\/tasks\/(task|contact|time|note|document)\.php/','/tasks.php',$navurl); + $paramid='ref'; + } + $previous_ref = $object->ref_previous?'':''; + $next_ref = $object->ref_next?'':''; } - $previous_ref = $object->ref_previous?'':''; - $next_ref = $object->ref_next?'':''; //print "xx".$previous_ref."x".$next_ref; $ret.='
'; @@ -5926,6 +5992,10 @@ class Form { $ret.=$object->label; } + else if ($object->element == 'ecm_directories') + { + $ret.=''; + } else if ($fieldref != 'none') $ret.=dol_htmlentities($object->$fieldref); @@ -6296,5 +6366,175 @@ class Form } return $out; } + + /** + * Return HTML to show the select categories of expense category + * + * @param string $selected preselected category + * @param string $htmlname name of HTML select list + * @param integer $useempty 1=Add empty line + * @param array $excludeid id to exclude + * @param string $target htmlname of target select to bind event + * @param int $default_selected default category to select if fk_c_type_fees change = EX_KME + * @param array $params param to give + * @return string + */ + function selectExpenseCategories($selected='', $htmlname='fk_c_exp_tax_cat', $useempty=0, $excludeid=array(), $target='', $default_selected=0, $params=array()) + { + global $db,$conf,$langs; + + $sql = 'SELECT rowid, label FROM '.MAIN_DB_PREFIX.'c_exp_tax_cat WHERE active = 1'; + $sql.= ' AND entity IN (0,'.getEntity('').')'; + if (!empty($excludeid)) $sql.= ' AND rowid NOT IN ('.implode(',', $excludeid).')'; + $sql.= ' ORDER BY label'; + + $resql = $db->query($sql); + if ($resql) + { + $out = ''; + + if (!empty($target)) + { + $sql = "SELECT c.id FROM ".MAIN_DB_PREFIX."c_type_fees as c WHERE c.code = 'EX_KME' AND c.active = 1"; + $resql = $db->query($sql); + if ($resql) + { + if ($db->num_rows($resql) > 0) + { + $obj = $db->fetch_object($resql); + $out.= ''; + } + } + } + } + else + { + dol_print_error($db); + } + + return $out; + } + + /** + * Return HTML to show the select ranges of expense range + * + * @param string $selected preselected category + * @param string $htmlname name of HTML select list + * @param integer $useempty 1=Add empty line + * @return string + */ + function selectExpenseRanges($selected='', $htmlname='fk_range', $useempty=0) + { + global $db,$conf,$langs; + + $sql = 'SELECT rowid, range_ik FROM '.MAIN_DB_PREFIX.'c_exp_tax_range'; + $sql.= ' WHERE entity = '.$conf->entity.' AND active = 1'; + + $resql = $db->query($sql); + if ($resql) + { + $out = ''; + } + else + { + dol_print_error($db); + } + + return $out; + } + + /** + * Return HTML to show a select of expense + * + * @param string $selected preselected category + * @param string $htmlname name of HTML select list + * @param integer $useempty 1=Add empty choice + * @param integer $allchoice 1=Add all choice + * @param integer $useid 0=use 'code' as key, 1=use 'id' as key + * @return string + */ + function selectExpense($selected='', $htmlname='fk_c_type_fees', $useempty=0, $allchoice=1, $useid=0) + { + global $db,$langs; + + $sql = 'SELECT id, code, label FROM '.MAIN_DB_PREFIX.'c_type_fees'; + $sql.= ' WHERE active = 1'; + + $resql = $db->query($sql); + if ($resql) + { + $out = ''; + } + else + { + dol_print_error($db); + } + + return $out; + } + } diff --git a/htdocs/core/class/html.formactions.class.php b/htdocs/core/class/html.formactions.class.php index a6ec8db928a..7b312ea784a 100644 --- a/htdocs/core/class/html.formactions.class.php +++ b/htdocs/core/class/html.formactions.class.php @@ -194,11 +194,11 @@ class FormActions print '
'; print '
'; + print ''; + print ''; @@ -629,10 +615,16 @@ if (! empty($arrayfields['p.tms']['checked'])) // Status if (! empty($arrayfields['p.statut']['checked'])) { - print ''; + print ''; print $form->selectarray('search_status', array('-1'=>'', '0'=>$langs->trans('ActivityCeased'),'1'=>$langs->trans('InActivity')),$search_status); print ''; + print ''; + print ''; $searchpicto=$form->showFilterButtons(); @@ -643,19 +635,20 @@ print '
'; + print $obj->rowid; + print "'; @@ -836,8 +838,15 @@ while ($i < min($num,$limit)) print ''.$contactstatic->getLibStatut(3).''; + print $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 { diff --git a/htdocs/contrat/card.php b/htdocs/contrat/card.php index c13571dd6cb..ce3915cf2ee 100644 --- a/htdocs/contrat/card.php +++ b/htdocs/contrat/card.php @@ -1482,7 +1482,7 @@ else $sql.= " cd.date_fin_validite as date_fin, cd.date_cloture as date_fin_reelle,"; $sql.= " cd.commentaire as comment, cd.fk_product_fournisseur_price as fk_fournprice, cd.buy_price_ht as pa_ht,"; $sql.= " cd.fk_unit,"; - $sql.= " p.rowid as pid, p.ref as pref, p.label as label, p.fk_product_type as ptype, p.entity as pentity"; + $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."contratdet as cd"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON cd.fk_product = p.rowid"; $sql.= " WHERE cd.rowid = ".$object->lines[$cursorline-1]->id; @@ -1513,7 +1513,7 @@ else if ($action != 'editline' || GETPOST('rowid') != $objp->rowid) { print '
'; @@ -1521,19 +1521,21 @@ else $productstatic->type=$objp->ptype; $productstatic->ref=$objp->pref; $productstatic->entity=$objp->pentity; - $text = $productstatic->getNomUrl(1,'',20); - if ($objp->label) + $productstatic->label=$objp->plabel; + $text = $productstatic->getNomUrl(1,'',20); + if ($objp->plabel) { $text .= ' - '; - $productstatic->ref=$objp->label; - $text .= $productstatic->getNomUrl(0,'',16); + //$productstatic->ref=$objp->label; + //$text .= $productstatic->getNomUrl(0,'',16); + $text .= $objp->plabel; } $description = $objp->description; // Add description in form if (! empty($conf->global->PRODUIT_DESC_IN_FORM)) { - $text .= (! empty($objp->description) && $objp->description!=$objp->product_label)?'
'.dol_htmlentitiesbr($objp->description):''; + $text .= (! empty($objp->description) && $objp->description!=$objp->plabel)?'
'.dol_htmlentitiesbr($objp->description):''; $description = ''; // Already added into main visible desc } @@ -1543,7 +1545,7 @@ else } else { - print '
'.dol_htmlentitiesbr($objp->description)."'.img_object($langs->trans("ShowProductOrService"), ($objp->product_type ? 'service' : 'product')).' '.dol_htmlentitiesbr($objp->description)."'; @@ -2043,7 +2045,7 @@ else if ($user->rights->contrat->creer) print ''; else print ''; } - if ($object->statut == 1 && $nbofservices) + if ($object->statut == 1) { if ($user->rights->contrat->creer) print ''; else print ''; diff --git a/htdocs/contrat/class/contrat.class.php b/htdocs/contrat/class/contrat.class.php index e08e10a0966..bf31ef4070c 100644 --- a/htdocs/contrat/class/contrat.class.php +++ b/htdocs/contrat/class/contrat.class.php @@ -1279,6 +1279,15 @@ class Contrat extends CommonObject } } + if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED) && is_array($this->array_options) && count($this->array_options)>0) // For avoid conflicts if trigger used + { + $result=$this->insertExtraFields(); + if ($result < 0) + { + $error++; + } + } + // Commit or rollback if ($error) { @@ -1633,8 +1642,8 @@ class Contrat extends CommonObject if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED) && is_array($array_options) && count($array_options)>0) // For avoid conflicts if trigger used { $contractline = new ContratLigne($this->db); - $contractline->array_options=$array_option; - $contractline->id= $this->db->last_insert_id(MAIN_DB_PREFIX.$contractline->table_element); + $contractline->array_options=$array_options; + $contractline->id= $rowid; $result=$contractline->insertExtraFields(); if ($result < 0) { @@ -1822,13 +1831,13 @@ class Contrat extends CommonObject $text.=':     '; } $text.=($mode == 7?'
':''); - $text.=($mode != 7 || $this->nbofserviceswait > 0) ? $this->nbofserviceswait.' '.$line->LibStatut(0,3).(($this->nbofservicesopened || $this->nbofservicesexpired || $this->nbofservicesclosed)?'   ':'') : ''; + $text.=($mode != 7 || $this->nbofserviceswait > 0) ? ($this->nbofserviceswait.$line->LibStatut(0,3)).(($mode != 7 || $this->nbofservicesopened || $this->nbofservicesexpired || $this->nbofservicesclosed)?'   ':'') : ''; $text.=($mode == 7?'
':''); - $text.=($mode != 7 || $this->nbofservicesopened > 0) ? $this->nbofservicesopened.' '.$line->LibStatut(4,3,0).(($this->nbofservicesexpired || $this->nbofservicesclosed)?'   ':'') : ''; + $text.=($mode != 7 || $this->nbofservicesopened > 0) ? ($this->nbofservicesopened.$line->LibStatut(4,3,0)).(($mode != 7 || $this->nbofservicesexpired || $this->nbofservicesclosed)?'   ':'') : ''; $text.=($mode == 7?'
':''); - $text.=($mode != 7 || $this->nbofservicesexpired > 0) ? $this->nbofservicesexpired.' '.$line->LibStatut(4,3,1).(($this->nbofservicesclosed)?'   ':'') : ''; + $text.=($mode != 7 || $this->nbofservicesexpired > 0) ? ($this->nbofservicesexpired.$line->LibStatut(4,3,1)).(($mode != 7 || $this->nbofservicesclosed)?'   ':'') : ''; $text.=($mode == 7?'
':''); - $text.=($mode != 7 || $this->nbofservicesclosed > 0) ? $this->nbofservicesclosed.' '.$line->LibStatut(5,3) : ''; + $text.=($mode != 7 || $this->nbofservicesclosed > 0) ? ($this->nbofservicesclosed.$line->LibStatut(5,3)) : ''; $text.=($mode == 7?'
':''); return $text; } diff --git a/htdocs/contrat/list.php b/htdocs/contrat/list.php index 4b638dcfef6..e38fa6ceab3 100644 --- a/htdocs/contrat/list.php +++ b/htdocs/contrat/list.php @@ -306,6 +306,13 @@ if ($resql) $arrayofselected=is_array($toselect)?$toselect:array(); + if ($socid > 0) + { + $soc = new Societe($db); + $soc->fetch($socid); + if (empty($search_name)) $search_name = $soc->name; + } + $param=''; if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; @@ -537,7 +544,7 @@ if ($resql) $align=$extrafields->getAlignFlag($key); $sortonfield = "ef.".$key; if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/contrat/services.php b/htdocs/contrat/services.php index 2fdec21f735..51061b4b6ad 100644 --- a/htdocs/contrat/services.php +++ b/htdocs/contrat/services.php @@ -223,7 +223,7 @@ if ($mode == "5") $sql.= " AND cd.statut = 5"; if ($filter == "expired") $sql.= " AND cd.date_fin_validite < '".$db->idate($now)."'"; if ($filter == "notexpired") $sql.= " AND cd.date_fin_validite >= '".$db->idate($now)."'"; if ($search_name) $sql.= " AND s.nom LIKE '%".$db->escape($search_name)."%'"; -if ($search_contract) $sql.= " AND c.rowid = '".$db->escape($search_contract)."'"; +if ($search_contract) $sql.= " AND c.ref LIKE '%".$db->escape($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)."%')"; if ($socid > 0) $sql.= " AND s.rowid = ".$socid; $filter_dateouvertureprevue=dol_mktime(0,0,0,$opouvertureprevuemonth,$opouvertureprevueday,$opouvertureprevueyear); @@ -332,7 +332,7 @@ if ($conf->categorie->enabled && ($user->rights->produit->lire || $user->rights- $moreforfilter.='
'; $moreforfilter.=$langs->trans('IncludingProductWithTag'). ': '; $cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT, null, 'parent', null, null, 1); - $moreforfilter.=$form->selectarray('search_product_category', $cate_arbo, $search_product_category, 1, 0, 0, '', 0, 0, 0, 0, '', 1); + $moreforfilter.=$form->selectarray('search_product_category', $cate_arbo, $search_product_category, 1, 0, 0, '', 0, 0, 0, 0, 'maxwidth300', 1); $moreforfilter.='
'; } @@ -374,7 +374,7 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab $align=$extrafields->getAlignFlag($key); $sortonfield = "ef.".$key; if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } @@ -523,7 +523,6 @@ while ($i < min($num,$limit)) $contractstatic->ref=$obj->ref?$obj->ref:$obj->cid; - print '
'; print ''; - print_liste_field_titre($langs->trans('Ref'), $_SERVER["PHP_SELF"], '', $page, $param, ''); - print_liste_field_titre($langs->trans('Action'), $_SERVER["PHP_SELF"], '', $page, $param, ''); - print_liste_field_titre($langs->trans('Type'), $_SERVER["PHP_SELF"], '', $page, $param, ''); - print_liste_field_titre($langs->trans('Date'), $_SERVER["PHP_SELF"], '', $page, $param, ''); - print_liste_field_titre($langs->trans('By'), $_SERVER["PHP_SELF"], '', $page, $param, ''); + print_liste_field_titre('Ref', $_SERVER["PHP_SELF"], '', $page, $param, ''); + print_liste_field_titre('Action', $_SERVER["PHP_SELF"], '', $page, $param, ''); + print_liste_field_titre('Type', $_SERVER["PHP_SELF"], '', $page, $param, ''); + print_liste_field_titre('Date', $_SERVER["PHP_SELF"], '', $page, $param, ''); + print_liste_field_titre('By', $_SERVER["PHP_SELF"], '', $page, $param, ''); print_liste_field_titre('', $_SERVER["PHP_SELF"], '', $page, $param, 'align="right"'); print ''; print "\n"; diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php index 040ae1ba96e..9d01a3c70b2 100644 --- a/htdocs/core/class/html.formfile.class.php +++ b/htdocs/core/class/html.formfile.class.php @@ -68,7 +68,7 @@ class FormFile * @param integer $useajax Use fileupload ajax (0=never, 1=if enabled, 2=always whatever is option). 2 should never be used. * @param string $savingdocmask Mask to use to define output filename. For example 'XXXXX-__YYYYMMDD__-__file__' * @param integer $linkfiles 1=Also add form to link files, 0=Do not show form to link files - * @param string $htmlname Name and id of HTML form + * @param string $htmlname Name and id of HTML form ('formuserfile' by default, 'formuserfileecm' when used to upload a file in ECM) * @return int <0 if KO, >0 if OK */ function form_attach_new_file($url, $title='', $addcancel=0, $sectionid=0, $perm=1, $size=50, $object='', $options='', $useajax=1, $savingdocmask='', $linkfiles=1, $htmlname='formuserfile') @@ -212,7 +212,7 @@ class FormFile if (empty($res)) { - print '
'; + print '
'; print $out; print '
'; } @@ -835,9 +835,9 @@ class FormFile $out=''; $this->infofiles=array('nboffiles'=>0,'extensions'=>array(),'files'=>array()); - //if (! empty($conf->dol_use_jmobile)) return ''; + $filterforfilesearch = preg_quote(basename($modulesubdir),'/').'[^\-]+'; - $file_list=dol_dir_list($filedir, 'files', 0, preg_quote(basename($modulesubdir),'/').'[^\-]+', '\.meta$|\.png$'); // Get list of files starting with name of ref (but not followed by "-" to discard uploaded files) + $file_list=dol_dir_list($filedir, 'files', 0, $filterforfilesearch, '\.meta$|\.png$'); // Get list of files starting with name of ref (but not followed by "-" to discard uploaded files) // For ajax treatment $out.= ''."\n"; @@ -903,6 +903,7 @@ class FormFile /** * Show list of documents in $filearray (may be they are all in same directory but may not) + * This also sync database if $upload_dir is defined. * * @param array $filearray Array of files loaded by dol_dir_list('files') function before calling this. * @param Object $object Object on which document is linked to. @@ -922,9 +923,10 @@ class FormFile * @param string $sortfield Sort field ('name', 'size', 'position', ...) * @param string $sortorder Sort order ('ASC' or 'DESC') * @param int $disablemove 1=Disable move button, 0=Position move is possible. + * @param int $addfilterfields Add line with filters * @return int <0 if KO, nb of files shown if OK */ - function list_of_documents($filearray,$object,$modulepart,$param='',$forcedownload=0,$relativepath='',$permonobject=1,$useinecm=0,$textifempty='',$maxlength=0,$title='',$url='', $showrelpart=0, $permtoeditline=-1,$upload_dir='',$sortfield='',$sortorder='ASC', $disablemove=1) + function list_of_documents($filearray,$object,$modulepart,$param='',$forcedownload=0,$relativepath='',$permonobject=1,$useinecm=0,$textifempty='',$maxlength=0,$title='',$url='', $showrelpart=0, $permtoeditline=-1,$upload_dir='',$sortfield='',$sortorder='ASC', $disablemove=1, $addfilterfields=0) { global $user, $conf, $langs, $hookmanager; global $bc,$bcdd; @@ -1006,10 +1008,22 @@ class FormFile print '
'; print '
'."\n"; + if (! empty($addfilterfields)) + { + print ''; + print ''; + print ''; + print ''; + if (empty($useinecm)) print ''; + print ''; + if (! $disablemove) print ''; + print "\n"; + } + print ''; - print_liste_field_titre($langs->trans("Documents2"),$url,"name","",$param,'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Size"),$url,"size","",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Date"),$url,"date","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre('Documents2',$url,"name","",$param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre('Size',$url,"size","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre('Date',$url,"date","",$param,'align="center"',$sortfield,$sortorder); if (empty($useinecm)) print_liste_field_titre('',$url,"","",$param,'align="center"'); print_liste_field_titre(''); if (! $disablemove) print_liste_field_titre(''); @@ -1018,78 +1032,10 @@ class FormFile // Get list of files stored into database for same relative directory if ($relativedir) { - $filearrayindatabase = dol_dir_list_in_database($relativedir, '', null, 'name', SORT_ASC); - - //var_dump($filearray); - //var_dump($filearrayindatabase); - - // Complete filearray with properties found into $filearrayindatabase - foreach($filearray as $key => $val) - { - $found=0; - // Search if it exists into $filearrayindatabase - foreach($filearrayindatabase as $key2 => $val2) - { - if ($filearrayindatabase[$key2]['name'] == $filearray[$key]['name']) - { - $filearray[$key]['position_name']=($filearrayindatabase[$key2]['position']?$filearrayindatabase[$key2]['position']:'0').'_'.$filearrayindatabase[$key2]['name']; - $filearray[$key]['position']=$filearrayindatabase[$key2]['position']; - $filearray[$key]['cover']=$filearrayindatabase[$key2]['cover']; - $filearray[$key]['acl']=$filearrayindatabase[$key2]['acl']; - $filearray[$key]['rowid']=$filearrayindatabase[$key2]['rowid']; - $filearray[$key]['label']=$filearrayindatabase[$key2]['label']; - $found=1; - break; - } - } - - if (! $found) // This happen in transition towerd version 6, or if files were added manually into os dir. - { - $filearray[$key]['position']='999999'; // File not indexed are at end. So if we add a file, it will not replace an existing position - $filearray[$key]['cover']=0; - $filearray[$key]['acl']=''; - - $rel_filename = preg_replace('/^'.preg_quote(DOL_DATA_ROOT,'/').'/', '', $filearray[$key]['fullname']); - if (! preg_match('/(\/temp\/|\/thumbs|\.meta$)/', $rel_filetorenameafter)) // If not a tmp file - { - dol_syslog("list_of_documents We found a file called '".$filearray[$key]['name']."' not indexed into database. We add it"); - include_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmfiles.class.php'; - $ecmfile=new EcmFiles($this->db); - - // Add entry into database - $filename = basename($rel_filename); - $rel_dir = dirname($rel_filename); - $rel_dir = preg_replace('/[\\/]$/', '', $rel_dir); - $rel_dir = preg_replace('/^[\\/]/', '', $rel_dir); - - $ecmfile->filepath = $rel_dir; - $ecmfile->filename = $filename; - $ecmfile->label = md5_file(dol_osencode($filearray[$key]['fullname'])); // $destfile is a full path to file - $ecmfile->fullpath_orig = $filearray[$key]['fullname']; - $ecmfile->gen_or_uploaded = 'unknown'; - $ecmfile->description = ''; // indexed content - $ecmfile->keyword = ''; // keyword content - $result = $ecmfile->create($user); - if ($result < 0) - { - setEventMessages($ecmfile->error, $ecmfile->errors, 'warnings'); - } - else - { - $filearray[$key]['rowid']=$result; - } - } - else - { - $filearray[$key]['rowid']=0; // Should not happened - } - } - } - - /*var_dump($filearray); - var_dump($sortfield); - var_dump($sortorder);*/ + completeFileArrayWithDatabaseInfo($filearray, $relativedir); + /*var_dump($sortfield); + var_dump($sortorder);*/ if ($sortfield && $sortorder) { $filearray=dol_sort_array($filearray, $sortfield, $sortorder); @@ -1291,28 +1237,54 @@ class FormFile * @param int $useinecm Change output for use in ecm module * @param int $textifempty Text to show if filearray is empty * @param int $maxlength Maximum length of file name shown - * @param string $url Full url to use for click links ('' = autodetect) + * @param string $url Full url to use for click links ('' = autodetect) + * @param int $addfilterfields Add line with filters * @return int <0 if KO, nb of files shown if OK */ - function list_of_autoecmfiles($upload_dir,$filearray,$modulepart,$param,$forcedownload=0,$relativepath='',$permtodelete=1,$useinecm=0,$textifempty='',$maxlength=0,$url='') + function list_of_autoecmfiles($upload_dir,$filearray,$modulepart,$param,$forcedownload=0,$relativepath='',$permtodelete=1,$useinecm=0,$textifempty='',$maxlength=0,$url='',$addfilterfields=0) { - global $user, $conf, $langs; + global $user, $conf, $langs, $form; global $bc; global $sortfield, $sortorder; + global $search_doc_ref; dol_syslog(get_class($this).'::list_of_autoecmfiles upload_dir='.$upload_dir.' modulepart='.$modulepart); // Show list of documents if (empty($useinecm)) print load_fiche_titre($langs->trans("AttachedFiles")); if (empty($url)) $url=$_SERVER["PHP_SELF"]; + + if (! empty($addfilterfields)) + { + print ''; + print ''; + } + + print '
'; print '
'."\n"; + + if (! empty($addfilterfields)) + { + print ''; + print ''; + print ''; + print ''; + print ''; + // Action column + print ''; + print "\n"; + } + print ''; $sortref="fullname"; if ($modulepart == 'invoice_supplier') $sortref='level1name'; - print_liste_field_titre($langs->trans("Ref"),$url,$sortref,"",$param,'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Documents2"),$url,"name","",$param,'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Size"),$url,"size","",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Date"),$url,"date","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Ref",$url,$sortref,"",$param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre("Documents2",$url,"name","",$param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre("Size",$url,"size","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Date",$url,"date","",$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre('','',''); print ''."\n"; @@ -1404,20 +1376,20 @@ class FormFile $id=0; $ref=''; $label=''; // To show ref or specific information according to view to show (defined by $module) - if ($modulepart == 'company') { preg_match('/(\d+)\/[^\/]+$/',$relativefile,$reg); $id=(isset($reg[1])?$reg[1]:''); } - if ($modulepart == 'invoice') { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg); $ref=(isset($reg[1])?$reg[1]:''); } - if ($modulepart == 'invoice_supplier') { preg_match('/([^\/]+)\/[^\/]+$/',$relativefile,$reg); $ref=(isset($reg[1])?$reg[1]:''); if (is_numeric($ref)) { $id=$ref; $ref=''; } } // $ref may be also id with old supplier invoices - if ($modulepart == 'propal') { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg); $ref=(isset($reg[1])?$reg[1]:''); } + if ($modulepart == 'company') { preg_match('/(\d+)\/[^\/]+$/',$relativefile,$reg); $id=(isset($reg[1])?$reg[1]:''); } + if ($modulepart == 'invoice') { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg); $ref=(isset($reg[1])?$reg[1]:''); } + if ($modulepart == 'invoice_supplier') { preg_match('/([^\/]+)\/[^\/]+$/',$relativefile,$reg); $ref=(isset($reg[1])?$reg[1]:''); if (is_numeric($ref)) { $id=$ref; $ref=''; } } // $ref may be also id with old supplier invoices + if ($modulepart == 'propal') { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg); $ref=(isset($reg[1])?$reg[1]:''); } if ($modulepart == 'supplier_proposal') { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg); $ref=(isset($reg[1])?$reg[1]:''); } - if ($modulepart == 'order') { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg); $ref=(isset($reg[1])?$reg[1]:''); } - if ($modulepart == 'order_supplier') { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg); $ref=(isset($reg[1])?$reg[1]:''); } - if ($modulepart == 'contract') { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg); $ref=(isset($reg[1])?$reg[1]:''); } - if ($modulepart == 'product') { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg); $ref=(isset($reg[1])?$reg[1]:''); } - if ($modulepart == 'tax') { preg_match('/(\d+)\/[^\/]+$/',$relativefile,$reg); $id=(isset($reg[1])?$reg[1]:''); } - if ($modulepart == 'project') { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg); $ref=(isset($reg[1])?$reg[1]:'');} - if ($modulepart == 'fichinter') { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg); $ref=(isset($reg[1])?$reg[1]:'');} - if ($modulepart == 'user') { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg); $id=(isset($reg[1])?$reg[1]:'');} - if ($modulepart == 'expensereport') { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg); $id=(isset($reg[1])?$reg[1]:'');} + if ($modulepart == 'order') { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg); $ref=(isset($reg[1])?$reg[1]:''); } + if ($modulepart == 'order_supplier') { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg); $ref=(isset($reg[1])?$reg[1]:''); } + if ($modulepart == 'contract') { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg); $ref=(isset($reg[1])?$reg[1]:''); } + if ($modulepart == 'product') { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg); $ref=(isset($reg[1])?$reg[1]:''); } + if ($modulepart == 'tax') { preg_match('/(\d+)\/[^\/]+$/',$relativefile,$reg); $id=(isset($reg[1])?$reg[1]:''); } + if ($modulepart == 'project') { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg); $ref=(isset($reg[1])?$reg[1]:'');} + if ($modulepart == 'fichinter') { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg); $ref=(isset($reg[1])?$reg[1]:'');} + if ($modulepart == 'user') { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg); $id=(isset($reg[1])?$reg[1]:'');} + if ($modulepart == 'expensereport') { preg_match('/(.*)\/[^\/]+$/',$relativefile,$reg); $id=(isset($reg[1])?$reg[1]:'');} if (! $id && ! $ref) continue; $found=0; @@ -1449,20 +1421,23 @@ class FormFile if (! $found > 0 || ! is_object($this->cache_objects[$modulepart.'_'.$id.'_'.$ref])) continue; // We do not show orphelins files - print ''."\n"; print ''; print ''; + + // File print ''; @@ -1490,12 +1465,15 @@ class FormFile if (count($filearray) == 0) { - print ''; } print "
'; + $searchpicto=$form->showFilterButtons(); + print $searchpicto; + print '
'; if ($found > 0 && is_object($this->cache_objects[$modulepart.'_'.$id.'_'.$ref])) print $this->cache_objects[$modulepart.'_'.$id.'_'.$ref]->getNomUrl(1,'document'); else print $langs->trans("ObjectDeleted",($id?$id:$ref)); - $filename=dol_sanitizeFileName($ref); + //$modulesubdir=dol_sanitizeFileName($ref); + $modulesubdir=dirname($relativefile); + //$filedir=$conf->$modulepart->dir_output . '/' . dol_sanitizeFileName($obj->ref); $filedir=$file['path']; //$urlsource=$_SERVER['PHP_SELF'].'?id='.$obj->rowid; //print $formfile->getDocumentsLink($modulepart, $filename, $filedir); print ''; //print "XX".$file['name']; //$file['name'] must be utf8 print '\n"; print ''.dol_print_size($file['size'],1,1).'
'; + print '
'; if (empty($textifempty)) print $langs->trans("NoFileFound"); else print $textifempty; print '
"; + print ''; + + if (! empty($addfilterfields)) print ''; // Fin de zone } diff --git a/htdocs/core/class/html.formwebsite.class.php b/htdocs/core/class/html.formwebsite.class.php new file mode 100644 index 00000000000..666311d1744 --- /dev/null +++ b/htdocs/core/class/html.formwebsite.class.php @@ -0,0 +1,1254 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General 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/class/html.formwebsite.class.php + * \ingroup core + * \brief File of class to manage component html for module website + */ + + +/** + * Class to manage component html for module website + */ +class FormWebsite +{ + private $db; + public $error; + + + /** + * Constructor + * + * @param DoliDB $db Database handler + */ + function __construct($db) + { + $this->db = $db; + + return 1; + } + + + /** + * Return HTML select list of export models + * + * @param string $selected Id modele pre-selectionne + * @param string $htmlname Name of HTML select + * @param int $useempty Show empty value or not + * @return string Html component + */ + function selectWebsite($selected='',$htmlname='exportmodelid',$useempty=0) + { + $out=''; + + $sql = "SELECT rowid, ref"; + $sql.= " FROM ".MAIN_DB_PREFIX."website"; + $sql.= " WHERE 1 = 1"; + $sql.= " ORDER BY rowid"; + $result = $this->db->query($sql); + if ($result) + { + $out.='"; + } + else { + dol_print_error($this->db); + } + + return $out; + } + + + /** + * Return list of export models + * + * @param string $selected Id modele pre-selectionne + * @param string $htmlname Nom de la zone select + * @param string $type Type des modeles recherches + * @param int $useempty Affiche valeur vide dans liste + * @return void + */ + function select_import_model($selected='',$htmlname='importmodelid',$type='',$useempty=0) + { + $sql = "SELECT rowid, label"; + $sql.= " FROM ".MAIN_DB_PREFIX."import_model"; + $sql.= " WHERE type = '".$type."'"; + $sql.= " ORDER BY rowid"; + $result = $this->db->query($sql); + if ($result) + { + print '"; + } + else { + dol_print_error($this->db); + } + } + + + /** + * Return list of ecotaxes with label + * + * @param string $selected Preselected ecotaxes + * @param string $htmlname Name of combo list + * @return integer + */ + function select_ecotaxes($selected='',$htmlname='ecotaxe_id') + { + global $langs; + + $sql = "SELECT e.rowid, e.code, e.libelle, e.price, e.organization,"; + $sql.= " c.label as country"; + $sql.= " FROM ".MAIN_DB_PREFIX."c_ecotaxe as e,".MAIN_DB_PREFIX."c_country as c"; + $sql.= " WHERE e.active = 1 AND e.fk_pays = c.rowid"; + $sql.= " ORDER BY country, e.organization ASC, e.code ASC"; + + dol_syslog(get_class($this).'::select_ecotaxes', LOG_DEBUG); + $resql=$this->db->query($sql); + if ($resql) + { + print ''; + return 0; + } + else + { + dol_print_error($this->db); + return 1; + } + } + + + /** + * Return list of revenue stamp for country + * + * @param string $selected Value of preselected revenue stamp + * @param string $htmlname Name of combo list + * @param string $country_code Country Code + * @return string HTML select list + */ + function select_revenue_stamp($selected='',$htmlname='revenuestamp',$country_code='') + { + global $langs; + + $out=''; + + $sql = "SELECT r.taux"; + $sql.= " FROM ".MAIN_DB_PREFIX."c_revenuestamp as r,".MAIN_DB_PREFIX."c_country as c"; + $sql.= " WHERE r.active = 1 AND r.fk_pays = c.rowid"; + $sql.= " AND c.code = '".$country_code."'"; + + dol_syslog(get_class($this).'::select_revenue_stamp', LOG_DEBUG); + $resql=$this->db->query($sql); + if ($resql) + { + $out.=''; + return $out; + } + else + { + dol_print_error($this->db); + return ''; + } + } + + + /** + * Return a HTML select list to select a percent + * + * @param integer $selected pourcentage pre-selectionne + * @param string $htmlname nom de la liste deroulante + * @param int $disabled Disabled or not + * @param int $increment increment value + * @param int $start start value + * @param int $end end value + * @param int $showempty Add also an empty line + * @return string HTML select string + */ + function select_percent($selected=0,$htmlname='percent',$disabled=0,$increment=5,$start=0,$end=100,$showempty=0) + { + $return = ''; + + return $return; + } + + /** + * Return select list for categories (to use in form search selectors) + * + * @param int $type Type of category ('customer', 'supplier', 'contact', 'product', 'member'). Old mode (0, 1, 2, ...) is deprecated. + * @param integer $selected Preselected value + * @param string $htmlname Name of combo list + * @param int $nocateg Show also an entry "Not categorized" + * @param int $showempty Add also an empty line + * @param string $morecss More CSS + * @return string Html combo list code + * @see select_all_categories + */ + function select_categories($type, $selected=0, $htmlname='search_categ', $nocateg=0, $showempty=1, $morecss='') + { + global $conf, $langs; + require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; + + // For backward compatibility + if (is_numeric($type)) + { + dol_syslog(__METHOD__ . ': using numeric value for parameter type is deprecated. Use string code instead.', LOG_WARNING); + } + + // Load list of "categories" + $static_categs = new Categorie($this->db); + $tab_categs = $static_categs->get_full_arbo($type); + + $moreforfilter = ''; + // Enhance with select2 + if ($conf->use_javascript_ajax) + { + include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php'; + $comboenhancement = ajax_combobox('select_categ_'.$htmlname); + $moreforfilter.=$comboenhancement; + } + + // Print a select with each of them + $moreforfilter.=''; + + return $moreforfilter; + } + + + /** + * Return select list for categories (to use in form search selectors) + * + * @param string $selected Preselected value + * @param string $htmlname Name of combo list (example: 'search_sale') + * @param User $user Object user + * @param int $showstatus 0=show user status only if status is disabled, 1=always show user status into label, -1=never show user status + * @param int $showempty 1=show also an empty value + * @param string $morecss More CSS + * @return string Html combo list code + */ + function select_salesrepresentatives($selected,$htmlname,$user,$showstatus=0,$showempty=1,$morecss='') + { + global $conf,$langs; + $langs->load('users'); + + $out = ''; + // Enhance with select2 + if ($conf->use_javascript_ajax) + { + include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php'; + + $comboenhancement = ajax_combobox($htmlname); + if ($comboenhancement) + { + $out.=$comboenhancement; + } + } + // Select each sales and print them in a select input + $out.=''; + + return $out; + } + + /** + * Return list of project and tasks + * + * @param int $selectedtask Pre-selected task + * @param int $projectid Project id + * @param string $htmlname Name of html select + * @param int $modeproject 1 to restrict on projects owned by user + * @param int $modetask 1 to restrict on tasks associated to user + * @param int $mode 0=Return list of tasks and their projects, 1=Return projects and tasks if exists + * @param int $useempty 0=Allow empty values + * @param int $disablechildoftaskid 1=Disable task that are child of the provided task id + * @return void + */ + function selectProjectTasks($selectedtask='', $projectid=0, $htmlname='task_parent', $modeproject=0, $modetask=0, $mode=0, $useempty=0, $disablechildoftaskid=0) + { + global $user, $langs; + + require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php'; + + //print $modeproject.'-'.$modetask; + $task=new Task($this->db); + $tasksarray=$task->getTasksArray($modetask?$user:0, $modeproject?$user:0, $projectid, 0, $mode); + if ($tasksarray) + { + print ''; + } + else + { + print '
'.$langs->trans("NoProject").'
'; + } + } + + /** + * Write lines of a project (all lines of a project if parent = 0) + * + * @param int $inc Cursor counter + * @param int $parent Id of parent task we want to see + * @param array $lines Array of task lines + * @param int $level Level + * @param int $selectedtask Id selected task + * @param int $selectedproject Id selected project + * @param int $disablechildoftaskid 1=Disable task that are child of the provided task id + * @return void + */ + private function _pLineSelect(&$inc, $parent, $lines, $level=0, $selectedtask=0, $selectedproject=0, $disablechildoftaskid=0) + { + global $langs, $user, $conf; + + $lastprojectid=0; + + $numlines=count($lines); + for ($i = 0 ; $i < $numlines ; $i++) + { + if ($lines[$i]->fk_parent == $parent) + { + $var = !$var; + + //var_dump($selectedproject."--".$selectedtask."--".$lines[$i]->fk_project."_".$lines[$i]->id); // $lines[$i]->id may be empty if project has no lines + + // Break on a new project + if ($parent == 0) // We are on a task at first level + { + if ($lines[$i]->fk_project != $lastprojectid) // Break found on project + { + if ($i > 0) print ''; + print '\n"; + + $lastprojectid=$lines[$i]->fk_project; + $inc++; + } + } + + $newdisablechildoftaskid=$disablechildoftaskid; + + // Print task + if (isset($lines[$i]->id)) // We use isset because $lines[$i]->id may be null if project has no task and are on root project (tasks may be caught by a left join). We enter here only if '0' or >0 + { + // Check if we must disable entry + $disabled=0; + if ($disablechildoftaskid && (($lines[$i]->id == $disablechildoftaskid || $lines[$i]->fk_parent == $disablechildoftaskid))) + { + $disabled++; + if ($lines[$i]->fk_parent == $disablechildoftaskid) $newdisablechildoftaskid=$lines[$i]->id; // If task is child of a disabled parent, we will propagate id to disable next child too + } + + print '\n"; + $inc++; + } + + $level++; + if ($lines[$i]->id) $this->_pLineSelect($inc, $lines[$i]->id, $lines, $level, $selectedtask, $selectedproject, $newdisablechildoftaskid); + $level--; + } + } + } + + + /** + * Output a HTML thumb of color or a text if not defined. + * + * @param string $color String with hex (FFFFFF) or comma RGB ('255,255,255') + * @param string $textifnotdefined Text to show if color not defined + * @return string HTML code for color thumb + * @see selectColor + */ + static function showColor($color, $textifnotdefined='') + { + $textcolor='FFF'; + if ($color) + { + $tmp=explode(',', $color); + if (count($tmp) > 1) // This is a comma RGB ('255','255','255') + { + $r = $tmp[0]; + $g = $tmp[1]; + $b = $tmp[2]; + } + else + { + $hexr=$color[0].$color[1]; + $hexg=$color[2].$color[3]; + $hexb=$color[4].$color[5]; + $r = hexdec($hexr); + $g = hexdec($hexg); + $b = hexdec($hexb); + } + $bright = (max($r, $g, $b) + min($r, $g, $b)) / 510.0; // HSL algorithm + if ($bright > 0.6) $textcolor='000'; + } + + include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; + $color = colorArrayToHex(colorStringToArray($color,array()),''); + + if ($color) print ''; + else print $textifnotdefined; + } + + /** + * Output a HTML code to select a color + * + * @param string $set_color Pre-selected color + * @param string $prefix Name of HTML field + * @param string $form_name Deprecated. Not used. + * @param int $showcolorbox 1=Show color code and color box, 0=Show only color code + * @param array $arrayofcolors Array of colors. Example: array('29527A','5229A3','A32929','7A367A','B1365F','0D7813') + * @return void + * @deprecated Use instead selectColor + * @see selectColor() + */ + function select_color($set_color='', $prefix='f_color', $form_name='', $showcolorbox=1, $arrayofcolors='') + { + print $this->selectColor($set_color, $prefix, $form_name, $showcolorbox, $arrayofcolors); + } + + /** + * Output a HTML code to select a color. Field will return an hexa color like '334455'. + * + * @param string $set_color Pre-selected color + * @param string $prefix Name of HTML field + * @param string $form_name Deprecated. Not used. + * @param int $showcolorbox 1=Show color code and color box, 0=Show only color code + * @param array $arrayofcolors Array of colors. Example: array('29527A','5229A3','A32929','7A367A','B1365F','0D7813') + * @param string $morecss Add css style into input field + * @return string + * @see showColor + */ + static function selectColor($set_color='', $prefix='f_color', $form_name='', $showcolorbox=1, $arrayofcolors='', $morecss='') + { + // Deprecation warning + if ($form_name) { + dol_syslog(__METHOD__ . ": form_name parameter is deprecated", LOG_WARNING); + } + + global $langs,$conf; + + $out=''; + + if (! is_array($arrayofcolors) || count($arrayofcolors) < 1) + { + $langs->load("other"); + if (empty($conf->dol_use_jmobile)) + { + $out.= ''; + $out.= ''; + $out.= ''; + } + $out.= ''; + } + else // In most cases, this is not used. We used instead function with no specific list of colors + { + if (empty($conf->dol_use_jmobile)) + { + $out.= ''; + $out.= ''; + $out.= ''; + } + $out.= ''; + } + + return $out; + } + + /** + * Creation d'un icone de couleur + * + * @param string $color Couleur de l'image + * @param string $module Nom du module + * @param string $name Nom de l'image + * @param int $x Largeur de l'image en pixels + * @param int $y Hauteur de l'image en pixels + * @return void + */ + function CreateColorIcon($color,$module,$name,$x='12',$y='12') + { + global $conf; + + $file = $conf->$module->dir_temp.'/'.$name.'.png'; + + // On cree le repertoire contenant les icones + if (! file_exists($conf->$module->dir_temp)) + { + dol_mkdir($conf->$module->dir_temp); + } + + // On cree l'image en vraies couleurs + $image = imagecreatetruecolor($x,$y); + + $color = substr($color,1,6); + + $rouge = hexdec(substr($color,0,2)); //conversion du canal rouge + $vert = hexdec(substr($color,2,2)); //conversion du canal vert + $bleu = hexdec(substr($color,4,2)); //conversion du canal bleu + + $couleur = imagecolorallocate($image,$rouge,$vert,$bleu); + //print $rouge.$vert.$bleu; + imagefill($image,0,0,$couleur); //on remplit l'image + // On cree la couleur et on l'attribue a une variable pour ne pas la perdre + ImagePng($image,$file); //renvoie une image sous format png + ImageDestroy($image); + } + + /** + * Return HTML combo list of week + * + * @param string $selected Preselected value + * @param string $htmlname Nom de la zone select + * @param int $useempty Affiche valeur vide dans liste + * @return string + */ + function select_dayofweek($selected='',$htmlname='weekid',$useempty=0) + { + global $langs; + + $week = array( 0=>$langs->trans("Day0"), + 1=>$langs->trans("Day1"), + 2=>$langs->trans("Day2"), + 3=>$langs->trans("Day3"), + 4=>$langs->trans("Day4"), + 5=>$langs->trans("Day5"), + 6=>$langs->trans("Day6")); + + $select_week = ''; + return $select_week; + } + + /** + * Return HTML combo list of month + * + * @param string $selected Preselected value + * @param string $htmlname Name of HTML select object + * @param int $useempty Show empty in list + * @param int $longlabel Show long label + * @return string + */ + function select_month($selected='',$htmlname='monthid',$useempty=0,$longlabel=0) + { + global $langs; + + require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; + + if ($longlabel) $montharray = monthArray($langs, 0); // Get array + else $montharray = monthArray($langs, 1); + + $select_month = ''; + return $select_month; + } + + /** + * Return HTML combo list of years + * + * @param string $selected Preselected value (''=current year, -1=none, year otherwise) + * @param string $htmlname Name of HTML select object + * @param int $useempty Affiche valeur vide dans liste + * @param int $min_year Offset of minimum year into list (by default current year -10) + * @param int $max_year Offset of maximum year into list (by default current year + 5) + * @param int $offset Offset + * @param int $invert Invert + * @param string $option Option + * @return string + */ + function select_year($selected='',$htmlname='yearid',$useempty=0, $min_year=10, $max_year=5, $offset=0, $invert=0, $option='') + { + print $this->selectyear($selected,$htmlname,$useempty,$min_year,$max_year,$offset,$invert,$option); + } + + /** + * Return HTML combo list of years + * + * @param string $selected Preselected value (''=current year, -1=none, year otherwise) + * @param string $htmlname Name of HTML select object + * @param int $useempty Affiche valeur vide dans liste + * @param int $min_year Offset of minimum year into list (by default current year -10) + * @param int $max_year Offset of maximum year into list (by default current year + 5) + * @param int $offset Offset + * @param int $invert Invert + * @param string $option Option + * @return string + */ + function selectyear($selected='',$htmlname='yearid',$useempty=0, $min_year=10, $max_year=5, $offset=0, $invert=0, $option='') + { + $out=''; + + $currentyear = date("Y")+$offset; + $max_year = $currentyear+$max_year; + $min_year = $currentyear-$min_year; + if(empty($selected) && empty($useempty)) $selected = $currentyear; + + $out.= '\n"; + + return $out; + } + + /** + * Show form to select address + * + * @param int $page Page + * @param string $selected Id condition pre-selectionne + * @param int $socid Id of third party + * @param string $htmlname Nom du formulaire select + * @param string $origin Origine de l'appel pour pouvoir creer un retour + * @param int $originid Id de l'origine + * @return void + */ + function form_address($page, $selected, $socid, $htmlname='address_id', $origin='', $originid='') + { + global $langs,$conf; + global $form; + + if ($htmlname != "none") + { + print '
'; + print ''; + print ''; + $form->select_address($selected, $socid, $htmlname, 1); + print ''; + $langs->load("companies"); + print '   '.$langs->trans("AddAddress").''; + print '
'; + } + else + { + if ($selected) + { + require_once DOL_DOCUMENT_ROOT .'/societe/class/address.class.php'; + $address=new Address($this->db); + $result=$address->fetch_address($selected); + print ''.$address->label.''; + } + else + { + print " "; + } + } + } + + + + /** + * Get array with HTML tabs with boxes of a particular area including personalized choices of user. + * Class 'Form' must be known. + * + * @param User $user Object User + * @param String $areacode Code of area for pages ('0'=value for Home page) + * @return array array('selectboxlist'=>, 'boxactivated'=>, 'boxlista'=>, 'boxlistb'=>) + */ + static function getBoxesArea($user,$areacode) + { + global $conf,$langs,$db; + + include_once DOL_DOCUMENT_ROOT.'/core/class/infobox.class.php'; + + $confuserzone='MAIN_BOXES_'.$areacode; + + // $boxactivated will be array of boxes enabled into global setup + // $boxidactivatedforuser will be array of boxes choosed by user + + $selectboxlist=''; + $boxactivated=InfoBox::listBoxes($db, 'activated', $areacode, (empty($user->conf->$confuserzone)?null:$user), array(), 0); // Search boxes of common+user (or common only if user has no specific setup) + + $boxidactivatedforuser=array(); + foreach($boxactivated as $box) + { + if (empty($user->conf->$confuserzone) || $box->fk_user == $user->id) $boxidactivatedforuser[$box->id]=$box->id; // We keep only boxes to show for user + } + + // Define selectboxlist + $arrayboxtoactivatelabel=array(); + if (! empty($user->conf->$confuserzone)) + { + $boxorder=''; + $langs->load("boxes"); // Load label of boxes + foreach($boxactivated as $box) + { + if (! empty($boxidactivatedforuser[$box->id])) continue; // Already visible for user + $label=$langs->transnoentitiesnoconv($box->boxlabel); + if (preg_match('/graph/',$box->class)) $label.=' ('.$langs->trans("Graph").')'; + //$label = ''.$label; KO with select2. No html rendering. + $arrayboxtoactivatelabel[$box->id]=$label; // We keep only boxes not shown for user, to show into combo list + } + foreach($boxidactivatedforuser as $boxid) + { + if (empty($boxorder)) $boxorder.='A:'; + $boxorder.=$boxid.','; + } + + //var_dump($boxidactivatedforuser); + + // Class Form must have been already loaded + $selectboxlist.='
'; + $selectboxlist.=''; + $selectboxlist.=''; + $selectboxlist.=''; + $selectboxlist.=''; + $selectboxlist.=Form::selectarray('boxcombo', $arrayboxtoactivatelabel, -1, $langs->trans("ChooseBoxToAdd").'...', 0, 0, '', 0, 0, 0, 'ASC', 'maxwidth150onsmartphone', 0, 'hidden selected', 0, 1); + if (empty($conf->use_javascript_ajax)) $selectboxlist.=' '; + $selectboxlist.='
'; + $selectboxlist.=ajax_combobox("boxcombo"); + } + + // Javascript code for dynamic actions + if (! empty($conf->use_javascript_ajax)) + { + $selectboxlist.=''."\n"; + } + + // Define boxlista and boxlistb + $nbboxactivated=count($boxidactivatedforuser); + + if ($nbboxactivated) + { + $langs->load("boxes"); + $langs->load("projects"); + + $emptybox=new ModeleBoxes($db); + + $boxlista.="\n\n"; + $boxlista.='
'."\n"; + + // Define $box_max_lines + $box_max_lines=5; + if (! empty($conf->global->MAIN_BOXES_MAXLINES)) $box_max_lines=$conf->global->MAIN_BOXES_MAXLINES; + + $ii=0; + foreach ($boxactivated as $key => $box) + { + if ((! empty($user->conf->$confuserzone) && $box->fk_user == 0) || (empty($user->conf->$confuserzone) && $box->fk_user != 0)) continue; + if (empty($box->box_order) && $ii < ($nbboxactivated / 2)) $box->box_order='A'.sprintf("%02d",($ii+1)); // When box_order was not yet set to Axx or Bxx and is still 0 + if (preg_match('/^A/i',$box->box_order)) // column A + { + $ii++; + //print 'box_id '.$boxactivated[$ii]->box_id.' '; + //print 'box_order '.$boxactivated[$ii]->box_order.'
'; + // Show box + $box->loadBox($box_max_lines); + $boxlista.= $box->outputBox(); + } + } + + if (empty($conf->browser->phone)) + { + $emptybox->box_id='A'; + $emptybox->info_box_head=array(); + $emptybox->info_box_contents=array(); + $boxlista.= $emptybox->outputBox(array(),array()); + } + $boxlista.= "
\n"; + $boxlista.= "\n"; + + $boxlistb.= "\n\n"; + $boxlistb.= '\n"; + $boxlistb.= "\n"; + + } + + return array('selectboxlist'=>count($boxactivated)?$selectboxlist:'', 'boxactivated'=>$boxactivated, 'boxlista'=>$boxlista, 'boxlistb'=>$boxlistb); + } + + + /** + * Return a HTML select list of bank accounts + * + * @param string $htmlname Name of select zone + * @param string $dictionarytable Dictionary table + * @param string $keyfield Field for key + * @param string $labelfield Label field + * @param string $selected Selected value + * @param int $useempty 1=Add an empty value in list, 2=Add an empty value in list only if there is more than 2 entries. + * @param string $moreattrib More attributes on HTML select tag + * @return void + */ + function select_dictionary($htmlname,$dictionarytable,$keyfield='code',$labelfield='label',$selected='',$useempty=0,$moreattrib='') + { + global $langs, $conf; + + $langs->load("admin"); + + $sql = "SELECT rowid, ".$keyfield.", ".$labelfield; + $sql.= " FROM ".MAIN_DB_PREFIX.$dictionarytable; + $sql.= " ORDER BY ".$labelfield; + + dol_syslog(get_class($this)."::select_dictionary", LOG_DEBUG); + $result = $this->db->query($sql); + if ($result) + { + $num = $this->db->num_rows($result); + $i = 0; + if ($num) + { + print '"; + } + else + { + print $langs->trans("DictionaryEmpty"); + } + } + else { + dol_print_error($this->db); + } + } + +} + diff --git a/htdocs/core/class/interfaces.class.php b/htdocs/core/class/interfaces.class.php index ef64ac8d8e5..a34754b8d4c 100644 --- a/htdocs/core/class/interfaces.class.php +++ b/htdocs/core/class/interfaces.class.php @@ -120,7 +120,7 @@ class Interfaces if (! $qualified) { - dol_syslog(get_class($this)."::run_triggers action=".$action." Triggers for file '".$file."' need module to be enabled", LOG_DEBUG); + //dol_syslog(get_class($this)."::run_triggers action=".$action." Triggers for file '".$file."' need module to be enabled", LOG_DEBUG); continue; } @@ -325,8 +325,9 @@ class Interfaces { $module=preg_replace('/^mod/i','',$reg[2]); $constparam='MAIN_MODULE_'.strtoupper($module); - if (strtolower($reg[2]) == 'all') $disabledbymodule=0; + if (strtolower($module) == 'all') $disabledbymodule=0; else if (empty($conf->global->$constparam)) $disabledbymodule=2; + $triggers[$j]['module']=strtolower($module); } // We set info of modules diff --git a/htdocs/core/class/smtps.class.php b/htdocs/core/class/smtps.class.php index 9e6250f9f8d..c92558bf1d3 100644 --- a/htdocs/core/class/smtps.class.php +++ b/htdocs/core/class/smtps.class.php @@ -271,7 +271,7 @@ class SMTPs { $this->_moreinheader = $_val; } - + /** * get trackid * @@ -291,7 +291,7 @@ class SMTPs { return $this->_moreinheader; } - + /** * Set errors to * @@ -411,7 +411,7 @@ class SMTPs function _server_authenticate() { global $conf; - + // Send the RFC2554 specified EHLO. // This improvment as provided by 'SirSir' to // accomodate both SMTP AND ESMTP capable servers @@ -462,7 +462,7 @@ class SMTPs { $this->_setErr(126, '"' . $host . '" does not support authenticated connections.'); return $_retVal; - } + } } // Send Authentication to Server // Check for errors along the way @@ -903,7 +903,7 @@ class SMTPs if ( $_strReplyTo ) $this->_msgReplyTo = $this->_strip_email($_strReplyTo); } - + /** * Retrieves the Address from which mail will be the reply-to * @@ -913,15 +913,15 @@ class SMTPs function getReplyTo($_part = true) { $_retValue = ''; - + if ( $_part === true ) $_retValue = $this->_msgReplyTo; else $_retValue = $this->_msgReplyTo[$_part]; - + return $_retValue; } - + /** * Inserts given addresses into structured format. * This method takes a list of given addresses, via an array @@ -1217,6 +1217,8 @@ class SMTPs */ function getHeader() { + global $conf; + $_header = 'From: ' . $this->getFrom('org') . "\r\n" . 'To: ' . $this->getTO() . "\r\n"; @@ -1233,13 +1235,13 @@ class SMTPs if ( $this->getBCC() ) $_header .= 'Bcc: ' . $this->getBCC() . "\r\n"; */ - + $host=$this->getHost(); $host=preg_replace('@tcp://@i','',$host); // Remove prefix $host=preg_replace('@ssl://@i','',$host); // Remove prefix $host=dol_getprefix('email'); - + //NOTE: Message-ID should probably contain the username of the user who sent the msg $_header .= 'Subject: ' . $this->getSubject() . "\r\n"; $_header .= 'Date: ' . date("r") . "\r\n"; @@ -1258,7 +1260,7 @@ class SMTPs } if ( $this->getMoreInHeader() ) $_header .= $this->getMoreInHeader(); // Value must include the "\r\n"; - + //$_header .= // 'Read-Receipt-To: ' . $this->getFrom( 'org' ) . "\r\n" // 'Return-Receipt-To: ' . $this->getFrom( 'org' ) . "\r\n"; @@ -1279,9 +1281,10 @@ class SMTPs $_header .= "Reply-To: ".$this->getReplyTo('addr') ."\r\n"; $_header .= 'X-Mailer: Dolibarr version ' . DOL_VERSION .' (using SMTPs Mailer)' . "\r\n"; + $_header .= 'X-Dolibarr-Option: '.($conf->global->MAIN_MAIL_USE_MULTI_PART?'MAIN_MAIL_USE_MULTI_PART':'No MAIN_MAIL_USE_MULTI_PART') . "\r\n"; $_header .= 'Mime-Version: 1.0' . "\r\n"; - + return $_header; } @@ -1310,17 +1313,17 @@ class SMTPs $strContentAltText = html_entity_decode(strip_tags($strContent)); $strContentAltText = rtrim(wordwrap($strContentAltText, 75, "\r\n")); } - + // Make RFC2045 Compliant //$strContent = rtrim(chunk_split($strContent)); // Function chunck_split seems ko if not used on a base64 content $strContent = rtrim(wordwrap($strContent, 75, "\r\n")); // TODO Using this method creates unexpected line break on text/plain content. - + $this->_msgContent[$strType] = array(); $this->_msgContent[$strType]['mimeType'] = $strMimeType; $this->_msgContent[$strType]['data'] = $strContent; $this->_msgContent[$strType]['dataText'] = $strContentAltText; - + if ( $this->getMD5flag() ) $this->_msgContent[$strType]['md5'] = dol_hash($strContent, 3); //} @@ -1334,7 +1337,7 @@ class SMTPs function getBodyContent() { global $conf; - + // Generate a new Boundary string $this->_setBoundary(); @@ -1382,7 +1385,7 @@ class SMTPs $content .= "\r\n"; $content .= "--" . $this->_getBoundary('mixed') . "\r\n"; - + if (key_exists('image', $this->_msgContent)) // If inline image found { $content.= 'Content-Type: multipart/alternative; boundary="'.$this->_getBoundary('alternative').'"' . "\r\n"; @@ -1390,7 +1393,7 @@ class SMTPs $content .= "--" . $this->_getBoundary('alternative') . "\r\n"; } - + // $this->_msgContent must be sorted with key 'text' or 'html' first then 'image' then 'attachment' @@ -1450,18 +1453,18 @@ class SMTPs $content.= "\r\n"; $content.= "--" . $this->_getBoundary('related') . "\r\n"; } - + if (! key_exists('image', $this->_msgContent) && $_content['dataText'] && ! empty($conf->global->MAIN_MAIL_USE_MULTI_PART)) // Add plain text message part before html part { $content.= 'Content-Type: multipart/alternative; boundary="'.$this->_getBoundary('alternative').'"' . "\r\n"; $content .= "\r\n"; $content .= "--" . $this->_getBoundary('alternative') . "\r\n"; - + $content.= "Content-Type: text/plain; charset=" . $this->getCharSet() . "\r\n"; $content.= "\r\n". $_content['dataText'] . "\r\n"; $content.= "--" . $this->_getBoundary('alternative') . "\r\n"; - } - + } + $content .= 'Content-Type: ' . $_content['mimeType'] . '; ' // . 'charset="' . $this->getCharSet() . '"'; . 'charset=' . $this->getCharSet() . ''; @@ -1483,7 +1486,7 @@ class SMTPs { $content.= "--" . $this->_getBoundary('alternative') . "--". "\r\n"; } - + $content .= "\r\n"; } } diff --git a/htdocs/core/commonfieldsinexport.inc.php b/htdocs/core/commonfieldsinexport.inc.php new file mode 100644 index 00000000000..9a84ae6c199 --- /dev/null +++ b/htdocs/core/commonfieldsinexport.inc.php @@ -0,0 +1,60 @@ +db); + + // Add common fields + foreach($tmpobject->fields as $keyfield => $valuefield) + { + $fieldname = 't' . '.' . $keyfield; + $fieldlabel = ucfirst($valuefield['label']); + $typeFilter = "Text"; + $typefield=preg_replace('/\(.*$/', '', $valuefield['type']); // double(24,8) -> double + switch ($typefield) { + case 'int': + case 'integer': + case 'double': + case 'price': + $typeFilter = "Numeric"; + break; + case 'date': + case 'datetime': + case 'timestamp': + $typeFilter = "Date"; + break; + case 'boolean': + $typeFilter = "Boolean"; + break; + /* + * case 'sellist': + * $tmp=''; + * $tmpparam=unserialize($obj->param); // $tmp ay be array 'options' => array 'c_currencies:code_iso:code_iso' => null + * if ($tmpparam['options'] && is_array($tmpparam['options'])) { + * $tmpkeys=array_keys($tmpparam['options']); + * $tmp=array_shift($tmpkeys); + * } + * if (preg_match('/[a-z0-9_]+:[a-z0-9_]+:[a-z0-9_]+/', $tmp)) $typeFilter="List:".$tmp; + * break; + */ + } + if ($valuefield['enabled']) { + $this->export_fields_array[$r][$fieldname] = $fieldlabel; + $this->export_TypeFields_array[$r][$fieldname] = $typeFilter; + $this->export_entities_array[$r][$fieldname] = $keyforelement; + } + } +} +else +{ + dol_print_error($this->db, 'Failed to find class '.$keyforclass.', even after the include of '.$keyforclassfile); +} +// End add common fields diff --git a/htdocs/core/extrafieldsinexport.inc.php b/htdocs/core/extrafieldsinexport.inc.php index 7f9cf523105..13b2d1ae520 100644 --- a/htdocs/core/extrafieldsinexport.inc.php +++ b/htdocs/core/extrafieldsinexport.inc.php @@ -18,15 +18,17 @@ if ($resql) // This can fail when class is used on old database (during migra $fieldname=$keyforaliasextra.'.'.$obj->name; $fieldlabel=ucfirst($obj->label); $typeFilter="Text"; - switch($obj->type) - { + $typefield=preg_replace('/\(.*$/', '', $obj->type); // double(24,8) -> double + switch ($typefield) { case 'int': + case 'integer': case 'double': case 'price': $typeFilter="Numeric"; break; case 'date': case 'datetime': + case 'timestamp': $typeFilter="Date"; break; case 'boolean': diff --git a/htdocs/core/js/blockUI.js b/htdocs/core/js/blockUI.js index c72ad69580d..6abcc706e25 100644 --- a/htdocs/core/js/blockUI.js +++ b/htdocs/core/js/blockUI.js @@ -23,7 +23,7 @@ // Examples $(document).ready(function() { // override these in your code to change the default behavior and style - $.blockUI.events = { + /*$.blockUI.events = { // styles applied when using $.growlUI dolEventValidCSS: { @@ -59,7 +59,7 @@ $(document).ready(function() { 'border-radius': '10px' } - }; + };*/ $.dolEventValid = function(title, message, timeout, onClose) { var $m = $('
'); @@ -67,7 +67,7 @@ $(document).ready(function() { if (message) $m.append('

'+message+'

'); if (timeout == undefined) timeout = 3000; $.blockUI({ - message: $m, fadeIn: 200, fadeOut: 700, centerY: false, + message: $m, fadeIn: 0, fadeOut: 0, centerY: false, timeout: timeout, showOverlay: false, onUnblock: onClose, css: $.blockUI.events.dolEventValidCSS @@ -80,7 +80,7 @@ $(document).ready(function() { if (message) $m.append('

'+message+'

'); if (timeout == undefined) timeout = 0; $.blockUI({ - message: $m, fadeIn: 200, centerY: false, + message: $m, fadeIn: 0, centerY: false, timeout: timeout, showOverlay: false, onUnblock: onClose, css: $.blockUI.events.dolEventErrorCSS @@ -98,7 +98,6 @@ $(document).ready(function() { '-webkit-border-radius': '10px', '-moz-border-radius': '10px', 'border-radius': '10px', - opacity: .5, color: '#fff' } }); diff --git a/htdocs/core/js/lib_notification.js.php b/htdocs/core/js/lib_notification.js.php index b640f4cc81b..ba725d3e226 100644 --- a/htdocs/core/js/lib_notification.js.php +++ b/htdocs/core/js/lib_notification.js.php @@ -90,7 +90,7 @@ if (! ($_SERVER['HTTP_REFERER'] === $dolibarr_main_url_root . '/' || $_SERVER['H if (arr.length > 0) { var audio = null; global->AGENDA_NOTIFICATION_SOUND)) { + if (! empty($conf->global->AGENDA_REMINDER_BROWSER_SOUND)) { print 'audio = new Audio(\''.DOL_URL_ROOT.'/theme/common/sound/notification_agenda.wav'.'\');'; } ?> diff --git a/htdocs/core/lib/admin.lib.php b/htdocs/core/lib/admin.lib.php index 04393fa4d29..2f604a5c702 100644 --- a/htdocs/core/lib/admin.lib.php +++ b/htdocs/core/lib/admin.lib.php @@ -146,7 +146,7 @@ function run_sql($sqlfile,$silent=1,$entity='',$usesavepoint=1,$handler='',$oker $buf = fgets($fp, 4096); // Test if request must be ran only for particular database or version (if yes, we must remove the -- comment) - if (preg_match('/^--\sV(MYSQL|PGSQL|)([0-9\.]+)/i',$buf,$reg)) + if (preg_match('/^--\sV(MYSQL|PGSQL)([^\s]*)/i',$buf,$reg)) { $qualified=1; @@ -159,20 +159,29 @@ function run_sql($sqlfile,$silent=1,$entity='',$usesavepoint=1,$handler='',$oker // restrict on version if ($qualified) { - - $versionrequest=explode('.',$reg[2]); - //print var_dump($versionrequest); - //print var_dump($versionarray); - if (! count($versionrequest) || ! count($versionarray) || versioncompare($versionrequest,$versionarray) > 0) - { - $qualified=0; - } + if (! empty($reg[2])) + { + if (is_numeric($reg[2])) // This is a version + { + $versionrequest=explode('.',$reg[2]); + //print var_dump($versionrequest); + //print var_dump($versionarray); + if (! count($versionrequest) || ! count($versionarray) || versioncompare($versionrequest,$versionarray) > 0) + { + $qualified=0; + } + } + else // This is a test on a constant. For example when we have -- VMYSQLUTF8UNICODE, we test constant $conf->global->UTF8UNICODE + { + if (empty($conf->db->dolibarr_main_db_collation) || ($reg[2] != strtoupper(preg_replace('/_/', '', $conf->db->dolibarr_main_db_collation)))) $qualified=0; + } + } } if ($qualified) { // Version qualified, delete SQL comments - $buf=preg_replace('/^--\sV(MYSQL|PGSQL|)([0-9\.]+)/i','',$buf); + $buf=preg_replace('/^--\sV(MYSQL|PGSQL)([^\s]*)/i','',$buf); //print "Ligne $i qualifi?e par version: ".$buf.'
'; } } @@ -545,10 +554,17 @@ function security_prepare_head() $h++; $head[$h][0] = DOL_URL_ROOT."/admin/security_file.php"; - $head[$h][1] = $langs->trans("Files"); + $head[$h][1] = $langs->trans("Files").' ('.$langs->trans("Upload").')'; $head[$h][2] = 'file'; $h++; + /* + $head[$h][0] = DOL_URL_ROOT."/admin/security_file_download.php"; + $head[$h][1] = $langs->trans("Files").' ('.$langs->trans("Download").')'; + $head[$h][2] = 'filedownload'; + $h++; + */ + $head[$h][0] = DOL_URL_ROOT."/admin/proxy.php"; $head[$h][1] = $langs->trans("ExternalAccess"); $head[$h][2] = 'proxy'; diff --git a/htdocs/core/lib/agenda.lib.php b/htdocs/core/lib/agenda.lib.php index 5ac0982a3a0..0a4ad9ffcc9 100644 --- a/htdocs/core/lib/agenda.lib.php +++ b/htdocs/core/lib/agenda.lib.php @@ -412,6 +412,14 @@ function agenda_prepare_head() $head[$h][2] = 'autoactions'; $h++; + if ($conf->global->MAIN_FEATURES_LEVEL > 0) + { + $head[$h][0] = DOL_URL_ROOT."/admin/agenda_reminder.php"; + $head[$h][1] = $langs->trans("Reminders"); + $head[$h][2] = 'reminders'; + $h++; + } + $head[$h][0] = DOL_URL_ROOT."/admin/agenda_xcal.php"; $head[$h][1] = $langs->trans("ExportCal"); $head[$h][2] = 'xcal'; diff --git a/htdocs/core/lib/ajax.lib.php b/htdocs/core/lib/ajax.lib.php index 705bcf6deab..76a1458b913 100644 --- a/htdocs/core/lib/ajax.lib.php +++ b/htdocs/core/lib/ajax.lib.php @@ -46,6 +46,12 @@ function ajax_autocompleter($selected, $htmlname, $url, $urloption='', $minLengt { if (empty($minLength)) $minLength=1; + $dataforrenderITem='ui-autocomplete'; + $dataforitem='ui-autocomplete-item'; + // Allow two constant to use other values for backward compatibility + if (defined('JS_QUERY_AUTOCOMPLETE_RENDERITEM')) $dataforrenderITem=constant('JS_QUERY_AUTOCOMPLETE_RENDERITEM'); + if (defined('JS_QUERY_AUTOCOMPLETE_ITEM')) $dataforitem=constant('JS_QUERY_AUTOCOMPLETE_ITEM'); + // Input search_htmlname is original field // Input htmlname is a second input field used when using ajax autocomplete. $script = ''; @@ -185,10 +191,10 @@ function ajax_autocompleter($selected, $htmlname, $url, $urloption='', $minLengt $("#search_'.$htmlname.'").trigger("change"); // We have changed value of the combo select, we must be sure to trigger all js hook binded on this event. This is required to trigger other javascript change method binded on original field by other code. } ,delay: 500 - }).data("ui-autocomplete")._renderItem = function( ul, item ) { + }).data("'.$dataforrenderITem.'")._renderItem = function( ul, item ) { return $("
  • ") - .data( "ui-autocomplete-item", item ) // jQuery UI > 1.10.0 + .data( "'.$dataforitem.'", item ) // jQuery UI > 1.10.0 .append( \'\' + item.label + "" ) .appendTo(ul); }; diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index c0e5e896872..ae4dfe1c2e4 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -749,10 +749,10 @@ function show_contacts($conf,$langs,$db,$object,$backtopage='') $colspan=9; print '
  • '.$langs->trans("Referers").'
    '.$langs->trans("Referers").''.$langs->trans("NbOfThirdParties").''.$langs->trans("NbOfObjectReferers").''.$langs->trans("TotalQuantity").'
    '; print $fuser->getNomUrl(1, 'withproject', 'time'); print ''; @@ -835,9 +837,11 @@ function projectLinesPerWeek(&$inc, $firstdaytoshow, $fuser, $parent, $lines, &$ print '
    '; print $fuser->getNomUrl(1, 'withproject', 'time'); print ''; @@ -1136,19 +1140,19 @@ function print_projecttasks_array($db, $form, $socid, $projectsListId, $mytasks= print '
    '; print $tab[$x]['buttons']; print '
    '; @@ -219,7 +219,7 @@ function tree_recur($tab, $pere, $rang, $iddivjstree='iddivjstree', $donoresetal $tree_recur_alreadyadded[$tab[$x]['rowid']]=($rang + 1); // And now we search all its sons of lower level //print 'Call tree_recur for x='.$x.' rowid='.$tab[$x]['rowid']." fk_mainmenu pere = ".$tab[$x]['fk_mainmenu']." fk_leftmenu pere = ".$tab[$x]['fk_leftmenu']."
    \n"; - tree_recur($tab,$tab[$x],$rang+1); + tree_recur($tab, $tab[$x], $rang+1, 'iddivjstree', 0, $showfk); print ''; } } diff --git a/htdocs/core/lib/website.lib.php b/htdocs/core/lib/website.lib.php index 37f01a0ffe3..2de1bfb4ecd 100644 --- a/htdocs/core/lib/website.lib.php +++ b/htdocs/core/lib/website.lib.php @@ -27,21 +27,24 @@ * * @param string $content Content string * @return void + * @see dolWebsiteSaveContent */ function dolWebsiteOutput($content) { global $db, $langs, $conf, $user; - global $dolibarr_main_url_root; + global $dolibarr_main_url_root, $dolibarr_main_data_root; - dol_syslog("dolWebsiteOutput start"); + dol_syslog("dolWebsiteOutput start (mode=".(defined('USEDOLIBARRSERVER')?'USEDOLIBARRSERVER':'').')'); - if (! defined('USEDOLIBARRSERVER')) + // Define $urlwithroot + $urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root)); + $urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file + //$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current + + // Note: This seems never called when page is output inside the website editor (search 'REPLACEMENT OF LINKS When page called by website editor') + + if (! defined('USEDOLIBARRSERVER')) // REPLACEMENT OF LINKS When page called from virtual host { - // Define $urlwithroot - $urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root)); - $urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file - //$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current - $symlinktomediaexists=1; // Make a change into HTML code to allow to include images from medias directory correct with direct link for virtual server @@ -52,15 +55,124 @@ function dolWebsiteOutput($content) if (! $symlinktomediaexists) { $content=preg_replace('/()/', '\1'.$urlwithroot.'/viewimage.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep); + $content=preg_replace('/(url\(["\']?)[^\)]*viewimage\.php([^\)]*)modulepart=medias([^\)]*)file=([^\)]*)(["\']?\))/', '\1'.$urlwithroot.'/viewimage.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep); } else { - $content=preg_replace('/()/', '\1medias/\4\5', $content, -1, $nbrep); + $content=preg_replace('/()/', '\1medias/\4\5', $content, -1, $nbrep); + $content=preg_replace('/(url\(["\']?)[^\)]*viewimage\.php([^\)]*)modulepart=medias([^\)]*)file=([^\)]*)(["\']?\))/', '\1medias/\4\5', $content, -1, $nbrep); } } + else // REPLACEMENT OF LINKS When page called from dolibarr server + { + global $website; + + // Replace relative link / with dolibarr URL: ...href="/"... + $content=preg_replace('/(href=")\/\"/', '\1'.DOL_URL_ROOT.'/public/websites/index.php?website='.$website->ref.'&pageid='.$website->fk_default_home.'"', $content, -1, $nbrep); + // Replace relative link /xxx.php with dolibarr URL: ...href="....php" + $content=preg_replace('/(href=")\/?([^\"]*)(\.php\")/', '\1'.DOL_URL_ROOT.'/public/websites/index.php?website='.$website->ref.'&pageref=\2"', $content, -1, $nbrep); + + // Fix relative link /document.php with correct URL after the DOL_URL_ROOT: ...href="/document.php?modulepart=" + $content=preg_replace('/(href=")(\/?document\.php\?[^\"]*modulepart=[^\"]*)(\")/', '\1'.DOL_URL_ROOT.'\2\3"', $content, -1, $nbrep); + // Fix relative link /viewimage.php with correct URL after the DOL_URL_ROOT: ...href="/viewimage.php?modulepart=" + $content=preg_replace('/(href=")(\/?viewimage\.php\?[^\"]*modulepart=[^\"]*)(\")/', '\1'.DOL_URL_ROOT.'\2\3"', $content, -1, $nbrep); + + // Fix relative link into medias with correct URL after the DOL_URL_ROOT: ../url("medias/ + $content=preg_replace('/url\((["\']?)medias\//', 'url(\1'.DOL_URL_ROOT.'/viewimage.php?modulepart=medias&file=', $content, -1, $nbrep); + } dol_syslog("dolWebsiteOutput end"); print $content; } + +/** + * Convert a page content to have correct links into a new html content. + * Used to ouput the page on the Preview. + * + * @param Website $website Web site object + * @param string $content Content to replace + * @return boolean True if OK + */ +function dolWebsiteReplacementOfLinks($website, $content) +{ + // Replace php code. Note $content may come from database and does not contains body tags. + $content = preg_replace('/<\?php[^\?]+\?>\n*/ims', '...php...', $content); + + // Replace relative link / with dolibarr URL + $content = preg_replace('/(href=")\/\"/', '\1'.DOL_URL_ROOT.'/websites/index.php?website='.$website->ref.'&pageid='.$website->fk_default_home.'"', $content, -1, $nbrep); + // Replace relative link /xxx.php with dolibarr URL + $content = preg_replace('/(href=")\/?([^\"]*)(\.php\")/', '\1'.DOL_URL_ROOT.'/websites/index.php?website='.$website->ref.'&pageref=\2"', $content, -1, $nbrep); + + $content = preg_replace('/url\((["\']?)medias\//', 'url(\1'.DOL_URL_ROOT.'/viewimage.php?modulepart=medias&file=', $content, -1, $nbrep); + + // $MAXLEVEL) + { + print 'ERROR: RECURSIVE CONTENT LEVEL. Depth of recursive call is more than the limit of '.$MAXLEVEL.".\n"; + return; + } + // TODO Remove body and html if included + //$content = file_get_contents($fullpathfile); + //print preg_replace(array('/^.*]*>/ims','/<\/body>.*$/ims'), array('', ''), $content);*/ + $res = include $fullpathfile; // Include because we want to execute code content + if (! $res) + { + print 'ERROR: FAILED TO INCLUDE PAGE '.$contentfile.".\n"; + } + + $includehtmlcontentopened--; +} + diff --git a/htdocs/core/menus/init_menu_auguria.sql b/htdocs/core/menus/init_menu_auguria.sql index 5655ada681c..cf51976298b 100644 --- a/htdocs/core/menus/init_menu_auguria.sql +++ b/htdocs/core/menus/init_menu_auguria.sql @@ -12,7 +12,7 @@ insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, left insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('societe|fournisseur', '( ! empty($conf->societe->enabled) && (empty($conf->global->SOCIETE_DISABLE_PROSPECTS) || empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))) || ! empty($conf->fournisseur->enabled)', 2__+MAX_llx_menu__, __HANDLER__, 'top', 'companies', '', 0, '/societe/index.php?mainmenu=companies&leftmenu=', 'ThirdParties', -1, 'companies', '$user->rights->societe->lire || $user->rights->societe->contact->lire', '', 2, 20, __ENTITY__); insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('product|service', '$conf->product->enabled || $conf->service->enabled', 3__+MAX_llx_menu__, __HANDLER__, 'top', 'products', '', 0, '/product/index.php?mainmenu=products&leftmenu=', 'Products/Services', -1, 'products', '$user->rights->produit->lire||$user->rights->service->lire', '', 0, 30, __ENTITY__); insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('propal|commande|fournisseur|contrat|ficheinter', '$conf->propal->enabled || $conf->commande->enabled || $conf->supplier_order->enabled || $conf->contrat->enabled || $conf->ficheinter->enabled', 5__+MAX_llx_menu__, __HANDLER__, 'top', 'commercial', '', 0, '/comm/index.php?mainmenu=commercial&leftmenu=', 'Commercial', -1, 'commercial', '$user->rights->societe->lire || $user->rights->societe->contact->lire', '', 2, 40, __ENTITY__); -insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('comptabilite|accounting|facture|don|tax|salaries|loan', '$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', 6__+MAX_llx_menu__, __HANDLER__, 'top', 'accountancy', '', 0, '/compta/index.php?mainmenu=accountancy&leftmenu=', 'MenuFinancial', -1, 'compta', '$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', '', 2, 50, __ENTITY__); +insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('comptabilite|accounting|facture|don|tax|salaries|loan|banque', '$conf->comptabilite->enabled || $conf->accounting->enabled || $conf->facture->enabled || $conf->don->enabled || $conf->tax->enabled || $conf->salaries->enabled || $conf->supplier_invoice->enabled || $conf->loan->enabled || $conf->banque->enabled', 6__+MAX_llx_menu__, __HANDLER__, 'top', 'accountancy', '', 0, '/compta/index.php?mainmenu=accountancy&leftmenu=', 'MenuFinancial', -1, 'compta', '$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 || $user->rights->banque->lire', '', 2, 50, __ENTITY__); insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('banque|prelevement', '$conf->banque->enabled || $conf->prelevement->enabled', 14__+MAX_llx_menu__, __HANDLER__, 'top', 'bank', '', 0, '/compta/bank/index.php?mainmenu=bank&leftmenu=bank', 'MenuBankCash', -1, 'banks', '$user->rights->banque->lire || $user->rights->prelevement->bons->lire', '', 0, 60, __ENTITY__); insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('projet', '$conf->projet->enabled', 7__+MAX_llx_menu__, __HANDLER__, 'top', 'project', '', 0, '/projet/index.php?mainmenu=project&leftmenu=', 'Projects', -1, 'projects', '$user->rights->projet->lire', '', 2, 70, __ENTITY__); insert into llx_menu (module, enabled, rowid, menu_handler, type, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('mailing|export|import|opensurvey|resource', '$conf->mailing->enabled || $conf->export->enabled || $conf->import->enabled || $conf->opensurvey->enabled || $conf->resource->enabled', 8__+MAX_llx_menu__, __HANDLER__, 'top', 'tools', '', 0, '/core/tools.php?mainmenu=tools&leftmenu=', 'Tools', -1, 'other', '$user->rights->mailing->lire || $user->rights->export->lire || $user->rights->import->run || $user->rights->opensurvey->read || $user->rights->resource->read', '', 2, 90, __ENTITY__); @@ -192,7 +192,7 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->don->enabled && $leftmenu=="donations"', __HANDLER__, 'left', 2002__+MAX_llx_menu__, 'accountancy', '', 2000__+MAX_llx_menu__, '/don/list.php?leftmenu=donations&mainmenu=accountancy', 'List', 1, 'donations', '$user->rights->don->lire', '', 2, 1, __ENTITY__); -- insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->don->enabled && $leftmenu=="donations"', __HANDLER__, 'left', 2003__+MAX_llx_menu__, 'accountancy', '', 2000__+MAX_llx_menu__, '/don/stats/index.php?leftmenu=donations&mainmenu=accountancy', 'Statistics', 1, 'donations', '$user->rights->don->lire', '', 2, 2, __ENTITY__); -- Special expenses -insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled || $conf->salaries->enabled', __HANDLER__, 'left', 2200__+MAX_llx_menu__, 'accountancy', 'tax', 6__+MAX_llx_menu__, '/compta/charges/index.php?leftmenu=tax&mainmenu=accountancy', 'MenuSpecialExpenses', 0, 'compta', '(! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) || (! empty($conf->salaries->enabled) && $user->rights->salaries->read)', '', 0, 6, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled || $conf->salaries->enabled || $conf->loan->enabled || $conf->banque->enabled', __HANDLER__, 'left', 2200__+MAX_llx_menu__, 'accountancy', 'tax', 6__+MAX_llx_menu__, '/compta/charges/index.php?leftmenu=tax&mainmenu=accountancy', 'MenuSpecialExpenses', 0, 'compta', '(! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) || (! empty($conf->salaries->enabled) && $user->rights->salaries->read) || (! empty($conf->loan->enabled) && $user->rights->loan->read) || (! empty($conf->banque->enabled) && $user->rights->banque->lire)', '', 0, 6, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->salaries->enabled', __HANDLER__, 'left', 2210__+MAX_llx_menu__, 'accountancy', 'tax_sal', 2200__+MAX_llx_menu__, '/compta/salaries/index.php?leftmenu=tax_salary&mainmenu=accountancy', 'Salaries', 1, 'salaries', '$user->rights->salaries->payment->read', '', 0, 1, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->salaries->enabled && $leftmenu=="tax_salary"', __HANDLER__, 'left', 2211__+MAX_llx_menu__, 'accountancy', '', 2210__+MAX_llx_menu__, '/compta/salaries/card.php?leftmenu=tax_salary&action=create', 'NewPayment', 2, 'companies', '$user->rights->salaries->payment->write', '', 0, 2, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->salaries->enabled && $leftmenu=="tax_salary"', __HANDLER__, 'left', 2212__+MAX_llx_menu__, 'accountancy', '', 2210__+MAX_llx_menu__, '/compta/salaries/index.php?leftmenu=tax_salary', 'Payments', 2, 'companies', '$user->rights->salaries->payment->read', '', 0, 3, __ENTITY__); @@ -208,6 +208,9 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2302__+MAX_llx_menu__, 'accountancy', '', 2300__+MAX_llx_menu__, '/compta/tva/reglement.php?leftmenu=tax_vat', 'List', 2, 'companies', '$user->rights->tax->charges->lire', '', 0, 1, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2303__+MAX_llx_menu__, 'accountancy', '', 2300__+MAX_llx_menu__, '/compta/tva/clients.php?leftmenu=tax_vat', 'ReportByCustomers', 2, 'companies', '$user->rights->tax->charges->lire', '', 0, 2, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->tax->enabled && empty($conf->global->TAX_DISABLE_VAT_MENUS) && $leftmenu=="tax_vat"', __HANDLER__, 'left', 2304__+MAX_llx_menu__, 'accountancy', '', 2300__+MAX_llx_menu__, '/compta/tva/quadri_detail.php?leftmenu=tax_vat', 'ReportByQuarter', 2, 'companies', '$user->rights->tax->charges->lire', '', 0, 3, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled', __HANDLER__, 'left', 2350__+MAX_llx_menu__, 'accountancy', 'tax_various', 2200__+MAX_llx_menu__, '/bank/various_payment/index.php?leftmenu=tax_various&mainmenu=accountancy', 'MenuVariousPayment', 1, 'various_payment', '$user->rights->banque->lire', '', 0, 1, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && $leftmenu=="tax_various"', __HANDLER__, 'left', 2351__+MAX_llx_menu__, 'accountancy', '', 2350__+MAX_llx_menu__, '/bank/various_payment/card.php?leftmenu=tax_various&action=create', 'MenuNewVariousPayment', 2, 'various_payment', '$user->rights->banque->modifier', '', 0, 2, __ENTITY__); +insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->banque->enabled && $leftmenu=="tax_various"', __HANDLER__, 'left', 2352__+MAX_llx_menu__, 'accountancy', '', 2350__+MAX_llx_menu__, '/bank/various_payment/index.php?leftmenu=tax_various', 'List', 2, 'various_payment', '$user->rights->banque->lire', '', 0, 3, __ENTITY__); -- Accounting Expert insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled', __HANDLER__, 'left', 2400__+MAX_llx_menu__, 'accountancy', 'accounting', 6__+MAX_llx_menu__, '/accountancy/index.php?leftmenu=accountancy', 'MenuAccountancy', 0, 'accountancy', '! empty($conf->accounting->enabled) || $user->rights->accounting->bind->write || $user->rights->accounting->bind->write || $user->rights->compta->resultat->lire', '', 0, 7, __ENTITY__); -- Setup diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 2fcf1fa4ff2..38232a73876 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -148,10 +148,11 @@ function print_eldy_menu($db,$atarget,$type_user,&$tabMenu,&$menu,$noout=0,$mode if (! empty($conf->salaries->enabled)) $menuqualified++; if (! empty($conf->supplier_invoice->enabled)) $menuqualified++; if (! empty($conf->loan->enabled)) $menuqualified++; + if (! empty($conf->banque->enabled)) $menuqualified++; $tmpentry=array( 'enabled'=>$menuqualified, - 'perms'=>(! empty($user->rights->compta->resultat->lire) || ! empty($user->rights->accounting->mouvements->lire) || ! empty($user->rights->facture->lire) || ! empty($user->rights->don->lire) || ! empty($user->rights->tax->charges->lire) || ! empty($user->rights->salaries->read) || ! empty($user->rights->fournisseur->facture->lire) || ! empty($user->rights->loan->read)), - 'module'=>'comptabilite|accounting|facture|supplier_invoice|don|tax|salaries|loan'); + 'perms'=>(! empty($user->rights->compta->resultat->lire) || ! empty($user->rights->accounting->mouvements->lire) || ! empty($user->rights->facture->lire) || ! empty($user->rights->don->lire) || ! empty($user->rights->tax->charges->lire) || ! empty($user->rights->salaries->read) || ! empty($user->rights->fournisseur->facture->lire) || ! empty($user->rights->loan->read) || ! empty($user->rights->banque->lire)), + 'module'=>'comptabilite|accounting|facture|supplier_invoice|don|tax|salaries|loan|banque'); $showmode=dol_eldy_showmenu($type_user, $tmpentry, $listofmodulesforexternal); if ($showmode) { @@ -807,8 +808,8 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu { $langs->load("bills"); $newmenu->add("/fourn/facture/list.php?leftmenu=suppliers_bills", $langs->trans("BillsSuppliers"),0,$user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills'); - $newmenu->add("/fourn/facture/card.php?action=create",$langs->trans("NewBill"),1,$user->rights->fournisseur->facture->creer); - $newmenu->add("/fourn/facture/list.php?leftmenu=suppliers_bills", $langs->trans("List"),1,$user->rights->fournisseur->facture->lire, 'suppliers_bills_list'); + $newmenu->add("/fourn/facture/card.php?action=create",$langs->trans("NewBill"),1,$user->rights->fournisseur->facture->creer, '', $mainmenu, 'suppliers_bills_create'); + $newmenu->add("/fourn/facture/list.php?leftmenu=suppliers_bills", $langs->trans("List"),1,$user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_list'); if ($usemenuhider || empty($leftmenu) || preg_match('/suppliers_bills/', $leftmenu)) { $newmenu->add("/fourn/facture/list.php?leftmenu=suppliers_bills_draft&search_status=0", $langs->trans("BillShortStatusDraft"),2,$user->rights->fournisseur->facture->lire, '', $mainmenu, 'suppliers_bills_draft'); @@ -854,11 +855,11 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu } // Taxes and social contributions - if (! empty($conf->tax->enabled) || ! empty($conf->salaries->enabled) || ! empty($conf->loan->enabled)) + if (! empty($conf->tax->enabled) || ! empty($conf->salaries->enabled) || ! empty($conf->loan->enabled) || ! empty($conf->banque->enabled)) { global $mysoc; - $permtoshowmenu=((! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) || (! empty($conf->salaries->enabled) && $user->rights->salaries->read) || (! empty($conf->loan->enabled) && $user->rights->loan->read)); + $permtoshowmenu=((! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) || (! empty($conf->salaries->enabled) && $user->rights->salaries->read) || (! empty($conf->loan->enabled) && $user->rights->loan->read) || (! empty($conf->banque->enabled) && $user->rights->banque->lire)); $newmenu->add("/compta/charges/index.php?leftmenu=tax&mainmenu=accountancy",$langs->trans("MenuSpecialExpenses"), 0, $permtoshowmenu, '', $mainmenu, 'tax'); // Social contributions @@ -871,7 +872,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu // VAT if (empty($conf->global->TAX_DISABLE_VAT_MENUS)) { - $newmenu->add("/compta/tva/index.php?leftmenu=tax_vat&mainmenu=accountancy",$langs->trans("VAT"),1,$user->rights->tax->charges->lire, '', $mainmenu, 'tax_vat'); + $newmenu->add("/compta/tva/index.php?leftmenu=tax_vat&mainmenu=accountancy",$langs->transcountry("VAT", $mysoc->country_code),1,$user->rights->tax->charges->lire, '', $mainmenu, 'tax_vat'); if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_vat/i',$leftmenu)) $newmenu->add("/compta/tva/card.php?leftmenu=tax_vat&action=create",$langs->trans("New"),2,$user->rights->tax->charges->creer); if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_vat/i',$leftmenu)) $newmenu->add("/compta/tva/reglement.php?leftmenu=tax_vat",$langs->trans("List"),2,$user->rights->tax->charges->lire); if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_vat/i',$leftmenu)) $newmenu->add("/compta/tva/clients.php?leftmenu=tax_vat", $langs->trans("ReportByCustomers"), 2, $user->rights->tax->charges->lire); @@ -918,6 +919,14 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu //if (empty($leftmenu) || preg_match('/^tax_loan/i',$leftmenu)) $newmenu->add("/loan/payment/list.php?leftmenu=tax_loan",$langs->trans("Payments"),2,$user->rights->loan->read); if (($usemenuhider || empty($leftmenu) || preg_match('/^tax_loan/i',$leftmenu)) && ! empty($conf->global->LOAN_SHOW_CALCULATOR)) $newmenu->add("/loan/calc.php?leftmenu=tax_loan",$langs->trans("Calculator"),2,$user->rights->loan->calc); } + + // Various payment + if (! empty($conf->banque->enabled)) + { + $newmenu->add("/compta/bank/various_payment/index.php?leftmenu=tax_various&mainmenu=accountancy",$langs->trans("MenuVariousPayment"),1,$user->rights->banque->lire, '', $mainmenu, 'tax_various'); + if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_various/i',$leftmenu)) $newmenu->add("/compta/bank/various_payment/card.php?leftmenu=tax_various&action=create",$langs->trans("MenuNewVariousPayment"), 2, $user->rights->banque->modifier); + if ($usemenuhider || empty($leftmenu) || preg_match('/^tax_various/i',$leftmenu)) $newmenu->add("/compta/bank/various_payment/index.php?leftmenu=tax_various",$langs->trans("List"),2,$user->rights->banque->lire); + } } // Accounting Expert diff --git a/htdocs/core/modules/DolibarrModules.class.php b/htdocs/core/modules/DolibarrModules.class.php index 98bd412abc2..7ef1143b9f8 100644 --- a/htdocs/core/modules/DolibarrModules.class.php +++ b/htdocs/core/modules/DolibarrModules.class.php @@ -363,10 +363,6 @@ class DolibarrModules // Can not be abstract, because we need to insta - - - - /** * Constructor. Define names, constants, directories, boxes, permissions * @@ -381,6 +377,7 @@ class DolibarrModules // Can not be abstract, because we need to insta // a try catch on Fatal error to manage this correctly. // We need constructor into function unActivateModule into admin.lib.php + /** * Enables a module. * Inserts all informations into database @@ -1447,55 +1444,55 @@ class DolibarrModules // Can not be abstract, because we need to insta * * @return int Error count (0 if ok) */ - function insert_tabs() - { - global $conf; + function insert_tabs() + { + global $conf; - $err=0; + $err=0; - if (! empty($this->tabs)) - { - $i=0; - foreach ($this->tabs as $key => $value) - { - if (is_array($value) && count($value) == 0) continue; // Discard empty arrays + if (! empty($this->tabs)) + { + $i=0; + foreach ($this->tabs as $key => $value) + { + if (is_array($value) && count($value) == 0) continue; // Discard empty arrays - $entity=$conf->entity; - $newvalue = $value; + $entity=$conf->entity; + $newvalue = $value; - if (is_array($value)) - { - $newvalue = $value['data']; - if (isset($value['entity'])) $entity = $value['entity']; - } + if (is_array($value)) + { + $newvalue = $value['data']; + if (isset($value['entity'])) $entity = $value['entity']; + } - if ($newvalue) - { - $sql = "INSERT INTO ".MAIN_DB_PREFIX."const ("; - $sql.= "name"; - $sql.= ", type"; - $sql.= ", value"; - $sql.= ", note"; - $sql.= ", visible"; - $sql.= ", entity"; - $sql.= ")"; - $sql.= " VALUES ("; - $sql.= $this->db->encrypt($this->const_name."_TABS_".$i,1); - $sql.= ", 'chaine'"; - $sql.= ", ".$this->db->encrypt($value,1); - $sql.= ", null"; - $sql.= ", '0'"; - $sql.= ", ".$conf->entity; - $sql.= ")"; + if ($newvalue) + { + $sql = "INSERT INTO ".MAIN_DB_PREFIX."const ("; + $sql.= "name"; + $sql.= ", type"; + $sql.= ", value"; + $sql.= ", note"; + $sql.= ", visible"; + $sql.= ", entity"; + $sql.= ")"; + $sql.= " VALUES ("; + $sql.= $this->db->encrypt($this->const_name."_TABS_".$i,1); + $sql.= ", 'chaine'"; + $sql.= ", ".$this->db->encrypt($newvalue,1); + $sql.= ", null"; + $sql.= ", '0'"; + $sql.= ", ".$entity; + $sql.= ")"; - dol_syslog(get_class($this)."::insert_tabs", LOG_DEBUG); - $this->db->query($sql); - } - $i++; - } - } - return $err; - } + dol_syslog(get_class($this)."::insert_tabs", LOG_DEBUG); + $this->db->query($sql); + } + $i++; + } + } + return $err; + } /** * Adds constants @@ -2161,5 +2158,4 @@ class DolibarrModules // Can not be abstract, because we need to insta { return $this->_remove(array(), $options); } - } diff --git a/htdocs/core/modules/action/rapport.pdf.php b/htdocs/core/modules/action/rapport.pdf.php index a2d9bbe05dc..c6b652e265e 100644 --- a/htdocs/core/modules/action/rapport.pdf.php +++ b/htdocs/core/modules/action/rapport.pdf.php @@ -178,6 +178,8 @@ class CommActionRapport if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); + $this->result = array('fullpath'=>$file); + return 1; } } diff --git a/htdocs/core/modules/bank/doc/pdf_ban.modules.php b/htdocs/core/modules/bank/doc/pdf_ban.modules.php index 699b186a9d2..9941742d8d7 100644 --- a/htdocs/core/modules/bank/doc/pdf_ban.modules.php +++ b/htdocs/core/modules/bank/doc/pdf_ban.modules.php @@ -249,6 +249,8 @@ class pdf_ban extends ModeleBankAccountDoc if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); + $this->result = array('fullpath'=>$file); + return 1; // Pas d'erreur } else diff --git a/htdocs/core/modules/bank/doc/pdf_sepamandate.modules.php b/htdocs/core/modules/bank/doc/pdf_sepamandate.modules.php index 3dc615d9deb..e44ab8cafd8 100644 --- a/htdocs/core/modules/bank/doc/pdf_sepamandate.modules.php +++ b/htdocs/core/modules/bank/doc/pdf_sepamandate.modules.php @@ -396,6 +396,8 @@ class pdf_sepamandate extends ModeleBankAccountDoc if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); + $this->result = array('fullpath'=>$file); + return 1; // Pas d'erreur } else diff --git a/htdocs/core/modules/cheque/doc/pdf_blochet.class.php b/htdocs/core/modules/cheque/doc/pdf_blochet.class.php index dc8681a85fd..1e539a2019f 100644 --- a/htdocs/core/modules/cheque/doc/pdf_blochet.class.php +++ b/htdocs/core/modules/cheque/doc/pdf_blochet.class.php @@ -193,6 +193,8 @@ class BordereauChequeBlochet extends ModeleChequeReceipts if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); + $this->result = array('fullpath'=>$file); + $outputlangs->charset_output=$sav_charset_output; return 1; // Pas d'erreur } diff --git a/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php b/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php index 9e26b31b0ce..9ff01c9f5b5 100644 --- a/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php +++ b/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php @@ -275,9 +275,9 @@ class doc_generic_order_odt extends ModelePDFCommandes dol_mkdir($conf->commande->dir_temp); - // If BILLING contact defined on invoice, we use it + // If CUSTOMER contact defined on order, we use it $usecontact=false; - $arrayidcontact=$object->getIdContact('external','BILLING'); + $arrayidcontact=$object->getIdContact('external','CUSTOMER'); if (count($arrayidcontact) > 0) { $usecontact=true; @@ -289,7 +289,11 @@ class doc_generic_order_odt extends ModelePDFCommandes { // On peut utiliser le nom de la societe du contact if (! empty($conf->global->MAIN_USE_COMPANY_NAME_OF_CONTACT)) $socobject = $object->contact; - else $socobject = $object->thirdparty; + else { + $socobject = $object->thirdparty; + // if we have a CUSTOMER contact and we dont use it as recipient we store the contact object for later use + $contactobject = $object->contact; + } } else { @@ -356,8 +360,12 @@ class doc_generic_order_odt extends ModelePDFCommandes $array_thirdparty=$this->get_substitutionarray_thirdparty($socobject,$outputlangs); $array_objet=$this->get_substitutionarray_object($object,$outputlangs); $array_other=$this->get_substitutionarray_other($outputlangs); + // retrieve contact information for use in order as contact_xxx tags + $array_thirdparty_contact = array(); + if ($usecontact) + $array_thirdparty_contact=$this->get_substitutionarray_contact($contactobject,$outputlangs,'contact'); - $tmparray = array_merge($array_user,$array_soc,$array_thirdparty,$array_objet,$array_other); + $tmparray = array_merge($array_user,$array_soc,$array_thirdparty,$array_objet,$array_other,$array_thirdparty_contact); complete_substitutions_array($tmparray, $outputlangs, $object); // Call the ODTSubstitution hook @@ -459,6 +467,8 @@ class doc_generic_order_odt extends ModelePDFCommandes $odfHandler=null; // Destroy object + $this->result = array('fullpath'=>$file); + return 1; // Success } else diff --git a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php index 396ac54e9b5..3a2ad2776c5 100644 --- a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php @@ -45,28 +45,28 @@ class pdf_einstein extends ModelePDFCommandes * @var DoliDb Database handler */ public $db; - + /** * @var string model name */ public $name; - + /** * @var string model description (short text) */ public $description; - + /** * @var string document type */ public $type; - + /** * @var array() Minimum version of PHP required by module. * e.g.: PHP ≥ 5.3 = array(5, 3) */ - public $phpmin = array(5, 2); - + public $phpmin = array(5, 2); + /** * Dolibarr version of the loaded document * @public string @@ -240,11 +240,11 @@ class pdf_einstein extends ModelePDFCommandes $pdf=pdf_getInstance($this->format); $default_font_size = pdf_getPDFFontSize($outputlangs); // Must be after pdf_getInstance $pdf->SetAutoPageBreak(1,0); - + $heightforinfotot = 40; // Height reserved to output the info and total part $heightforfreetext= (isset($conf->global->MAIN_PDF_FREETEXT_HEIGHT)?$conf->global->MAIN_PDF_FREETEXT_HEIGHT:5); // Height reserved to output the free text on last page $heightforfooter = $this->marge_basse + 8; // Height reserved to output the footer (value include bottom margin) - + if (class_exists('TCPDF')) { $pdf->setPrintHeader(false); @@ -263,10 +263,10 @@ class pdf_einstein extends ModelePDFCommandes $pdf->SetDrawColor(128,128,128); $pdf->SetTitle($outputlangs->convToOutputCharset($object->ref)); - $pdf->SetSubject($outputlangs->transnoentities("Order")); + $pdf->SetSubject($outputlangs->transnoentities("PdfOrderTitle")); $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); - $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("Order")." ".$outputlangs->convToOutputCharset($object->thirdparty->name)); + $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("PdfOrderTitle")." ".$outputlangs->convToOutputCharset($object->thirdparty->name)); if (! empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) $pdf->SetCompression(false); $pdf->SetMargins($this->marge_gauche, $this->marge_haute, $this->marge_droite); // Left, Top, Right @@ -317,16 +317,16 @@ class pdf_einstein extends ModelePDFCommandes $pdf->writeHTMLCell(190, 3, $this->posxdesc-1, $tab_top-1, dol_htmlentitiesbr($desc_incoterms), 0, 1); $nexY = $pdf->GetY(); $height_incoterms=$nexY-$tab_top; - + // Rect prend une longueur en 3eme param $pdf->SetDrawColor(192,192,192); $pdf->Rect($this->marge_gauche, $tab_top-1, $this->page_largeur-$this->marge_gauche-$this->marge_droite, $height_incoterms+1); - + $tab_top = $nexY+6; $height_incoterms += 4; } } - + // Affiche notes $notetoshow=empty($object->note_public)?'':$object->note_public; if (! empty($conf->global->MAIN_ADD_SALE_REP_SIGNATURE_IN_NOTE)) @@ -478,7 +478,7 @@ class pdf_einstein extends ModelePDFCommandes // Collecte des totaux par valeur de tva dans $this->tva["taux"]=total_tva if ($conf->multicurrency->enabled && $object->multicurrency_tx != 1) $tvaligne=$object->lines[$i]->multicurrency_total_tva; else $tvaligne=$object->lines[$i]->total_tva; - + $localtax1ligne=$object->lines[$i]->total_localtax1; $localtax2ligne=$object->lines[$i]->total_localtax2; $localtax1_rate=$object->lines[$i]->localtax1_tx; @@ -585,7 +585,7 @@ class pdf_einstein extends ModelePDFCommandes $posy=$this->_tableau_versements($pdf, $object, $posy, $outputlangs); } */ - + // Pied de page $this->_pagefoot($pdf,$object,$outputlangs); if (method_exists($pdf,'AliasNbPages')) $pdf->AliasNbPages(); @@ -603,6 +603,8 @@ class pdf_einstein extends ModelePDFCommandes if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); + $this->result = array('fullpath'=>$file); + return 1; // Pas d'erreur } else @@ -1201,7 +1203,7 @@ class pdf_einstein extends ModelePDFCommandes * @param string $titlekey Translation key to show as title of document * @return void */ - function _pagehead(&$pdf, $object, $showaddress, $outputlangs, $titlekey="Order") + function _pagehead(&$pdf, $object, $showaddress, $outputlangs, $titlekey="PdfOrderTitle") { global $conf,$langs,$hookmanager; @@ -1294,7 +1296,7 @@ class pdf_einstein extends ModelePDFCommandes $pdf->MultiCell(100, 3, $langs->trans("SalesRepresentative")." : ".$usertmp->getFullName($langs), '', 'R'); } } - + $posy+=2; // Show list of linked objects diff --git a/htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php b/htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php index 64d0da9b5fd..eeb267512d4 100644 --- a/htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php +++ b/htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php @@ -211,7 +211,7 @@ class doc_generic_contract_odt extends ModelePDFContract if (! is_object($object)) { $id = $object; - $object = new Contract($this->db); + $object = new Contrat($this->db); $result=$object->fetch($id); if ($result < 0) { @@ -454,6 +454,8 @@ class doc_generic_contract_odt extends ModelePDFContract $odfHandler=null; // Destroy object + $this->result = array('fullpath'=>$file); + return 1; // Success } else diff --git a/htdocs/core/modules/contract/doc/pdf_strato.modules.php b/htdocs/core/modules/contract/doc/pdf_strato.modules.php index c06882fa121..646d00afe7b 100644 --- a/htdocs/core/modules/contract/doc/pdf_strato.modules.php +++ b/htdocs/core/modules/contract/doc/pdf_strato.modules.php @@ -396,6 +396,8 @@ class pdf_strato extends ModelePDFContract if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); + $this->result = array('fullpath'=>$file); + return 1; } else diff --git a/htdocs/core/modules/dons/html_cerfafr.modules.php b/htdocs/core/modules/dons/html_cerfafr.modules.php index 5e557f95f33..24027375528 100644 --- a/htdocs/core/modules/dons/html_cerfafr.modules.php +++ b/htdocs/core/modules/dons/html_cerfafr.modules.php @@ -259,6 +259,8 @@ class html_cerfafr extends ModeleDon if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); + $this->result = array('fullpath'=>$file); + return 1; } else diff --git a/htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php b/htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php index 2693a4f013a..77a5677c003 100644 --- a/htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php +++ b/htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php @@ -510,6 +510,8 @@ class doc_generic_shipment_odt extends ModelePdfExpedition $odfHandler=null; // Destroy object + $this->result = array('fullpath'=>$file); + return 1; // Success } else diff --git a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php index 72b9a7e6def..68795126487 100644 --- a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php @@ -359,6 +359,8 @@ class pdf_merou extends ModelePdfExpedition if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); + $this->result = array('fullpath'=>$file); + return 1; } else diff --git a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php index 3f7a73a650c..ae0b95ecc78 100644 --- a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php @@ -567,6 +567,8 @@ class pdf_rouget extends ModelePdfExpedition if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); + $this->result = array('fullpath'=>$file); + return 1; // No error } else diff --git a/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php b/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php index e4ad7b7db36..6182b5afca3 100644 --- a/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php @@ -474,6 +474,8 @@ class pdf_standard extends ModeleExpenseReport if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); + $this->result = array('fullpath'=>$file); + return 1; // Pas d'erreur } else diff --git a/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php b/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php index a8baaab2282..79b848c5773 100644 --- a/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php +++ b/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php @@ -474,6 +474,8 @@ class doc_generic_invoice_odt extends ModelePDFFactures $odfHandler=null; // Destroy object + $this->result = array('fullpath'=>$file); + return 1; // Success } else diff --git a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php index 0de3a8df3d7..81aa216a93a 100644 --- a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php +++ b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php @@ -1,13 +1,13 @@ * Copyright (C) 2005-2012 Regis Houssin - * Copyright (C) 2008 Raphael Bertrand + * Copyright (C) 2008 Raphael Bertrand * Copyright (C) 2010-2014 Juanjo Menent - * Copyright (C) 2012 Christophe Battarel - * Copyright (C) 2012 Cédric Salvador - * Copyright (C) 2012-2014 Raphaël Doursenaud - * Copyright (C) 2015 Marcos García - * Copyright (C) 2017 Ferran Marcet + * Copyright (C) 2012 Christophe Battarel + * Copyright (C) 2012 Cédric Salvador + * Copyright (C) 2012-2014 Raphaël Doursenaud + * Copyright (C) 2015 Marcos García + * Copyright (C) 2017 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 @@ -255,16 +255,16 @@ class pdf_crabe extends ModelePDFFactures // Set nblignes with the new facture lines content after hook $nblignes = count($object->lines); $nbpayments = count($object->getListOfPayments()); - + // Create pdf instance $pdf=pdf_getInstance($this->format); $default_font_size = pdf_getPDFFontSize($outputlangs); // Must be after pdf_getInstance $pdf->SetAutoPageBreak(1,0); - + $heightforinfotot = 50+(4*$nbpayments); // Height reserved to output the info and total part and payment part $heightforfreetext= (isset($conf->global->MAIN_PDF_FREETEXT_HEIGHT)?$conf->global->MAIN_PDF_FREETEXT_HEIGHT:5); // Height reserved to output the free text on last page $heightforfooter = $this->marge_basse + 8; // Height reserved to output the footer (value include bottom margin) - + if (class_exists('TCPDF')) { $pdf->setPrintHeader(false); @@ -284,10 +284,10 @@ class pdf_crabe extends ModelePDFFactures $pdf->SetDrawColor(128,128,128); $pdf->SetTitle($outputlangs->convToOutputCharset($object->ref)); - $pdf->SetSubject($outputlangs->transnoentities("Invoice")); + $pdf->SetSubject($outputlangs->transnoentities("PdfInvoiceTitle")); $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); - $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("Invoice")." ".$outputlangs->convToOutputCharset($object->thirdparty->name)); + $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("PdfInvoiceTitle")." ".$outputlangs->convToOutputCharset($object->thirdparty->name)); if (! empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) $pdf->SetCompression(false); $pdf->SetMargins($this->marge_gauche, $this->marge_haute, $this->marge_droite); // Left, Top, Right @@ -509,7 +509,7 @@ class pdf_crabe extends ModelePDFFactures $qty = pdf_getlineqty($object, $i, $outputlangs, $hidedetails); $pdf->SetXY($this->posxqty, $curY); // Enough for 6 chars - + if ($this->situationinvoice) { $pdf->MultiCell($this->posxprogress-$this->posxqty-0.8, 4, $qty, 0, 'R'); @@ -568,7 +568,7 @@ class pdf_crabe extends ModelePDFFactures if (isset($object->type) && $object->type == 2 && ! empty($conf->global->INVOICE_POSITIVE_CREDIT_NOTE)) $sign=-1; // Collecte des totaux par valeur de tva dans $this->tva["taux"]=total_tva $prev_progress = $object->lines[$i]->get_prev_progress($object->id); - if ($prev_progress > 0) // Compute progress from previous situation + if ($prev_progress > 0 && !empty($object->lines[$i]->situation_percent)) // Compute progress from previous situation { if ($conf->multicurrency->enabled && $object->multicurrency_tx != 1) $tvaligne = $sign * $object->lines[$i]->multicurrency_total_tva * ($object->lines[$i]->situation_percent - $prev_progress) / $object->lines[$i]->situation_percent; else $tvaligne = $sign * $object->lines[$i]->total_tva * ($object->lines[$i]->situation_percent - $prev_progress) / $object->lines[$i]->situation_percent; @@ -701,6 +701,8 @@ class pdf_crabe extends ModelePDFFactures if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); + $this->result = array('fullpath'=>$file); + return 1; // No error } else @@ -769,7 +771,7 @@ class pdf_crabe extends ModelePDFFactures $pdf->SetFont('','', $default_font_size - 4); - + // Loop on each deposits and credit notes included $sql = "SELECT re.rowid, re.amount_ht, re.amount_tva, re.amount_ttc,"; $sql.= " re.description, re.fk_facture_source,"; @@ -822,7 +824,7 @@ class pdf_crabe extends ModelePDFFactures $sql.= " WHERE pf.fk_paiement = p.rowid AND pf.fk_facture = ".$object->id; //$sql.= " WHERE pf.fk_paiement = p.rowid AND pf.fk_facture = 1"; $sql.= " ORDER BY p.datep"; - + $resql=$this->db->query($sql); if ($resql) { @@ -1052,7 +1054,7 @@ class pdf_crabe extends ModelePDFFactures $pdf->SetFillColor(255,255,255); $pdf->SetXY($col1x, $tab2_top + 0); $pdf->MultiCell($col2x-$col1x, $tab2_hl, $outputlangs->transnoentities("TotalHT"), 0, 'L', 1); - + $total_ht = ($conf->multicurrency->enabled && $object->mylticurrency_tx != 1 ? $object->multicurrency_total_ht : $object->total_ht); $pdf->SetXY($col2x, $tab2_top + 0); $pdf->MultiCell($largcol2, $tab2_hl, price($sign * ($total_ht + (! empty($object->remise)?$object->remise:0)), 0, $outputlangs), 0, 'R', 1); @@ -1071,7 +1073,7 @@ class pdf_crabe extends ModelePDFFactures else { // FIXME amount of vat not supported with multicurrency - + //Local tax 1 before VAT //if (! empty($conf->global->FACTURE_LOCAL_TAX1_OPTION) && $conf->global->FACTURE_LOCAL_TAX1_OPTION=='localtax1on') //{ @@ -1141,26 +1143,26 @@ class pdf_crabe extends ModelePDFFactures } //} - + // VAT // Situations totals migth be wrong on huge amounts if ($object->situation_cycle_ref && $object->situation_counter > 1) { - + $sum_pdf_tva = 0; foreach($this->tva as $tvakey => $tvaval){ $sum_pdf_tva+=$tvaval; // sum VAT amounts to compare to object } - + if($sum_pdf_tva!=$object->total_tva) { // apply coef to recover the VAT object amount (the good one) $coef_fix_tva = $object->total_tva / $sum_pdf_tva; - + foreach($this->tva as $tvakey => $tvaval) { $this->tva[$tvakey]=$tvaval * $coef_fix_tva; } } - + } - + foreach($this->tva as $tvakey => $tvaval) { if ($tvakey != 0) // On affiche pas taux 0 @@ -1416,7 +1418,7 @@ class pdf_crabe extends ModelePDFFactures if (empty($hidetop)) { $pdf->SetXY($this->posxqty-1, $tab_top+1); - + if($this->situationinvoice) { $pdf->MultiCell($this->posxprogress-$this->posxqty-1,2, $outputlangs->transnoentities("Qty"),'','C'); @@ -1430,14 +1432,14 @@ class pdf_crabe extends ModelePDFFactures $pdf->MultiCell($this->posxdiscount-$this->posxqty-1,2, $outputlangs->transnoentities("Qty"),'','C'); } } - + if ($this->situationinvoice) { $pdf->line($this->posxprogress - 1, $tab_top, $this->posxprogress - 1, $tab_top + $tab_height); - + if (empty($hidetop)) { - + $pdf->SetXY($this->posxprogress, $tab_top+1); - + if($conf->global->PRODUCT_USE_UNITS) { $pdf->MultiCell($this->posxunit-$this->posxprogress,2, $outputlangs->transnoentities("Progress"),'','C'); @@ -1450,9 +1452,9 @@ class pdf_crabe extends ModelePDFFactures { $pdf->MultiCell($this->postotalht-$this->posxprogress,2, $outputlangs->transnoentities("Progress"),'','C'); } - + } - + } if($conf->global->PRODUCT_USE_UNITS) { @@ -1559,7 +1561,7 @@ class pdf_crabe extends ModelePDFFactures $pdf->SetFont('','B', $default_font_size + 3); $pdf->SetXY($posx,$posy); $pdf->SetTextColor(0,0,60); - $title=$outputlangs->transnoentities("Invoice"); + $title=$outputlangs->transnoentities("PdfInvoiceTitle"); if ($object->type == 1) $title=$outputlangs->transnoentities("InvoiceReplacement"); if ($object->type == 2) $title=$outputlangs->transnoentities("InvoiceAvoir"); if ($object->type == 3) $title=$outputlangs->transnoentities("InvoiceDeposit"); @@ -1573,10 +1575,10 @@ class pdf_crabe extends ModelePDFFactures $pdf->SetXY($posx,$posy); $pdf->SetTextColor(0,0,60); $textref=$outputlangs->transnoentities("Ref")." : " . $outputlangs->convToOutputCharset($object->ref); - if ($object->statut == Facture::STATUS_DRAFT) + if ($object->statut == Facture::STATUS_DRAFT) { $pdf->SetTextColor(128,0,0); - $textref.=' - '.$outputlangs->trans("NotValidated"); + $textref.=' - '.$outputlangs->transnoentities("NotValidated"); } $pdf->MultiCell($w, 4, $textref, '', 'R'); @@ -1635,7 +1637,7 @@ class pdf_crabe extends ModelePDFFactures $pdf->SetTextColor(0,0,60); $pdf->MultiCell($w, 3, $outputlangs->transnoentities("DatePointOfTax")." : " . dol_print_date($object->date_pointoftax,"day",false,$outputlangs), '', 'R'); } - + if ($object->type != 2) { $posy+=3; @@ -1663,10 +1665,10 @@ class pdf_crabe extends ModelePDFFactures $posy+=4; $pdf->SetXY($posx,$posy); $pdf->SetTextColor(0,0,60); - $pdf->MultiCell($w, 3, $langs->trans("SalesRepresentative")." : ".$usertmp->getFullName($langs), '', 'R'); + $pdf->MultiCell($w, 3, $langs->transnoentities("SalesRepresentative")." : ".$usertmp->getFullName($langs), '', 'R'); } } - + $posy+=1; // Show list of linked objects diff --git a/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php b/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php index 4d889f84902..f333fcafd79 100644 --- a/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php +++ b/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php @@ -392,6 +392,8 @@ class pdf_soleil extends ModelePDFFicheinter if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); + $this->result = array('fullpath'=>$file); + return 1; } else diff --git a/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php b/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php index 1f8e06eb04d..eeba25962cb 100644 --- a/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php +++ b/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php @@ -566,6 +566,8 @@ class pdf_typhon extends ModelePDFDeliveryOrder if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); + $this->result = array('fullpath'=>$file); + return 1; // pas d'erreur } else diff --git a/htdocs/core/modules/member/doc/pdf_standard.class.php b/htdocs/core/modules/member/doc/pdf_standard.class.php index c97da24d174..6fd8ecfee70 100644 --- a/htdocs/core/modules/member/doc/pdf_standard.class.php +++ b/htdocs/core/modules/member/doc/pdf_standard.class.php @@ -418,6 +418,8 @@ class pdf_standard extends CommonStickerGenerator @chmod($file, octdec($conf->global->MAIN_UMASK)); + $this->result = array('fullpath'=>$file); + // Output to http stream if (empty($nooutput)) { diff --git a/htdocs/core/modules/modAccounting.class.php b/htdocs/core/modules/modAccounting.class.php index cfdd15fcc00..496d054d86c 100644 --- a/htdocs/core/modules/modAccounting.class.php +++ b/htdocs/core/modules/modAccounting.class.php @@ -56,9 +56,6 @@ class modAccounting extends DolibarrModules $this->special = 0; $this->picto = 'accounting'; - // Defined if the directory /mymodule/inc/triggers/ contains triggers or not - // $this->triggers = 1; - // Data directories to create when module is enabled $this->dirs = array('/accounting/temp'); diff --git a/htdocs/core/modules/modAgenda.class.php b/htdocs/core/modules/modAgenda.class.php index dc8b16fecc8..1c893cfbc59 100644 --- a/htdocs/core/modules/modAgenda.class.php +++ b/htdocs/core/modules/modAgenda.class.php @@ -105,6 +105,13 @@ class modAgenda extends DolibarrModules //------ $this->boxes = array(0=>array('file'=>'box_actions.php','enabledbydefaulton'=>'Home')); + // Cronjobs + //------------ + $this->cronjobs = array( + 0=>array('label'=>'SendEmailsReminders', 'jobtype'=>'method', 'class'=>'comm/action/class/actioncomm.class.php', 'objectname'=>'ActionComm', 'method'=>'sendEmailsReminder', 'parameters'=>'', 'comment'=>'SendEMailsReminder', 'frequency'=>10, 'unitfrequency'=>60, 'priority'=>10, 'status'=>1, 'test'=>'$conf->global->MAIN_FEATURES_LEVEL > 0'), + // 1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>1, 'unitfrequency'=>3600*24) + ); + // Permissions //------------ $this->rights = array(); diff --git a/htdocs/core/modules/modCron.class.php b/htdocs/core/modules/modCron.class.php index 7f949501023..90dae11dd72 100644 --- a/htdocs/core/modules/modCron.class.php +++ b/htdocs/core/modules/modCron.class.php @@ -94,18 +94,18 @@ class modCron extends DolibarrModules //------ $this->boxes = array(); - // Permissions - $this->rights = array(); // Permission array used by this module - $this->rights_class = 'cron'; - $r=0; - // Cronjobs $this->cronjobs = array( 0=>array('label'=>'PurgeDeleteTemporaryFilesShort', 'jobtype'=>'method', 'class'=>'core/class/utils.class.php', 'objectname'=>'Utils', 'method'=>'purgeFiles', 'parameters'=>'', 'comment'=>'PurgeDeleteTemporaryFiles', 'frequency'=>2, 'unitfrequency'=>3600 * 24 * 7, 'priority'=>10, 'status'=>1, 'test'=>true), 1=>array('label'=>'MakeLocalDatabaseDumpShort', 'jobtype'=>'method', 'class'=>'core/class/utils.class.php', 'objectname'=>'Utils', 'method'=>'dumpDatabase', 'parameters'=>'none,auto,1,auto,10', 'comment'=>'MakeLocalDatabaseDump', 'frequency'=>1, 'unitfrequency'=>3600 * 24 * 7, 'priority'=>20, 'status'=>0, 'test'=>in_array($db->type, array('mysql','mysqli'))), // 1=>array('label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>1, 'unitfrequency'=>3600*24) ); - + + // Permissions + $this->rights = array(); // Permission array used by this module + $this->rights_class = 'cron'; + $r=0; + $this->rights[$r][0] = 23001; $this->rights[$r][1] = 'Read cron jobs'; $this->rights[$r][3] = 0; diff --git a/htdocs/core/modules/modExpenseReport.class.php b/htdocs/core/modules/modExpenseReport.class.php index cbaf141809f..571c2b2e28a 100644 --- a/htdocs/core/modules/modExpenseReport.class.php +++ b/htdocs/core/modules/modExpenseReport.class.php @@ -54,9 +54,6 @@ class modExpenseReport extends DolibarrModules $this->special = 0; $this->picto='trip'; - // Defined if the directory /mymodule/inc/triggers/ contains triggers or not - $this->triggers = 0; - // Data directories to create when module is enabled. $this->dirs = array("/expensereport/temp"); $r=0; @@ -114,56 +111,56 @@ class modExpenseReport extends DolibarrModules $this->rights[$r][3] = 0; $this->rights[$r][4] = 'lire'; $r++; - + $this->rights[$r][0] = 772; $this->rights[$r][1] = 'Create/modify expense reports'; $this->rights[$r][2] = 'w'; $this->rights[$r][3] = 0; $this->rights[$r][4] = 'creer'; $r++; - + $this->rights[$r][0] = 773; $this->rights[$r][1] = 'Delete expense reports'; $this->rights[$r][2] = 'd'; $this->rights[$r][3] = 0; $this->rights[$r][4] = 'supprimer'; $r++; - + $this->rights[$r][0] = 775; $this->rights[$r][1] = 'Approve expense reports'; $this->rights[$r][2] = 'w'; $this->rights[$r][3] = 0; $this->rights[$r][4] = 'approve'; $r++; - + $this->rights[$r][0] = 776; $this->rights[$r][1] = 'Pay expense reports'; $this->rights[$r][2] = 'w'; $this->rights[$r][3] = 0; $this->rights[$r][4] = 'to_paid'; $r++; - + $this->rights[$r][0] = 777; $this->rights[$r][1] = 'Read expense reports of everybody'; $this->rights[$r][2] = 'r'; $this->rights[$r][3] = 1; $this->rights[$r][4] = 'readall'; $r++; - + $this->rights[$r][0] = 778; $this->rights[$r][1] = 'Create expense reports for everybody'; $this->rights[$r][2] = 'w'; $this->rights[$r][3] = 0; $this->rights[$r][4] = 'writeall_advance'; $r++; - + $this->rights[$r][0] = 779; $this->rights[$r][1] = 'Export expense reports'; $this->rights[$r][2] = 'r'; $this->rights[$r][3] = 0; $this->rights[$r][4] = 'export'; $r++; - + // Menus //------- $this->menu = 1; // This module add menu entries. They are coded into menu manager. diff --git a/htdocs/core/modules/modHoliday.class.php b/htdocs/core/modules/modHoliday.class.php index 9ce003c1a5b..d57800872fd 100644 --- a/htdocs/core/modules/modHoliday.class.php +++ b/htdocs/core/modules/modHoliday.class.php @@ -69,9 +69,6 @@ class modHoliday extends DolibarrModules // If file is in module/img directory under name object_pictovalue.png, use this->picto='pictovalue@module' $this->picto='holiday'; - // Defined if the directory /mymodule/inc/triggers/ contains triggers or not - $this->triggers = 0; - // Data directories to create when module is enabled. // Example: this->dirs = array("/mymodule/temp"); $this->dirs = array(); @@ -173,11 +170,11 @@ class modHoliday extends DolibarrModules $this->rights[$r][5] = ''; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2) $r++; - + // Menus //------- $this->menu = 1; // This module add menu entries. They are coded into menu manager. - + // Exports $r=1; diff --git a/htdocs/core/modules/modNotification.class.php b/htdocs/core/modules/modNotification.class.php index 72c90ca7a6d..298d877d4aa 100644 --- a/htdocs/core/modules/modNotification.class.php +++ b/htdocs/core/modules/modNotification.class.php @@ -45,6 +45,7 @@ class modNotification extends DolibarrModules // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module) $this->name = preg_replace('/^mod/i','',get_class($this)); $this->description = "EMail notifications (push) on business Dolibarr events"; + $this->descriptionlong = 'Module600Long'; $this->version = 'dolibarr'; // 'experimental' or 'dolibarr' or version $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name); $this->special = 1; diff --git a/htdocs/core/modules/modStripe.class.php b/htdocs/core/modules/modStripe.class.php index e7e20be5b83..61fe75d8f2e 100644 --- a/htdocs/core/modules/modStripe.class.php +++ b/htdocs/core/modules/modStripe.class.php @@ -62,7 +62,7 @@ class modStripe extends DolibarrModules // Name of image file used for this module. // If file is in theme/yourtheme/img directory under name object_pictovalue.png, use this->picto='pictovalue' // If file is in module/img directory, use this->picto=DOL_URL_ROOT.'/module/img/file.png' - $this->picto='stripe@stripe'; + $this->picto='stripe'; // Data directories to create when module is enabled. $this->dirs = array(); diff --git a/htdocs/core/modules/modVariants.class.php b/htdocs/core/modules/modVariants.class.php index 892d0903826..358a35b4435 100644 --- a/htdocs/core/modules/modVariants.class.php +++ b/htdocs/core/modules/modVariants.class.php @@ -59,7 +59,7 @@ class modVariants extends DolibarrModules // Module description, used if translation string 'ModuleXXXDesc' not found (where XXX is value of numeric property 'numero' of module) $this->description = 'Allows creating products variant based on new attributes'; // Possible values for version are: 'development', 'experimental', 'dolibarr' or version - $this->version = 'experimental'; + $this->version = 'dolibarr'; // Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase) $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name); // Where to store the module in setup page (0=common,1=interface,2=others,3=very specific) diff --git a/htdocs/core/modules/modWebsites.class.php b/htdocs/core/modules/modWebsites.class.php index 57abe371314..2c8e2e608a5 100644 --- a/htdocs/core/modules/modWebsites.class.php +++ b/htdocs/core/modules/modWebsites.class.php @@ -50,7 +50,7 @@ class modWebsites extends DolibarrModules // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module) $this->name = preg_replace('/^mod/i','',get_class($this)); $this->description = "Enable to build and serve public websites with CMS features"; - $this->version = 'experimental'; // 'experimental' or 'dolibarr' or version + $this->version = 'development'; // 'experimental' or 'dolibarr' or version // Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase) $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name); // Where to store the module in setup page (0=common,1=interface,2=others,3=very specific) @@ -71,7 +71,7 @@ class modWebsites extends DolibarrModules $this->depends = array('modFckeditor'); // List of modules id that must be enabled if this module is enabled $this->requiredby = array(); // List of modules id to disable if this one is disabled $this->conflictwith = array(); // List of modules id this module is in conflict with - $this->langfiles = array("websites"); + $this->langfiles = array("website"); // Constants //----------- @@ -122,5 +122,22 @@ class modWebsites extends DolibarrModules 'target'=>'', 'user'=>2); // 0=Menu for internal users, 1=external users, 2=both $r++; + + // Exports + $r=1; + + $this->export_code[$r]=$this->rights_class.'_'.$r; + $this->export_label[$r]='MyWebsitePages'; // Translation key (used only if key ExportDataset_xxx_z not found) + $this->export_icon[$r]='globe'; + $keyforclass = 'WebsitePage'; $keyforclassfile='/websites/class/websitepage.class.php'; $keyforelement='Website'; + include DOL_DOCUMENT_ROOT.'/core/commonfieldsinexport.inc.php'; + //$keyforselect='myobject'; $keyforelement='myobject'; $keyforaliasextra='extra'; + //include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php'; + //$this->export_dependencies_array[$r]=array('mysubobject'=>'ts.rowid', 't.myfield'=>array('t.myfield2','t.myfield3')); // To force to activate one or several fields if we select some fields that need same (like to select a unique key if we ask a field of a child to avoid the DISTINCT to discard them, or for computed field than need several other fields) + $this->export_sql_start[$r]='SELECT DISTINCT '; + $this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'website_page as t, '.MAIN_DB_PREFIX.'website as p'; + $this->export_sql_end[$r] .=' WHERE t.fk_website = p.rowid'; + $this->export_sql_end[$r] .=' AND p.entity IN ('.getEntity('website').')'; + $r++; } } diff --git a/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php b/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php index 6411e97c423..78898735f0c 100644 --- a/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php +++ b/htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php @@ -326,8 +326,6 @@ class pdf_standardlabel extends CommonStickerGenerator if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); - - // Output to http stream clearstatcache(); @@ -346,6 +344,8 @@ class pdf_standardlabel extends CommonStickerGenerator readfile($file); + $this->result = array('fullpath'=>$file); + return 1; } } diff --git a/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php b/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php index 4605b81de5e..faa62d45431 100644 --- a/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php +++ b/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php @@ -367,8 +367,6 @@ class pdf_tcpdflabel extends CommonStickerGenerator if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); - - // Output to http stream clearstatcache(); @@ -387,6 +385,8 @@ class pdf_tcpdflabel extends CommonStickerGenerator readfile($file); + $this->result = array('fullpath'=>$file); + return 1; } } diff --git a/htdocs/core/modules/product/doc/doc_generic_product_odt.modules.php b/htdocs/core/modules/product/doc/doc_generic_product_odt.modules.php index 811a99d5b2a..c7eed903e8e 100644 --- a/htdocs/core/modules/product/doc/doc_generic_product_odt.modules.php +++ b/htdocs/core/modules/product/doc/doc_generic_product_odt.modules.php @@ -483,6 +483,8 @@ class doc_generic_product_odt extends ModelePDFProduct $odfHandler=null; // Destroy object + $this->result = array('fullpath'=>$file); + return 1; // Success } else diff --git a/htdocs/core/modules/product/doc/pdf_standard.modules.php b/htdocs/core/modules/product/doc/pdf_standard.modules.php index 29df1127242..62f8624110f 100644 --- a/htdocs/core/modules/product/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/product/doc/pdf_standard.modules.php @@ -542,6 +542,8 @@ class pdf_standard extends ModelePDFProduct if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); + $this->result = array('fullpath'=>$file); + return 1; // Pas d'erreur } else diff --git a/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php b/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php index e050bf8e3eb..be4f5898f85 100644 --- a/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php +++ b/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php @@ -1066,6 +1066,8 @@ class doc_generic_project_odt extends ModelePDFProjects $odfHandler=null; // Destroy object + $this->result = array('fullpath'=>$file); + return 1; // Success } else diff --git a/htdocs/core/modules/project/doc/pdf_baleine.modules.php b/htdocs/core/modules/project/doc/pdf_baleine.modules.php index 334846ab69b..735dfdebf5e 100644 --- a/htdocs/core/modules/project/doc/pdf_baleine.modules.php +++ b/htdocs/core/modules/project/doc/pdf_baleine.modules.php @@ -329,6 +329,8 @@ class pdf_baleine extends ModelePDFProjects if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); + $ this->result = array('fullpath'=>$file); + return 1; // Pas d'erreur } else diff --git a/htdocs/core/modules/project/doc/pdf_beluga.modules.php b/htdocs/core/modules/project/doc/pdf_beluga.modules.php index 2b58cd59c09..8a288c547d5 100644 --- a/htdocs/core/modules/project/doc/pdf_beluga.modules.php +++ b/htdocs/core/modules/project/doc/pdf_beluga.modules.php @@ -33,16 +33,17 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; -if (! empty($conf->propal->enabled)) require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; -if (! empty($conf->facture->enabled)) require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; -if (! empty($conf->facture->enabled)) require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture-rec.class.php'; -if (! empty($conf->commande->enabled)) require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; -if (! empty($conf->fournisseur->enabled)) require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; -if (! empty($conf->fournisseur->enabled)) require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; -if (! empty($conf->contrat->enabled)) require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php'; -if (! empty($conf->ficheinter->enabled)) require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php'; -if (! empty($conf->deplacement->enabled)) require_once DOL_DOCUMENT_ROOT.'/compta/deplacement/class/deplacement.class.php'; -if (! empty($conf->agenda->enabled)) require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; +if (! empty($conf->propal->enabled)) require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; +if (! empty($conf->facture->enabled)) require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; +if (! empty($conf->facture->enabled)) require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture-rec.class.php'; +if (! empty($conf->commande->enabled)) require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; +if (! empty($conf->fournisseur->enabled)) require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; +if (! empty($conf->fournisseur->enabled)) require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; +if (! empty($conf->contrat->enabled)) require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php'; +if (! empty($conf->ficheinter->enabled)) require_once DOL_DOCUMENT_ROOT.'/fichinter/class/fichinter.class.php'; +if (! empty($conf->deplacement->enabled)) require_once DOL_DOCUMENT_ROOT.'/compta/deplacement/class/deplacement.class.php'; +if (! empty($conf->expensereport->enabled)) require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php'; +if (! empty($conf->agenda->enabled)) require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; @@ -223,7 +224,7 @@ class pdf_beluga extends ModelePDFProjects $iniY = $tab_top + 7; $curY = $tab_top + 7; $nexY = $tab_top + 7; - + $listofreferent=array( 'propal'=>array( 'name'=>"Proposals", @@ -311,7 +312,7 @@ class pdf_beluga extends ModelePDFProjects 'margin'=>'minus', 'disableamount'=>1, 'test'=>$conf->expensereport->enabled && $user->rights->expensereport->lire, - 'lang'=>'trip'), + 'lang'=>'trip'), 'agenda'=>array( 'name'=>"Agenda", 'title'=>"ListActionsAssociatedProject", @@ -322,8 +323,8 @@ class pdf_beluga extends ModelePDFProjects 'test'=>$conf->agenda->enabled && $user->rights->agenda->allactions->read, 'lang'=>'agenda') ); - - + + foreach ($listofreferent as $key => $value) { $title=$value['title']; @@ -333,13 +334,13 @@ class pdf_beluga extends ModelePDFProjects $qualified=$value['test']; $langstoload=$value['lang']; $langs->load($langstoload); - + if ($qualified) { //var_dump("$key, $tablename, $datefieldname, $dates, $datee"); $elementarray = $object->get_element_list($key, $tablename, $datefieldname, $dates, $datee); //var_dump($elementarray); - + $num = count($elementarray); if ($num >= 0) { @@ -347,7 +348,7 @@ class pdf_beluga extends ModelePDFProjects $curY = $nexY; $pdf->SetXY($this->posxref, $curY); $pdf->MultiCell($this->posxstatut - $this->posxref, 3, $outputlangs->transnoentities($title), 0, 'L'); - + $selectList = $formproject->select_element($tablename, $project->thirdparty->id); $nexY = $pdf->GetY() + 1; $curY = $nexY; @@ -356,7 +357,9 @@ class pdf_beluga extends ModelePDFProjects $pdf->SetXY($this->posxdate, $curY); $pdf->MultiCell($this->posxsociety - $this->posxdate, 3, $outputlangs->transnoentities("Date"), 1, 'C'); $pdf->SetXY($this->posxsociety, $curY); - $pdf->MultiCell($this->posxamountht - $this->posxsociety, 3, $outputlangs->transnoentities("ThirdParty"), 1, 'L'); + $titlethirdparty=$outputlangs->transnoentities("ThirdParty"); + if ($classname == 'ExpenseReport') $titlethirdparty=$langs->trans("User"); + $pdf->MultiCell($this->posxamountht - $this->posxsociety, 3, $titlethirdparty, 1, 'L'); if (empty($value['disableamount'])) { $pdf->SetXY($this->posxamountht, $curY); $pdf->MultiCell($this->posxamountttc - $this->posxamountht, 3, $outputlangs->transnoentities("AmountHTShort"), 1, 'R'); @@ -368,30 +371,39 @@ class pdf_beluga extends ModelePDFProjects } $pdf->SetXY($this->posxstatut, $curY); $pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxstatut, 3, $outputlangs->transnoentities("Statut"), 1, 'R'); - + if (is_array($elementarray) && count($elementarray) > 0) { $nexY = $pdf->GetY(); $curY = $nexY; - + $total_ht = 0; $total_ttc = 0; $num = count($elementarray); for ($i = 0; $i < $num; $i ++) { + $idofelement=$elementarray[$i]; + if ($classname == 'ExpenseReport') + { + // We get id of expense report + $expensereportline=new ExpenseReportLine($this->db); + $expensereportline->fetch($idofelement); + $idofelement = $expensereportline->fk_expensereport; + } + $element = new $classname($this->db); - $element->fetch($elementarray[$i]); + $element->fetch($idofelement); $element->fetch_thirdparty(); // print $classname; - + $qualifiedfortotal = true; if ($key == 'invoice') { if ($element->close_code == 'replaced') $qualifiedfortotal = false; // Replacement invoice } - + $pdf->SetXY($this->posxref, $curY); $pdf->MultiCell($this->posxdate - $this->posxref, 3, $element->ref, 1, 'L'); - + // Date if ($tablename == 'commande_fournisseur' || $tablename == 'supplier_order') $date = $element->date_commande; @@ -404,15 +416,23 @@ class pdf_beluga extends ModelePDFProjects if (empty($date)) $date = $element->datev; // Fiche inter } - + $pdf->SetXY($this->posxdate, $curY); $pdf->MultiCell($this->posxsociety - $this->posxdate, 3, dol_print_date($date, 'day'), 1, 'C'); - + $pdf->SetXY($this->posxsociety, $curY); if (is_object($element->thirdparty)) + { $pdf->MultiCell($this->posxamountht - $this->posxsociety, 3, $element->thirdparty->name, 1, 'L'); - - // Amount without tax + } + elseif ($classname == 'ExpenseReport') + { + $fuser=new User($this->db); + $fuser->fetch($element->fk_user_author); + $pdf->MultiCell($this->posxamountht - $this->posxsociety, 3, $fuser->getFullName($outputlangs), 1, 'L'); + } + + // Amount without tax if (empty($value['disableamount'])) { $pdf->SetXY($this->posxamountht, $curY); $pdf->MultiCell($this->posxamountttc - $this->posxamountht, 3, (isset($element->total_ht) ? price($element->total_ht) : ' '), 1, 'R'); @@ -422,7 +442,7 @@ class pdf_beluga extends ModelePDFProjects $pdf->SetXY($this->posxamountht, $curY); $pdf->MultiCell($this->posxstatut - $this->posxamountht, 3, "", 1, 'R'); } - + // Status if ($element instanceof CommonInvoice) { // This applies for Facture and FactureFournisseur @@ -432,7 +452,7 @@ class pdf_beluga extends ModelePDFProjects } $pdf->SetXY($this->posxstatut, $curY); $pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxstatut, 3, $outputstatut, 1, 'R', false, 1, '', '', true, 0, true); - + if ($qualifiedfortotal) { $total_ht = $total_ht + $element->total_ht; $total_ttc = $total_ttc + $element->total_ttc; @@ -440,7 +460,7 @@ class pdf_beluga extends ModelePDFProjects $nexY = $pdf->GetY(); $curY = $nexY; } - + if (empty($value['disableamount'])) { $curY = $nexY; $pdf->SetXY($this->posxref, $curY); @@ -483,6 +503,8 @@ class pdf_beluga extends ModelePDFProjects if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); + $this->result = array('fullpath'=>$file); + return 1; // Pas d'erreur } else diff --git a/htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php b/htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php index 187018e0031..17e08dd4fd3 100644 --- a/htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php +++ b/htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php @@ -829,6 +829,8 @@ class doc_generic_task_odt extends ModelePDFTask $odfHandler=null; // Destroy object + $this->result = array('fullpath'=>$file); + return 1; // Success } else diff --git a/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php b/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php index 0339f2ea255..372edb5e5de 100644 --- a/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php +++ b/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php @@ -167,7 +167,7 @@ class doc_generic_proposal_odt extends ModelePDFPropales $texte.=$file['name'].'
    '; } $texte.='
    '; - + if ($conf->global->MAIN_PROPAL_CHOOSE_ODT_DOCUMENT > 0) { // Model for creation @@ -252,7 +252,7 @@ class doc_generic_proposal_odt extends ModelePDFPropales if (! is_object($object)) { $id = $object; - $object = new Propale($this->db); + $object = new Propal($this->db); $result=$object->fetch($id); if ($result < 0) { @@ -494,6 +494,8 @@ class doc_generic_proposal_odt extends ModelePDFPropales $odfHandler=null; // Destroy object + $this->result = array('fullpath'=>$file); + return 1; // Success } else diff --git a/htdocs/core/modules/propale/doc/pdf_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php index 3eb284ec7fc..602375c62ed 100644 --- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php @@ -273,7 +273,7 @@ class pdf_azur extends ModelePDFPropales $pdf=pdf_getInstance($this->format); $default_font_size = pdf_getPDFFontSize($outputlangs); // Must be after pdf_getInstance $pdf->SetAutoPageBreak(1,0); - + if (class_exists('TCPDF')) { $pdf->setPrintHeader(false); @@ -292,10 +292,10 @@ class pdf_azur extends ModelePDFPropales $pdf->SetDrawColor(128,128,128); $pdf->SetTitle($outputlangs->convToOutputCharset($object->ref)); - $pdf->SetSubject($outputlangs->transnoentities("CommercialProposal")); + $pdf->SetSubject($outputlangs->transnoentities("PdfCommercialProposalTitle")); $pdf->SetCreator("Dolibarr ".DOL_VERSION); $pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs))); - $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("CommercialProposal")." ".$outputlangs->convToOutputCharset($object->thirdparty->name)); + $pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("PdfCommercialProposalTitle")." ".$outputlangs->convToOutputCharset($object->thirdparty->name)); if (! empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) $pdf->SetCompression(false); $pdf->SetMargins($this->marge_gauche, $this->marge_haute, $this->marge_droite); // Left, Top, Right @@ -322,19 +322,19 @@ class pdf_azur extends ModelePDFPropales $pdf->AddPage(); if (! empty($tplidx)) $pdf->useTemplate($tplidx); $pagenb++; - + $heightforinfotot = 40; // Height reserved to output the info and total part $heightforsignature = empty($conf->global->PROPAL_DISABLE_SIGNATURE)?(pdfGetHeightForHtmlContent($pdf, $outputlangs->transnoentities("ProposalCustomerSignature"))+10):0; $heightforfreetext= (isset($conf->global->MAIN_PDF_FREETEXT_HEIGHT)?$conf->global->MAIN_PDF_FREETEXT_HEIGHT:5); // Height reserved to output the free text on last page $heightforfooter = $this->marge_basse + 8; // Height reserved to output the footer (value include bottom margin) - //print $heightforinfotot + $heightforsignature + $heightforfreetext + $heightforfooter;exit; - + //print $heightforinfotot + $heightforsignature + $heightforfreetext + $heightforfooter;exit; + $this->_pagehead($pdf, $object, 1, $outputlangs); $pdf->SetFont('','', $default_font_size - 1); $pdf->MultiCell(0, 3, ''); // Set interline to 3 $pdf->SetTextColor(0,0,0); - + $tab_top = 90; $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)?42:10); $tab_height = 130; @@ -383,7 +383,7 @@ class pdf_azur extends ModelePDFPropales $notetoshow.='Affaire suivi par '.$tmpuser->getFullName($langs); if ($tmpuser->email) $notetoshow.=', Mail: '.$tmpuser->email; if ($tmpuser->office_phone) $notetoshow.=', Tel: '.$tmpuser->office_phone; - } + } if ($notetoshow) { $tab_top = 88 + $height_incoterms; @@ -451,8 +451,6 @@ class pdf_azur extends ModelePDFPropales // Description of product line $curX = $this->posxdesc-1; - $showpricebeforepagebreak=1; - $pdf->startTransaction(); pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxpicture-$curX,3,$curX,$curY,$hideref,$hidedesc); $pageposafter=$pdf->getPage(); @@ -554,14 +552,14 @@ class pdf_azur extends ModelePDFPropales // Collecte des totaux par valeur de tva dans $this->tva["taux"]=total_tva if ($conf->multicurrency->enabled && $object->multicurrency_tx != 1) $tvaligne=$object->lines[$i]->multicurrency_total_tva; else $tvaligne=$object->lines[$i]->total_tva; - + $localtax1ligne=$object->lines[$i]->total_localtax1; $localtax2ligne=$object->lines[$i]->total_localtax2; $localtax1_rate=$object->lines[$i]->localtax1_tx; $localtax2_rate=$object->lines[$i]->localtax2_tx; $localtax1_type=$object->lines[$i]->localtax1_type; - $localtax2_type=$object->lines[$i]->localtax2_type; - + $localtax2_type=$object->lines[$i]->localtax2_type; + if ($object->remise_percent) $tvaligne-=($tvaligne*$object->remise_percent)/100; if ($object->remise_percent) $localtax1ligne-=($localtax1ligne*$object->remise_percent)/100; if ($object->remise_percent) $localtax2ligne-=($localtax2ligne*$object->remise_percent)/100; @@ -669,7 +667,7 @@ class pdf_azur extends ModelePDFPropales { $posy=$this->_signature_area($pdf, $object, $posy, $outputlangs); } - + // Pied de page $this->_pagefoot($pdf,$object,$outputlangs); if (method_exists($pdf,'AliasNbPages')) $pdf->AliasNbPages(); @@ -761,6 +759,8 @@ class pdf_azur extends ModelePDFPropales if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); + $this->result = array('fullpath'=>$file); + return 1; // Pas d'erreur } else @@ -1428,7 +1428,7 @@ class pdf_azur extends ModelePDFPropales $pdf->SetFont('','B',$default_font_size + 3); $pdf->SetXY($posx,$posy); $pdf->SetTextColor(0,0,60); - $title=$outputlangs->transnoentities("CommercialProposal"); + $title=$outputlangs->transnoentities("PdfCommercialProposalTitle"); $pdf->MultiCell(100, 4, $title, '', 'R'); $pdf->SetFont('','B',$default_font_size); @@ -1481,7 +1481,7 @@ class pdf_azur extends ModelePDFPropales $pdf->MultiCell(100, 3, $langs->trans("SalesRepresentative")." : ".$usertmp->getFullName($langs), '', 'R'); } } - + $posy+=2; // Show list of linked objects diff --git a/htdocs/core/modules/rapport/pdf_paiement.class.php b/htdocs/core/modules/rapport/pdf_paiement.class.php index 11ee8a32d7d..da1223526db 100644 --- a/htdocs/core/modules/rapport/pdf_paiement.class.php +++ b/htdocs/core/modules/rapport/pdf_paiement.class.php @@ -275,7 +275,9 @@ class pdf_paiement if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); - + + $this->result = array('fullpath'=>$file); + return 1; } diff --git a/htdocs/core/modules/rapport/pdf_paiement_fourn.class.php b/htdocs/core/modules/rapport/pdf_paiement_fourn.class.php index f20e912e1ed..108b3bd6ce6 100644 --- a/htdocs/core/modules/rapport/pdf_paiement_fourn.class.php +++ b/htdocs/core/modules/rapport/pdf_paiement_fourn.class.php @@ -274,6 +274,8 @@ class pdf_paiement_fourn if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); + $this->result = array('fullpath'=>$file); + return 1; } diff --git a/htdocs/core/modules/societe/doc/doc_generic_odt.modules.php b/htdocs/core/modules/societe/doc/doc_generic_odt.modules.php index edee43b274c..539d5df8c2a 100644 --- a/htdocs/core/modules/societe/doc/doc_generic_odt.modules.php +++ b/htdocs/core/modules/societe/doc/doc_generic_odt.modules.php @@ -459,6 +459,8 @@ class doc_generic_odt extends ModeleThirdPartyDoc $odfHandler=null; // Destroy object + $this->result = array('fullpath'=>$file); + return 1; // Success } else diff --git a/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php b/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php index 1e7e6f4bcad..8fd90eb3e31 100644 --- a/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php +++ b/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php @@ -539,6 +539,8 @@ class pdf_canelle extends ModelePDFSuppliersInvoices if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); + $this->result = array('fullpath'=>$file); + return 1; // Pas d'erreur } else diff --git a/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php b/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php index c882ed89800..8b8a9e3d832 100644 --- a/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php +++ b/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php @@ -110,17 +110,17 @@ class pdf_muscadet extends ModelePDFSuppliersOrders if ($conf->global->PRODUCT_USE_UNITS) { - $this->posxtva=99; + $this->posxtva=95; $this->posxup=114; - $this->posxqty=130; + $this->posxqty=132; $this->posxunit=147; } else { - $this->posxtva=112; + $this->posxtva=110; $this->posxup=126; $this->posxqty=145; } - //if (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) $this->posxtva=$this->posxup; + if (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) $this->posxup = $this->posxtva; // posxtva is picture position reference $this->posxpicture=$this->posxtva - (empty($conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH)?20:$conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH); // width of images if ($this->page_largeur < 210) // To work with US executive format { @@ -167,6 +167,44 @@ class pdf_muscadet extends ModelePDFSuppliersOrders $outputlangs->load("products"); $outputlangs->load("orders"); + $nblignes = count($object->lines); + + // Loop on each lines to detect if there is at least one image to show + $realpatharray=array(); + if (! empty($conf->global->MAIN_GENERATE_SUPPLIER_ORDER_WITH_PICTURE)) + { + for ($i = 0 ; $i < $nblignes ; $i++) + { + if (empty($object->lines[$i]->fk_product)) continue; + + $objphoto = new Product($this->db); + $objphoto->fetch($object->lines[$i]->fk_product); + + if (! empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) + { + $pdir = get_exdir($object->lines[$i]->fk_product,2,0,0,$objphoto,'product') . $object->lines[$i]->fk_product ."/photos/"; + $dir = $conf->product->dir_output.'/'.$pdir; + } + else + { + $pdir = get_exdir(0,2,0,0,$objphoto,'product') . dol_sanitizeFileName($objphoto->ref).'/'; + $dir = $conf->product->dir_output.'/'.$pdir; + } + + $realpath=''; + foreach ($objphoto->liste_photos($dir,1) as $key => $obj) + { + $filename=$obj['photo']; + //if ($obj['photo_vignette']) $filename='thumbs/'.$obj['photo_vignette']; + $realpath = $dir.$filename; + break; + } + + if ($realpath) $realpatharray[$i]=$realpath; + } + } + if (count($realpatharray) == 0) $this->posxpicture=$this->posxtva; + if ($conf->fournisseur->dir_output.'/commande') { $object->fetch_thirdparty(); @@ -338,16 +376,52 @@ class pdf_muscadet extends ModelePDFSuppliersOrders $pdf->SetFont('','', $default_font_size - 1); // Into loop to work with multipage $pdf->SetTextColor(0,0,0); + // Define size of image if we need it + $imglinesize=array(); + if (! empty($realpatharray[$i])) $imglinesize=pdf_getSizeForImage($realpatharray[$i]); + $pdf->setTopMargin($tab_top_newpage); $pdf->setPageOrientation('', 1, $heightforfooter+$heightforfreetext+$heightforinfotot); // The only function to edit the bottom margin of current page to set it. $pageposbefore=$pdf->getPage(); + $showpricebeforepagebreak=1; + $posYAfterImage=0; + $posYAfterDescription=0; + + // We start with Photo of product line + if (!empty($imglinesize['width']) && !empty($imglinesize['height']) && ($curY + $imglinesize['height']) > ($this->page_hauteur-($heightforfooter+$heightforfreetext+$heightforinfotot))) // If photo too high, we moved completely on new page + { + $pdf->AddPage('','',true); + if (! empty($tplidx)) $pdf->useTemplate($tplidx); + if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + $pdf->setPage($pageposbefore+1); + + $curY = $tab_top_newpage; + $showpricebeforepagebreak=0; + } + + if (!empty($imglinesize['width']) && !empty($imglinesize['height'])) + { + $curX = $this->posxpicture-1; + $pdf->Image($realpatharray[$i], $curX + (($this->posxtva-$this->posxpicture-$imglinesize['width'])/2), $curY, $imglinesize['width'], $imglinesize['height'], '', '', '', 2, 300); // Use 300 dpi + // $pdf->Image does not increase value return by getY, so we save it manually + $posYAfterImage=$curY+$imglinesize['height']; + } // Description of product line $curX = $this->posxdesc-1; $showpricebeforepagebreak=1; $pdf->startTransaction(); - pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxtva-$curX,3,$curX,$curY,$hideref,$hidedesc,1); + if ($posYAfterImage > 0) + { + $descWidth = $this->posxpicture-$curX; + } + else + { + $descWidth = $this->posxtva-$curX; + } + pdf_writelinedesc($pdf,$object,$i,$outputlangs,$descWidth,3,$curX,$curY,$hideref,$hidedesc,1); + $pageposafter=$pdf->getPage(); if ($pageposafter > $pageposbefore) // There is a pagebreak { @@ -355,7 +429,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders $pageposafter=$pageposbefore; //print $pageposafter.'-'.$pageposbefore;exit; $pdf->setPageOrientation('', 1, $heightforfooter); // The only function to edit the bottom margin of current page to set it. - pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxtva-$curX,4,$curX,$curY,$hideref,$hidedesc,1); + pdf_writelinedesc($pdf,$object,$i,$outputlangs,$descWidth,3,$curX,$curY,$hideref,$hidedesc,1); $posyafter=$pdf->GetY(); if ($posyafter > ($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforinfotot))) // There is no space left for total+free text { @@ -472,6 +546,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders if (! isset($this->tva[$vatrate])) $this->tva[$vatrate]=0; $this->tva[$vatrate] += $tvaligne; + if ($posYAfterImage > $posYAfterDescription) $nexY=$posYAfterImage; // Add line if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1)) @@ -563,6 +638,8 @@ class pdf_muscadet extends ModelePDFSuppliersOrders if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); + $this->result = array('fullpath'=>$file); + return 1; // Pas d'erreur } else @@ -924,7 +1001,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) { - $pdf->line($this->posxtva-1, $tab_top, $this->posxtva-1, $tab_top + $tab_height); + $pdf->line($this->posxtva, $tab_top, $this->posxtva, $tab_top + $tab_height); if (empty($hidetop)) { $pdf->SetXY($this->posxtva-3, $tab_top+1); @@ -932,7 +1009,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders } } - $pdf->line($this->posxup-1, $tab_top, $this->posxup-1, $tab_top + $tab_height); + $pdf->line($this->posxup, $tab_top, $this->posxup, $tab_top + $tab_height); if (empty($hidetop)) { $pdf->SetXY($this->posxup-1, $tab_top+1); diff --git a/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php b/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php index 6fbfb4b1bf4..2b657dbd962 100644 --- a/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php @@ -442,6 +442,8 @@ class pdf_standard extends ModelePDFSuppliersPayments if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); + $this->result = array('fullpath'=>$file); + return 1; // Pas d'erreur } else diff --git a/htdocs/core/modules/supplier_proposal/doc/doc_generic_supplier_proposal_odt.modules.php b/htdocs/core/modules/supplier_proposal/doc/doc_generic_supplier_proposal_odt.modules.php index 212685ba519..4f445501669 100644 --- a/htdocs/core/modules/supplier_proposal/doc/doc_generic_supplier_proposal_odt.modules.php +++ b/htdocs/core/modules/supplier_proposal/doc/doc_generic_supplier_proposal_odt.modules.php @@ -486,6 +486,8 @@ class doc_generic_supplier_proposal_odt extends ModelePDFSupplierProposal $odfHandler=null; // Destroy object + $this->result = array('fullpath'=>$file); + return 1; // Success } else diff --git a/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php b/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php index a7e8952c604..5f3f9550179 100644 --- a/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php +++ b/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php @@ -108,7 +108,7 @@ class pdf_aurore extends ModelePDFSupplierProposal $this->posxqty=145; $this->posxdiscount=162; $this->postotalht=174; - if (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT) || ! empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT_COLUMN)) $this->posxtva=$this->posxup; + if (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT) || ! empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT_COLUMN)) $this->posxup=$this->posxtva; $this->posxpicture=$this->posxtva - (empty($conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH)?20:$conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH); // width of images if ($this->page_largeur < 210) // To work with US executive format { @@ -357,7 +357,7 @@ class pdf_aurore extends ModelePDFSupplierProposal $posYAfterDescription=0; // We start with Photo of product line - if (isset($imglinesize['width']) && isset($imglinesize['height']) && ($curY + $imglinesize['height']) > ($this->page_hauteur-($heightforfooter+$heightforfreetext+$heightforinfotot))) // If photo too high, we moved completely on new page + if (!empty($imglinesize['width']) && !empty($imglinesize['height']) && ($curY + $imglinesize['height']) > ($this->page_hauteur-($heightforfooter+$heightforfreetext+$heightforinfotot))) // If photo too high, we moved completely on new page { $pdf->AddPage('','',true); if (! empty($tplidx)) $pdf->useTemplate($tplidx); @@ -368,7 +368,7 @@ class pdf_aurore extends ModelePDFSupplierProposal $showpricebeforepagebreak=0; } - if (isset($imglinesize['width']) && isset($imglinesize['height'])) + if (!empty($imglinesize['width']) && !empty($imglinesize['height'])) { $curX = $this->posxpicture-1; $pdf->Image($realpatharray[$i], $curX + (($this->posxtva-$this->posxpicture-$imglinesize['width'])/2), $curY, $imglinesize['width'], $imglinesize['height'], '', '', '', 2, 300); // Use 300 dpi @@ -380,7 +380,15 @@ class pdf_aurore extends ModelePDFSupplierProposal $curX = $this->posxdesc-1; $pdf->startTransaction(); - pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxpicture-$curX,3,$curX,$curY,$hideref,$hidedesc); + if ($posYAfterImage > 0) + { + $descWidth = $this->posxpicture-$curX; + } + else + { + $descWidth = $this->posxtva-$curX; + } + pdf_writelinedesc($pdf,$object,$i,$outputlangs,$descWidth,3,$curX,$curY,$hideref,$hidedesc,1); $pageposafter=$pdf->getPage(); if ($pageposafter > $pageposbefore) // There is a pagebreak @@ -389,7 +397,7 @@ class pdf_aurore extends ModelePDFSupplierProposal $pageposafter=$pageposbefore; //print $pageposafter.'-'.$pageposbefore;exit; $pdf->setPageOrientation('', 1, $heightforfooter); // The only function to edit the bottom margin of current page to set it. - pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxpicture-$curX,3,$curX,$curY,$hideref,$hidedesc); + pdf_writelinedesc($pdf,$object,$i,$outputlangs,$descWidth,3,$curX,$curY,$hideref,$hidedesc); $pageposafter=$pdf->getPage(); $posyafter=$pdf->GetY(); @@ -597,6 +605,8 @@ class pdf_aurore extends ModelePDFSupplierProposal if (! empty($conf->global->MAIN_UMASK)) @chmod($file, octdec($conf->global->MAIN_UMASK)); + $this->result = array('fullpath'=>$file); + return 1; // Pas d'erreur } else @@ -1131,20 +1141,10 @@ class pdf_aurore extends ModelePDFSupplierProposal $pdf->MultiCell(108,2, $outputlangs->transnoentities("Designation"),'','L'); } - if (! empty($conf->global->MAIN_GENERATE_PROPOSALS_WITH_PICTURE)) - { - $pdf->line($this->posxpicture-1, $tab_top, $this->posxpicture-1, $tab_top + $tab_height); - if (empty($hidetop)) - { - //$pdf->SetXY($this->posxpicture-1, $tab_top+1); - //$pdf->MultiCell($this->posxtva-$this->posxpicture-1,2, $outputlangs->transnoentities("Photo"),'','C'); - } - } - if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) { - //$pdf->line($this->posxtva-1, $tab_top, $this->posxtva-1, $tab_top + $tab_height); - $pdf->line($this->posxtva-2, $tab_top, $this->posxtva-2, $tab_top + $tab_height); + $pdf->line($this->posxtva, $tab_top, $this->posxtva, $tab_top + $tab_height); + //$pdf->line($this->posxtva-2, $tab_top, $this->posxtva-2, $tab_top + $tab_height); if (empty($hidetop)) { $pdf->SetXY($this->posxtva-5, $tab_top+1); diff --git a/htdocs/core/modules/user/doc/doc_generic_user_odt.modules.php b/htdocs/core/modules/user/doc/doc_generic_user_odt.modules.php index b7079dde30e..38d9ce62f50 100644 --- a/htdocs/core/modules/user/doc/doc_generic_user_odt.modules.php +++ b/htdocs/core/modules/user/doc/doc_generic_user_odt.modules.php @@ -408,6 +408,8 @@ class doc_generic_user_odt extends ModelePDFUser $odfHandler=null; // Destroy object + $this->result = array('fullpath'=>$file); + return 1; // Success } else diff --git a/htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php b/htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php index 35367052796..453bde8515f 100644 --- a/htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php +++ b/htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php @@ -485,6 +485,8 @@ class doc_generic_usergroup_odt extends ModelePDFUserGroup $odfHandler=null; // Destroy object + $this->result = array('fullpath'=>$file); + return 1; // Success } else diff --git a/htdocs/core/tpl/admin_extrafields_add.tpl.php b/htdocs/core/tpl/admin_extrafields_add.tpl.php index 62821372e56..ce63a3a0902 100644 --- a/htdocs/core/tpl/admin_extrafields_add.tpl.php +++ b/htdocs/core/tpl/admin_extrafields_add.tpl.php @@ -173,6 +173,9 @@ global->MAIN_CAN_HIDE_EXTRAFIELDS)) { ?>
    trans("Hidden"); ?>>
    trans("AllEntities"); ?>>
    trans("ByDefaultInList"); ?> diff --git a/htdocs/core/tpl/admin_extrafields_edit.tpl.php b/htdocs/core/tpl/admin_extrafields_edit.tpl.php index 6f049c506a3..5a9a5b43d93 100644 --- a/htdocs/core/tpl/admin_extrafields_edit.tpl.php +++ b/htdocs/core/tpl/admin_extrafields_edit.tpl.php @@ -143,6 +143,9 @@ $list=$extrafields->attribute_list[$attrname]; if (! empty($conf->global->MAIN_CAN_HIDE_EXTRAFIELDS)) { $ishidden=$extrafields->attribute_hidden[$attrname]; } +if ($conf->multicompany->enabled) { + $entitycurrentorall=$extrafields->attribute_entityid[$attrname]; +} if((($type == 'select') || ($type == 'checkbox') || ($type == 'radio')) && is_array($param)) { @@ -232,6 +235,9 @@ else global->MAIN_CAN_HIDE_EXTRAFIELDS)) { ?>
    trans("Hidden"); ?>>
    trans("AllEntities"); ?>>
    trans("ByDefaultInList"); ?> diff --git a/htdocs/core/tpl/admin_extrafields_view.tpl.php b/htdocs/core/tpl/admin_extrafields_view.tpl.php index a6d7e735735..f989ce448b5 100644 --- a/htdocs/core/tpl/admin_extrafields_view.tpl.php +++ b/htdocs/core/tpl/admin_extrafields_view.tpl.php @@ -49,6 +49,9 @@ print ''.$langs->trans("ComputedFormula").''.$langs->trans("Required").''.$langs->trans("AlwaysEditable").''.$langs->trans("Hidden").''.$langs->trans("Entities").' 
    '.yn($extrafields->attribute_required[$key])."'.yn($extrafields->attribute_alwayseditable[$key])."'.yn($extrafields->attribute_hidden[$key])."'.($extrafields->attribute_entityid[$key]==0?$langs->trans("All"):$extrafields->attribute_entitylabel[$key]).''.img_edit().''; print "  ".img_delete()."
    tpl['label']; ?>tpl['description']; ?>tpl['vat_rate']; ?>tpl['price']; ?>tpl['multicurrency_price']; ?>tpl['qty']; ?>'.$langs->trans($this->tpl['unit']).'tpl['remise_percent']; ?>
    '.$this->tpl['label'].''.$this->tpl['description'].''.$this->tpl['vat_rate'].''.$this->tpl['price'].''.$this->tpl['multicurrency_price'].''.$this->tpl['qty'].''.$langs->trans($this->tpl['unit']).''.$this->tpl['remise_percent'].'
    '.$langs->trans("KeyForCronAccess").''; -if (empty($conf->global->CRON_DISABLE_KEY_CHANGE)) +if (empty($conf->global->CRON_DISABLE_KEY_CHANGE)) { print ''; if (! empty($conf->use_javascript_ajax)) print ' '.img_picto($langs->trans('Generate'), 'refresh', 'id="generate_token" class="linkobject"'); } -else +else { - print (! empty($conf->global->CRON_KEY)?$conf->global->CRON_KEY:''); - print ''; + print (! empty($conf->global->CRON_KEY)?$conf->global->CRON_KEY:''); + print ''; } print ' 
    '; print $langs->trans('CronArgs').""; - print "params."\" /> "; + print "params."\" /> "; print ""; print $form->textwithpicto('',$langs->trans("CronArgsHelp"),1,'help'); @@ -408,10 +408,10 @@ if (($action=="create") || ($action=="edit")) print '
    '; print $langs->trans('CronEvery').""; - print "'; + for ($i=1; $i<=60; $i++) { - if (! empty($object->unitfrequency) && ($object->frequency/$object->unitfrequency) == $i) + if ($object->frequency == $i) { print ""; } diff --git a/htdocs/cron/class/cronjob.class.php b/htdocs/cron/class/cronjob.class.php index f9b4ac67f03..00f8d5d6ae0 100644 --- a/htdocs/cron/class/cronjob.class.php +++ b/htdocs/cron/class/cronjob.class.php @@ -1,6 +1,6 @@ - * Copyright (C) 2013 Florian Henry + * Copyright (C) 2013 Florian Henry * * This 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,7 +61,7 @@ class Cronjob extends CommonObject public $fk_user_mod; public $nbrun; public $libname; - + public $test; // A test condition to know if job is visible/qualified /** * Constructor @@ -194,12 +194,12 @@ class Cronjob extends CommonObject $sql.= " ".(! isset($this->md5params)?'NULL':"'".$this->db->escape($this->md5params)."'").","; $sql.= " ".(! isset($this->module_name)?'NULL':"'".$this->db->escape($this->module_name)."'").","; $sql.= " ".(! isset($this->priority)?'0':$this->priority).","; - $sql.= " ".(! isset($this->datelastrun) || dol_strlen($this->datelastrun)==0?'NULL':$this->db->idate($this->datelastrun)).","; - $sql.= " ".(! isset($this->datenextrun) || dol_strlen($this->datenextrun)==0?'NULL':$this->db->idate($this->datenextrun)).","; - $sql.= " ".(! isset($this->dateend) || dol_strlen($this->dateend)==0?'NULL':$this->db->idate($this->dateend)).","; - $sql.= " ".(! isset($this->datestart) || dol_strlen($this->datestart)==0?'NULL':$this->db->idate($this->datestart)).","; + $sql.= " ".(! isset($this->datelastrun) || dol_strlen($this->datelastrun)==0?'NULL':"'".$this->db->idate($this->datelastrun)."'").","; + $sql.= " ".(! isset($this->datenextrun) || dol_strlen($this->datenextrun)==0?'NULL':"'".$this->db->idate($this->datenextrun)."'").","; + $sql.= " ".(! isset($this->dateend) || dol_strlen($this->dateend)==0?'NULL':"'".$this->db->idate($this->dateend)."'").","; + $sql.= " ".(! isset($this->datestart) || dol_strlen($this->datestart)==0?'NULL':"'".$this->db->idate($this->datestart)."'").","; $sql.= " ".(! isset($this->lastresult)?'NULL':"'".$this->db->escape($this->lastresult)."'").","; - $sql.= " ".(! isset($this->datelastresult) || dol_strlen($this->datelastresult)==0?'NULL':$this->db->idate($this->datelastresult)).","; + $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->unitfrequency."'").","; $sql.= " ".(! isset($this->frequency)?'0':$this->frequency).","; @@ -439,7 +439,6 @@ class Cronjob extends CommonObject { while ($i < $num) { - $line = new Cronjobline(); $obj = $this->db->fetch_object($resql); @@ -480,7 +479,6 @@ class Cronjob extends CommonObject $this->lines[]=$line; $i++; - } } $this->db->free($resql); @@ -924,16 +922,16 @@ class Cronjob extends CommonObject // load classes if (! $error) { - $ret=dol_include_once($this->classesname); - if ($ret===false || (! class_exists($this->objectname))) - { - $this->error=$langs->trans('CronCannotLoadClass',$this->classesname,$this->objectname); - dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR); - $this->lastoutput = $this->error; - $this->lastresult = -1; - $retval = $this->lastresult; - $error++; - } + $ret=dol_include_once($this->classesname); + if ($ret===false || (! class_exists($this->objectname))) + { + $this->error=$langs->trans('CronCannotLoadClass',$this->classesname,$this->objectname); + dol_syslog(get_class($this)."::run_jobs ".$this->error, LOG_ERR); + $this->lastoutput = $this->error; + $this->lastresult = -1; + $retval = $this->lastresult; + $error++; + } } // test if method exists @@ -973,6 +971,7 @@ class Cronjob extends CommonObject $object = new $this->objectname($this->db); $params_arr = array_map('trim', explode(",",$this->params)); + if (!is_array($params_arr)) { $result = call_user_func(array($object, $this->methodename), $this->params); @@ -982,7 +981,7 @@ class Cronjob extends CommonObject $result = call_user_func_array(array($object, $this->methodename), $params_arr); } - if ($result===false || $result != 0) + if ($result === false || (! is_bool($result) && $result != 0)) { $langs->load("errors"); dol_syslog(get_class($this)."::run_jobs END result=".$result." error=".$object->error, LOG_ERR); @@ -1031,7 +1030,7 @@ class Cronjob extends CommonObject $result = call_user_func_array($this->methodename, $params_arr); } - if ($result === false || $result != 0) + if ($result === false || (! is_bool($result) && $result != 0)) { $langs->load("errors"); dol_syslog(get_class($this)."::run_jobs result=".$result, LOG_ERR); diff --git a/htdocs/cron/list.php b/htdocs/cron/list.php index 913da57ac39..3f66dba1912 100644 --- a/htdocs/cron/list.php +++ b/htdocs/cron/list.php @@ -18,7 +18,7 @@ */ /** - * \file htdocs/cron/cron/list.php + * \file htdocs/cron/list.php * \ingroup cron * \brief Lists Jobs */ @@ -324,19 +324,19 @@ print '
    '; print ''; diff --git a/htdocs/don/list.php b/htdocs/don/list.php index 2eab3557797..3d0422da917 100644 --- a/htdocs/don/list.php +++ b/htdocs/don/list.php @@ -72,7 +72,7 @@ $fieldstosearchall = array( 'd.lastname'=>'Lastname', 'd.firstname'=>'Firstname', ); - + /* * View */ @@ -157,7 +157,7 @@ if ($resql) foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val); print $langs->trans("FilterOnInto", $search_all) . join(', ',$fieldstosearchall); } - + print '
    '; print ''."\n"; @@ -190,20 +190,20 @@ if ($resql) print "\n"; print ''; - print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"d.rowid","", $param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"d.societe","", $param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Name"),$_SERVER["PHP_SELF"],"d.lastname","", $param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"d.datedon","", $param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"d.rowid","", $param,"",$sortfield,$sortorder); + print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"d.societe","", $param,"",$sortfield,$sortorder); + print_liste_field_titre("Name",$_SERVER["PHP_SELF"],"d.lastname","", $param,"",$sortfield,$sortorder); + print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"d.datedon","", $param,'align="center"',$sortfield,$sortorder); if (! empty($conf->projet->enabled)) { $langs->load("projects"); - print_liste_field_titre($langs->trans("Project"),$_SERVER["PHP_SELF"],"fk_projet","", $param,"",$sortfield,$sortorder); + print_liste_field_titre("Project",$_SERVER["PHP_SELF"],"fk_projet","", $param,"",$sortfield,$sortorder); } - print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"d.amount","", $param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"d.fk_statut","", $param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Amount",$_SERVER["PHP_SELF"],"d.amount","", $param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"d.fk_statut","", $param,'align="right"',$sortfield,$sortorder); print_liste_field_titre(''); print "\n"; - + while ($i < min($num,$limit)) { $objp = $db->fetch_object($resql); diff --git a/htdocs/ecm/class/ecmdirectory.class.php b/htdocs/ecm/class/ecmdirectory.class.php index 31439fa5ba3..5f713bdab91 100644 --- a/htdocs/ecm/class/ecmdirectory.class.php +++ b/htdocs/ecm/class/ecmdirectory.class.php @@ -27,8 +27,9 @@ */ class EcmDirectory // extends CommonObject { - //public $element='ecm_directories'; //!< Id that identify managed objects + public $element='ecm_directories'; //!< Id that identify managed objects //public $table_element='ecm_directories'; //!< Name of table without prefix where object is stored + var $picto = 'dir'; var $id; @@ -514,6 +515,31 @@ class EcmDirectory // extends CommonObject } + /** + * Retourne le libelle du status d'un user (actif, inactif) + * + * @param int $mode 0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long, 5=Libelle court + Picto + * @return string Label of status + */ + function getLibStatut($mode=0) + { + return $this->LibStatut($this->status,$mode); + } + + /** + * Return the status + * + * @param int $status Id status + * @param int $mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto, 5=Long label + Picto + * @return string Label of status + */ + static function LibStatut($status,$mode=0) + { + global $langs; + return ''; + } + + /** * Reconstruit l'arborescence des categories sous la forme d'un tableau à partir de la base de donnée * Renvoi un tableau de tableau('id','id_mere',...) trie selon arbre et avec: diff --git a/htdocs/ecm/class/ecmfiles.class.php b/htdocs/ecm/class/ecmfiles.class.php index c854231307f..f1090757dad 100644 --- a/htdocs/ecm/class/ecmfiles.class.php +++ b/htdocs/ecm/class/ecmfiles.class.php @@ -231,12 +231,12 @@ class EcmFiles //extends CommonObject /** * Load object in memory from the database * - * @param int $id Id object - * @param string $ref Not used yet. Will contains a hash id from filename+filepath - * @param string $fullpath Full path of file (relative path to document directory) - * @return int <0 if KO, 0 if not found, >0 if OK + * @param int $id Id object + * @param string $ref Not used yet. Will contains a hash id from filename+filepath + * @param string $relativepath Relative path of file from document directory. Example: path/path2/file + * @return int <0 if KO, 0 if not found, >0 if OK */ - public function fetch($id, $ref = null, $fullpath = '') + public function fetch($id, $ref = null, $relativepath = '') { dol_syslog(__METHOD__, LOG_DEBUG); @@ -265,8 +265,8 @@ class EcmFiles //extends CommonObject if (! empty($conf->multicompany->enabled)) { $sql .= " AND entity IN (" . getEntity('ecmfiles') . ")"; }*/ - if ($fullpath) { - $sql .= " AND t.filepath = '" . $this->db->escape(dirname($fullpath)) . "' AND t.filename = '".$this->db->escape(basename($fullpath))."'"; + if ($relativepath) { + $sql .= " AND t.filepath = '" . $this->db->escape(dirname($relativepath)) . "' AND t.filename = '".$this->db->escape(basename($relativepath))."'"; } elseif (null !== $ref) { $sql .= " AND t.ref = '".$this->db->escape($ref)."'"; diff --git a/htdocs/ecm/docfile.php b/htdocs/ecm/docfile.php index 31f9b6b11c2..577ac3e0262 100644 --- a/htdocs/ecm/docfile.php +++ b/htdocs/ecm/docfile.php @@ -78,7 +78,7 @@ if (! $urlfile) // Load ecm object $ecmdir = new EcmDirectory($db); -$result=$ecmdir->fetch(GETPOST("section")); +$result=$ecmdir->fetch(GETPOST("section",'alpha')); if (! $result > 0) { dol_print_error($db,$ecmdir->error); @@ -109,10 +109,10 @@ if (! empty($_GET["fileid"])) * Put here all code to do according to value of "action" parameter ********************************************************************/ -if ($action == 'cancel') +if ($action == 'cancel') { $action =''; - if ($backtourl) + if ($backtourl) { header("Location: ".$backtourl); exit; @@ -144,7 +144,7 @@ if ($action == 'update') //print $oldfile.' - '.$newfile; if ($newlabel != $oldlabel) { - $result=dol_move($oldfile,$newfile); + $result=dol_move($oldfile, $newfile); if (! $result) { $langs->load('errors'); diff --git a/htdocs/ecm/docmine.php b/htdocs/ecm/docmine.php index 48f39cb12f2..f418627d1be 100644 --- a/htdocs/ecm/docmine.php +++ b/htdocs/ecm/docmine.php @@ -191,15 +191,15 @@ if ($action == 'update' && ! GETPOST('cancel')) /******************************************************************* -* PAGE -* -* Put here all code to do according to value of "action" parameter +* View ********************************************************************/ -llxHeader(); - $form=new Form($db); +$object=new EcmDirectory($db); // Need to create a new one +$object->fetch($ecmdir->id); + +llxHeader(); // Built the file List $filearray=dol_dir_list($upload_dir,"files",0,'','(\.meta|_preview.*\.png)$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1); @@ -211,7 +211,8 @@ foreach($filearray as $key => $file) $head = ecm_prepare_head($ecmdir); -dol_fiche_head($head, 'card', $langs->trans("ECMSectionManual"), '', 'dir'); +dol_fiche_head($head, 'card', $langs->trans("ECMSectionManual"), -1, 'dir'); + if ($action == 'edit') { @@ -221,13 +222,11 @@ if ($action == 'edit') print ''; } -print '
    '; -print ''; - } - - // Select type - print ''; - - // Add comments - print ''; - - // Select VAT - print ''; - - // Unit price - print ''; - - // Quantity - print ''; - - if ($action != 'editline') - { - print ''; - print ''; - } - - print ''; - - print ''; - } // Fin si c'est payé/validé - - print '
    '.$langs->trans("Ref").''; $s=''; -$tmpecmdir=new EcmDirectory($db); // Need to create a new one -$tmpecmdir->fetch($ecmdir->id); $result = 1; $i=0; +$tmpecmdir=new EcmDirectory($db); // Need to create a new one +$tmpecmdir->fetch($ecmdir->id); while ($tmpecmdir && $result > 0) { $tmpecmdir->ref=$tmpecmdir->label; @@ -248,10 +247,21 @@ while ($tmpecmdir && $result > 0) $i++; } +$morehtml=''; + +$morehtmlref = ''.$langs->trans("ECMRoot").' -> '.$s; + +dol_banner_tab($object, '', $morehtml, 0, '', '', $morehtmlref); + +print '
    '; + +print '
    '; +print ''; +/*print ''; -print '';*/ +print ''; + + // VAT + print ''; + + // Unit price + print ''; + + // Quantity + print ''; if ($action != 'editline') { - print ''; - print ''; + print ''; + print ''; } - // Ajout des boutons de modification/suppression - if (($object->fk_statut < 2 || $object->fk_statut == 99) && $user->rights->expensereport->creer) - { - print ''; - } - - print ''; - } - - if ($action == 'editline' && $objp->rowid == GETPOST('rowid')) - { - print ''; - - print ''; - - // Select date - print ''; - - // Select project - if (! empty($conf->projet->enabled)) - { - print ''; - } - - // Select type - print ''; - - // Add comments - print ''; - - // VAT - print ''; - - // Unit price - print ''; - - // Quantity - print ''; - - if ($action != 'editline') - { - print ''; - print ''; - } - - print ''; - } - - $i++; + print ''; } - $db->free($resql); + $i++; + } + } + + // Add a line + if (($object->fk_statut==0 || $object->fk_statut==99) && $action != 'editline' && $user->rights->expensereport->creer) + { + print ''; + print ''; + print ''; + if (! empty($conf->projet->enabled)) print ''; + if (!empty($conf->global->MAIN_USE_EXPENSE_IK)) print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + + print ''; + + print ''; + + // Select date + print ''; + + // Select project + if (! empty($conf->projet->enabled)) + { + print ''; + } + + if (!empty($conf->global->MAIN_USE_EXPENSE_IK)) + { + print ''; } - // Add a line - if (($object->fk_statut==0 || $object->fk_statut==99) && $action != 'editline' && $user->rights->expensereport->creer) + // Select type + print ''; + + // Add comments + print ''; + + // Select VAT + print ''; + + // Unit price + print ''; + + // Quantity + print ''; + + if ($action != 'editline') { - print ''; - print ''; - print ''; - if (! empty($conf->projet->enabled)) print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + } - print ''; + print ''; - print ''; + print ''; + } // Fin si c'est payé/validé - // Select date - print ''; + print '
    '.$langs->trans("Ref").''; print img_picto('','object_dir').' '.$langs->trans("ECMRoot").' -> '; print $s; -print '
    '.$langs->trans("Description").''; +print '
    '.$langs->trans("Description").''; if ($action == 'edit') { print ''; + print ''; + print $form->load_tva('vatrate', (isset($_POST["vatrate"])?$_POST["vatrate"]:$line->vatrate), $mysoc, ''); + print ''; + print ''; + print ''; + print ''; + print ''.price($objp->total_ht).''.price($objp->total_ttc).''.$langs->trans('AmountHT').''.$langs->trans('AmountTTC').''; - - print 'rowid.'#'.$objp->rowid.'">'; - print img_edit(); - print '   '; - print 'rowid.'">'; - print img_delete(); - print ''; - - print '
    '; - $form->select_date($objp->date,'date'); - print ''; - $formproject->select_projects(-1, $objp->fk_projet,'fk_projet', 0, 0, 1, 1); - print ''; - select_type_fees_id($objp->type_fees_code,'fk_c_type_fees'); - print ''; - print ''; - print ''; - $seller=$mysoc; - $buyer=new Societe($db); - $selectedvat=(GETPOST("vatrate",'alpha')?GETPOST("vatrate",'alpha'):$objp->vatrate.($objp->vat_src_code?' ('.$objp->vat_src_code.')':'')); - print $form->load_tva('vatrate', $selectedvat, $seller, $buyer, 0, 0, '', false, 1); - print ''; - print ''; - print ''; - print ''; // We must be able to enter decimal qty - print ''.$langs->trans('AmountHT').''.$langs->trans('AmountTTC').''; - print ''; - print ''; - print '
    '; - print '
    '; + print ''; + print ''; + print '
    '; + print '
    '.$langs->trans('Date').''.$langs->trans('Project').''.$langs->trans('CarCategory').''.$langs->trans('Type').''.$langs->trans('Description').''.$langs->trans('VAT').''.$langs->trans('PriceUTTC').''.$langs->trans('Qty').'
    '; + $form->select_date($date?$date:-1,'date'); + print ''; + $formproject->select_projects(-1, $fk_projet, 'fk_projet', 0, 0, 1, 1); + print ''; + $params = array('fk_expense' => $object->id); + print $form->selectExpenseCategories('', 'fk_c_exp_tax_cat', 1, array(), 'fk_c_type_fees', $userauthor->default_c_exp_tax_cat, $params); + print ''; + select_type_fees_id($fk_c_type_fees,'fk_c_type_fees',1); + print ''; + print ''; + print ''; + $defaultvat=-1; + if (! empty($conf->global->EXPENSEREPORT_NO_DEFAULT_VAT)) $conf->global->MAIN_VAT_DEFAULT_IF_AUTODETECT_FAILS = 'none'; + print $form->load_tva('vatrate', ($vatrate!=''?$vatrate:$defaultvat), $mysoc, '', 0, 0, '', false, 1); + print ''; + print ''; + print ''; + print ''; // We must be able to enter decimal qty + print '
    '.$langs->trans('Date').''.$langs->trans('Project').''.$langs->trans('Type').''.$langs->trans('Description').''.$langs->trans('VAT').''.$langs->trans('PriceUTTC').''.$langs->trans('Qty').'
    '; - $form->select_date($date?$date:-1,'date'); - print '
    '; + print '
    '; - // Select project - if (! empty($conf->projet->enabled)) - { - print '
    '; - $formproject->select_projects(-1, $fk_projet, 'fk_projet', 0, 0, 1, 1); - print ''; - select_type_fees_id($fk_c_type_fees,'fk_c_type_fees',1); - print ''; - print ''; - print ''; - $defaultvat=-1; - if (! empty($conf->global->EXPENSEREPORT_NO_DEFAULT_VAT)) $conf->global->MAIN_VAT_DEFAULT_IF_AUTODETECT_FAILS = 'none'; - print $form->load_tva('vatrate', ($vatrate!=''?$vatrate:$defaultvat), $mysoc, '', 0, 0, '', false, 1); - print ''; - print ''; - print ''; - print ''; // We must be able to enter decimal qty - print '
    '; - print '
    '; - - print ''; - } - else - { - dol_print_error($db); - } + print ''; dol_fiche_end(); @@ -2369,6 +2344,8 @@ if ($action != 'create' && $action != 'edit') print '
    '; } + $parameters = array(); + $reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been } print ''; diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index f999a93c57f..e4ee53e174a 100644 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -24,6 +24,8 @@ * \brief File to manage Expense Reports */ require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php'; +require_once DOL_DOCUMENT_ROOT .'/expensereport/class/expensereport_ik.class.php'; +require_once DOL_DOCUMENT_ROOT .'/expensereport/class/expensereport_rule.class.php'; /** * Class to manage Trips and Expenses @@ -37,9 +39,9 @@ class ExpenseReport extends CommonObject var $picto = 'trip'; var $lignes=array(); - + public $date_debut; - + public $date_fin; var $fk_user_validator; @@ -65,7 +67,7 @@ class ExpenseReport extends CommonObject // Update var $date_modif; var $fk_user_modif; - + // Refus var $date_refuse; var $detail_refuse; @@ -91,9 +93,35 @@ class ExpenseReport extends CommonObject /* END ACTIONS */ + + /** + * Draft + */ + const STATUS_DRAFT = 0; + /** + * Validated (need to be paid) + */ + const STATUS_VALIDATED = 2; - /** + /** + * Classified approved + */ + const STATUS_APPROVED = 5; + + /** + * Classified refused + */ + const STATUS_REFUSED = 99; + + /** + * Classified paid. + */ + const STATUS_CLOSED = 6; + + + + /** * Constructor * * @param DoliDB $db Handler acces base de donnees @@ -268,6 +296,7 @@ class ExpenseReport extends CommonObject if (empty($fk_user_author)) $fk_user_author = $user->id; $this->context['createfromclone'] = 'createfromclone'; + $this->db->begin(); // get extrafields so they will be clone @@ -306,7 +335,6 @@ class ExpenseReport extends CommonObject // Call trigger $result=$this->call_trigger('EXPENSEREPORT_CLONE',$user); - if ($result < 0) $error++; // End call triggers } @@ -911,7 +939,7 @@ class ExpenseReport extends CommonObject $this->lines=array(); $sql = ' SELECT de.rowid, de.comments, de.qty, de.value_unit, de.date,'; - $sql.= ' de.'.$this->fk_element.', de.fk_c_type_fees, de.fk_projet, de.tva_tx,'; + $sql.= ' de.'.$this->fk_element.', de.fk_c_type_fees, de.fk_c_exp_tax_cat, de.fk_projet, de.tva_tx,'; $sql.= ' de.total_ht, de.total_tva, de.total_ttc,'; $sql.= ' ctf.code as code_type_fees, ctf.label as libelle_type_fees,'; $sql.= ' p.ref as ref_projet, p.title as title_projet'; @@ -933,13 +961,16 @@ class ExpenseReport extends CommonObject $deplig = new ExpenseReportLine($this->db); $deplig->rowid = $objp->rowid; + $deplig->id = $objp->id; $deplig->comments = $objp->comments; $deplig->qty = $objp->qty; $deplig->value_unit = $objp->value_unit; $deplig->date = $objp->date; + $deplig->dates = $this->db->jdate($objp->date); $deplig->fk_expensereport = $objp->fk_expensereport; $deplig->fk_c_type_fees = $objp->fk_c_type_fees; + $deplig->fk_c_exp_tax_cat = $objp->fk_c_exp_tax_cat; $deplig->fk_projet = $objp->fk_projet; $deplig->total_ht = $objp->total_ht; @@ -1570,7 +1601,244 @@ class ExpenseReport extends CommonObject endif; } + /** + * addline + * + * @param real $qty Qty + * @param double $up Value init + * @param int $fk_c_type_fees Type payment + * @param double $vatrate Vat rate + * @param string $date Date + * @param string $comments Description + * @param int $fk_project Project id + * @param int $fk_c_exp_tax_cat Car category id + * @param int $type Type line + * @return int <0 if KO, >0 if OK + */ + function addline($qty=0, $up=0, $fk_c_type_fees=0, $vatrate=0, $date='', $comments='', $fk_project=0, $fk_c_exp_tax_cat=0, $type=0) + { + global $conf,$langs; + dol_syslog(get_class($this)."::addline qty=$qty, up=$up, fk_c_type_fees=$fk_c_type_fees, vatrate=$vatrate, date=$date, fk_project=$fk_project, type=$type, comments=$comments", LOG_DEBUG); + + if (empty($qty)) $qty = 0; + if (empty($fk_c_type_fees) || $fk_c_type_fees < 0) $fk_c_type_fees = 0; + if (empty($fk_c_exp_tax_cat) || $fk_c_exp_tax_cat < 0) $fk_c_exp_tax_cat = 0; + if (empty($vatrate) || $vatrate < 0) $vatrate = 0; + if (empty($date)) $date = ''; + if (empty($fk_project)) $fk_project = 0; + + $qty = price2num($qty); + $vatrate = price2num($vatrate); + $up = price2num($up); + + if ($this->fk_statut == self::STATUS_DRAFT) + { + $this->db->begin(); + + $this->line = new ExpenseReportLine($this->db); + + $seller = ''; // seller is unknown + $tmp = calcul_price_total($qty, $up, 0, $vatrate, 0, 0, 0, 'TTC', 0, $type, $seller); + + $this->line->value_unit = $up; + $this->line->vatrate = price2num($vatrate); + $this->line->total_ttc = $tmp[2]; + $this->line->total_ht = $tmp[0]; + $this->line->total_tva = $tmp[1]; + + $this->line->fk_expensereport = $this->id; + $this->line->qty = $qty; + $this->line->date = $date; + $this->line->fk_c_type_fees = $fk_c_type_fees; + $this->line->fk_c_exp_tax_cat = $fk_c_exp_tax_cat; + $this->line->comments = $comments; + $this->line->fk_projet = $fk_project; + + $this->applyOffset(); + $this->checkRules($type, $seller); + + $result=$this->line->insert(0, true); + if ($result > 0) + { + $result=$this->update_price(); // This method is designed to add line from user input so total calculation must be done using 'auto' mode. + if ($result > 0) + { + $this->db->commit(); + return $this->line->rowid; + } + else + { + $this->db->rollback(); + return -1; + } + } + else + { + $this->error=$this->line->error; + dol_syslog(get_class($this)."::addline error=".$this->error, LOG_ERR); + $this->db->rollback(); + return -2; + } + } + else + { + dol_syslog(get_class($this)."::addline status of expense report must be Draft to allow use of ->addline()", LOG_ERR); + $this->error = 'ErrorExpenseNotDraft'; + return -3; + } + + + } + + /** + * Check constraint of rules and update price if needed + * + * @param int $type type of line + * @param string $seller seller, but actually he is unknown + * @return true or false + */ + function checkRules($type=0, $seller='') + { + global $user,$conf,$db,$langs; + + $langs->load('trips'); + + if (empty($conf->global->MAIN_USE_EXPENSE_RULE)) return true; // if don't use rules + + $rulestocheck = ExpenseReportRule::getAllRule($this->line->fk_c_type_fees, $this->line->date, $this->fk_user_author); + + $violation = 0; + $rule_warning_message_tab = array(); + + $current_total_ttc = $this->line->total_ttc; + $new_current_total_ttc = $this->line->total_ttc; + + // check if one is violated + foreach ($rulestocheck as $rule) + { + if (in_array($rule->code_expense_rules_type, array('EX_DAY', 'EX_MON', 'EX_YEA'))) $amount_to_test = $this->line->getExpAmount($rule, $this->fk_user_author, $rule->code_expense_rules_type); + else $amount_to_test = $current_total_ttc; // EX_EXP + + $amount_to_test = $amount_to_test - $current_total_ttc + $new_current_total_ttc; // if amount as been modified by a previous rule + + if ($amount_to_test > $rule->amount) + { + $violation++; + + if ($rule->restrictive) + { + $this->error = 'ExpenseReportConstraintViolationError'; + $this->errors[] = $this->error; + + $new_current_total_ttc -= $amount_to_test - $rule->amount; // ex, entered 16€, limit 12€, subtracts 4€; + $rule_warning_message_tab[] = $langs->trans('ExpenseReportConstraintViolationError', $rule->id, price($amount_to_test,0,$langs,1,-1,-1,$conf->currency), price($rule->amount,0,$langs,1,-1,-1,$conf->currency), $langs->trans('by'.$rule->code_expense_rules_type, price($new_current_total_ttc,0,$langs,1,-1,-1,$conf->currency))); + } + else + { + $this->error = 'ExpenseReportConstraintViolationWarning'; + $this->errors[] = $this->error; + + $rule_warning_message_tab[] = $langs->trans('ExpenseReportConstraintViolationWarning', $rule->id, price($amount_to_test,0,$langs,1,-1,-1,$conf->currency), price($rule->amount,0,$langs,1,-1,-1,$conf->currency), $langs->trans('nolimitby'.$rule->code_expense_rules_type)); + } + + // No break, we sould test if another rule is violated + } + } + + $this->line->rule_warning_message = implode('\n', $rule_warning_message_tab); + + if ($violation > 0) + { + $tmp = calcul_price_total($this->line->qty, $new_current_total_ttc/$this->line->qty, 0, $this->line->vatrate, 0, 0, 0, 'TTC', 0, $type, $seller); + + $this->line->value_unit = $tmp[5]; + $this->line->total_ttc = $tmp[2]; + $this->line->total_ht = $tmp[0]; + $this->line->total_tva = $tmp[1]; + + return false; + } + else return true; + } + + /** + * Method to apply the offset if needed + * + * @return boolean true=applied, false=not applied + */ + function applyOffset() + { + global $conf; + + if (empty($conf->global->MAIN_USE_EXPENSE_IK)) return false; + + $userauthor = new User($this->db); + if ($userauthor->fetch($this->fk_user_author) <= 0) + { + $this->error = 'ErrorCantFetchUser'; + $this->errors[] = 'ErrorCantFetchUser'; + return false; + } + + $range = ExpenseReportIk::getRangeByUser($userauthor, $this->line->fk_c_exp_tax_cat); + + if (empty($range)) + { + $this->error = 'ErrorNoRangeAvailable'; + $this->errors[] = 'ErrorNoRangeAvailable'; + return false; + } + + if (!empty($conf->global->MAIN_EXPENSE_APPLY_ENTIRE_OFFSET)) $offset = $range->offset; + else $offset = $range->offset / 12; // The amount of offset is a global value for the year + + // Test if offset has been applied for the current month + if (!$this->offsetAlreadyGiven()) + { + $new_up = $range->coef + ($offset / $this->line->qty); + $tmp = calcul_price_total($this->line->qty, $new_up, 0, $this->line->vatrate, 0, 0, 0, 'TTC', 0, $type, $seller); + + $this->line->value_unit = $tmp[5]; + $this->line->total_ttc = $tmp[2]; + $this->line->total_ht = $tmp[0]; + $this->line->total_tva = $tmp[1]; + + return true; + } + + return false; + } + + /** + * If the sql find any rows then the offset is already given (offset is applied at the first expense report line) + * + * @return bool + */ + function offsetAlreadyGiven() + { + $sql = 'SELECT e.rowid FROM '.MAIN_DB_PREFIX.'expensereport e'; + $sql.= ' INNER JOIN '.MAIN_DB_PREFIX.'expensereport_det d ON (e.rowid = d.fk_expensereport)'; + $sql.= ' INNER JOIN '.MAIN_DB_PREFIX.'c_type_fees f ON (d.fk_c_type_fees = f.id AND f.code = "EX_KME")'; + $sql.= ' WHERE e.fk_user_author = '.(int) $this->fk_user_author; + $sql.= ' AND YEAR(d.date) = "'.dol_print_date($this->line->date, '%Y').'" AND MONTH(d.date) = "'.dol_print_date($this->line->date, '%m').'"'; + if (!empty($this->line->id)) $sql.= ' AND d.rowid <> '.$this->line->id; + + dol_syslog(get_class($this)."::offsetAlreadyGiven sql=".$sql); + $resql = $this->db->query($sql); + if ($resql) + { + $num = $this->db->num_rows($resql); + if ($num > 0) return true; + } + else + { + dol_print_error($this->db); + } + + return false; + } + /** * updateline * @@ -1583,9 +1851,10 @@ class ExpenseReport extends CommonObject * @param double $value_unit Value init * @param int $date Date * @param int $expensereport_id Expense report id + * @param int $fk_c_exp_tax_cat id of category of car * @return int <0 if KO, >0 if OK */ - function updateline($rowid, $type_fees_id, $projet_id, $vatrate, $comments, $qty, $value_unit, $date, $expensereport_id) + function updateline($rowid, $type_fees_id, $projet_id, $vatrate, $comments, $qty, $value_unit, $date, $expensereport_id, $fk_c_exp_tax_cat=0) { global $user, $mysoc; @@ -1623,34 +1892,29 @@ class ExpenseReport extends CommonObject $total_tva = price2num($total_ttc - $total_ht, 'MT'); // fin calculs - $ligne = new ExpenseReportLine($this->db); + $this->line = new ExpenseReportLine($this->db); + $this->line->comments = $comments; + $this->line->qty = $qty; + $this->line->value_unit = $value_unit; + $this->line->date = $date; - $ligne->rowid = $rowid; + $this->line->fk_expensereport= $expensereport_id; + $this->line->fk_c_type_fees = $type_fees_id; + $this->line->fk_c_exp_tax_cat = $fk_c_exp_tax_cat; + $this->line->fk_projet = $projet_id; - $ligne->comments = $comments; - $ligne->qty = $qty; - $ligne->value_unit = $value_unit; - $ligne->date = $date; - - $ligne->fk_expensereport= $expensereport_id; - $ligne->fk_c_type_fees = $type_fees_id; - $ligne->fk_projet = $projet_id; - - //$ligne->total_ht = $total_ht; - //$ligne->total_tva = $total_tva; - //$ligne->total_ttc = $total_ttc; - //$ligne->vatrate = price2num($vatrate); - - $ligne->vat_src_code = $vat_src_code; - $ligne->vatrate = price2num($vatrate); - $ligne->total_ttc = $tmp[2]; - $ligne->total_ht = $tmp[0]; - $ligne->total_tva = $tmp[1]; - $ligne->localtax1_tx = $localtaxes_type[1]; - $ligne->localtax2_tx = $localtaxes_type[3]; - $ligne->localtax1_type = $localtaxes_type[0]; - $ligne->localtax2_type = $localtaxes_type[2]; + $this->line->vat_src_code = $vat_src_code; + $this->line->vatrate = price2num($vatrate); + $this->line->total_ttc = $tmp[2]; + $this->line->total_ht = $tmp[0]; + $this->line->total_tva = $tmp[1]; + $this->line->localtax1_tx = $localtaxes_type[1]; + $this->line->localtax2_tx = $localtaxes_type[3]; + $this->line->localtax1_type = $localtaxes_type[0]; + $this->line->localtax2_type = $localtaxes_type[2]; + $this->line->rowid = $rowid; + $this->line->id = $rowid; // Select des infos sur le type fees $sql = "SELECT c.code as code_type_fees, c.label as libelle_type_fees"; @@ -1658,8 +1922,8 @@ class ExpenseReport extends CommonObject $sql.= " WHERE c.id = ".$type_fees_id; $result = $this->db->query($sql); $objp_fees = $this->db->fetch_object($result); - $ligne->type_fees_code = $objp_fees->code_type_fees; - $ligne->type_fees_libelle = $objp_fees->libelle_type_fees; + $this->line->type_fees_code = $objp_fees->code_type_fees; + $this->line->type_fees_libelle = $objp_fees->libelle_type_fees; // Select des informations du projet $sql = "SELECT p.ref as ref_projet, p.title as title_projet"; @@ -1669,10 +1933,13 @@ class ExpenseReport extends CommonObject if ($result) { $objp_projet = $this->db->fetch_object($result); } - $ligne->projet_ref = $objp_projet->ref_projet; - $ligne->projet_title = $objp_projet->title_projet; + $this->line->projet_ref = $objp_projet->ref_projet; + $this->line->projet_title = $objp_projet->title_projet; - $result = $ligne->update($user); + $this->applyOffset(); + $this->checkRules(); + + $result = $this->line->update($user); if ($result > 0) { $this->db->commit(); @@ -1680,8 +1947,8 @@ class ExpenseReport extends CommonObject } else { - $this->error=$ligne->error; - $this->errors=$ligne->errors; + $this->error=$this->line->error; + $this->errors=$this->line->errors; $this->db->rollback(); return -2; } @@ -2025,6 +2292,7 @@ class ExpenseReportLine var $date; var $fk_c_type_fees; + var $fk_c_exp_tax_cat; var $fk_projet; var $fk_expensereport; @@ -2057,7 +2325,7 @@ class ExpenseReportLine */ function fetch($rowid) { - $sql = 'SELECT fde.rowid, fde.fk_expensereport, fde.fk_c_type_fees, fde.fk_projet, fde.date,'; + $sql = 'SELECT fde.rowid, fde.fk_expensereport, fde.fk_c_type_fees, fde.fk_c_exp_tax_cat, fde.fk_projet, fde.date,'; $sql.= ' fde.tva_tx as vatrate, fde.vat_src_code, fde.comments, fde.qty, fde.value_unit, fde.total_ht, fde.total_tva, fde.total_ttc,'; $sql.= ' ctf.code as type_fees_code, ctf.label as type_fees_libelle,'; $sql.= ' pjt.rowid as projet_id, pjt.title as projet_title, pjt.ref as projet_ref'; @@ -2079,8 +2347,10 @@ class ExpenseReportLine $this->comments = $objp->comments; $this->qty = $objp->qty; $this->date = $objp->date; + $this->dates = $this->db->jdate($objp->date); $this->value_unit = $objp->value_unit; $this->fk_c_type_fees = $objp->fk_c_type_fees; + $this->fk_c_exp_tax_cat = $objp->fk_c_exp_tax_cat; $this->fk_projet = $objp->fk_projet; $this->type_fees_code = $objp->type_fees_code; $this->type_fees_libelle = $objp->type_fees_libelle; @@ -2102,9 +2372,10 @@ class ExpenseReportLine * insert * * @param int $notrigger 1=No trigger + * @param bool $fromaddline false=keep default behavior, true=exclude the update_price() of parent object * @return int <0 if KO, >0 if OK */ - function insert($notrigger=0) + function insert($notrigger=0,$fromaddline=false) { global $langs,$user,$conf; @@ -2117,12 +2388,13 @@ class ExpenseReportLine if (!$this->value_unit_HT) $this->value_unit_HT=0; $this->qty = price2num($this->qty); $this->vatrate = price2num($this->vatrate); - + if (empty($this->fk_c_exp_tax_cat)) $this->fk_c_exp_tax_cat = 0; + $this->db->begin(); $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'expensereport_det'; $sql.= ' (fk_expensereport, fk_c_type_fees, fk_projet,'; - $sql.= ' tva_tx, vat_src_code, comments, qty, value_unit, total_ht, total_tva, total_ttc, date)'; + $sql.= ' tva_tx, vat_src_code, comments, qty, value_unit, total_ht, total_tva, total_ttc, date, rule_warning_message, fk_c_exp_tax_cat)'; $sql.= " VALUES (".$this->fk_expensereport.","; $sql.= " ".$this->fk_c_type_fees.","; $sql.= " ".($this->fk_projet>0?$this->fk_projet:'null').","; @@ -2134,7 +2406,9 @@ class ExpenseReportLine $sql.= " ".$this->total_ht.","; $sql.= " ".$this->total_tva.","; $sql.= " ".$this->total_ttc.","; - $sql.= "'".$this->db->idate($this->date)."'"; + $sql.= "'".$this->db->idate($this->date)."',"; + $sql.= " '".$this->db->escape($this->rule_warning_message)."',"; + $sql.= " ".$this->fk_c_exp_tax_cat; $sql.= ")"; dol_syslog("ExpenseReportLine::insert sql=".$sql); @@ -2144,16 +2418,23 @@ class ExpenseReportLine { $this->rowid=$this->db->last_insert_id(MAIN_DB_PREFIX.'expensereport_det'); - $tmpparent=new ExpenseReport($this->db); - $tmpparent->fetch($this->fk_expensereport); - $result = $tmpparent->update_price(); - if ($result < 0) - { - $error++; - $this->error = $tmpparent->error; - $this->errors = $tmpparent->errors; - } + if (! $fromaddline) + { + $tmpparent=new ExpenseReport($this->db); + $tmpparent->fetch($this->fk_expensereport); + $result = $tmpparent->update_price(); + if ($result < 0) + { + $error++; + $this->error = $tmpparent->error; + $this->errors = $tmpparent->errors; + } + } } + else + { + $error++; + } if (! $error) { @@ -2168,7 +2449,50 @@ class ExpenseReportLine return -2; } } + + /** + * Function to get total amount in expense reports for a same rule + * + * @param ExpenseReportRule $rule object rule to check + * @param int $fk_user user author id + * @param string $mode day|EX_DAY / month|EX_MON / year|EX_YEA to get amount + * @return amount + */ + public function getExpAmount(ExpenseReportRule $rule, $fk_user, $mode='day') + { + $amount = 0; + + $sql = 'SELECT SUM(d.total_ttc) as total_amount'; + $sql .= ' FROM '.MAIN_DB_PREFIX.'expensereport_det d'; + $sql .= ' INNER JOIN '.MAIN_DB_PREFIX.'expensereport e ON (d.fk_expensereport = e.rowid)'; + $sql .= ' WHERE e.fk_user_author = '.$fk_user; + if (!empty($this->id)) $sql.= ' AND d.rowid <> '.$this->id; + $sql .= ' AND d.fk_c_type_fees = '.$rule->fk_c_type_fees; + if ($mode == 'day' || $mode == 'EX_DAY') $sql .= ' AND d.date = \''.dol_print_date($this->date, '%Y-%m-%d').'\''; + elseif ($mode == 'mon' || $mode == 'EX_MON') $sql .= ' AND DATE_FORMAT(d.date, \'%Y-%m\') = \''.dol_print_date($this->date, '%Y-%m').'\''; + elseif ($mode == 'year' || $mode == 'EX_YEA') $sql .= ' AND DATE_FORMAT(d.date, \'%Y\') = \''.dol_print_date($this->date, '%Y').'\''; + + dol_syslog('ExpenseReportLine::getExpAmountByDay sql='.$sql); + + $resql = $this->db->query($sql); + if ($resql) + { + $num = $this->db->num_rows($resql); + if ($num > 0) + { + $obj = $this->db->fetch_object($resql); + $amount = (double) $obj->total_amount; + } + } + else + { + dol_print_error($this->db); + } + + return $amount + $this->total_ttc; + } + /** * update * @@ -2185,6 +2509,7 @@ class ExpenseReportLine $this->comments=trim($this->comments); $this->vatrate = price2num($this->vatrate); $this->value_unit = price2num($this->value_unit); + if (empty($this->fk_c_exp_tax_cat)) $this->fk_c_exp_tax_cat = 0; $this->db->begin(); @@ -2198,7 +2523,9 @@ class ExpenseReportLine $sql.= ",total_tva=".$this->total_tva.""; $sql.= ",total_ttc=".$this->total_ttc.""; $sql.= ",tva_tx=".$this->vatrate; - $sql.= ",vat_src_code='".$this->db->escape($this->vat_src_code)."'"; + $sql.= ",vat_src_code='".$this->db->escape($this->vat_src_code)."'"; + $sql.= ",rule_warning_message='".$this->db->escape($this->rule_warning_message)."'"; + $sql.= ",fk_c_exp_tax_cat=".$this->fk_c_exp_tax_cat; if ($this->fk_c_type_fees) $sql.= ",fk_c_type_fees=".$this->fk_c_type_fees; else $sql.= ",fk_c_type_fees=null"; if ($this->fk_projet) $sql.= ",fk_projet=".$this->fk_projet; diff --git a/htdocs/expensereport/class/expensereport_ik.class.php b/htdocs/expensereport/class/expensereport_ik.class.php new file mode 100644 index 00000000000..41170ce2fd4 --- /dev/null +++ b/htdocs/expensereport/class/expensereport_ik.class.php @@ -0,0 +1,248 @@ + + * Copyright (C) 2017 Pierre-Henry Favre + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file htdocs/expensereport/class/expensereport_ik.class.php + * \ingroup expenseik + * \brief File of class to manage expense ik + */ + +require_once DOL_DOCUMENT_ROOT.'/core/class/coreobject.class.php'; + +/** + * Class to manage inventories + */ +class ExpenseReportIk extends CoreObject +{ + public $element='expenseik'; + public $table_element='expensereport_ik'; + public $fk_element='fk_expense_ik'; + + /** + * c_exp_tax_cat Id + * @var int + */ + public $fk_c_exp_tax_cat; + + /** + * c_exp_tax_range id + * @var int + */ + public $fk_range; + + /** + * Coef + * @var double + */ + public $coef; + + /** + * Offset + * @var double + */ + public $offset; + + /** + * Attribute object linked with database + * @var array + */ + protected $fields=array( + 'rowid'=>array('type'=>'integer','index'=>true) + ,'fk_c_exp_tax_cat'=>array('type'=>'integer','index'=>true) + ,'fk_range'=>array('type'=>'integer','index'=>true) + ,'coef'=>array('type'=>'double') + ,'offset'=>array('type'=>'double') + ); + + /** + * Constructor + * + * @param DoliDB $db Database handler + */ + public function __construct(DoliDB &$db) + { + global $conf; + + parent::__construct($db); + parent::init(); + + $this->errors = array(); + } + + + /** + * Return expense categories in array + * + * @param int $mode 1=only active; 2=only inactive; other value return all + * @return array of category + */ + public static function getTaxCategories($mode=1) + { + global $db; + + $categories = array(); + + $sql = 'SELECT rowid, label, entity, active'; + $sql.= ' FROM '.MAIN_DB_PREFIX.'c_exp_tax_cat'; + $sql.= ' WHERE entity IN (0,'. getEntity('').')'; + if ($mode == 1) $sql.= ' AND active = 1'; + elseif ($mode == 2) $sql.= 'AND active = 0'; + + dol_syslog(get_called_class().'::getTaxCategories sql='.$sql, LOG_DEBUG); + $resql = $db->query($sql); + if ($resql) + { + while ($obj = $db->fetch_object($resql)) + { + $categories[$obj->rowid] = $obj; + } + } + else + { + dol_print_error($db); + } + + return $categories; + } + + public static function getRangeByUser(User $userauthor, $fk_c_exp_tax_cat) + { + $default_range = (int) $userauthor->default_range; // if not defined, then 0 + $ranges = self::getRangesByCategory($fk_c_exp_tax_cat); + + // substract 1 because array start from 0 + if (empty($ranges) || !isset($ranges[$default_range-1])) return false; + else return $ranges[$default_range-1]; + } + + /** + * Return an array of ranges for a category + * + * @param int $fk_c_exp_tax_cat category id + * @param int $active active + * @return array + */ + public static function getRangesByCategory($fk_c_exp_tax_cat, $active=1) + { + global $db; + + $ranges = array(); + + $sql = 'SELECT r.rowid FROM '.MAIN_DB_PREFIX.'c_exp_tax_range r'; + if ($active) $sql.= ' INNER JOIN '.MAIN_DB_PREFIX.'c_exp_tax_cat c ON (r.fk_c_exp_tax_cat = c.rowid)'; + $sql.= ' WHERE r.fk_c_exp_tax_cat = '.$fk_c_exp_tax_cat; + if ($active) $sql.= ' AND r.active = 1 AND c.active = 1'; + $sql.= ' ORDER BY r.range_ik'; + + dol_syslog(get_called_class().'::getRangesByCategory sql='.$sql, LOG_DEBUG); + $resql = $db->query($sql); + if ($resql) + { + $num = $db->num_rows($resql); + if ($num > 0) + { + while ($obj = $db->fetch_object($resql)) + { + $object = new ExpenseReportIk($db); + $object->fetch($obj->rowid); + + $ranges[] = $object; + } + } + } + else + { + dol_print_error($db); + } + + return $ranges; + } + + /** + * Return an array of ranges grouped by category + * + * @return array + */ + public static function getAllRanges() + { + global $db; + + $ranges = array(); + + $sql = ' SELECT r.rowid, r.fk_c_exp_tax_cat, r.range_ik, c.label, i.rowid as fk_expense_ik, r.active as range_active, c.active as cat_active'; + $sql.= ' FROM '.MAIN_DB_PREFIX.'c_exp_tax_range r'; + $sql.= ' INNER JOIN '.MAIN_DB_PREFIX.'c_exp_tax_cat c ON (r.fk_c_exp_tax_cat = c.rowid)'; + $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'expensereport_ik i ON (r.rowid = i.fk_range)'; + $sql.= ' WHERE r.entity IN (0, '. getEntity('').')'; + $sql.= ' ORDER BY r.fk_c_exp_tax_cat, r.range_ik'; + + dol_syslog(get_called_class().'::getAllRanges sql='.$sql, LOG_DEBUG); + $resql = $db->query($sql); + if ($resql) + { + while ($obj = $db->fetch_object($resql)) + { + $ik = new ExpenseReportIk($db); + if ($obj->fk_expense_ik > 0) $ik->fetch($obj->fk_expense_ik); + $obj->ik = $ik; + + if (!isset($ranges[$obj->fk_c_exp_tax_cat])) $ranges[$obj->fk_c_exp_tax_cat] = array('label' => $obj->label, 'active' => $obj->cat_active, 'ranges' => array()); + $ranges[$obj->fk_c_exp_tax_cat]['ranges'][] = $obj; + } + } + else + { + dol_print_error($db); + } + + return $ranges; + } + + /** + * Return the max number of range by a category + * + * @param int $default_c_exp_tax_cat id + * @return int + */ + public static function getMaxRangeNumber($default_c_exp_tax_cat=0) + { + global $db,$conf; + + $sql = 'SELECT MAX(counted) as nbRange FROM ('; + $sql.= ' SELECT COUNT(*) as counted'; + $sql.= ' FROM '.MAIN_DB_PREFIX.'c_exp_tax_range r'; + $sql.= ' WHERE r.entity IN (0, '.$conf->entity.')'; + if ($default_c_exp_tax_cat > 0) $sql .= ' AND r.fk_c_exp_tax_cat = '.$default_c_exp_tax_cat; + $sql.= ' GROUP BY r.fk_c_exp_tax_cat'; + $sql .= ') as counts'; + + dol_syslog(get_called_class().'::getMaxRangeNumber sql='.$sql, LOG_DEBUG); + $resql = $db->query($sql); + if ($resql) + { + $obj = $db->fetch_object($resql); + return $obj->nbRange; + } + else + { + dol_print_error($db); + } + + return 0; + } +} diff --git a/htdocs/expensereport/class/expensereport_rule.class.php b/htdocs/expensereport/class/expensereport_rule.class.php new file mode 100644 index 00000000000..f1c5dc7136d --- /dev/null +++ b/htdocs/expensereport/class/expensereport_rule.class.php @@ -0,0 +1,237 @@ + + * Copyright (C) 2017 Pierre-Henry Favre + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file htdocs/expensereport/class/expensereport_ik.class.php + * \ingroup expenseik + * \brief File of class to manage expense ik + */ + +require_once DOL_DOCUMENT_ROOT.'/core/class/coreobject.class.php'; + +/** + * Class to manage inventories + */ +class ExpenseReportRule extends CoreObject +{ + public $element='expenserule'; + public $table_element='expensereport_rules'; + public $fk_element='fk_expense_rule'; + + /** + * date start + * @var date + */ + public $dates; + + /** + * date end + * @var date + */ + public $datee; + + /** + * amount + * @var double + */ + public $amount; + + /** + * restrective + * @var int + */ + public $restrictive; + + /** + * rule for user + * @var int + */ + public $fk_user; + + /** + * rule for group + * @var int + */ + public $fk_usergroup; + + /** + * c_type_fees id + * @var int + */ + public $fk_c_type_fees; + + /** + * code type of expense report + * @var string + */ + public $code_expense_rules_type; + + + /** + * rule for all + * @var int + */ + public $is_for_all; + + /** + * entity + * @var int + */ + public $entity; + + + + /** + * Attribute object linked with database + * @var array + */ + protected $fields=array( + 'rowid'=>array('type'=>'integer','index'=>true) + ,'dates'=>array('type'=>'date') + ,'datee'=>array('type'=>'date') + ,'amount'=>array('type'=>'double') + ,'restrictive'=>array('type'=>'integer') + ,'fk_user'=>array('type'=>'integer') + ,'fk_usergroup'=>array('type'=>'integer') + ,'fk_c_type_fees'=>array('type'=>'integer') + ,'code_expense_rules_type'=>array('type'=>'string') + ,'is_for_all'=>array('type'=>'integer') + ,'entity'=>array('type'=>'integer') + ); + + /** + * Constructor + * + * @param DoliDB $db Database handler + */ + public function __construct(DoliDB &$db) + { + global $conf; + + parent::__construct($db); + parent::init(); + + $this->errors = array(); + } + + /** + * Return all rules or filtered by something + * + * @param int $fk_c_type_fees type of expense + * @param date $date date of expense + * @param type $fk_user user of expense + * @return array \ExpenseReportRule + */ + public static function getAllRule($fk_c_type_fees='', $date='', $fk_user='') + { + global $db; + + $rules = array(); + $sql = 'SELECT er.rowid'; + $sql.= ' FROM '.MAIN_DB_PREFIX.'expensereport_rules er'; + $sql.= ' WHERE er.entity IN (0,'. getEntity('').')'; + if (!empty($fk_c_type_fees)) + { + $sql.= ' AND er.fk_c_type_fees IN (-1, '.$fk_c_type_fees.')'; + } + if (!empty($date)) + { + $date = dol_print_date($date, '%Y-%m-%d'); + $sql.= ' AND er.dates <= \''.$date.'\''; + $sql.= ' AND er.datee >= \''.$date.'\''; + } + if ($fk_user > 0) + { + $sql.= ' AND (er.is_for_all = 1'; + $sql.= ' OR er.fk_user = '.$fk_user; + $sql.= ' OR er.fk_usergroup IN (SELECT ugu.fk_usergroup FROM '.MAIN_DB_PREFIX.'usergroup_user ugu WHERE ugu.fk_user = '.$fk_user.') )'; + } + $sql.= ' ORDER BY er.is_for_all, er.fk_usergroup, er.fk_user'; + + dol_syslog("ExpenseReportRule::getAllRule sql=".$sql); + + $resql = $db->query($sql); + if ($resql) + { + while ($obj = $db->fetch_object($resql)) + { + $rule = new ExpenseReportRule($db); + if ($rule->fetch($obj->rowid) > 0) $rules[$rule->id] = $rule; + else dol_print_error($db); + } + } + else + { + dol_print_error($db); + } + + return $rules; + } + + /** + * Return the label of group for the current object + * + * @return string + */ + public function getGroupLabel() + { + include_once DOL_DOCUMENT_ROOT.'/user/class/usergroup.class.php'; + + if ($this->fk_usergroup > 0) + { + $group = new UserGroup($this->db); + if ($group->fetch($this->fk_usergroup) > 0) + { + return $group->nom; + } + else + { + $this->error = $group->error; + $this->errors[] = $this->error; + } + } + + return ''; + } + + /** + * Return the name of user for the current object + * + * @return string + */ + public function getUserName() + { + include_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; + + if ($this->fk_user > 0) + { + $u = new User($this->db); + if ($u->fetch($this->fk_user) > 0) + { + return dolGetFirstLastname($u->firstname, $u->lastname); + } + else + { + $this->error = $u->error; + $this->errors[] = $this->error; + } + } + + return ''; + } +} diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php index e0a9df80b3f..5d57daa7677 100644 --- a/htdocs/expensereport/list.php +++ b/htdocs/expensereport/list.php @@ -488,7 +488,7 @@ if ($resql) $align=$extrafields->getAlignFlag($key); $sortonfield = "ef.".$key; if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/exports/class/export.class.php b/htdocs/exports/class/export.class.php index 4c9d6eaabb4..b1b9b42adc5 100644 --- a/htdocs/exports/class/export.class.php +++ b/htdocs/exports/class/export.class.php @@ -127,20 +127,23 @@ class Export // Test if permissions are ok $bool=true; - foreach($module->export_permission[$r] as $val) + if (isset($module->export_permission)) { - $perm=$val; - //print_r("$perm[0]-$perm[1]-$perm[2]
    "); - if (! empty($perm[2])) - { - $bool=$user->rights->{$perm[0]}->{$perm[1]}->{$perm[2]}; - } - else - { - $bool=$user->rights->{$perm[0]}->{$perm[1]}; - } - if ($perm[0]=='user' && $user->admin) $bool=true; - if (! $bool) break; + foreach($module->export_permission[$r] as $val) + { + $perm=$val; + //print_r("$perm[0]-$perm[1]-$perm[2]
    "); + if (! empty($perm[2])) + { + $bool=$user->rights->{$perm[0]}->{$perm[1]}->{$perm[2]}; + } + else + { + $bool=$user->rights->{$perm[0]}->{$perm[1]}; + } + if ($perm[0]=='user' && $user->admin) $bool=true; + if (! $bool) break; + } } //print $bool." $perm[0]"."
    "; diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index 909db84fcb4..49c60078666 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -591,7 +591,7 @@ if ($step == 2 && $datatoexport) $i++; $entity=(! empty($objexport->array_export_entities[0][$code])?$objexport->array_export_entities[0][$code]:$objexport->array_export_icon[0]); - $entityicon=(! empty($entitytoicon[$entity])?$entitytoicon[$entity]:$entity); + $entityicon=strtolower(! empty($entitytoicon[$entity])?$entitytoicon[$entity]:$entity); $entitylang=(! empty($entitytolang[$entity])?$entitytolang[$entity]:$entity); print '
    '; @@ -783,7 +783,7 @@ if ($step == 3 && $datatoexport) $i++; $entity=(! empty($objexport->array_export_entities[0][$code])?$objexport->array_export_entities[0][$code]:$objexport->array_export_icon[0]); - $entityicon=(! empty($entitytoicon[$entity])?$entitytoicon[$entity]:$entity); + $entityicon=strtolower(! empty($entitytoicon[$entity])?$entitytoicon[$entity]:$entity); $entitylang=(! empty($entitytolang[$entity])?$entitytolang[$entity]:$entity); print ''; @@ -978,7 +978,7 @@ if ($step == 4 && $datatoexport) print '
    '; diff --git a/htdocs/fichinter/card.php b/htdocs/fichinter/card.php index 953b48a8adf..8035c2a2e98 100644 --- a/htdocs/fichinter/card.php +++ b/htdocs/fichinter/card.php @@ -1577,7 +1577,7 @@ else if ($id > 0 || ! empty($ref)) { if ($action != 'editdescription' && ($action != 'presend')) { // Validate - if ($object->statut == 0 && (count($object->lines) > 0 || !empty($conf->global->FICHINTER_DISABLE_DETAILS))) { + if ($object->statut == Fichinter::STATUS_DRAFT && (count($object->lines) > 0 || !empty($conf->global->FICHINTER_DISABLE_DETAILS))) { if ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->ficheinter->creer) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->ficheinter->ficheinter_advance->validate)) { print ''; @@ -1585,7 +1585,7 @@ else if ($id > 0 || ! empty($ref)) } // Modify - if ($object->statut == 1 && ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->ficheinter->creer) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->ficheinter->ficheinter_advance->unvalidate))) + if ($object->statut == Fichinter::STATUS_VALIDATED && ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->ficheinter->creer) || (!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $user->rights->ficheinter->ficheinter_advance->unvalidate))) { print '
    '; if (empty($conf->global->FICHINTER_DISABLE_DETAILS)) print $langs->trans("Modify"); @@ -1594,7 +1594,7 @@ else if ($id > 0 || ! empty($ref)) } // Send - if ($object->statut > 0) + if ($object->statut > Fichinter::STATUS_DRAFT) { if (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->ficheinter->ficheinter_advance->send) { @@ -1606,10 +1606,10 @@ else if ($id > 0 || ! empty($ref)) // Event agenda if (! empty($conf->global->FICHINTER_ADDLINK_TO_EVENT)) { - if (! empty($conf->agenda->enabled) && $object->statut > 0) + if (! empty($conf->agenda->enabled) && $object->statut > Fichinter::STATUS_DRAFT) { $langs->load("agenda"); - if ($object->statut < 2) + if ($object->statut < Fichinter::STATUS_BILLED) { if ($user->rights->agenda->myactions->create) print ''; else print ''; @@ -1618,10 +1618,10 @@ else if ($id > 0 || ! empty($ref)) } // Proposal - if (! empty($conf->propal->enabled) && $object->statut > 0) + if (! empty($conf->propal->enabled) && $object->statut > Fichinter::STATUS_DRAFT) { $langs->load("propal"); - if ($object->statut < 2) + if ($object->statut < Fichinter::STATUS_BILLED) { if ($user->rights->propal->creer) print ''; else print ''; @@ -1629,10 +1629,10 @@ else if ($id > 0 || ! empty($ref)) } // Invoicing - if (! empty($conf->facture->enabled) && $object->statut > 0) + if (! empty($conf->facture->enabled) && $object->statut > Fichinter::STATUS_DRAFT) { $langs->load("bills"); - if ($object->statut < 2) + if ($object->statut < Fichinter::STATUS_BILLED) { if ($user->rights->facture->creer) print ''; else print ''; @@ -1640,7 +1640,7 @@ else if ($id > 0 || ! empty($ref)) if (! empty($conf->global->FICHINTER_CLASSIFY_BILLED)) // Option deprecated. In a future, billed must be managed with a dedicated field to 0 or 1 { - if ($object->statut != 2) + if ($object->statut != Fichinter::STATUS_BILLED) { print ''; } @@ -1652,7 +1652,7 @@ else if ($id > 0 || ! empty($ref)) } // Done - if (empty($conf->global->FICHINTER_CLASSIFY_BILLED) && $object->statut > 0 && $object->statut < 3) + if (empty($conf->global->FICHINTER_CLASSIFY_BILLED) && $object->statut > Fichinter::STATUS_DRAFT && $object->statut < Fichinter::STATUS_CLOSED) { print ''; } @@ -1663,7 +1663,7 @@ else if ($id > 0 || ! empty($ref)) } // Delete - if (($object->statut == 0 && $user->rights->ficheinter->creer) || $user->rights->ficheinter->supprimer) + if (($object->statut == Fichinter::STATUS_DRAFT && $user->rights->ficheinter->creer) || $user->rights->ficheinter->supprimer) { print ''; diff --git a/htdocs/fichinter/class/fichinter.class.php b/htdocs/fichinter/class/fichinter.class.php index 6142d87de7a..eaf10c357e4 100644 --- a/htdocs/fichinter/class/fichinter.class.php +++ b/htdocs/fichinter/class/fichinter.class.php @@ -39,7 +39,7 @@ class Fichinter extends CommonObject public $fk_element='fk_fichinter'; public $table_element_line='fichinterdet'; public $picto = 'intervention'; - + /** * {@inheritdoc} */ @@ -62,6 +62,23 @@ class Fichinter extends CommonObject var $lines = array(); + /** + * Draft status + */ + const STATUS_DRAFT = 0; + /** + * Validated status + */ + const STATUS_VALIDATED = 1; + /** + * Billed + */ + const STATUS_BILLED = 2; + /** + * Closed + */ + const STATUS_CLOSED = 3; + /** * Constructor * @@ -361,7 +378,7 @@ class Fichinter extends CommonObject $this->fk_contrat = $obj->fk_contrat; $this->user_creation= $obj->fk_user_author; - + $this->extraparams = (array) json_decode($obj->extraparams, true); if ($this->statut == 0) $this->brouillon = 1; @@ -546,23 +563,23 @@ class Fichinter extends CommonObject */ function getAmount() { global $db; - + $amount = 0; - + $this->author = new User($db); $this->author->fetch($this->user_creation); - + $thm = $this->author->thm; - + foreach($this->lines as &$line) { - + $amount+=$line->qty * $thm; - + } - + return $amount; } - + /** * Returns the label status * @@ -599,7 +616,7 @@ class Fichinter extends CommonObject return ''.$langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts[$statut]),$this->statuts_logo[$statut]); if ($mode == 6) return ''.$langs->trans($this->statuts[$statut]).' '.img_picto($langs->trans($this->statuts[$statut]),$this->statuts_logo[$statut]); - + return ''; } @@ -949,7 +966,7 @@ class Fichinter extends CommonObject return -2; } - + /** * Load an object from its id and create a new one in database @@ -1001,7 +1018,7 @@ class Fichinter extends CommonObject $this->date_creation = ''; $this->date_validation = ''; $this->ref_client = ''; - + // Create clone $result=$this->create($user); if ($result < 0) $error++; @@ -1013,7 +1030,7 @@ class Fichinter extends CommonObject { $this->addline($user, $this->id, $line->desc, $line->datei, $line->duration); } - + // Hook of thirdparty module if (is_object($hookmanager)) { @@ -1043,8 +1060,8 @@ class Fichinter extends CommonObject return -1; } } - - + + /** * Adding a line of intervention into data base * diff --git a/htdocs/fichinter/list.php b/htdocs/fichinter/list.php index 3acef343aa9..d3d163da7ac 100644 --- a/htdocs/fichinter/list.php +++ b/htdocs/fichinter/list.php @@ -253,6 +253,13 @@ if ($resql) $arrayofselected=is_array($toselect)?$toselect:array(); + if ($socid > 0) + { + $soc = new Societe($db); + $soc->fetch($socid); + if (empty($search_company)) $search_company = $soc->name; + } + $param=''; if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; @@ -410,12 +417,12 @@ if ($resql) print "
    '; print ''; - print ''; + print ''; print ''; print '
    '.$langs->trans("LastSupplierOrders",($num<$MAXLIST?"":$MAXLIST)).''.$langs->trans("AllOrders").' '.$num.''.$langs->trans("AllOrders").' '.$num.''.img_picto($langs->trans("Statistics"),'stats').'
    '; print '
    '; print ''; - print_liste_field_titre($langs->trans('Ref'), 'orderstoinvoice.php', 'c.ref', '', '&socid=' . $socid, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans('RefSupplier'), 'orderstoinvoice.php', 'c.ref_supplier', '', '&socid=' . $socid, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans('OrderDate'), 'orderstoinvoice.php', 'c.date_commande', '', '&socid=' . $socid, 'align="center"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans('DeliveryDate'), 'orderstoinvoice.php', 'c.date_livraison', '', '&socid=' . $socid, 'align="center"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans('Status'), '', '', '', '', 'align="right"'); - print_liste_field_titre($langs->trans('GenerateBill'), '', '', '', '', 'align="center"'); + print_liste_field_titre('Ref', 'orderstoinvoice.php', 'c.ref', '', '&socid=' . $socid, '', $sortfield, $sortorder); + print_liste_field_titre('RefSupplier', 'orderstoinvoice.php', 'c.ref_supplier', '', '&socid=' . $socid, '', $sortfield, $sortorder); + print_liste_field_titre('OrderDate', 'orderstoinvoice.php', 'c.date_commande', '', '&socid=' . $socid, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre('DeliveryDate', 'orderstoinvoice.php', 'c.date_livraison', '', '&socid=' . $socid, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre('Status', '', '', '', '', 'align="right"'); + print_liste_field_titre('GenerateBill', '', '', '', '', 'align="center"'); print "\n"; // Lignes des champs de filtre diff --git a/htdocs/fourn/contact.php b/htdocs/fourn/contact.php index f9188c3c4dd..584b053b3ba 100644 --- a/htdocs/fourn/contact.php +++ b/htdocs/fourn/contact.php @@ -98,11 +98,11 @@ if ($result) print '
    '; print ''; - print_liste_field_titre($langs->trans("Lastname"),$_SERVER["PHP_SELF"],"p.name", $begin, "", "", $sortfield,$sortorder); - print_liste_field_titre($langs->trans("Firstname"),$_SERVER["PHP_SELF"],"p.firstname", $begin, "", "", $sortfield,$sortorder); - print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom", $begin, "", "", $sortfield,$sortorder); - print_liste_field_titre($langs->trans("Email")); - print_liste_field_titre($langs->trans("Phone")); + print_liste_field_titre("Lastname",$_SERVER["PHP_SELF"],"p.name", $begin, "", "", $sortfield,$sortorder); + print_liste_field_titre("Firstname",$_SERVER["PHP_SELF"],"p.firstname", $begin, "", "", $sortfield,$sortorder); + print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom", $begin, "", "", $sortfield,$sortorder); + print_liste_field_titre("Email"); + print_liste_field_titre("Phone"); print "\n"; $var=True; @@ -111,7 +111,7 @@ if ($result) { $obj = $db->fetch_object($result); - + print ''; diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index ba26a4117fd..cdc6419d4a9 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -274,7 +274,7 @@ if (empty($reshook)) } // Set supplier ref - if ($action == 'setref_supplier' && $user->rights->fournisseur->commande->creer) + if ($action == 'setref_supplier' && $user->rights->fournisseur->facture->creer) { $object->ref_supplier = GETPOST('ref_supplier', 'alpha'); @@ -302,13 +302,13 @@ if (empty($reshook)) } // payments conditions - if ($action == 'setconditions' && $user->rights->fournisseur->commande->creer) + if ($action == 'setconditions' && $user->rights->fournisseur->facture->creer) { $result=$object->setPaymentTerms(GETPOST('cond_reglement_id','int')); } // payment mode - else if ($action == 'setmode' && $user->rights->fournisseur->commande->creer) + else if ($action == 'setmode' && $user->rights->fournisseur->facture->creer) { $result = $object->setPaymentMethods(GETPOST('mode_reglement_id','int')); } @@ -1996,8 +1996,8 @@ else $morehtmlref='
    '; // Ref supplier - $morehtmlref.=$form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->commande->creer, 'string', '', 0, 1); - $morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->commande->creer, 'string', '', null, null, '', 1); + $morehtmlref.=$form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->facture->creer, 'string', '', 0, 1); + $morehtmlref.=$form->editfieldval("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->facture->creer, 'string', '', null, null, '', 1); // Thirdparty $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1); // Project @@ -2005,7 +2005,7 @@ else { $langs->load("projects"); $morehtmlref.='
    '.$langs->trans('Project') . ' '; - if ($user->rights->fournisseur->commande->creer) + if ($user->rights->fournisseur->facture->creer) { if ($action != 'classify') $morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; diff --git a/htdocs/fourn/facture/impayees.php b/htdocs/fourn/facture/impayees.php index cb562edf9ec..7ad76d4426b 100644 --- a/htdocs/fourn/facture/impayees.php +++ b/htdocs/fourn/facture/impayees.php @@ -189,15 +189,15 @@ if ($user->rights->fournisseur->facture->lire) print '
    '; print ''; - print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"f.rowid","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("RefSupplier"),$_SERVER["PHP_SELF"],"f.ref_supplier","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"f.datef","",$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DateDue"),$_SERVER["PHP_SELF"],"f.date_lim_reglement","",$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("AmountHT"),$_SERVER["PHP_SELF"],"f.total_ht","",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("AmountTTC"),$_SERVER["PHP_SELF"],"f.total_ttc","",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("AlreadyPaid"),$_SERVER["PHP_SELF"],"am","",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"fk_statut,paye,am","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"f.rowid","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("RefSupplier",$_SERVER["PHP_SELF"],"f.ref_supplier","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"f.datef","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("DateDue",$_SERVER["PHP_SELF"],"f.date_lim_reglement","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("AmountHT",$_SERVER["PHP_SELF"],"f.total_ht","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("AmountTTC",$_SERVER["PHP_SELF"],"f.total_ttc","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("AlreadyPaid",$_SERVER["PHP_SELF"],"am","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"fk_statut,paye,am","",$param,'align="right"',$sortfield,$sortorder); print "\n"; // Lines with filter fields @@ -235,7 +235,7 @@ if ($user->rights->fournisseur->facture->lire) $facturestatic->statut = $objp->fk_statut; $facturestatic->date_echeance = $db->jdate($objp->datelimite); - + print ''; $classname = "impayee"; diff --git a/htdocs/fourn/facture/list.php b/htdocs/fourn/facture/list.php index 3fadb82d067..32d91e9f397 100644 --- a/htdocs/fourn/facture/list.php +++ b/htdocs/fourn/facture/list.php @@ -427,6 +427,7 @@ if ($resql) { $soc = new Societe($db); $soc->fetch($socid); + if (empty($search_societe)) $search_societe = $soc->name; } $param='&socid='.$socid; @@ -493,7 +494,7 @@ if ($resql) if (! GETPOST('cancel')) { - $objecttmp=new FactureFourn($db); + $objecttmp=new FactureFournisseur($db); $listofselectedid=array(); $listofselectedthirdparties=array(); $listofselectedref=array(); @@ -892,7 +893,7 @@ if ($resql) $align=$extrafields->getAlignFlag($key); $sortonfield = "ef.".$key; if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/fourn/facture/paiement.php b/htdocs/fourn/facture/paiement.php index 460eee8c19b..0b401e35fd5 100644 --- a/htdocs/fourn/facture/paiement.php +++ b/htdocs/fourn/facture/paiement.php @@ -850,14 +850,14 @@ if (empty($action)) print "\n"; print ''; - print_liste_field_titre($langs->trans('RefPayment'),$_SERVER["PHP_SELF"],'p.rowid','',$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('Date'),$_SERVER["PHP_SELF"],'dp','',$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('ThirdParty'),$_SERVER["PHP_SELF"],'s.nom','',$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('Type'),$_SERVER["PHP_SELF"],'c.libelle','',$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Numero"),$_SERVER["PHP_SELF"],"p.num_paiement","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans('Account'),$_SERVER["PHP_SELF"],'ba.label','',$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('Amount'),$_SERVER["PHP_SELF"],'p.amount','',$param,'align="right"',$sortfield,$sortorder); - //print_liste_field_titre($langs->trans('Invoice'),$_SERVER["PHP_SELF"],'ref_supplier','',$param,'',$sortfield,$sortorder); + print_liste_field_titre('RefPayment',$_SERVER["PHP_SELF"],'p.rowid','',$param,'',$sortfield,$sortorder); + print_liste_field_titre('Date',$_SERVER["PHP_SELF"],'dp','',$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre('ThirdParty',$_SERVER["PHP_SELF"],'s.nom','',$param,'',$sortfield,$sortorder); + print_liste_field_titre('Type',$_SERVER["PHP_SELF"],'c.libelle','',$param,'',$sortfield,$sortorder); + print_liste_field_titre("Numero",$_SERVER["PHP_SELF"],"p.num_paiement","",$param,"",$sortfield,$sortorder); + print_liste_field_titre('Account',$_SERVER["PHP_SELF"],'ba.label','',$param,'',$sortfield,$sortorder); + print_liste_field_titre('Amount',$_SERVER["PHP_SELF"],'p.amount','',$param,'align="right"',$sortfield,$sortorder); + //print_liste_field_titre('Invoice',$_SERVER["PHP_SELF"],'ref_supplier','',$param,'',$sortfield,$sortorder); print_liste_field_titre(''); print "\n"; diff --git a/htdocs/fourn/product/list.php b/htdocs/fourn/product/list.php index 33659b87639..5707c0bff30 100644 --- a/htdocs/fourn/product/list.php +++ b/htdocs/fourn/product/list.php @@ -234,13 +234,13 @@ if ($resql) // Lignes des titres print ''; - print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"], "p.ref",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("RefSupplierShort"),$_SERVER["PHP_SELF"], "ppf.ref_fourn",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"], "p.label",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Supplier"),$_SERVER["PHP_SELF"], "ppf.fk_soc",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("BuyingPrice"),$_SERVER["PHP_SELF"], "ppf.price",$param,"",'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("QtyMin"),$_SERVER["PHP_SELF"], "ppf.quantity",$param,"",'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("UnitPrice"),$_SERVER["PHP_SELF"], "ppf.unitprice",$param,"",'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Ref",$_SERVER["PHP_SELF"], "p.ref",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("RefSupplierShort",$_SERVER["PHP_SELF"], "ppf.ref_fourn",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("Label",$_SERVER["PHP_SELF"], "p.label",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("Supplier",$_SERVER["PHP_SELF"], "ppf.fk_soc",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("BuyingPrice",$_SERVER["PHP_SELF"], "ppf.price",$param,"",'align="right"',$sortfield,$sortorder); + print_liste_field_titre("QtyMin",$_SERVER["PHP_SELF"], "ppf.quantity",$param,"",'align="right"',$sortfield,$sortorder); + print_liste_field_titre("UnitPrice",$_SERVER["PHP_SELF"], "ppf.unitprice",$param,"",'align="right"',$sortfield,$sortorder); print_liste_field_titre('',$_SERVER["PHP_SELF"]); print "\n"; diff --git a/htdocs/holiday/card.php b/htdocs/holiday/card.php index e50c880c0ee..8ee0fb64b40 100644 --- a/htdocs/holiday/card.php +++ b/htdocs/holiday/card.php @@ -60,7 +60,7 @@ if ($action == 'create') $object = new Holiday($db); // If no right to create a request - $fuserid = GETPOST('fuserid'); + $fuserid = GETPOST('fuserid','int'); if (($fuserid == $user->id && empty($user->rights->holiday->write)) || ($fuserid != $user->id && empty($user->rights->holiday->write_all))) { $error++; @@ -118,7 +118,7 @@ if ($action == 'create') } // Check if there is already holiday for this period - $verifCP = $object->verifDateHolidayCP($userID, $date_debut, $date_fin, $halfday); + $verifCP = $object->verifDateHolidayCP($fuserid, $date_debut, $date_fin, $halfday); if (! $verifCP) { setEventMessages($langs->trans("alreadyCPexist"), null, 'errors'); @@ -144,11 +144,9 @@ if ($action == 'create') $result = 0; - $result = 0; - if (! $error) { - $object->fk_user = $userid; + $object->fk_user = $fuserid; $object->description = $description; $object->date_debut = $date_debut; $object->date_fin = $date_fin; @@ -157,10 +155,15 @@ if ($action == 'create') $object->fk_type = $type; $result = $object->create($user); + if ($result <= 0) + { + setEventMessages($object->error, $object->errors, 'errors'); + $error++; + } } // If no SQL error we redirect to the request card - if (! $error && $result > 0) + if (! $error) { $db->commit(); @@ -834,7 +837,7 @@ if (empty($id) || $action == 'add' || $action == 'request' || $action == 'create print $form->select_dolusers($fuserid, 'useridbis', 0, '', 1, '', '', 0, 0, 0, '', 0, '', 'maxwidth300'); print ''; } - else print $form->select_dolusers(GETPOST('fuserid')?GETPOST('fuserid'):$user->id,'fuserid',0,'',0); + else print $form->select_dolusers(GETPOST('fuserid','int')?GETPOST('fuserid','int'):$user->id,'fuserid',0,'',0); print ''; print ''; diff --git a/htdocs/holiday/class/holiday.class.php b/htdocs/holiday/class/holiday.class.php index 9973223ba0f..4815bee4b00 100644 --- a/htdocs/holiday/class/holiday.class.php +++ b/htdocs/holiday/class/holiday.class.php @@ -125,9 +125,9 @@ class Holiday extends CommonObject $now=dol_now(); // Check parameters - if (empty($this->fk_user) || ! is_numeric($this->fk_user) || $this->fk_user < 0) { $this->error="ErrorBadParameter"; return -1; } - if (empty($this->fk_validator) || ! is_numeric($this->fk_validator) || $this->fk_validator < 0) { $this->error="ErrorBadParameter"; return -1; } - if (empty($this->fk_type) || ! is_numeric($this->fk_type) || $this->fk_type < 0) { $this->error="ErrorBadParameter"; return -1; } + if (empty($this->fk_user) || ! is_numeric($this->fk_user) || $this->fk_user < 0) { $this->error="ErrorBadParameterFkUser"; return -1; } + if (empty($this->fk_validator) || ! is_numeric($this->fk_validator) || $this->fk_validator < 0) { $this->error="ErrorBadParameterFkValidator"; return -1; } + if (empty($this->fk_type) || ! is_numeric($this->fk_type) || $this->fk_type < 0) { $this->error="ErrorBadParameterFkType"; return -1; } // Insert request $sql = "INSERT INTO ".MAIN_DB_PREFIX."holiday("; diff --git a/htdocs/holiday/define_holiday.php b/htdocs/holiday/define_holiday.php index 92f1d4cafc6..66e490ae420 100644 --- a/htdocs/holiday/define_holiday.php +++ b/htdocs/holiday/define_holiday.php @@ -16,7 +16,7 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see . -*/ + */ /** * File that defines the balance of paid holiday of users. @@ -265,7 +265,7 @@ else print ''; print ''; - print_liste_field_titre($langs->trans('Employee'), $_SERVER["PHP_SELF"]); + print_liste_field_titre('Employee', $_SERVER["PHP_SELF"]); if (count($typeleaves)) { foreach($typeleaves as $key => $val) diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php index 9048ed9a8b8..8541454e549 100644 --- a/htdocs/holiday/list.php +++ b/htdocs/holiday/list.php @@ -387,15 +387,15 @@ print ''; print "\n"; print ''; -print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"cp.rowid","",$param,'',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("DateCreateCP"),$_SERVER["PHP_SELF"],"cp.date_create","",$param,'align="center"',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("Employee"),$_SERVER["PHP_SELF"],"cp.fk_user","",$param,'',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("ValidatorCP"),$_SERVER["PHP_SELF"],"cp.fk_validator","",$param,'',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],'','',$param,'',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("Duration"),$_SERVER["PHP_SELF"],'','',$pram,'align="right"',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("DateDebCP"),$_SERVER["PHP_SELF"],"cp.date_debut","",$param,'align="center"',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("DateFinCP"),$_SERVER["PHP_SELF"],"cp.date_fin","",$param,'align="center"',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"cp.statut","",$param,'align="right"',$sortfield,$sortorder); +print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"cp.rowid","",$param,'',$sortfield,$sortorder); +print_liste_field_titre("DateCreateCP",$_SERVER["PHP_SELF"],"cp.date_create","",$param,'align="center"',$sortfield,$sortorder); +print_liste_field_titre("Employee",$_SERVER["PHP_SELF"],"cp.fk_user","",$param,'',$sortfield,$sortorder); +print_liste_field_titre("ValidatorCP",$_SERVER["PHP_SELF"],"cp.fk_validator","",$param,'',$sortfield,$sortorder); +print_liste_field_titre("Type",$_SERVER["PHP_SELF"],'','',$param,'',$sortfield,$sortorder); +print_liste_field_titre("Duration",$_SERVER["PHP_SELF"],'','',$pram,'align="right"',$sortfield,$sortorder); +print_liste_field_titre("DateDebCP",$_SERVER["PHP_SELF"],"cp.date_debut","",$param,'align="center"',$sortfield,$sortorder); +print_liste_field_titre("DateFinCP",$_SERVER["PHP_SELF"],"cp.date_fin","",$param,'align="center"',$sortfield,$sortorder); +print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"cp.statut","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'',$param,'',$sortfield,$sortorder,'maxwidthsearch '); print "\n"; diff --git a/htdocs/holiday/view_log.php b/htdocs/holiday/view_log.php index 17b374e5f4a..69bd6b6a190 100644 --- a/htdocs/holiday/view_log.php +++ b/htdocs/holiday/view_log.php @@ -91,14 +91,14 @@ print ''; print ''; print ''; -print_liste_field_titre($langs->trans('ID')); -print_liste_field_titre($langs->trans('Date'), $_SERVER["PHP_SELF"], '', '', '', 'align="center"'); -print_liste_field_titre($langs->trans('ActionByCP')); -print_liste_field_titre($langs->trans('UserUpdateCP')); -print_liste_field_titre($langs->trans('Description')); -print_liste_field_titre($langs->trans('Type')); -print_liste_field_titre($langs->trans('PrevSoldeCP'), $_SERVER["PHP_SELF"], '', '', '', 'align="right"'); -print_liste_field_titre($langs->trans('NewSoldeCP'), $_SERVER["PHP_SELF"], '', '', '', 'align="right"'); +print_liste_field_titre('ID'); +print_liste_field_titre('Date', $_SERVER["PHP_SELF"], '', '', '', 'align="center"'); +print_liste_field_titre('ActionByCP'); +print_liste_field_titre('UserUpdateCP'); +print_liste_field_titre('Description'); +print_liste_field_titre('Type'); +print_liste_field_titre('PrevSoldeCP', $_SERVER["PHP_SELF"], '', '', '', 'align="right"'); +print_liste_field_titre('NewSoldeCP', $_SERVER["PHP_SELF"], '', '', '', 'align="right"'); print ''; diff --git a/htdocs/hrm/admin/admin_establishment.php b/htdocs/hrm/admin/admin_establishment.php index 091a2a15f06..077d76d0d32 100644 --- a/htdocs/hrm/admin/admin_establishment.php +++ b/htdocs/hrm/admin/admin_establishment.php @@ -90,12 +90,12 @@ if ($result) // Load attribute_label print '
    '; - print ""; - print_liste_field_titre($langs->trans("Name"),$_SERVER["PHP_SELF"],"e.name","","","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Address"),$_SERVER["PHP_SELF"],"e.address","","","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Zipcode"),$_SERVER["PHP_SELF"],"e.zip","","","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Town"),$_SERVER["PHP_SELF"],"e.town","","","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"e.status","","",'align="right"',$sortfield,$sortorder); + print ''; + print_liste_field_titre("Name",$_SERVER["PHP_SELF"],"e.name","","","",$sortfield,$sortorder); + print_liste_field_titre("Address",$_SERVER["PHP_SELF"],"e.address","","","",$sortfield,$sortorder); + print_liste_field_titre("Zipcode",$_SERVER["PHP_SELF"],"e.zip","","","",$sortfield,$sortorder); + print_liste_field_titre("Town",$_SERVER["PHP_SELF"],"e.town","","","",$sortfield,$sortorder); + print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"e.status","","",'align="right"',$sortfield,$sortorder); print "\n"; $var=true; @@ -107,12 +107,12 @@ if ($result) while ($i < min($num,$limit)) { $obj = $db->fetch_object($result); - + $establishmentstatic->id=$obj->rowid; $establishmentstatic->name=$obj->name; $establishmentstatic->status=$obj->status; - - + + print ''; print ''; print ''; diff --git a/htdocs/index.php b/htdocs/index.php index 187273ef2b4..0f45cd1eb67 100644 --- a/htdocs/index.php +++ b/htdocs/index.php @@ -118,7 +118,7 @@ $langs->load("contracts"); if (empty($user->societe_id)) { $boxstat.='
    '; - $boxstat.='
    '.$establishmentstatic->getNomUrl(1).''.$obj->address.'
    '; + $boxstat.='
    '; $boxstat.=''; $boxstat.=''; $boxstat.=''; @@ -448,7 +448,7 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire) } // Number of supplier invoices (has paid) -if (! empty($conf->supplier_invoice->enabled) && ! empty($conf->facture->enabled) && $user->rights->facture->lire) +if (! empty($conf->supplier_invoice->enabled) && ! empty($user->rights->fournisseur->facture->lire)) { include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; $board=new FactureFournisseur($db); @@ -541,12 +541,11 @@ if ($showweather) $boxwork.=''; } -$boxwork.=''; } else { $boxwork.=''; - $boxwork.=''; $boxwork.=''; diff --git a/htdocs/install/mysql/data/llx_c_exp_tax_cat.sql b/htdocs/install/mysql/data/llx_c_exp_tax_cat.sql new file mode 100644 index 00000000000..ba6516d81ad --- /dev/null +++ b/htdocs/install/mysql/data/llx_c_exp_tax_cat.sql @@ -0,0 +1,56 @@ +-- Copyright (C) 2017 ATM Consulting +-- Copyright (C) 2017 Pierre-Henry Favre +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- +-- + +-- +-- Ne pas placer de commentaire en fin de ligne, ce fichier est parsé lors +-- de l'install et tous les sigles '--' sont supprimés. +-- + + +-- +-- Categories expense +-- + +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (1,'ExpAutoCat', 1, 0); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (2,'ExpCycloCat', 1, 0); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (3,'ExpMotoCat', 1, 0); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (4,'ExpAuto3CV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (5,'ExpAuto4CV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (6,'ExpAuto5CV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (7,'ExpAuto6CV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (8,'ExpAuto7CV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (9,'ExpAuto8CV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (10,'ExpAuto9CV', 1, 0); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (11,'ExpAuto10CV', 1, 0); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (12,'ExpAuto11CV', 1, 0); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (13,'ExpAuto12CV', 1, 0); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (14,'ExpAuto3PCV', 1, 0); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (15,'ExpAuto4PCV', 1, 0); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (16,'ExpAuto5PCV', 1, 0); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (17,'ExpAuto6PCV', 1, 0); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (18,'ExpAuto7PCV', 1, 0); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (19,'ExpAuto8PCV', 1, 0); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (20,'ExpAuto9PCV', 1, 0); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (21,'ExpAuto10PCV', 1, 0); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (22,'ExpAuto11PCV', 1, 0); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (23,'ExpAuto12PCV', 1, 0); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (24,'ExpAuto13PCV', 1, 0); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (25,'ExpCyclo', 1, 0); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (26,'ExpMoto12CV', 1, 0); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (27,'ExpMoto345CV', 1, 0); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (28,'ExpMoto5PCV', 1, 0); diff --git a/htdocs/install/mysql/data/llx_c_exp_tax_range.sql b/htdocs/install/mysql/data/llx_c_exp_tax_range.sql new file mode 100644 index 00000000000..ad15c320153 --- /dev/null +++ b/htdocs/install/mysql/data/llx_c_exp_tax_range.sql @@ -0,0 +1,47 @@ +-- Copyright (C) 2017 ATM Consulting +-- Copyright (C) 2017 Pierre-Henry Favre +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- +-- + +-- +-- Ne pas placer de commentaire en fin de ligne, ce fichier est parsé lors +-- de l'install et tous les sigles '--' sont supprimés. +-- + + +-- +-- Range expense +-- + +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (1,4, 0, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (2,4, 5000, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (3,4, 20000, 1, 1); + +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (4,5, 0, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (5,5, 5000, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (6,5, 20000, 1, 1); + +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (7,6, 0, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (8,6, 5000, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (9,6, 20000, 1, 1); + +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (10,7, 0, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (11,7, 5000, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (12,7, 20000, 1, 1); + +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (13,8, 0, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (14,8, 5000, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (15,8, 20000, 1, 1); \ No newline at end of file diff --git a/htdocs/install/mysql/data/llx_c_tva.sql b/htdocs/install/mysql/data/llx_c_tva.sql index 3b401abd37d..df533f39db0 100644 --- a/htdocs/install/mysql/data/llx_c_tva.sql +++ b/htdocs/install/mysql/data/llx_c_tva.sql @@ -133,10 +133,13 @@ insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values ( 3 insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values ( 34, 3, '0','0','VAT Rate 0',1); -- INDIA (id country=117) -insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1171, 117, '12.5','0','VAT standard rate',1); -insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1172, 117, '4','0','VAT reduced rate',1); -insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1173, 117, '1','0','VAT super-reduced rate',1); -insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1174, 117, '0','0','VAT Rate 0',1); +insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1171, 117, '12.5','0','VAT standard rate', 0); +insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1172, 117, '4','0','VAT reduced rate', 0); +insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1173, 117, '1','0','VAT super-reduced rate',0); +insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1174, 117, '0','0','VAT Rate 0', 0); + +insert into llx_c_tva(rowid,fk_pays,code,taux,localtax1,localtax1_type,localtax2,localtax2_type,recuperableonly,note,active) values (1176, 117, 'IGST+CGST', 8, 8, '1', 0, '0', 0, 'IGST+CGST', 1); +insert into llx_c_tva(rowid,fk_pays,code,taux,localtax1,localtax1_type,localtax2,localtax2_type,recuperableonly,note,active) values (1177, 117, 'SGST' , 0, 0, '0', 16, '1', 0, 'SGST', 1); -- IRELAND (id country=8) insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (81, 8, '0','0','VAT Rate 0',1); diff --git a/htdocs/install/mysql/data/llx_c_type_fees.sql b/htdocs/install/mysql/data/llx_c_type_fees.sql index 19ee7865e9f..868a210d891 100644 --- a/htdocs/install/mysql/data/llx_c_type_fees.sql +++ b/htdocs/install/mysql/data/llx_c_type_fees.sql @@ -5,6 +5,8 @@ -- Copyright (C) 2004 Guillaume Delecourt -- Copyright (C) 2005-2009 Regis Houssin -- Copyright (C) 2007 Patrick Raguin +-- Copyright (C) 2017 ATM Consulting +-- Copyright (C) 2017 Pierre-Henry Favre -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -33,3 +35,27 @@ insert into llx_c_type_fees (code,label,active) values ('TF_OTHER', 'Other', 1); insert into llx_c_type_fees (code,label,active) values ('TF_TRIP', 'Transportation', 1); insert into llx_c_type_fees (code,label,active) values ('TF_LUNCH', 'Lunch', 1); + +INSERT INTO llx_c_type_fees (code, label, active, accountancy_code) VALUES +('EX_KME', 'ExpLabelKm', 1, '625100'), +('EX_FUE', 'ExpLabelFuelCV', 0, '606150'), +('EX_HOT', 'ExpLabelHotel', 0, '625160'), +('EX_PAR', 'ExpLabelParkingCV', 0, '625160'), +('EX_TOL', 'ExpLabelTollCV', 0, '625160'), +('EX_TAX', 'ExpLabelVariousTaxes', 0, '637800'), +('EX_IND', 'ExpLabelIndemnityTransportationSubscription', 0, '648100'), +('EX_SUM', 'ExpLabelMaintenanceSupply', 0, '606300'), +('EX_SUO', 'ExpLabelOfficeSupplies', 0, '606400'), +('EX_CAR', 'ExpLabelCarRental', 0, '613000'), +('EX_DOC', 'ExpLabelDocumentation', 0, '618100'), +('EX_CUR', 'ExpLabelCustomersReceiving', 0, '625710'), +('EX_OTR', 'ExpLabelOtherReceiving', 0, '625700'), +('EX_POS', 'ExpLabelPostage', 0, '626100'), +('EX_CAM', 'ExpLabelMaintenanceRepairCV', 0, '615300'), +('EX_EMM', 'ExpLabelEmployeesMeal', 0, '625160'), +('EX_GUM', 'ExpLabelGuestsMeal', 0, '625160'), +('EX_BRE', 'ExpLabelBreakfast', 0, '625160'), +('EX_FUE_VP', 'ExpLabelFuelPV', 0, '606150'), +('EX_TOL_VP', 'ExpLabelTollPV', 0, '625160'), +('EX_PAR_VP', 'ExpLabelParkingPV', 0, '625160'), +('EX_CAM_VP', 'ExpLabelMaintenanceRepairPV', 0, '615300'); \ No newline at end of file diff --git a/htdocs/install/mysql/data/llx_expensereport_ik.sql b/htdocs/install/mysql/data/llx_expensereport_ik.sql new file mode 100644 index 00000000000..c39700d9994 --- /dev/null +++ b/htdocs/install/mysql/data/llx_expensereport_ik.sql @@ -0,0 +1,47 @@ +-- Copyright (C) 2017 ATM Consulting +-- Copyright (C) 2017 Pierre-Henry Favre +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- +-- + +-- +-- Ne pas placer de commentaire en fin de ligne, ce fichier est parsé lors +-- de l'install et tous les sigles '--' sont supprimés. +-- + + +-- +-- Coef expense +-- + +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (1,4, 1, 0.41, 0); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (2,4, 2, 0.244, 824); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (3,4, 3, 0.286, 0); + +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (4,5, 4, 0.493, 0); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (5,5, 5, 0.277, 1082); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (6,5, 6, 0.332, 0); + +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (7,6, 7, 0.543, 0); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (8,6, 8, 0.305, 1180); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (9,6, 9, 0.364, 0); + +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (10,7, 10, 0.568, 0); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (11,7, 11, 0.32, 1244); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (12,7, 12, 0.382, 0); + +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (13,8, 13, 0.595, 0); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (14,8, 14, 0.337, 1288); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (15,8, 15, 0.401, 0); \ No newline at end of file diff --git a/htdocs/install/mysql/migration/3.6.0-3.7.0.sql b/htdocs/install/mysql/migration/3.6.0-3.7.0.sql index dd0aba11632..6dc2521ca5d 100755 --- a/htdocs/install/mysql/migration/3.6.0-3.7.0.sql +++ b/htdocs/install/mysql/migration/3.6.0-3.7.0.sql @@ -1106,6 +1106,7 @@ ALTER TABLE llx_projet_task_time ADD INDEX idx_projet_task_time_datehour (task_d ALTER TABLE llx_projet_task MODIFY COLUMN duration_effective real DEFAULT 0 NULL; ALTER TABLE llx_projet_task MODIFY COLUMN planned_workload real DEFAULT 0 NULL; +-- VPGSQL8.2 ALTER TABLE llx_projet_task ALTER COLUMN planned_workload DROP NOT NULL; -- add extrafield on ficheinter lines CREATE TABLE llx_fichinterdet_extrafields diff --git a/htdocs/install/mysql/migration/3.7.0-3.8.0.sql b/htdocs/install/mysql/migration/3.7.0-3.8.0.sql index c997d511fdb..63bc1a8d7a3 100755 --- a/htdocs/install/mysql/migration/3.7.0-3.8.0.sql +++ b/htdocs/install/mysql/migration/3.7.0-3.8.0.sql @@ -110,6 +110,7 @@ ALTER TABLE llx_projet_task_time ADD COLUMN task_date_withhour integer DEFAULT 0 ALTER TABLE llx_projet_task MODIFY COLUMN duration_effective real DEFAULT 0 NULL; ALTER TABLE llx_projet_task MODIFY COLUMN planned_workload real DEFAULT 0 NULL; +-- VPGSQL8.2 ALTER TABLE llx_projet_task ALTER COLUMN planned_workload DROP NOT NULL; ALTER TABLE llx_commande_fournisseur MODIFY COLUMN date_livraison datetime; diff --git a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql index 03ff8c76d93..48a6b191ebf 100644 --- a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql +++ b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql @@ -611,3 +611,7 @@ INSERT INTO llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) VALUES (14 -- VMYSQL4.1 ALTER TABLE llx_c_type_resource CHANGE COLUMN rowid rowid integer NOT NULL AUTO_INCREMENT; ALTER TABLE llx_import_model MODIFY COLUMN type varchar(50); + +-- Negative buying prices + +UPDATE llx_facturedet SET buy_price_ht = ABS(buy_price_ht) diff --git a/htdocs/install/mysql/migration/3.9.0-4.0.0.sql b/htdocs/install/mysql/migration/3.9.0-4.0.0.sql index 7ed89ebb173..c67bd51b430 100644 --- a/htdocs/install/mysql/migration/3.9.0-4.0.0.sql +++ b/htdocs/install/mysql/migration/3.9.0-4.0.0.sql @@ -547,4 +547,6 @@ INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (178, -- VMYSQL4.1 ALTER TABLE llx_establishment CHANGE COLUMN fk_user_mod fk_user_mod integer NULL; -- VPGSQL8.2 ALTER TABLE llx_establishment ALTER COLUMN fk_user_mod DROP NOT NULL; -ALTER TABLE llx_multicurrency_rate ADD COLUMN entity integer DEFAULT 1; \ No newline at end of file +ALTER TABLE llx_multicurrency_rate ADD COLUMN entity integer DEFAULT 1; + +ALTER TABLE llx_user MODIFY COLUMN login varchar(50); \ No newline at end of file diff --git a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql index d18da18ac6a..e41e561da38 100644 --- a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql +++ b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql @@ -413,15 +413,19 @@ ALTER TABLE llx_supplier_proposaldet ADD CONSTRAINT fk_supplier_proposaldet_fk_s CREATE TABLE llx_inventory ( rowid integer NOT NULL AUTO_INCREMENT PRIMARY KEY, +entity integer DEFAULT 0, +ref varchar(48), datec datetime DEFAULT NULL, tms timestamp, +fk_user_author integer, +fk_user_modif integer, +fk_user_valid integer, fk_warehouse integer DEFAULT 0, -entity integer DEFAULT 0, status integer DEFAULT 0, title varchar(255) NOT NULL, -date_inventory datetime DEFAULT NULL -) -ENGINE=InnoDB; +date_inventory datetime DEFAULT NULL, +import_key varchar(14) +)ENGINE=InnoDB; CREATE TABLE llx_inventorydet ( @@ -438,8 +442,9 @@ qty_regulated double DEFAULT NULL, pmp double DEFAULT 0, pa double DEFAULT 0, new_pmp double DEFAULT 0 -) -ENGINE=InnoDB; +)ENGINE=InnoDB; + +ALTER TABLE llx_inventory ADD COLUMN datec datetime DEFAULT NULL; ALTER TABLE llx_inventory ADD INDEX idx_inventory_tms (tms); ALTER TABLE llx_inventory ADD INDEX idx_inventory_datec (datec); @@ -467,6 +472,8 @@ DELETE FROM llx_categorie_project WHERE fk_categorie NOT IN (SELECT rowid FROM l ALTER TABLE llx_inventory ADD COLUMN ref varchar(48); +-- VPGSQL8.2 ALTER TABLE llx_projet_task ALTER COLUMN planned_workload DROP NOT NULL; + CREATE TABLE llx_loan_schedule ( rowid integer AUTO_INCREMENT PRIMARY KEY, @@ -571,3 +578,10 @@ UPDATE llx_bank SET label= '(CustomerInvoicePayment)' WHERE label= 'Règlement c UPDATE llx_bank SET label= '(payment_salary)' WHERE label LIKE 'Règlement salaire'; ALTER TABLE llx_mailing_cibles MODIFY COLUMN source_url varchar(255); + +-- VPGSQL8.2 CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_website FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); +-- VPGSQL8.2 CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_website_page FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); + + +insert into llx_c_tva(rowid,fk_pays,code,taux,localtax1,localtax1_type,localtax2,localtax2_type,recuperableonly,note,active) values (1176, 117, 'IGST-CGST', 8, 8, '1', 0, '0', 0, 'IGST-CGST', 1); +insert into llx_c_tva(rowid,fk_pays,code,taux,localtax1,localtax1_type,localtax2,localtax2_type,recuperableonly,note,active) values (1177, 117, 'SGST', 0, 0, '0', 16, '1', 0, 'SGST', 1); diff --git a/htdocs/install/mysql/migration/6.0.0-7.0.0.sql b/htdocs/install/mysql/migration/6.0.0-7.0.0.sql index 43c2b813536..b027f560aa0 100644 --- a/htdocs/install/mysql/migration/6.0.0-7.0.0.sql +++ b/htdocs/install/mysql/migration/6.0.0-7.0.0.sql @@ -28,4 +28,165 @@ ALTER TABLE llx_facture_fourn ADD COLUMN date_pointoftax date DEFAULT NULL; ALTER TABLE llx_facture_fourn ADD COLUMN date_valid date; +ALTER TABLE llx_website MODIFY COLUMN ref varchar(128); +ALTER TABLE llx_website_page MODIFY COLUMN pageurl varchar(255); +ALTER TABLE llx_website_page ADD COLUMN lang varchar(6); +ALTER TABLE llx_website_page ADD COLUMN fk_page integer; +ALTER TABLE llx_website_page ADD COLUMN grabbed_from varchar(255); +ALTER TABLE llx_website_page MODIFY COLUMN status INTEGER DEFAULT 1; +UPDATE llx_website_page set status = 1 WHERE status IS NULL; + +ALTER TABLE llx_website ADD COLUMN import_key varchar(14); +ALTER TABLE llx_website_page ADD COLUMN import_key varchar(14); +ALTER TABLE llx_fichinter ADD COLUMN import_key varchar(14); +ALTER TABLE llx_livraison ADD COLUMN import_key varchar(14); +ALTER TABLE llx_livraison ADD COLUMN extraparams varchar(255); +ALTER TABLE llx_don ADD COLUMN extraparams varchar(255); + +ALTER TABLE llx_accounting_account ADD COLUMN import_key varchar(14); +ALTER TABLE llx_accounting_account ADD COLUMN extraparams varchar(255); +ALTER TABLE llx_accounting_bookkeeping ADD COLUMN import_key varchar(14); +ALTER TABLE llx_accounting_bookkeeping ADD COLUMN extraparams varchar(255); + +ALTER TABLE llx_accounting_bookkeeping ADD COLUMN date_lim_reglement datetime; +ALTER TABLE llx_accounting_bookkeeping ADD COLUMN fk_user integer NULL; + +CREATE TABLE IF NOT EXISTS llx_expensereport_ik ( + rowid integer AUTO_INCREMENT PRIMARY KEY, + datec datetime DEFAULT NULL, + tms timestamp, + fk_c_exp_tax_cat integer DEFAULT 0 NOT NULL, + fk_range integer DEFAULT 0 NOT NULL, + coef double DEFAULT 0 NOT NULL, + offset double DEFAULT 0 NOT NULL +)ENGINE=innodb DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS llx_c_exp_tax_cat ( + rowid integer AUTO_INCREMENT PRIMARY KEY, + label varchar(48) NOT NULL, + entity integer DEFAULT 1 NOT NULL, + active integer DEFAULT 1 NOT NULL +)ENGINE=innodb DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS llx_c_exp_tax_range ( + rowid integer AUTO_INCREMENT PRIMARY KEY, + fk_c_exp_tax_cat integer DEFAULT 1 NOT NULL, + range_ik double DEFAULT 0 NOT NULL, + entity integer DEFAULT 1 NOT NULL, + active integer DEFAULT 1 NOT NULL +)ENGINE=innodb DEFAULT CHARSET=utf8; + +INSERT INTO llx_c_type_fees (code, label, active, accountancy_code) VALUES +('EX_KME', 'ExpLabelKm', 1, '625100'), +('EX_FUE', 'ExpLabelFuelCV', 0, '606150'), +('EX_HOT', 'ExpLabelHotel', 0, '625160'), +('EX_PAR', 'ExpLabelParkingCV', 0, '625160'), +('EX_TOL', 'ExpLabelTollCV', 0, '625160'), +('EX_TAX', 'ExpLabelVariousTaxes', 0, '637800'), +('EX_IND', 'ExpLabelIndemnityTranspSub', 0, '648100'), +('EX_SUM', 'ExpLabelMaintenanceSupply', 0, '606300'), +('EX_SUO', 'ExpLabelOfficeSupplies', 0, '606400'), +('EX_CAR', 'ExpLabelCarRental', 0, '613000'), +('EX_DOC', 'ExpLabelDocumentation', 0, '618100'), +('EX_CUR', 'ExpLabelCustomersReceiving', 0, '625710'), +('EX_OTR', 'ExpLabelOtherReceiving', 0, '625700'), +('EX_POS', 'ExpLabelPostage', 0, '626100'), +('EX_CAM', 'ExpLabelMaintenanceRepairCV', 0, '615300'), +('EX_EMM', 'ExpLabelEmployeesMeal', 0, '625160'), +('EX_GUM', 'ExpLabelGuestsMeal', 0, '625160'), +('EX_BRE', 'ExpLabelBreakfast', 0, '625160'), +('EX_FUE_VP', 'ExpLabelFuelPV', 0, '606150'), +('EX_TOL_VP', 'ExpLabelTollPV', 0, '625160'), +('EX_PAR_VP', 'ExpLabelParkingPV', 0, '625160'), +('EX_CAM_VP', 'ExpLabelMaintenanceRepairPV', 0, '615300'); + +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (1,4, 1, 0.41, 0); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (2,4, 2, 0.244, 824); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (3,4, 3, 0.286, 0); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (4,5, 4, 0.493, 0); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (5,5, 5, 0.277, 1082); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (6,5, 6, 0.332, 0); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (7,6, 7, 0.543, 0); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (8,6, 8, 0.305, 1180); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (9,6, 9, 0.364, 0); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (10,7, 10, 0.568, 0); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (11,7, 11, 0.32, 1244); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (12,7, 12, 0.382, 0); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (13,8, 13, 0.595, 0); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (14,8, 14, 0.337, 1288); +INSERT INTO llx_expensereport_ik (rowid,fk_c_exp_tax_cat, fk_range, coef, offset) values (15,8, 15, 0.401, 0); + + +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (1,'ExpAutoCat', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (2,'ExpCycloCat', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (3,'ExpMotoCat', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (4,'ExpAuto3CV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (5,'ExpAuto4CV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (6,'ExpAuto5CV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (7,'ExpAuto6CV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (8,'ExpAuto7CV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (9,'ExpAuto8CV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (10,'ExpAuto9CV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (11,'ExpAuto10CV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (12,'ExpAuto11CV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (13,'ExpAuto12CV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (14,'ExpAuto3PCV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (15,'ExpAuto4PCV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (16,'ExpAuto5PCV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (17,'ExpAuto6PCV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (18,'ExpAuto7PCV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (19,'ExpAuto8PCV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (20,'ExpAuto9PCV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (21,'ExpAuto10PCV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (22,'ExpAuto11PCV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (23,'ExpAuto12PCV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (24,'ExpAuto13PCV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (25,'ExpCyclo', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (26,'ExpMoto12CV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (27,'ExpMoto345CV', 1, 1); +INSERT INTO llx_c_exp_tax_cat (rowid, label, entity, active) values (28,'ExpMoto5PCV', 1, 1); + + +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (1,4, 0, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (2,4, 5000, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (3,4, 20000, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (4,5, 0, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (5,5, 5000, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (6,5, 20000, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (7,6, 0, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (8,6, 5000, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (9,6, 20000, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (10,7, 0, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (11,7, 5000, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (12,7, 20000, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (13,8, 0, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (14,8, 5000, 1, 1); +INSERT INTO llx_c_exp_tax_range (rowid,fk_c_exp_tax_cat,range_ik, entity, active) values (15,8, 20000, 1, 1); + +CREATE TABLE llx_expensereport_rules ( + rowid integer AUTO_INCREMENT PRIMARY KEY, + datec datetime DEFAULT NULL, + tms timestamp, + dates datetime NOT NULL, + datee datetime NOT NULL, + amount numeric(24,8) NOT NULL, + restrictive tinyint NOT NULL, + fk_user integer DEFAULT NULL, + fk_usergroup integer DEFAULT NULL, + fk_c_type_fees integer NOT NULL, + code_expense_rules_type varchar(50) NOT NULL, + is_for_all tinyint DEFAULT '0', + entity integer DEFAULT 1 +); + +ALTER TABLE llx_expensereport_det ADD COLUMN rule_warning_message text; +ALTER TABLE llx_expensereport_det ADD COLUMN fk_c_exp_tax_cat integer; + +ALTER TABLE llx_user ADD COLUMN default_range integer; +ALTER TABLE llx_user ADD COLUMN default_c_exp_tax_cat integer; + +ALTER TABLE llx_extrafields ADD COLUMN fk_user_author integer; +ALTER TABLE llx_extrafields ADD COLUMN fk_user_modif integer; +ALTER TABLE llx_extrafields ADD COLUMN datec datetime; +ALTER TABLE llx_extrafields ADD COLUMN tms timestamp; diff --git a/htdocs/install/mysql/migration/repair.sql b/htdocs/install/mysql/migration/repair.sql index f2e5066a066..e275d982da4 100755 --- a/htdocs/install/mysql/migration/repair.sql +++ b/htdocs/install/mysql/migration/repair.sql @@ -21,12 +21,23 @@ -- Request to change character set and collation of a varchar column. -- utf8 and utf8_unicode_ci is recommended (or even better utf8mb4 and utf8mb4_unicode_ci with mysql 5.5.3+) --- ALTER TABLE llx_accounting_account MODIFY account_number VARCHAR(20) CHARACTER SET utf8; --- ALTER TABLE llx_accounting_account MODIFY account_number VARCHAR(20) COLLATE utf8_unicode_ci; +-- ALTER TABLE name_of_table MODIFY field VARCHAR(20) CHARACTER SET utf8; +-- ALTER TABLE name_of_table MODIFY field VARCHAR(20) COLLATE utf8_unicode_ci; -- You can check with 'show full columns from mytablename'; +-- VMYSQLUTF8UNICODECI ALTER TABLE llx_accounting_account MODIFY account_number VARCHAR(20) CHARACTER SET utf8; +-- VMYSQLUTF8UNICODECI ALTER TABLE llx_accounting_account MODIFY account_number VARCHAR(20) COLLATE utf8_unicode_ci; +-- VMYSQLUTF8UNICODECI ALTER TABLE llx_stock_mouvement MODIFY batch VARCHAR(30) CHARACTER SET utf8; +-- VMYSQLUTF8UNICODECI ALTER TABLE llx_stock_mouvement MODIFY batch VARCHAR(30) COLLATE utf8_unicode_ci; +-- VMYSQLUTF8UNICODECI ALTER TABLE llx_product_lot MODIFY batch VARCHAR(30) CHARACTER SET utf8; +-- VMYSQLUTF8UNICODECI ALTER TABLE llx_product_lot MODIFY batch VARCHAR(30) COLLATE utf8_unicode_ci; +-- VMYSQLUTF8UNICODECI ALTER TABLE llx_product_batch MODIFY batch VARCHAR(30) CHARACTER SET utf8; +-- VMYSQLUTF8UNICODECI ALTER TABLE llx_product_batch MODIFY batch VARCHAR(30) COLLATE utf8_unicode_ci; + + + -- VMYSQL4.1 SET sql_mode = 'ALLOW_INVALID_DATES'; -- VMYSQL4.1 update llx_facture set date_pointoftax = NULL where DATE(STR_TO_DATE(date_pointoftax, '%Y-%m-%d')) IS NULL; -- VMYSQL4.1 SET sql_mode = 'NO_ZERO_DATE'; diff --git a/htdocs/install/mysql/tables/llx_accounting_account.sql b/htdocs/install/mysql/tables/llx_accounting_account.sql index 8abd342cee5..b65863afe3f 100644 --- a/htdocs/install/mysql/tables/llx_accounting_account.sql +++ b/htdocs/install/mysql/tables/llx_accounting_account.sql @@ -35,4 +35,6 @@ create table llx_accounting_account fk_user_author integer DEFAULT NULL, fk_user_modif integer DEFAULT NULL, active tinyint DEFAULT 1 NOT NULL + import_key varchar(14), + extraparams varchar(255) -- for other parameters with json format )ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql b/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql index f33db4be484..269e73987ee 100644 --- a/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql +++ b/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql @@ -40,14 +40,17 @@ CREATE TABLE llx_accounting_bookkeeping multicurrency_code varchar(255), -- FEC:Idevise lettering_code varchar(255), -- FEC:EcritureLet date_lettering datetime, -- FEC:DateLet + date_lim_reglement datetime, -- | date limite de reglement fk_user_author integer NOT NULL, -- | user creating fk_user_modif integer, -- | user making last change date_creation datetime, -- FEC:EcritureDate | creation date tms timestamp, -- | date last modification - import_key varchar(14), + fk_user integer NULL -- The id of user that validate the accounting source document code_journal varchar(32) NOT NULL, -- FEC:JournalCode journal_label varchar(255), -- FEC:JournalLib - piece_num integer NOT NULL, -- FEC:EcritureNum + piece_num integer NOT NULL, -- FEC:EcritureNum | accounting source document validated tinyint DEFAULT 0 NOT NULL, -- | 0 line not validated / 1 line validated (No deleting / No modification) date_validated datetime -- FEC:ValidDate + import_key varchar(14), + extraparams varchar(255) -- for other parameters with json format ) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_accounting_bookkeeping_tmp.sql b/htdocs/install/mysql/tables/llx_accounting_bookkeeping_tmp.sql index 9ead8c6c6ba..e49c937d6ed 100644 --- a/htdocs/install/mysql/tables/llx_accounting_bookkeeping_tmp.sql +++ b/htdocs/install/mysql/tables/llx_accounting_bookkeeping_tmp.sql @@ -40,6 +40,7 @@ CREATE TABLE llx_accounting_bookkeeping_tmp multicurrency_code varchar(255), -- FEC:Idevise lettering_code varchar(255), -- FEC:EcritureLet date_lettering datetime, -- FEC:DateLet + date_lim_reglement datetime, -- | date limite de reglement fk_user_author integer NOT NULL, -- | user creating fk_user_modif integer, -- | user making last change date_creation datetime, -- FEC:EcritureDate | creation date diff --git a/htdocs/install/mysql/tables/llx_c_exp_tax_cat.sql b/htdocs/install/mysql/tables/llx_c_exp_tax_cat.sql new file mode 100644 index 00000000000..9caea48ca21 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_c_exp_tax_cat.sql @@ -0,0 +1,26 @@ +-- ============================================================================ +-- Copyright (C) 2012 Mikael Carlavan +-- Copyright (C) 2017 ATM Consulting +-- Copyright (C) 2017 Pierre-Henry Favre +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- +-- ============================================================================ + +CREATE TABLE IF NOT EXISTS llx_c_exp_tax_cat ( + rowid integer AUTO_INCREMENT PRIMARY KEY, + label varchar(48) NOT NULL, + entity integer DEFAULT 1 NOT NULL, + active integer DEFAULT 1 NOT NULL +)ENGINE=innodb DEFAULT CHARSET=utf8; \ No newline at end of file diff --git a/htdocs/install/mysql/tables/llx_c_exp_tax_range.sql b/htdocs/install/mysql/tables/llx_c_exp_tax_range.sql new file mode 100644 index 00000000000..4b60557851a --- /dev/null +++ b/htdocs/install/mysql/tables/llx_c_exp_tax_range.sql @@ -0,0 +1,27 @@ +-- ============================================================================ +-- Copyright (C) 2012 Mikael Carlavan +-- Copyright (C) 2017 ATM Consulting +-- Copyright (C) 2017 Pierre-Henry Favre +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- +-- ============================================================================ + +CREATE TABLE IF NOT EXISTS llx_c_exp_tax_range ( + rowid integer AUTO_INCREMENT PRIMARY KEY, + fk_c_exp_tax_cat integer DEFAULT 1 NOT NULL, + range_ik double DEFAULT 0 NOT NULL, + entity integer DEFAULT 1 NOT NULL, + active integer DEFAULT 1 NOT NULL +)ENGINE=innodb DEFAULT CHARSET=utf8; diff --git a/htdocs/install/mysql/tables/llx_don.sql b/htdocs/install/mysql/tables/llx_don.sql index b7b7c89f9cd..e2fbdba9efb 100644 --- a/htdocs/install/mysql/tables/llx_don.sql +++ b/htdocs/install/mysql/tables/llx_don.sql @@ -51,5 +51,6 @@ create table llx_don note_private text, note_public text, model_pdf varchar(255), - import_key varchar(14) + import_key varchar(14), + extraparams varchar(255) -- for other parameters with json format )ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_expensereport_det.sql b/htdocs/install/mysql/tables/llx_expensereport_det.sql index 8d01f29de68..5cc7b1b86f5 100644 --- a/htdocs/install/mysql/tables/llx_expensereport_det.sql +++ b/htdocs/install/mysql/tables/llx_expensereport_det.sql @@ -21,6 +21,7 @@ CREATE TABLE llx_expensereport_det rowid integer NOT NULL AUTO_INCREMENT PRIMARY KEY, fk_expensereport integer NOT NULL, fk_c_type_fees integer NOT NULL, + fk_c_exp_tax_cat integer, fk_projet integer, comments text NOT NULL, product_type integer DEFAULT -1, @@ -50,5 +51,6 @@ CREATE TABLE llx_expensereport_det fk_facture integer DEFAULT 0, -- ID of customer invoice line if expense is rebilled to a customer fk_code_ventilation integer DEFAULT 0, rang integer DEFAULT 0, -- position of line - import_key varchar(14) + import_key varchar(14), + rule_warning_message text ) ENGINE=innodb; \ No newline at end of file diff --git a/htdocs/install/mysql/tables/llx_expensereport_ik.sql b/htdocs/install/mysql/tables/llx_expensereport_ik.sql new file mode 100644 index 00000000000..13f1a8067d6 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_expensereport_ik.sql @@ -0,0 +1,29 @@ +-- ============================================================================ +-- Copyright (C) 2012 Mikael Carlavan +-- Copyright (C) 2017 ATM Consulting +-- Copyright (C) 2017 Pierre-Henry Favre +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- +-- ============================================================================ + +CREATE TABLE IF NOT EXISTS llx_expensereport_ik ( + rowid integer AUTO_INCREMENT PRIMARY KEY, + datec datetime DEFAULT NULL, + tms timestamp, + fk_c_exp_tax_cat integer DEFAULT 0 NOT NULL, + fk_range integer DEFAULT 0 NOT NULL, + coef double DEFAULT 0 NOT NULL, + offset double DEFAULT 0 NOT NULL +)ENGINE=innodb DEFAULT CHARSET=utf8; \ No newline at end of file diff --git a/htdocs/install/mysql/tables/llx_expensereport_rules.sql b/htdocs/install/mysql/tables/llx_expensereport_rules.sql new file mode 100644 index 00000000000..0a3b6dc0c49 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_expensereport_rules.sql @@ -0,0 +1,34 @@ +-- ============================================================================ +-- Copyright (C) 2017 ATM Consulting +-- Copyright (C) 2017 Pierre-Henry Favre +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- +-- ============================================================================ + +CREATE TABLE llx_expensereport_rules ( + rowid integer AUTO_INCREMENT PRIMARY KEY, + datec datetime DEFAULT NULL, + tms timestamp, + dates datetime NOT NULL, + datee datetime NOT NULL, + amount numeric(24,8) NOT NULL, + restrictive tinyint NOT NULL, + fk_user integer DEFAULT NULL, + fk_usergroup integer DEFAULT NULL, + fk_c_type_fees integer NOT NULL, + code_expense_rules_type varchar(50) NOT NULL, + is_for_all tinyint DEFAULT '0', + entity integer DEFAULT 1 +) ENGINE=InnoDB \ No newline at end of file diff --git a/htdocs/install/mysql/tables/llx_extrafields.sql b/htdocs/install/mysql/tables/llx_extrafields.sql index aee51524e6f..101254ea186 100644 --- a/htdocs/install/mysql/tables/llx_extrafields.sql +++ b/htdocs/install/mysql/tables/llx_extrafields.sql @@ -37,5 +37,9 @@ create table llx_extrafields param text, -- extra parameters to define possible values of field list integer DEFAULT 0, -- list of values for field that are combo lists langs varchar(24), -- example: fileofmymodule@mymodule - ishidden integer DEFAULT 0 -- ??? example of use case ??? + ishidden integer DEFAULT 0, -- Can be foreign key of external system + fk_user_author integer, -- user making creation + fk_user_modif integer, -- user making last change + datec datetime, -- date de creation + tms timestamp )ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_fichinter.sql b/htdocs/install/mysql/tables/llx_fichinter.sql index 926a05a738e..0ec67d6585c 100644 --- a/htdocs/install/mysql/tables/llx_fichinter.sql +++ b/htdocs/install/mysql/tables/llx_fichinter.sql @@ -31,8 +31,8 @@ create table llx_fichinter date_valid datetime, -- date de validation datei date, -- date de livraison du bon d'intervention fk_user_author integer, -- user making creation - fk_user_modif integer, -- user making last change - fk_user_valid integer, -- valideur de la fiche + fk_user_modif integer, -- user making last change + fk_user_valid integer, -- user validating record fk_statut smallint DEFAULT 0, dateo date, -- date de début d'intervention datee date, -- date de fin d'intervention @@ -42,5 +42,6 @@ create table llx_fichinter note_private text, note_public text, model_pdf varchar(255), - extraparams varchar(255) -- for stock other parameters with json format + import_key varchar(14), + extraparams varchar(255) -- for other parameters with json format )ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_livraison.sql b/htdocs/install/mysql/tables/llx_livraison.sql index c999cfdb3c2..6b09303f94d 100644 --- a/htdocs/install/mysql/tables/llx_livraison.sql +++ b/htdocs/install/mysql/tables/llx_livraison.sql @@ -41,6 +41,8 @@ create table llx_livraison note_public text, model_pdf varchar(255), fk_incoterms integer, -- for incoterms - location_incoterms varchar(255) -- for incoterms - + location_incoterms varchar(255), -- for incoterms + + import_key varchar(14), + extraparams varchar(255) -- for other parameters with json format )ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_user.sql b/htdocs/install/mysql/tables/llx_user.sql index d033ba5eca4..ed837b49b51 100644 --- a/htdocs/install/mysql/tables/llx_user.sql +++ b/htdocs/install/mysql/tables/llx_user.sql @@ -33,7 +33,7 @@ create table llx_user tms timestamp, fk_user_creat integer, fk_user_modif integer, - login varchar(24) NOT NULL, + login varchar(50) NOT NULL, pass varchar(128), pass_crypted varchar(128), pass_temp varchar(128), -- temporary password when asked for forget password @@ -85,5 +85,7 @@ create table llx_user dateemployment date, -- denormalized value coming from llx_user_employment weeklyhours double(16,8), -- denormalized value coming from llx_user_employment - import_key varchar(14) -- import key + import_key varchar(14), -- import key + default_range integer, + default_c_exp_tax_cat integer )ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_website.sql b/htdocs/install/mysql/tables/llx_website.sql index 84a9dd47188..64f72142add 100644 --- a/htdocs/install/mysql/tables/llx_website.sql +++ b/htdocs/install/mysql/tables/llx_website.sql @@ -21,7 +21,7 @@ CREATE TABLE llx_website ( rowid integer AUTO_INCREMENT NOT NULL PRIMARY KEY, entity integer DEFAULT 1, - ref varchar(24) NOT NULL, + ref varchar(128) NOT NULL, description varchar(255), status integer, fk_default_home integer, @@ -29,5 +29,6 @@ CREATE TABLE llx_website fk_user_create integer, fk_user_modif integer, date_creation datetime, - tms timestamp + tms timestamp, + import_key varchar(14) -- import key ) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_website_page.sql b/htdocs/install/mysql/tables/llx_website_page.sql index 69b6c417528..f3d1cca4786 100644 --- a/htdocs/install/mysql/tables/llx_website_page.sql +++ b/htdocs/install/mysql/tables/llx_website_page.sql @@ -21,14 +21,18 @@ CREATE TABLE llx_website_page ( rowid integer AUTO_INCREMENT NOT NULL PRIMARY KEY, fk_website integer NOT NULL, - pageurl varchar(16) NOT NULL, + pageurl varchar(255) NOT NULL, title varchar(255), description varchar(255), keywords varchar(255), + lang varchar(6), + fk_page integer, content mediumtext, -- text is not enough in size - status integer, + status integer DEFAULT 1, + grabbed_from varchar(255), fk_user_create integer, fk_user_modif integer, date_creation datetime, - tms timestamp + tms timestamp, + import_key varchar(14) -- import key ) ENGINE=innodb; diff --git a/htdocs/install/pgsql/functions/functions.sql b/htdocs/install/pgsql/functions/functions.sql index 2e4125e39e4..e5b9d47a0ba 100644 --- a/htdocs/install/pgsql/functions/functions.sql +++ b/htdocs/install/pgsql/functions/functions.sql @@ -163,6 +163,9 @@ CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_user_extrafields FOR CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_usergroup FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_usergroup_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_product_price_by_qty FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); +CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_website FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); +CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_website_page FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); +CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms(); -- Add triggers for timestamp fields named date_m diff --git a/htdocs/install/repair.php b/htdocs/install/repair.php index 3cfbbda5d26..7d9197d10b6 100644 --- a/htdocs/install/repair.php +++ b/htdocs/install/repair.php @@ -78,7 +78,7 @@ print 'Option clean_product_stock_batch (0 or \'test\' or \'confirmed\') is '.(G print 'Option set_empty_time_spent_amount (0 or \'test\' or \'confirmed\') is '.(GETPOST('set_empty_time_spent_amount','alpha')?GETPOST('set_empty_time_spent_amount','alpha'):'0').'
    '."\n"; print 'Option rebuild_product_thumbs (0 or \'test\' or \'confirmed\') is '.(GETPOST('rebuild_product_thumbs','alpha')?GETPOST('rebuild_product_thumbs','alpha'):'0').'
    '."\n"; print 'Option force_disable_of_modules_not_found (0 or \'test\' or \'confirmed\') is '.(GETPOST('force_disable_of_modules_not_found','alpha')?GETPOST('force_disable_of_modules_not_found','alpha'):'0').'
    '."\n"; -print 'Option force_utf8_on_tables, for mysql/mariadb only(0 or \'test\' or \'confirmed\') is '.(GETPOST('force_utf8_on_tables','alpha')?GETPOST('force_utf8_on_tables','alpha'):'0').'
    '."\n"; +print 'Option force_utf8_on_tables, for mysql/mariadb only (0 or \'test\' or \'confirmed\') is '.(GETPOST('force_utf8_on_tables','alpha')?GETPOST('force_utf8_on_tables','alpha'):'0').'
    '."\n"; print '
    '; print '
    '.$langs->trans("DolibarrStateBoard").'
    '; - // Show dashboard $nbworkboardempty=0; if (! empty($valid_dashboardlines)) { + $boxwork.='
    '; foreach($valid_dashboardlines as $board) { if (empty($boad->nbtodo)) $nbworkboardempty++; @@ -581,11 +580,12 @@ if (! empty($valid_dashboardlines)) $boxwork .='
    '; $boxwork .='
    '; $boxwork .='
    '; + $boxwork .='
    '; + $boxwork.=''; $boxwork.=$langs->trans("NoOpenedElementToProcess"); $boxwork.='
    '; @@ -802,90 +802,108 @@ if ($ok && GETPOST('force_disable_of_modules_not_found','alpha')) { print ''; - $sql ="SELECT DISTINCT name"; - $sql.=" FROM ".MAIN_DB_PREFIX."const as c"; - $sql.=" WHERE name LIKE 'MAIN_MODULE_%_HOOKS'"; - $sql.=" ORDER BY name"; + $arraylistofkey=array('hooks','js','css'); - $resql = $db->query($sql); - if ($resql) + foreach($arraylistofkey as $key) { - $num = $db->num_rows($resql); - if ($num) - { - $i = 0; - while ($i < $num) - { - $obj=$db->fetch_object($resql); - $majname = $obj->name; + $sql ="SELECT DISTINCT name, value"; + $sql.=" FROM ".MAIN_DB_PREFIX."const as c"; + $sql.=" WHERE name LIKE 'MAIN_MODULE_%_".strtoupper($key)."'"; + $sql.=" ORDER BY name"; - print ''; + $result = dol_include_once($reloffile); + if (! $result) + { + print ' - File of '.$key.' ('.$reloffile.') NOT found, we disable the module.'; + if (GETPOST('force_disable_of_modules_not_found') == 'confirmed') + { + $sql2 ="DELETE FROM ".MAIN_DB_PREFIX."const WHERE name = 'MAIN_MODULE_".strtoupper($name)."_".strtoupper($key)."'"; + $resql2=$db->query($sql2); + if (! $resql2) + { + $error++; + dol_print_error($db); + } + $sql2 ="DELETE FROM ".MAIN_DB_PREFIX."const WHERE name = 'MAIN_MODULE_".strtoupper($name)."'"; + $resql2=$db->query($sql2); + if (! $resql2) + { + $error++; + dol_print_error($db); + } + else + print " - Cleaned"; + } + else + { + print ' - Canceled (test mode)'; + } + } + else + { + print ' - File of '.$key.' ('.$reloffile.') found, we do nothing.'; + } + } - if ($error) break; + if (!$error) $db->commit(); + else $db->rollback(); + } - $i++; - } - } - else - { - print ''; - } + print''; + + if ($error) break; + + $i++; + } + } + else + { + print ''; + } + } + else + { + dol_print_error($db); + } } - else - { - dol_print_error($db); - } - } diff --git a/htdocs/install/step1.php b/htdocs/install/step1.php index a8d17388d41..bf2caf1b255 100644 --- a/htdocs/install/step1.php +++ b/htdocs/install/step1.php @@ -423,13 +423,11 @@ if (! $error && $db->connected && $action == "set") // Les documents sont en dehors de htdocs car ne doivent pas pouvoir etre telecharges en passant outre l'authentification $dir[0] = $main_data_dir."/mycompany"; $dir[1] = $main_data_dir."/users"; - $dir[2] = $main_data_dir."/custom"; - $dir[3] = $main_data_dir."/facture"; - $dir[4] = $main_data_dir."/propale"; - $dir[5] = $main_data_dir."/ficheinter"; - $dir[6] = $main_data_dir."/produit"; - $dir[7] = $main_data_dir."/doctemplates"; - $dir[7] = $main_data_dir."/extensions"; + $dir[2] = $main_data_dir."/facture"; + $dir[3] = $main_data_dir."/propale"; + $dir[4] = $main_data_dir."/ficheinter"; + $dir[5] = $main_data_dir."/produit"; + $dir[6] = $main_data_dir."/doctemplates"; // Boucle sur chaque repertoire de dir[] pour les creer s'ils nexistent pas $num=count($dir); diff --git a/htdocs/langs/ar_SA/accountancy.lang b/htdocs/langs/ar_SA/accountancy.lang index 0d632261a5d..bce26d8e104 100644 --- a/htdocs/langs/ar_SA/accountancy.lang +++ b/htdocs/langs/ar_SA/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=إجمالي شراء المورد قبل الضريبة TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=دفتر المالية اليومي ExpenseReportsJournal=Expense reports journal DescFinanceJournal=دفتر المالية اليومي المتضمن لجميع الدفعات عن طريق الحساب المصرفي -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=قائمة الحسابات المحاسبية +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=فئة الحساب Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=خطأ، لا يمكنك حذف هذا الحساب المحاسبي لأنه مستخدم -MvtNotCorrectlyBalanced=الحركة غير متوازنة\nالدائن =%s\nالمدين =%s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=رمز Nature=طبيعة AccountingJournalType1=Various operation AccountingJournalType2=مبيعات @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=صادرات -Export=تصدير ExportDraftJournal=Export draft journal Modelcsv=نموذج التصدير OptionsDeactivatedForThisExportModel=تم الغاء الخيارات لنموذج التصدير هذا diff --git a/htdocs/langs/ar_SA/admin.lang b/htdocs/langs/ar_SA/admin.lang index 9d7b2dad978..19b6f612757 100644 --- a/htdocs/langs/ar_SA/admin.lang +++ b/htdocs/langs/ar_SA/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=منظقة أدوات نظام SystemToolsAreaDesc=هذه المنطقة توفر مميزات إدارية. استخدم القائمة لاختيار الخصائص التي تبحث عنها. Purge=أحذف PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=حذف كل الملفات في المجلد %s الملفات المؤقتة ، بل أيضا ملفات استرجاع قاعدة البيانات, الملفات الملحقة بعناصر (أطراف ثالثة أو خارجية ، فواتير...) وتم تحمليها في نموذج إي سي إم, سيتم حذفها PurgeRunNow=إحذف الآن PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s ملفات او مجلدات حذفت +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=احذف جميع الأحداث المتعلقة بالأمان ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=قم بإنشاء نسخة احتياطية @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=لهذه الخطوة، يمكنك إرسال حزمة باستخدام هذه الأداة: اختر ملف الوحدة النمطية +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr النسخة الحالية CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=اقتراح التجاري المورد Module1120Desc=اقتراح تجاري طلب المورد والأسعار Module1200Name=فرس النبي Module1200Desc=فرس النبي التكامل -Module1400Name=المحاسبة -Module1400Desc=Accounting management (double entries) Module1520Name=الجيل ثيقة Module1520Desc=الجيل ثيقة الإلكتروني الشامل Module1780Name=الكلمات / فئات @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=باي بال Module50200Desc=وحدة لتقديم على صفحة الدفع عبر الإنترنت عن طريق بطاقة الائتمان مع بايبال Module50400Name=المحاسبة (متقدم) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=(يجب أن تكون الطابعة مرئية من الخادم، ويجب أن تكون الكؤوس تركيبها على الخادم) الطباعة مباشرة (دون فتح المستندات) باستخدام واجهة الكؤوس IPP. Module55000Name=استطلاع للرأي، أو مسح التصويت @@ -751,8 +750,10 @@ Permission401=قراءة خصومات Permission402=إنشاء / تعديل الخصومات Permission403=تحقق من الخصومات Permission404=حذف خصومات -Permission510=قراءة الرواتب -Permission512=إنشاء / تعديل الرواتب +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=حذف الرواتب Permission517=رواتب التصدير Permission520=قراءة القروض @@ -1057,7 +1058,7 @@ RestoreDesc2=استعادة ملف أرشيف (ملف مضغوط على سبيل RestoreDesc3=استعادة البيانات من ملف تفريغ النسخ الاحتياطي، في قاعدة بيانات التثبيت Dolibarr جديد أو إلى قاعدة البيانات من هذا التثبيت الحالي (%s). تحذير، بمجرد استعادة الانتهاء، يجب عليك استخدام تسجيل الدخول / كلمة المرور، التي كانت موجودة عندما تم النسخ الاحتياطي، والاتصال مرة أخرى. استعادة قاعدة بيانات النسخ الاحتياطي إلى هذا التثبيت الحالي، يمكنك اتباع هذا المساعد. RestoreMySQL=استيراد MySQL ForcedToByAModule= هذه القاعدة %s الى جانب تفعيل وحدة -PreviousDumpFiles=متاح تفريغ النسخ الاحتياطي ملفات قاعدة البيانات +PreviousDumpFiles=Generated database backup files WeekStartOnDay=أول يوم من الأسبوع RunningUpdateProcessMayBeRequired=تشغيل عملية الترقية ويبدو أن المطلوب (ليالي برامج الإصدار %s يختلف عن إصدار قاعدة بيانات %s ) YouMustRunCommandFromCommandLineAfterLoginToUser=يجب تشغيل هذا الأمر من سطر الأوامر بعد تسجيل الدخول إلى قذيفة مع المستخدم %s أو يجب عليك إضافة خيار -w في نهاية سطر الأوامر لتوفير %s كلمة المرور. diff --git a/htdocs/langs/ar_SA/banks.lang b/htdocs/langs/ar_SA/banks.lang index c056dcbdedb..687e1a41214 100644 --- a/htdocs/langs/ar_SA/banks.lang +++ b/htdocs/langs/ar_SA/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=تحقق عاد والفواتير فتح BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/ar_SA/bills.lang b/htdocs/langs/ar_SA/bills.lang index e56aff37ced..29ba7be2312 100644 --- a/htdocs/langs/ar_SA/bills.lang +++ b/htdocs/langs/ar_SA/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=فاتورة بطاقة PredefinedInvoices=الفواتير مسبقا Invoice=فاتورة +PdfInvoiceTitle=فاتورة Invoices=فواتير InvoiceLine=فاتورة الخط InvoiceCustomer=الزبون فاتورة diff --git a/htdocs/langs/ar_SA/compta.lang b/htdocs/langs/ar_SA/compta.lang index fa147c7919b..181038bcd56 100644 --- a/htdocs/langs/ar_SA/compta.lang +++ b/htdocs/langs/ar_SA/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=استنساخ ضريبة اجتماعية / مالية ConfirmCloneTax=تأكيد استنساخ ل/ دفع الضرائب المالية الاجتماعي CloneTaxForNextMonth=استنساخ لشهر المقبل diff --git a/htdocs/langs/ar_SA/errors.lang b/htdocs/langs/ar_SA/errors.lang index 46eb89f55e9..724b337bff6 100644 --- a/htdocs/langs/ar_SA/errors.lang +++ b/htdocs/langs/ar_SA/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings WarningPasswordSetWithNoAccount=تم تعيين كلمة مرور لهذا العضو. ومع ذلك، تم إنشاء أي حساب المستخدم. لذلك يتم تخزين كلمة المرور هذه ولكن لا يمكن استخدامها للدخول إلى Dolibarr. ويمكن استخدامه من قبل وحدة / واجهة خارجية ولكن إذا كنت لا تحتاج إلى تعريف أي تسجيل دخول أو كلمة المرور لأحد أفراد، يمكنك تعطيل خيار "إدارة تسجيل دخول لكل عضو" من إعداد وحدة الأعضاء. إذا كنت بحاجة إلى إدارة تسجيل الدخول ولكن لا تحتاج إلى أي كلمة المرور، يمكنك الحفاظ على هذا الحقل فارغا لتجنب هذا التحذير. ملاحظة: يمكن أيضا أن تستخدم البريد الإلكتروني لتسجيل الدخول إذا تم ربط عضو إلى المستخدم. diff --git a/htdocs/langs/ar_SA/install.lang b/htdocs/langs/ar_SA/install.lang index 0f64b05b43a..ae258ae626b 100644 --- a/htdocs/langs/ar_SA/install.lang +++ b/htdocs/langs/ar_SA/install.lang @@ -53,10 +53,10 @@ AdminLogin=ادخل لDolibarr مدير قاعدة البيانات. تبقي ف PasswordAgain=أعد كتابة كلمة المرور مرة ثانية AdminPassword=Dolibarr كلمة السر لمدير قاعدة البيانات. تبقي فارغة إذا لم يذكر اسمه في اتصال CreateDatabase=إنشاء قاعدة بيانات -CreateUser=إنشاء مستخدم +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=قاعدة بيانات -- وصول مستخدم الكومبيوتر ذو الصلاحيات العليا CheckToCreateDatabase=المربع إذا كان لا وجود قاعدة بيانات ، ويجب تهيئة.
    في هذه الحالة ، يجب عليك ملء ادخل كلمة السر لحساب المستعملين المتميزين في أسفل هذه الصفحة. -CheckToCreateUser=المربع اذا ادخل لا وجود له ، ويجب تهيئة.
    في هذه الحالة ، يجب عليك ملء ادخل كلمة السر لحساب المستعملين المتميزين في أسفل هذه الصفحة. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=ادخل يسمح للمستخدم لإنشاء قواعد بيانات جديدة أو المستخدمين الجدد ، وإذا كانت غير مجدية وقاعدة البيانات وقاعدة البيانات ادخل موجود بالفعل (مثل عندما كنت استضافته استضافة ويب). KeepEmptyIfNoPassword=ترك فارغا إذا لم المستخدم كلمة السر (تجنب هذا؟) SaveConfigurationFile=إنقاذ القيم diff --git a/htdocs/langs/ar_SA/main.lang b/htdocs/langs/ar_SA/main.lang index 93456670297..82c058bebfe 100644 --- a/htdocs/langs/ar_SA/main.lang +++ b/htdocs/langs/ar_SA/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=تم تحميل الملف بنجاح -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=يتم اختيار ملف لمرفق ولكن لم تحميلها بعد. انقر على "إرفاق ملف" لهذا الغرض. NbOfEntries=ملحوظة من إدخالات GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=معلمة Parameters=المعايير Value=القيمة PersonalValue=قيمة الشخصية +NewObject=New %s NewValue=القيمة الجديدة CurrentValue=القيمة الحالية Code=رمز @@ -441,6 +443,7 @@ Reporting=التقارير Reportings=التقارير Draft=مسودة Drafts=الداما +StatusInterInvoiced= Validated=التحقق من صحة Opened=فتح New=جديد @@ -727,6 +730,7 @@ SetBankAccount=تحديد الحساب المصرفي AccountCurrency=عملة الحساب ViewPrivateNote=عرض الملاحظات XMoreLines=٪ ق خط (ق) مخبأة +ShowMoreLines=Show more lines PublicUrl=URL العام AddBox=إضافة مربع SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=اذهب إلى الصفحة الرئيسية - إعداد - شركة لتغيير شعار أو الذهاب إلى الصفحة الرئيسية - إعداد - عرض للاختباء. Deny=رفض Denied=رفض +ListOf=List of %s ListOfTemplates=قائمة القوالب Gender=جنس Genderman=رجل diff --git a/htdocs/langs/ar_SA/modulebuilder.lang b/htdocs/langs/ar_SA/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/ar_SA/modulebuilder.lang +++ b/htdocs/langs/ar_SA/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/ar_SA/orders.lang b/htdocs/langs/ar_SA/orders.lang index 8e9615a7b16..fcadbc73997 100644 --- a/htdocs/langs/ar_SA/orders.lang +++ b/htdocs/langs/ar_SA/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=الموردين أوامر المنطقة OrderCard=من أجل بطاقة OrderId=رقم التعريف الخاص بالطلب Order=ترتيب +PdfOrderTitle=الطلبية Orders=أوامر OrderLine=من أجل خط OrderDate=من أجل التاريخ diff --git a/htdocs/langs/ar_SA/other.lang b/htdocs/langs/ar_SA/other.lang index cd0c8f45437..7a0a0db8629 100644 --- a/htdocs/langs/ar_SA/other.lang +++ b/htdocs/langs/ar_SA/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/ar_SA/propal.lang b/htdocs/langs/ar_SA/propal.lang index dec35bde005..7e07222bc30 100644 --- a/htdocs/langs/ar_SA/propal.lang +++ b/htdocs/langs/ar_SA/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=مقترحات مشاريع تجارية ProposalsOpened=مقترحات التجارية المفتوحة Prop=مقترحات تجارية CommercialProposal=اقتراح التجارية +PdfCommercialProposalTitle=اقتراح التجارية ProposalCard=اقتراح بطاقة NewProp=التجاري الجديد المقترح NewPropal=اقتراح جديد diff --git a/htdocs/langs/ar_SA/salaries.lang b/htdocs/langs/ar_SA/salaries.lang index 8a066b643c6..ac60cd65b73 100644 --- a/htdocs/langs/ar_SA/salaries.lang +++ b/htdocs/langs/ar_SA/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=الراتب Salaries=الرواتب diff --git a/htdocs/langs/ar_SA/website.lang b/htdocs/langs/ar_SA/website.lang index 2dffe244283..094492623b9 100644 --- a/htdocs/langs/ar_SA/website.lang +++ b/htdocs/langs/ar_SA/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/ar_SA/workflow.lang b/htdocs/langs/ar_SA/workflow.lang index 7eace175607..37dca046c79 100644 --- a/htdocs/langs/ar_SA/workflow.lang +++ b/htdocs/langs/ar_SA/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=سير العمل وحدة الإعداد WorkflowDesc=تم تصميم هذه الوحدة لتعديل السلوك من الإجراءات الآلية إلى التطبيق. افتراضيا، سير العمل مفتوح (يمكنك أن تفعل أشياء في النظام الذي تريد). يمكنك تفعيل الإجراءات الآلية كنت مهتما في. ThereIsNoWorkflowToModify=لا يوجد أي تعديلات سير العمل المتاحة مع وحدات تفعيلها. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=إنشاء النظام العميل تلقائيا بعد التوقيع على اقتراح التجاري -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=إنشاء فاتورة العميل تلقائيا بعد التوقيع على اقتراح التجاري +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=إنشاء فاتورة العميل تلقائيا بعد التحقق من صحة العقد -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=إنشاء فاتورة العميل تلقائيا بعد إغلاق النظام العميل -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=تصنيف مقترح مصدر على صلة وصفت عند تعيين النظام العميل لدفع -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=تصنيف المصدر المرتبط النظام العميل (ق) إلى المنقار عند تعيين فاتورة العملاء لدفع -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=تصنيف ربط مصدر النظام العميل (ق) إلى المنقار عند التحقق من صحة الفاتورة العملاء -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/bg_BG/accountancy.lang b/htdocs/langs/bg_BG/accountancy.lang index d611bd0e6df..7d5d689eee0 100644 --- a/htdocs/langs/bg_BG/accountancy.lang +++ b/htdocs/langs/bg_BG/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Възникна грешка, вие не можете да изтриете тази счетоводна сметка, защото се използва. -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Код Nature=Същност AccountingJournalType1=Various operation AccountingJournalType2=Sales @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/bg_BG/admin.lang b/htdocs/langs/bg_BG/admin.lang index e0b34499dbd..cfb6ce00095 100644 --- a/htdocs/langs/bg_BG/admin.lang +++ b/htdocs/langs/bg_BG/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Системни инструменти SystemToolsAreaDesc=Тук се предоставят административни функции. Използвайте менюто за да изберете функцията която търсите. Purge=Изчистване PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Изтрий временните файлове PurgeDeleteAllFilesInDocumentsDir=Изтриване на всички файлове в директорията %s. Временни файлове, но също така и резервната база данни сметища, файлове, прикрепени към елементи (контрагенти, фактури, ...) и качени в модул ECM ще бъдат изтрити. PurgeRunNow=Изчистване сега PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s изтрити файлове или директории. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Поръси всички събития по сигурността ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Генериране на бекъп @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Текуща версия на Dolibarr CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Богомолка Module1200Desc=Mantis интеграция -Module1400Name=Счетоводство -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Модул предлага онлайн страница на плащане с кредитна карта с Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Прочети отстъпки Permission402=Създаване / промяна на отстъпки Permission403=Проверка на отстъпки Permission404=Изтриване на отстъпки -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL внос ForcedToByAModule= Това правило е принуден да %s от активиран модул -PreviousDumpFiles=Файлове с бекъпи на базата данни +PreviousDumpFiles=Generated database backup files WeekStartOnDay=Първи ден от седмицата RunningUpdateProcessMayBeRequired=Продължителност на процеса на актуализация изглежда да се изисква (Програми версия %s различава от %s версия на базата от данни) YouMustRunCommandFromCommandLineAfterLoginToUser=Трябва да изпълните тази команда от командния ред след влизане на черупката с потребителски %s или трябва да добавите опцията-W в края на командния ред, за да предоставят %s парола. diff --git a/htdocs/langs/bg_BG/banks.lang b/htdocs/langs/bg_BG/banks.lang index dfddebc56e3..6fb0f61166f 100644 --- a/htdocs/langs/bg_BG/banks.lang +++ b/htdocs/langs/bg_BG/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Върнат Чек и отворена фак BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/bg_BG/bills.lang b/htdocs/langs/bg_BG/bills.lang index 3f39229ae38..fd64a10defb 100644 --- a/htdocs/langs/bg_BG/bills.lang +++ b/htdocs/langs/bg_BG/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Фактурна карта PredefinedInvoices=Предварително-дефинирани Фактури Invoice=Фактура +PdfInvoiceTitle=Фактура Invoices=Фактури InvoiceLine=Фактурен ред InvoiceCustomer=Продажна фактура diff --git a/htdocs/langs/bg_BG/compta.lang b/htdocs/langs/bg_BG/compta.lang index 1098b2e07f8..34bfce0018a 100644 --- a/htdocs/langs/bg_BG/compta.lang +++ b/htdocs/langs/bg_BG/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Клониране за следващ месец diff --git a/htdocs/langs/bg_BG/errors.lang b/htdocs/langs/bg_BG/errors.lang index d1e9ea2e582..1036ad1703c 100644 --- a/htdocs/langs/bg_BG/errors.lang +++ b/htdocs/langs/bg_BG/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings WarningPasswordSetWithNoAccount=Парола е зададено за този член. Обаче, няма създаден потребителски акаунт. Следователно тази парола е записана, но не може да бъде използвана за влизане в Dolibarr. Може да бъде използвана от външен модул/интерфейс, но ако нямате нужда да определите нито потребителско име нито парола за член, можете да деактивирате тази опция. Ако имате нужда да управлявате потребителско име, но нямата нужда от парола, можете да оставите това поле празно, за да избегнете това предупреждение. Забележка: Имейл също може да бъде използван като потребителско име ако члена с свързан към потребител. diff --git a/htdocs/langs/bg_BG/install.lang b/htdocs/langs/bg_BG/install.lang index 629bf7f4657..fa018129f28 100644 --- a/htdocs/langs/bg_BG/install.lang +++ b/htdocs/langs/bg_BG/install.lang @@ -53,10 +53,10 @@ AdminLogin=Идентифициране на собственика на баз PasswordAgain=Въведете паролата отново AdminPassword=Парола на собственика на базата данни на Dolibarr. CreateDatabase=Създаване на база данни -CreateUser=Създаване на собственик +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Сървър на базата данни - Достъп супер потребител CheckToCreateDatabase=Отметнете ако базата данни не съществува и трябва да бъде създадена.
    В този случай, трябва да попълните потребителско име/парола за профил на суперпотребител в долната част на тази страница. -CheckToCreateUser=Отметнете ако собственика на базата данни не съществува и трябва да бъде създаден.
    В този случай, трябва да изберете потребителско име и парола за него и да попълните име/парола за профил на суперпотребител в долната част на тази страница. Ако това поле не е отметнато, собственика на базата данни и неговите пароли трябва да съществуват. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Идентифицирането на потребителя му позволява да създава нови бази данни или нови потребители, задължително ако вашата база данни или нейния собственик вече не съществуват. KeepEmptyIfNoPassword=Оставете празно, ако потребителят няма парола (избягвайте това) SaveConfigurationFile=Регистрация на конфигурационния файл diff --git a/htdocs/langs/bg_BG/main.lang b/htdocs/langs/bg_BG/main.lang index 936912cb884..c491735a2e0 100644 --- a/htdocs/langs/bg_BG/main.lang +++ b/htdocs/langs/bg_BG/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=Файлът е качен успешно -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=Файлът е избран за прикачване, но все още не е качен. Кликнете върху "Прикачи файл". NbOfEntries=Брой записи GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Параметър Parameters=Параметри Value=Стойност PersonalValue=Лична стойност +NewObject=New %s NewValue=Нова стойност CurrentValue=Текуща стойност Code=Код @@ -441,6 +443,7 @@ Reporting=Справка Reportings=Справки Draft=Чернова Drafts=Чернови +StatusInterInvoiced= Validated=Валидиран Opened=Отворено New=Нов @@ -727,6 +730,7 @@ SetBankAccount=Дефинирай банкова сметка AccountCurrency=Валута на сметката ViewPrivateNote=Биж бележки XMoreLines=%s ред(а) скрити +ShowMoreLines=Show more lines PublicUrl=Публичен URL AddBox=Добави поле SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Отидете на Начало - Настройки - Фирма/Организация, за да промените логото или отидете на Начало - Настройки- Екран, за да го скриете. Deny=Забрани Denied=Забранено +ListOf=List of %s ListOfTemplates=Списък с шаблони Gender=Пол Genderman=Мъж diff --git a/htdocs/langs/bg_BG/modulebuilder.lang b/htdocs/langs/bg_BG/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/bg_BG/modulebuilder.lang +++ b/htdocs/langs/bg_BG/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/bg_BG/orders.lang b/htdocs/langs/bg_BG/orders.lang index 6e3913540de..4be312db766 100644 --- a/htdocs/langs/bg_BG/orders.lang +++ b/htdocs/langs/bg_BG/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Секция за поръчки към доставчици OrderCard=Карта за поръчка OrderId=Поръчка Id Order=Поръчка +PdfOrderTitle=Поръчка Orders=Поръчки OrderLine=Ред за поръчка OrderDate=Дата на поръчка diff --git a/htdocs/langs/bg_BG/other.lang b/htdocs/langs/bg_BG/other.lang index 48253542cba..777b9b05890 100644 --- a/htdocs/langs/bg_BG/other.lang +++ b/htdocs/langs/bg_BG/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/bg_BG/propal.lang b/htdocs/langs/bg_BG/propal.lang index b69167cc24d..930ba3db4ea 100644 --- a/htdocs/langs/bg_BG/propal.lang +++ b/htdocs/langs/bg_BG/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Проектът на търговски предложения ProposalsOpened=Отваряне на търговски предложения Prop=Търговски предложения CommercialProposal=Търговско предложение +PdfCommercialProposalTitle=Търговско предложение ProposalCard=Предложение карта NewProp=Нов търговски предложение NewPropal=Ново предложение diff --git a/htdocs/langs/bg_BG/salaries.lang b/htdocs/langs/bg_BG/salaries.lang index 8685a8aed71..7bb5fc9858e 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=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Заплата Salaries=Заплати diff --git a/htdocs/langs/bg_BG/website.lang b/htdocs/langs/bg_BG/website.lang index 12f66a3cee3..4cda94f5d7f 100644 --- a/htdocs/langs/bg_BG/website.lang +++ b/htdocs/langs/bg_BG/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/bg_BG/workflow.lang b/htdocs/langs/bg_BG/workflow.lang index 0f38c670ab5..0a657406164 100644 --- a/htdocs/langs/bg_BG/workflow.lang +++ b/htdocs/langs/bg_BG/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Настройки на модул Workflow WorkflowDesc=Този модул е проектиран да редактира поведението на автоматичните действия в приложението. По подразбиране, работния процес е отворен (можете да правите неща в реда, в който желаете). Можете да активирате автоматичните действия, които ви интересуват. ThereIsNoWorkflowToModify=Няма налични промени на работния процес с активираните модули. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Автоматично създаване на клиентска поръчка след като търговското предложение е подписано -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Автоматично създаване на клиентска фактура след като търговското предложение е подписано +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Автоматично създаване на клиентска фактура след като договора е валидиран -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Автоматично създаване на клиентска фактура след като клиентската поръчка е затворена -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Класифицира свързан източник на предложение за Плоскоклюн при поръчка на клиента на платен -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/bn_BD/accountancy.lang b/htdocs/langs/bn_BD/accountancy.lang index d239f259a94..a7176d2e55f 100644 --- a/htdocs/langs/bn_BD/accountancy.lang +++ b/htdocs/langs/bn_BD/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Code Nature=Nature AccountingJournalType1=Various operation AccountingJournalType2=Sales @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/bn_BD/admin.lang b/htdocs/langs/bn_BD/admin.lang index a443d04f35d..8dba7af0e0b 100644 --- a/htdocs/langs/bn_BD/admin.lang +++ b/htdocs/langs/bn_BD/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=System tools area SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. Purge=Purge PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. PurgeRunNow=Purge now PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s files or directories deleted. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Purge all security events ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Generate backup @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Read discounts Permission402=Create/modify discounts Permission403=Validate discounts Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files +PreviousDumpFiles=Generated database backup files WeekStartOnDay=First day of week RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. diff --git a/htdocs/langs/bn_BD/banks.lang b/htdocs/langs/bn_BD/banks.lang index 191d30e1585..cd650c5958f 100644 --- a/htdocs/langs/bn_BD/banks.lang +++ b/htdocs/langs/bn_BD/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/bn_BD/bills.lang b/htdocs/langs/bn_BD/bills.lang index 5fb3b6169da..f80eaf6dd85 100644 --- a/htdocs/langs/bn_BD/bills.lang +++ b/htdocs/langs/bn_BD/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Invoice card PredefinedInvoices=Predefined Invoices Invoice=Invoice +PdfInvoiceTitle=Invoice Invoices=Invoices InvoiceLine=Invoice line InvoiceCustomer=Customer invoice diff --git a/htdocs/langs/bn_BD/compta.lang b/htdocs/langs/bn_BD/compta.lang index 94a3bd671ef..f8b5b683cb8 100644 --- a/htdocs/langs/bn_BD/compta.lang +++ b/htdocs/langs/bn_BD/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/bn_BD/errors.lang b/htdocs/langs/bn_BD/errors.lang index feada2d1b5a..853a34b4bb4 100644 --- a/htdocs/langs/bn_BD/errors.lang +++ b/htdocs/langs/bn_BD/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/bn_BD/install.lang b/htdocs/langs/bn_BD/install.lang index a3533a31277..5b6ba06e78a 100644 --- a/htdocs/langs/bn_BD/install.lang +++ b/htdocs/langs/bn_BD/install.lang @@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner. PasswordAgain=Retype password a second time AdminPassword=Password for Dolibarr database owner. CreateDatabase=Create database -CreateUser=Create owner +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Database server - Superuser access CheckToCreateDatabase=Check box if database does not exist and must be created.
    In this case, you must fill the login/password for superuser account at the bottom of this page. -CheckToCreateUser=Check box if database owner does not exist and must be created.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists. KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this) SaveConfigurationFile=Save values diff --git a/htdocs/langs/bn_BD/main.lang b/htdocs/langs/bn_BD/main.lang index 31a9ef8f2af..1e17ca6c744 100644 --- a/htdocs/langs/bn_BD/main.lang +++ b/htdocs/langs/bn_BD/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=The file was successfully uploaded -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parameter Parameters=Parameters Value=Value PersonalValue=Personal value +NewObject=New %s NewValue=New value CurrentValue=Current value Code=Code @@ -441,6 +443,7 @@ Reporting=Reporting Reportings=Reporting Draft=Draft Drafts=Drafts +StatusInterInvoiced= Validated=Validated Opened=Opened New=New @@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account AccountCurrency=Account Currency ViewPrivateNote=View notes XMoreLines=%s line(s) hidden +ShowMoreLines=Show more lines PublicUrl=Public URL AddBox=Add box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Gender Genderman=Man diff --git a/htdocs/langs/bn_BD/modulebuilder.lang b/htdocs/langs/bn_BD/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/bn_BD/modulebuilder.lang +++ b/htdocs/langs/bn_BD/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/bn_BD/orders.lang b/htdocs/langs/bn_BD/orders.lang index 331e3b49d3e..0c59b4f4ada 100644 --- a/htdocs/langs/bn_BD/orders.lang +++ b/htdocs/langs/bn_BD/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area OrderCard=Order card OrderId=Order Id Order=Order +PdfOrderTitle=Order Orders=Orders OrderLine=Order line OrderDate=Order date diff --git a/htdocs/langs/bn_BD/other.lang b/htdocs/langs/bn_BD/other.lang index e15d490c0f2..e519f7af405 100644 --- a/htdocs/langs/bn_BD/other.lang +++ b/htdocs/langs/bn_BD/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/bn_BD/propal.lang b/htdocs/langs/bn_BD/propal.lang index e1df85f8775..85fdfe5a174 100644 --- a/htdocs/langs/bn_BD/propal.lang +++ b/htdocs/langs/bn_BD/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal +PdfCommercialProposalTitle=Commercial proposal ProposalCard=Proposal card NewProp=New commercial proposal NewPropal=New proposal diff --git a/htdocs/langs/bn_BD/salaries.lang b/htdocs/langs/bn_BD/salaries.lang index 522bf0a65d7..7e0c80d3380 100644 --- a/htdocs/langs/bn_BD/salaries.lang +++ b/htdocs/langs/bn_BD/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries diff --git a/htdocs/langs/bn_BD/website.lang b/htdocs/langs/bn_BD/website.lang index b3b05ee6cc9..98577e0de5e 100644 --- a/htdocs/langs/bn_BD/website.lang +++ b/htdocs/langs/bn_BD/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/bn_BD/workflow.lang b/htdocs/langs/bn_BD/workflow.lang index 54246856e9b..8021fb9b198 100644 --- a/htdocs/langs/bn_BD/workflow.lang +++ b/htdocs/langs/bn_BD/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Workflow module setup WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/bs_BA/accountancy.lang b/htdocs/langs/bs_BA/accountancy.lang index 530cd0e073b..7183c252e90 100644 --- a/htdocs/langs/bs_BA/accountancy.lang +++ b/htdocs/langs/bs_BA/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Ukupno nabavke od dobavljača prije poreza TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Kod Nature=Nature AccountingJournalType1=Various operation AccountingJournalType2=Sales @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Izvozi -Export=Izvoz ExportDraftJournal=Export draft journal Modelcsv=Model izvoza OptionsDeactivatedForThisExportModel=Za ovaj model izvoza, opcije su onemogućene diff --git a/htdocs/langs/bs_BA/admin.lang b/htdocs/langs/bs_BA/admin.lang index 1c4673e173f..77202bd8fe6 100644 --- a/htdocs/langs/bs_BA/admin.lang +++ b/htdocs/langs/bs_BA/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Područje sistemskih alata SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. Purge=Purge PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Izbrišite sve fajlove u datoteci %s. Privremeni fajlovi, ali i dump backup-a baze podataka, fajlova vezanih za elemenata (trećim strankama, fakturama, ...) i dodani u ECM modul, će biti izbrisani. PurgeRunNow=Purge now PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s files or directories deleted. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Purge all security events ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Generate backup @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration -Module1400Name=Računovodstvo -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Read discounts Permission402=Create/modify discounts Permission403=Validate discounts Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files +PreviousDumpFiles=Generated database backup files WeekStartOnDay=First day of week RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. diff --git a/htdocs/langs/bs_BA/banks.lang b/htdocs/langs/bs_BA/banks.lang index bb23b2539ef..d1ec865143d 100644 --- a/htdocs/langs/bs_BA/banks.lang +++ b/htdocs/langs/bs_BA/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Ček vraćen i fakture ponovno otvorene BankAccountModelModule=Šabloni dokumenata za bankovne račune DocumentModelSepaMandate=Šablon za SEPA mandat. Koristan je samo za evropske zemlje članice EU. DocumentModelBan=Šablon za štampanje stranice sa BAN podacima. -NewVariousPayment=Novo ostalo plaćanje -VariousPayment=Razno plaćanje -VariousPayments=Razna plaćanja -ShowVariousPayment=Pokaži ostala plaćanja +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/bs_BA/bills.lang b/htdocs/langs/bs_BA/bills.lang index 2f4576863bf..d94f3a8e060 100644 --- a/htdocs/langs/bs_BA/bills.lang +++ b/htdocs/langs/bs_BA/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=je bila izvor jedne ili više knjižnih obavijesti CardBill=Kartica fakture PredefinedInvoices=Predefinisane fakture Invoice=Faktura +PdfInvoiceTitle=Faktura Invoices=Fakture InvoiceLine=Tekst fakture InvoiceCustomer=Faktura kupca diff --git a/htdocs/langs/bs_BA/compta.lang b/htdocs/langs/bs_BA/compta.lang index db2ed3d9ec4..703171ae080 100644 --- a/htdocs/langs/bs_BA/compta.lang +++ b/htdocs/langs/bs_BA/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/bs_BA/errors.lang b/htdocs/langs/bs_BA/errors.lang index f9603e851d0..841ad5ab420 100644 --- a/htdocs/langs/bs_BA/errors.lang +++ b/htdocs/langs/bs_BA/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/bs_BA/install.lang b/htdocs/langs/bs_BA/install.lang index 48fec99a553..8693950c938 100644 --- a/htdocs/langs/bs_BA/install.lang +++ b/htdocs/langs/bs_BA/install.lang @@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner. PasswordAgain=Retype password a second time AdminPassword=Password for Dolibarr database owner. CreateDatabase=Create database -CreateUser=Create owner +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Database server - Superuser access CheckToCreateDatabase=Check box if database does not exist and must be created.
    In this case, you must fill the login/password for superuser account at the bottom of this page. -CheckToCreateUser=Check box if database owner does not exist and must be created.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists. KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this) SaveConfigurationFile=Save values diff --git a/htdocs/langs/bs_BA/main.lang b/htdocs/langs/bs_BA/main.lang index 253e7b82ca9..ac62d6972a2 100644 --- a/htdocs/langs/bs_BA/main.lang +++ b/htdocs/langs/bs_BA/main.lang @@ -75,7 +75,8 @@ FileRenamed=Datoteka je uspješno preimenovana FileGenerated=Datoteka je uspješno generirana FileSaved=The file was successfully saved FileUploaded=Datoteka je uspješno postavljena -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=Datoteka je odabrana za prilog ali nije još postavljena. Kliknite na "Dodaj datoteku" da bi ste to uradili. NbOfEntries=Broj unosa GoToWikiHelpPage=Pročitajte online pomoć (neophodan pristup internetu) @@ -196,6 +197,7 @@ Parameter=Parametar Parameters=Parametri Value=Vrijednost PersonalValue=Lična vrijednost +NewObject=New %s NewValue=Nova vrijednost CurrentValue=Trenutna vrijednost Code=Kod @@ -441,6 +443,7 @@ Reporting=Izvještavanje Reportings=Izvještavanja Draft=Nacrt Drafts=Uzorak +StatusInterInvoiced= Validated=Potvrđeno Opened=Otvori New=Novo @@ -727,6 +730,7 @@ SetBankAccount=Definiraj bankovni račun AccountCurrency=Valuta računa ViewPrivateNote=Vidi zabilješke XMoreLines=%s red(ova) skriveno +ShowMoreLines=Show more lines PublicUrl=Javni URL AddBox=Dodaj kutijicu SelectElementAndClick=Odaberite element i kliknite %s @@ -735,6 +739,7 @@ ShowTransaction=Pokaži unos u bankovni račun GoIntoSetupToChangeLogo=Idite u Početna - Postavke - Kompanija za promjenu logotipa ili Početna - Postavke - Prikaz za sakrivanje. Deny=Zabrani Denied=Zabranjeno +ListOf=List of %s ListOfTemplates=Spisak šablona Gender=Spol Genderman=Muškarac diff --git a/htdocs/langs/bs_BA/modulebuilder.lang b/htdocs/langs/bs_BA/modulebuilder.lang index 4cae99aea55..aabf528b29d 100644 --- a/htdocs/langs/bs_BA/modulebuilder.lang +++ b/htdocs/langs/bs_BA/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=Ova kartica za određena za definiranje stavki menija koje daje vaš modul. ModuleBuilderDescpermissions=Ova kartica je određena za definiranje novih dozvola koje želite dati s vašim modulom. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/bs_BA/multicurrency.lang b/htdocs/langs/bs_BA/multicurrency.lang index de75ec8b646..162c473a145 100644 --- a/htdocs/langs/bs_BA/multicurrency.lang +++ b/htdocs/langs/bs_BA/multicurrency.lang @@ -4,7 +4,8 @@ ErrorAddRateFail=Error in added rate ErrorAddCurrencyFail=Error in added currency ErrorDeleteCurrencyFail=Error delete fail multicurrency_syncronize_error=Synchronisation error: %s -multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate) CurrencyLayerAccount=CurrencyLayer API CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
    Get your API key
    If you use a free account you can't change the currency source (USD by default)
    But if your main currency isn't USD you can use the alternate currency source to force you main currency

    You are limited at 1000 synchronizations per month multicurrency_appId=API key diff --git a/htdocs/langs/bs_BA/orders.lang b/htdocs/langs/bs_BA/orders.lang index 477e9210b67..c919801faa8 100644 --- a/htdocs/langs/bs_BA/orders.lang +++ b/htdocs/langs/bs_BA/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area OrderCard=Order card OrderId=Order Id Order=Narudžba +PdfOrderTitle=Narudžba Orders=Narudžbe OrderLine=Order line OrderDate=Datum narudžbe diff --git a/htdocs/langs/bs_BA/other.lang b/htdocs/langs/bs_BA/other.lang index 0f2d133132d..e0b43fdaf77 100644 --- a/htdocs/langs/bs_BA/other.lang +++ b/htdocs/langs/bs_BA/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/bs_BA/propal.lang b/htdocs/langs/bs_BA/propal.lang index d932ada9211..4e76231b123 100644 --- a/htdocs/langs/bs_BA/propal.lang +++ b/htdocs/langs/bs_BA/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Nacrti poslovnih prijedloga ProposalsOpened=Open commercial proposals Prop=Poslovni prijedlozi CommercialProposal=Poslovni prijedlog +PdfCommercialProposalTitle=Poslovni prijedlog ProposalCard=Kartica prijedloga NewProp=Novi poslovni prijedlozi NewPropal=Novi prijedlog diff --git a/htdocs/langs/bs_BA/salaries.lang b/htdocs/langs/bs_BA/salaries.lang index 522bf0a65d7..7e0c80d3380 100644 --- a/htdocs/langs/bs_BA/salaries.lang +++ b/htdocs/langs/bs_BA/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries diff --git a/htdocs/langs/bs_BA/website.lang b/htdocs/langs/bs_BA/website.lang index c438cb78f6f..eda58a168a6 100644 --- a/htdocs/langs/bs_BA/website.lang +++ b/htdocs/langs/bs_BA/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/bs_BA/workflow.lang b/htdocs/langs/bs_BA/workflow.lang index 2645cfccfff..d7b6ae54114 100644 --- a/htdocs/langs/bs_BA/workflow.lang +++ b/htdocs/langs/bs_BA/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Postavke workflow modula WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Označiti povezani izvorni prijedlog kao naplaćen odmah nakon plaćanja narudžbe za kupca -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Označiti povezanu izvornu narudžbu(e) kao plaćene kada je faktura za kupca postavljena kao plaćena. -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Označiti povezanu izvornu narudžbu(e) kao plaćene kada je faktura za kupca postavljena kao potvrđena. -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/ca_ES/accountancy.lang b/htdocs/langs/ca_ES/accountancy.lang index ca34ed5443d..20fdb77c2c3 100644 --- a/htdocs/langs/ca_ES/accountancy.lang +++ b/htdocs/langs/ca_ES/accountancy.lang @@ -27,8 +27,15 @@ OverviewOfAmountOfLinesNotBound=Visió general de quantitat de línies no compta OverviewOfAmountOfLinesBound=Visió general de quantitat de línies ja comptabilitzades al compte comptable OtherInfo=Altra informació DeleteCptCategory=Remove accounting account from group -ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +ConfirmDeleteCptCategory=Estàs segur que vols eliminar aquest compte comptable del grup de comptabilitat? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Àrea de comptabilitat AccountancyAreaDescIntro=L'ús del mòdul de comptabilitat es realitza en diverses etapes: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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=PAS %s: Definir els comptes comptables per a cada banc i compte financer. Per a això, aneu a la fitxa de cada compte financer. Vostè pot comnçar a la pàgina %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -79,11 +86,11 @@ SuppliersVentilation=Comptabilització de factura de proveïdor ExpenseReportsVentilation=Comptabilització d'informes de despeses CreateMvts=Crea una nova transacció UpdateMvts=Modificació d'una transacció -ValidTransaction=Validate transaction +ValidTransaction=Valida la transacció WriteBookKeeping=Journalize transactions in Ledger -Bookkeeping=Ledger +Bookkeeping=Llibre major AccountBalance=Compte saldo - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Informe de despeses totals InvoiceLines=Línies de factura a comptabilitzar @@ -103,7 +110,7 @@ LineOfExpenseReport=Línia d'informe de despeses NoAccountSelected=Compte comptable no seleccionat VentilatedinAccount=Vinculat amb èxit al compte comptable NotVentilatedinAccount=No vinculat al compte comptable -XLineSuccessfullyBinded=%s de productes/serveis comptabilitzats correctament a un compte comptable +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s de productes/serveis no comptabilitzats en cap compte comptable ACCOUNTING_LIMIT_LIST_VENTILATION=Nombre d'elements a vincular mostrats per pàgina (màxim recomanat: 50) @@ -145,16 +152,16 @@ AccountingCategory=Grups comptes contables GroupByAccountAccounting=Agrupar per compte comptable ByAccounts=By accounts NotMatch=No definit -DeleteMvt=Delete Ledger lines +DeleteMvt=Elimina línies del llibre major DelYear=Any a eliminar DelJournal=Diari per esborrar ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger -DelBookKeeping=Delete record of the Ledger +ConfirmDeleteMvtPartial=Això eliminarà la línia o línies seleccionades del llibre major +DelBookKeeping=Elimina el registre del libre major FinanceJournal=Finance journal ExpenseReportsJournal=Informe-diari de despeses DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Comptes comptables de IVA sense definir ThirdpartyAccountNotDefined=Comptes comptables de tercers (clients o proveïdors) sense definir ProductAccountNotDefined=Comptes comptables per al producte sense definir @@ -166,13 +173,15 @@ NewAccountingMvt=Nova transacció NumMvts=Número de transacció ListeMvts=Llista de moviments ErrorDebitCredit=El dèbit i el crèdit no poden tenir valors alhora -AddCompteFromBK=Add accounting accounts to the group +AddCompteFromBK=Afegeix comptes comptables al grup ReportThirdParty=Llista el compte del tercer DescThirdPartyReport=Consulti aquí la llista de tercers (cliente i proveïdors) i els seus corresponents comptes comptables ListAccounts=Llistat dels comptes comptables +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Classe de compte -Pcgsubtype=Subclass of account +Pcgsubtype=Subclasse de compte TotalVente=Total turnover before tax TotalMarge=Marge total de vendes @@ -194,11 +203,11 @@ ValidateHistory=Comptabilitza automàticament AutomaticBindingDone=Comptabilització automàtica realitzada ErrorAccountancyCodeIsAlreadyUse=Error, no pots eliminar aquest compte comptable perquè està en ús -MvtNotCorrectlyBalanced=Moviment no balancejat correctament. Crèdit = %s. Dèbit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Fitxa de comptabilització -GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerIsWritten=Les transaccions s'han escrit al llibre major GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. -NoNewRecordSaved=No new record dispatched +NoNewRecordSaved=No s'ha enviat cap nou registre ListOfProductsWithoutAccountingAccount=Llista de productes no comptabilitzats en cap compte comptable ChangeBinding=Canvia la comptabilització @@ -206,11 +215,10 @@ ChangeBinding=Canvia la comptabilització ApplyMassCategories=Aplica categories massives AddAccountFromBookKeepingWithNoCategories=Afegir compte ja utilitzada sense categories CategoryDeleted=La categoria per al compte contable ha sigut eliminada -AccountingJournals=Accounting journals +AccountingJournals=Diari de comptabilitat AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Codi Nature=Caràcter AccountingJournalType1=Various operation AccountingJournalType2=Vendes @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exportacions -Export=Exporta ExportDraftJournal=Export draft journal Modelcsv=Model d'exportació OptionsDeactivatedForThisExportModel=Per aquest model d'exportació les opcions estan desactivades diff --git a/htdocs/langs/ca_ES/admin.lang b/htdocs/langs/ca_ES/admin.lang index 47ede739dae..7bd9791b9c0 100644 --- a/htdocs/langs/ca_ES/admin.lang +++ b/htdocs/langs/ca_ES/admin.lang @@ -48,7 +48,7 @@ InternalUsers=Usuaris interns ExternalUsers=Usuaris externs GUISetup=Entorn SetupArea=Àrea configuració -UploadNewTemplate=Upload new template(s) +UploadNewTemplate=Carrega nova plantilla(s) FormToTestFileUploadForm=Formulari de prova de càrrega de fitxer (segons opcions escollides) IfModuleEnabled=Nota: sí només és eficaç si el mòdul %s està activat RemoveLock=Esborreu el fitxer %s, si existeix, per permetre la utilitat d'actualització. @@ -104,7 +104,7 @@ MenuIdParent=Id del menú pare DetailMenuIdParent=IDr del menú pare (buit per a un menú superior) DetailPosition=Número d'ordre per a la posició del menú AllMenus=Tots -NotConfigured=Module/Application not configured +NotConfigured=Mòdul/Aplicació no configurat Active=Actiu SetupShort=Configuració OtherOptions=Altres opcions @@ -123,8 +123,8 @@ PHPTZ=Zona horària Servidor PHP DaylingSavingTime=Horari d'estiu (usuari) CurrentHour=Hora PHP (servidor) CurrentSessionTimeOut=Timeout sessió actual -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. +YouCanEditPHPTZ=Per establir una zona horària PHP diferent (no és necessari), pots intentar afegir un fitxer .htaccess amb una línia com aquesta "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Avís, al contrari d'altres pantalles, les hores d'aquesta pàgina no són a la vostra zona horària local, sinó a la zona horària del servidor. Box=Panell Boxes=Panells MaxNbOfLinesForBoxes=Màxim número de línies per panell @@ -140,13 +140,14 @@ SystemToolsArea=Àrea utilitats del sistema SystemToolsAreaDesc=Aquesta àrea ofereix diverses funcions d'administració. Utilitzeu el menú per triar la funcionalitat cercada. Purge=Purga PurgeAreaDesc=Aquesta pàgina permet eliminar tots els fitxers generats o guardats per Dolibarr (fitxers temporals o tots els fitxers de la carpeta %s). L'ús d'aquesta funció no és necessària. Es dóna per als usuaris que alberguen Dolibarr en un servidor que no ofereix els permisos d'eliminació de fitxers generats pel servidor web. -PurgeDeleteLogFile=Eliminar arxiu de registre %s definit al mòdul Syslog (no hi ha risc de perdre dades) +PurgeDeleteLogFile=Suprimeix els fitxers de registre, incloent %s definit per al mòdul Syslog (sense risc de perdre dades) PurgeDeleteTemporaryFiles=Elimina tots els fitxers temporals (sense risc de perdre dades) PurgeDeleteTemporaryFilesShort=Elimina els fitxers temporals PurgeDeleteAllFilesInDocumentsDir=Eliminar tots els fitxers de la carpeta %s. Arxius temporals i arxius adjunts a elements (tercers, factures, etc.) Seran eliminats. PurgeRunNow=Purgar PurgeNothingToDelete=No hi ha carpeta o fitxers per esborrar. PurgeNDirectoriesDeleted=%s arxius o carpetes eliminats +PurgeNDirectoriesFailed=No s'han pogut eliminar %s fitxers o directoris. PurgeAuditEvents=Purgar els esdeveniments de seguretat ConfirmPurgeAuditEvents=Estàs segur que vols purgar tots els esdeveniments de seguretat? S'eliminaran tots els registres de seguretat, cap altra dada serà eliminada. GenerateBackup=Generar còpia @@ -190,7 +191,7 @@ FeatureAvailableOnlyOnStable=Funcionalitat disponible únicament en versions est Rights=Permisos BoxesDesc=Els panells són components que mostren alguna informació que pots afegir per personalitzar algunes pàgines. Pots triar entre mostrar el panell o no seleccionant la pàgina de destí i fent clic a 'Activa', o fent clic al cubell d'escombraries per desactivar. OnlyActiveElementsAreShown=Només els elements de mòduls activats són mostrats -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. +ModulesDesc=Els mòduls Dolibarr defineixen quina aplicació/característica està habilitada al programari. Algunes aplicacions/mòduls requereixen permisos que has de concedir als usuaris, després d'activar-los. Fes clic al botó d'activació/desactivació per habilitar un mòdul/aplicació. ModulesMarketPlaceDesc=Pots trobar més mòduls per descarregar en pàgines web externes per internet... ModulesDeployDesc=Si els permisos en el seu sistema d'arxius ho permiteixen, pot utilitzar aquesta ferramente per instal·lar un mòdul extern. El mòdul estarà aleshores visible en la pestanya %s ModulesMarketPlaces=Busca mòduls externs... @@ -214,7 +215,7 @@ MainDbPasswordFileConfEncrypted=Encriptar la contrasenya de la base en l'arxiu c InstrucToEncodePass=Per tenir la contrasenya encriptada al fitxer conf.php reemplaça la línia
    $dolibarr_main_db_pass="...";
    per
    $dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=Per 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=Protecció i encriptació dels pdf generats -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. +ProtectAndEncryptPdfFilesDesc=La protecció d'un document PDF el manté disponible per llegir i imprimir amb qualsevol navegador PDF. No obstant això, l'edició i la còpia ja no és possible. Tingues en compte que l'ús d'aquesta característica fa que la construcció d'un arxiu PDF fusionat global no funcioni. Feature=Funció DolibarrLicense=Llicència Developpers=Desenvolupadors/col·laboradors @@ -270,7 +271,7 @@ FeatureNotAvailableOnLinux=Funcionalitat no disponible en sistemes Unix. Proveu SubmitTranslation=Si la traducció d'aquest idioma no està completa o trobes errors, pots corregir-ho editant els arxius en el directorilangs/%s i enviant els canvis a www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=Si la traducció d'aquest idioma no està completa o trobes errors, pots corregir-ho editant els fitxers en el directorilangs/%s i enviant els fitxers modificats al fòrum de www.dolibarr.es o pels desenvolupadors a github.com/Dolibarr/dolibarr. ModuleSetup=Configuració del mòdul -ModulesSetup=Modules/Application setup +ModulesSetup=Configuració de mòduls/aplicacions ModuleFamilyBase=Sistema ModuleFamilyCrm=Gestió client (CRM) ModuleFamilySrm=Gestió de seguiment de proveïdors (SRM) @@ -298,13 +299,13 @@ SetupIsReadyForUse=La instal·lació del mòdul ha finalitzat. No obstant, ha d' NotExistsDirect=No s'ha definit el directori arrel alternatiu a un directori existent.
    InfDirAlt=Des de la versió 3, és possible definir un directori arrel alternatiu. Això li permet emmagatzemar, en un directori dedicat, plug-ins i plantilles personalitzades.
    Només ha de crear un directori a l'arrel de Dolibarr (per exemple: custom).
    InfDirExample=
    Després indiqui-ho al fitxer conf.php
    $dolibarr_main_url_root_alt='http://miservidor/custom'
    $dolibarr_main_document_root_alt='/ruta/de/Dolibarr/htdocs/custom'
    Si aquestes línies es troben comentades amb "#", per habilitar-les, només cal descomentar eliminant el caràcter "#". -YouCanSubmitFile=Per aquest pas, pots enviar el paquet utilitzant aquesta utilitat: Selecciona el fitxer del mòdul +YouCanSubmitFile=Per a aquest pas, pots enviar el fitxer del paquet aquí: CurrentVersion=Versió actual de Dolibarr CallUpdatePage=Ves a la pàgina que actualitza l'estructura de base de dades i les dades: %s LastStableVersion=Última versió estable LastActivationDate=Data de l'última activació -LastActivationAuthor=Latest activation author -LastActivationIP=Latest activation IP +LastActivationAuthor=Últim autor d'activació +LastActivationIP=Última IP d'activació UpdateServerOffline=Actualitzacións del servidor fora de línia WithCounter=Gestiona un comptador GenericMaskCodes=Podeu introduir qualsevol màscara numèrica. En aquesta màscara, pot utilitzar les següents etiquetes:
    {000000} correspon a un número que s'incrementa en cadascun %s. Introduïu tants zeros com longuitud desitgi mostrar. El comptador es completarà a partir de zeros per l'esquerra per tal de tenir tants zeros com la màscara.
    {000000+000}Igual que l'anterior, amb una compensació corresponent al número a la dreta del signe + s'aplica a partir del primer %s.
    {000000@x}igual que l'anterior, però el comptador es restableix a zero quan s'arriba a x mesos (x entre 1 i 12). Si aquesta opció s'utilitza i x és de 2 o superior, llavors la seqüència {yy}{mm} ó {yyyy}{mm} també és necessària.
    {dd} dies (01 a 31).
    {mm} mes (01 a 12).
    {yy} , {yyyy ó {y} any en 2, 4 ó 1 xifra.
    @@ -375,7 +376,7 @@ Int=Enter Float=Decimal DateAndTime=Data i hora Unique=Unic -Boolean=Boolean (one checkbox) +Boolean=Boleà (una casella de verificació) ExtrafieldPhone = Telèfon ExtrafieldPrice = Preu ExtrafieldMail = Correu @@ -386,9 +387,9 @@ ExtrafieldSeparator=Separador (no és un camp) ExtrafieldPassword=Contrasenya ExtrafieldRadio=Botons d'opció (només una opció) ExtrafieldCheckBox=Caselles de verificació -ExtrafieldCheckBoxFromList=Checkboxes from table +ExtrafieldCheckBoxFromList=Caselles de verificació des de taula ExtrafieldLink=Enllaç a un objecte -ComputedFormula=Computed field +ComputedFormula=Camp calculat ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
    WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
    Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

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

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

    Other example of formula to force load of object and its parent object:
    (($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=El llistat de paràmetres ha de ser key,valor

    per exemple:\\n
    1,value1
    2,value2
    3,value3
    ...

    Per a tindre una llista en funció d'atributs complementaris de llista:\n
    1,value1|options_parent_list_code:parent_key
    2,value2|options_parent_list_code:parent_key

    Per a tindre la llista en funció d'altra:
    1,value1|parent_list_code:parent_key
    2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=La llista ha de ser en forma clau, valor

    per exemple :
    1,text1
    2,text2
    3,text3
    ... @@ -432,18 +433,18 @@ WarningPHPMail=ADVERTÈNCIA: Alguns proveïdors de correu electrònic (com Yahoo ClickToShowDescription=Clica per mostrar la descripció DependsOn=Aquest mòdul necesita el/s mòdul/s RequiredBy=Aquest mòdul és requerit pel/s mòdul/s -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: -PageUrlForDefaultValuesCreate=
    For form to create a new thirdparty, it is %s -PageUrlForDefaultValuesList=
    For page that list thirdparties, it is %s -EnableDefaultValues=Enable usage of personalized default values -EnableOverwriteTranslation=Enable usage of overwrote translation -GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. -WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +TheKeyIsTheNameOfHtmlField=Aquest és el nom del camp HTML. Això necessita tenir coneixements tècnics per llegir el contingut de la pàgina HTML per obtenir el nom clau d'un camp. +PageUrlForDefaultValues=Has d'introduir aquí l'URL relatiu de la pàgina. Si inclous paràmetres a l'URL, els valors predeterminats seran efectius si tots els paràmetres s'estableixen en el mateix valor. Exemples: +PageUrlForDefaultValuesCreate=
    Pel formulari de crear un nou tercer, és %s +PageUrlForDefaultValuesList=
    Per a la pàgina que llista els tercers, és %s +EnableDefaultValues=Permet l'ús de valors predeterminats personalitzats +EnableOverwriteTranslation=Habilita l'ús de la traducció sobreescrita +GoIntoTranslationMenuToChangeThis=S'ha trobat una traducció per a la clau amb aquest codi, per tant, per canviar aquest valor, heu d'editar-lo des de Inici-Configuració-Traducció. +WarningSettingSortOrder=Avís, establir un ordre de classificació predeterminat pot provocar un error tècnic en passar a la pàgina de la llista si el camp és un camp desconegut. Si experimentes aquest error, torna a aquesta pàgina per eliminar l'ordre de classificació predeterminat i restablir el comportament predeterminat. Field=Camp -ProductDocumentTemplates=Document templates to generate product document -FreeLegalTextOnExpenseReports=Free legal text on expense reports -WatermarkOnDraftExpenseReports=Watermark on draft expense reports +ProductDocumentTemplates=Plantilles de documents per generar document de producte +FreeLegalTextOnExpenseReports=Text legal lliure en informes de despeses +WatermarkOnDraftExpenseReports=Marca d'aigua en informes de despeses esborrany # Modules Module0Name=Usuaris i grups Module0Desc=Gestió d'usuaris / empleats i grups @@ -466,7 +467,7 @@ Module30Desc=Gestió de factures i abonaments de clients. Gestió factures de pr Module40Name=Proveïdors Module40Desc=Gestió de proveïdors Module42Name=Syslog -Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. +Module42Desc=Generació de registres/logs (fitxer, syslog, ...). Aquests registres són per a finalitats tècniques/depuració. Module49Name=Editors Module49Desc=Gestió d'editors Module50Name=Productes @@ -521,8 +522,8 @@ Module410Name=Webcalendar Module410Desc=Interface amb el calendari webcalendar Module500Name=Pagaments especials Module500Desc=Gestió de despeses especials (impostos varis, dividends) -Module510Name=Payment of employee wages -Module510Desc=Record and follow payment of your employee wages +Module510Name=Pagament de salaris dels empleats +Module510Desc=Registre i seguiment del pagament dels salaris dels empleats Module520Name=Préstec Module520Desc=Gestió de préstecs Module600Name=Notificacions @@ -535,8 +536,6 @@ Module1120Name=Pressupost de proveïdor Module1120Desc=Sol·licitud pressupost i preus a proveïdor Module1200Name=Mantis Module1200Desc=Interface amb el sistema de seguiment d'incidències Mantis -Module1400Name=Comptabilitat experta -Module1400Desc=Accounting management (double entries) Module1520Name=Generar document Module1520Desc=Generació de documents de correu massiu Module1780Name=Etiquetes @@ -564,10 +563,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=Capacitats de conversió GeoIP Maxmind Module3100Name=Skype Module3100Desc=Afegeix un botó d'Skype a les fitxes dels usuaris / tercers / contactes / socis -Module3200Name=Non Reversible Logs -Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. +Module3200Name=Registres no reversibles +Module3200Desc=Activa el registre d'alguns esdeveniments de negoci en un registre no reversible. Els esdeveniments s'arxiven en temps real. El registre és una taula d'esdeveniments encadenats que es pot llegir i exportar. Aquest mòdul pot ser obligatori per a alguns països. Module4000Name=RRHH -Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) +Module4000Desc=Gestió de recursos humans (gestió del departament, contractes d'empleats i sentiments) Module5000Name=Multi-empresa Module5000Desc=Permet gestionar diverses empreses Module6000Name=Workflow @@ -585,7 +584,7 @@ Module50100Desc=Mòdul Terminal Punt Venda (TPV) Module50200Name=Paypal Module50200Desc=Mòdul per a proporcionar un pagament en línia amb targeta de crèdit mitjançant Paypal Module50400Name=Comptabilitat (avançat) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Gestió comptable (entrades dobles, suport a llibres major i auxiliar) Module54000Name=PrintIPP Module54000Desc=L'impressió directa (sense obrir els documents) utilitza l'interfície Cups IPP (L'impressora té que ser visible pel servidor i CUPS té que estar instal·lat en el servidor) Module55000Name=Enquesta o votació @@ -615,7 +614,7 @@ Permission32=Crear/modificar productes Permission34=Elimina productes Permission36=Veure/gestionar els productes ocults Permission38=Exportar productes -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) +Permission41=Consulta projectes i tasques (els projectes compartits i els projectes en que sóc el contacte). També pots introduir els temps consumits, per a mi o la meva jerarquia, en tasques asignades (full de temps) Permission42=Crea/modifica projectes (projectes compartits i projectes dels que sóc contacte). També pot crear tasques i assignar usuaris a projectes i tasques Permission44=Elimina projectes (projectes compartits i projectes dels que en sóc contacte) Permission45=Exporta projectes @@ -751,8 +750,10 @@ Permission401=Consultar havers Permission402=Crear/modificar havers Permission403=Validar havers Permission404=Eliminar havers -Permission510=Consultar salaris -Permission512=Crear/modificar salaris +Permission501=Consulta els contractes/salaris dels empleats +Permission502=Crea/modifica els contractes/salaris dels empleats +Permission511=Consulta el pagament dels salaris +Permission512=Crea/modifica el pagament dels salaris Permission514=Elimina salaris Permission517=Exportació salaris Permission520=Consulta préstecs @@ -868,7 +869,7 @@ DictionaryOrderMethods=Mètodes de comanda DictionarySource=Orígens de pressupostos/comandes DictionaryAccountancyCategory=Grups comptes contables DictionaryAccountancysystem=Models de plans comptables -DictionaryAccountancyJournal=Accounting journals +DictionaryAccountancyJournal=Diari de comptabilitat DictionaryEMailTemplates=Models d'emails DictionaryUnits=Unitats DictionaryProspectStatus=Estat del client potencial @@ -997,7 +998,7 @@ Delays_MAIN_DELAY_MEMBERS=Tolerància de retard abans de l'alerta (en dies) sobr Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerància de retard abans de l'alerta (en dies) sobre xecs a ingressar Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerància de retard (en dies) abans d'alertar d'informes de despeses pendents d'aprovar SetupDescription1=L'àrea de configuració són pels paràmetres de configuració inicials abans de començar a utilitzar Dolibarr. -SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription2=Els dos passos de configuració obligatoris són els dos primers en el menú d'instal·lació de l'esquerra: %s pàgina de configuració i %s pàgina de configuració: SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Les altres entrades de configuració gestionen paràmetres opcionals. @@ -1015,7 +1016,7 @@ BrowserOS=S.O. del navegador ListOfSecurityEvents=Llistat d'esdeveniments de seguretat Dolibarr SecurityEventsPurged=Esdeveniments de seguretat purgats LogEventDesc=Podeu habilitar el registre d'esdeveniments de seguretat Dolibarr aquí. Els administradors poden veure el seu contingut a través de menú Eines del sistema->Auditoria. Atenció, aquesta característica pot consumir una gran quantitat de dades a la base de dades. -AreaForAdminOnly=Setup parameters can be set by administrator users only. +AreaForAdminOnly=Els paràmetres de configuració només poden ser establerts per usuaris administradors. SystemInfoDesc=La informació del sistema és informació tècnica accessible només en només lectura als administradors. SystemAreaForAdminOnly=Aquesta àrea només és accessible als usuaris de tipus administradors. Cap permís Dolibarr permet estendre el cercle de usuaris autoritzats a aquesta áera. CompanyFundationDesc=Edita en aquesta pàgina tota la informació coneguda sobre l'empresa o entitat a administrar (Fes clic al botó "Modificar" o "Desar" a peu de pàgina) @@ -1057,7 +1058,7 @@ RestoreDesc2=Agafar l'arxiu (arxiu zip, per exemple) del directori dels document RestoreDesc3=Restaurar l'arxiu del bolcat guardat a la base de dades de la nova instal·lació de Dolibarr o d'aquesta instal·lació (%s). Atenció, una vegada realitzada la restauració, tindra d'utilitzar un login/contrasenya d'administrador existent en el moment de la copia de seguretat per connectar-se. Per restaurar la base de dades de l'instal·lació actual, pot utilitzar l'assistent a continuació. RestoreMySQL=Importació MySQL ForcedToByAModule= Aquesta regla està forçada a %s per un dels mòduls activats -PreviousDumpFiles=Arxius de còpia de seguretat de la base de dades disponibles +PreviousDumpFiles=Fitxers de còpia de seguretat de bases de dades generades WeekStartOnDay=Primer dia de la setmana RunningUpdateProcessMayBeRequired=Sembla necessari realitzar el procés d'actualizació (la versió del programa %s difereix 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. @@ -1107,8 +1108,8 @@ CurrentTranslationString=Cadena de traducció actual WarningAtLeastKeyOrTranslationRequired=Es necessita un criteri de cerca com a mínim per cadena o clau de traducció NewTranslationStringToShow=Nova cadena de traducció a mostrar OriginalValueWas=La traducció original s'ha sobreescrit. El valor original era:

    %s -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files -TotalNumberOfActivatedModules=Activated application/modules: %s / %s +TransKeyWithoutOriginalValue=Has obligat una nova traducció per a la clau de traducció '%s' que no existeix en cap fitxer d'idioma +TotalNumberOfActivatedModules=Mòduls/Aplicacions activats: %s / %s YouMustEnableOneModule=Ha d'activar almenys 1 mòdul. ClassNotFoundIntoPathWarning=No s'ha trobat la classe %s en el seu path PHP YesInSummer=Sí a l'estiu @@ -1165,7 +1166,7 @@ WebCalUrlForVCalExport=Un vincle d'exportació del calendari en format %s BillsSetup=Configuració del mòdul Factures BillsNumberingModule=Mòdul de numeració de factures i abonaments BillsPDFModules=Models de documents de factures -PaymentsPDFModules=Payment documents models +PaymentsPDFModules=Models de documents de pagament CreditNote=Abonament CreditNotes=Abonaments ForceInvoiceDate=Forçar la data de factura a la data de validació @@ -1358,16 +1359,16 @@ FilesOfTypeNotCached=Fitxers de tipus %s no s'emmagatzemen en memòria cau pel s FilesOfTypeCompressed=Fitxers de tipus %s són comprimits pel servidor HTTP FilesOfTypeNotCompressed=Fitxers de tipus %s no són comprimits pel servidor HTTP CacheByServer=Memòria cau amb el servidor -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" +CacheByServerDesc=Per exemple, utilitzant la directiva Apache "ExpiresByType image/gif A2592000" CacheByClient=Memòria cau del navegador CompressionOfResources=Compressió de les respostes HTTP -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" +CompressionOfResourcesDesc=Per exemple, utilitzant la directiva Apache "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=La detecció automàtica no és possible amb els navegadors actuals -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultValuesDesc=Pots definir/forçar aquí el valor predeterminat que vols obtenir quan crees un registre nou, i/o filtres predeterminats o ordenació quan el teu llistat es registri. DefaultCreateForm=Valors per defecte pels nous objectes DefaultSearchFilters=Filtres de cerca per defecte DefaultSortOrder=Tipus d'ordenació per defecte -DefaultFocus=Default focus fields +DefaultFocus=Camps d'enfocament per defecte ##### Products ##### ProductSetup=Configuració del mòdul Productes ServiceSetup=Configuració del mòdul Serveis @@ -1517,7 +1518,7 @@ AGENDA_DEFAULT_FILTER_STATUS=Establir per defecte aquest estat de esdeveniments AGENDA_DEFAULT_VIEW=Establir la pestanya per defecte al seleccionar el menú Agenda AGENDA_NOTIFICATION=Activa la notificació de events en els navegadors dels usuaris quan s'arriba a la data de l'esdeveniment (cada usuari és capaç de rebutjar-ho des de la pregunta de confirmació del navegador) AGENDA_NOTIFICATION_SOUND=Habilita les notificacions sonores -AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view +AGENDA_SHOW_LINKED_OBJECT=Mostra l'objecte vinculat a la vista d'agenda ##### Clicktodial ##### ClickToDialSetup=Configuració del mòdul Click To Dial ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
    __PHONETO__ that will be replaced with the phone number of person to call
    __PHONEFROM__ that will be replaced with phone number of calling person (yours)
    __LOGIN__ that will be replaced with clicktodial login (defined on user card)
    __PASS__ that will be replaced with clicktodial password (defined on user card). @@ -1638,7 +1639,7 @@ MinimumNoticePeriod=Període mínim de notificació (La solicitud de dia lliure NbAddedAutomatically=Número de dies afegits en comptadors d'usuaris (automàticament) cada mes EnterAnyCode=Aquest camp conté una referència a un identificador de línia. Introdueix qualsevol valor però sense caràcters especials. UnicodeCurrency=Introduïu aquí entre claus, la llista de nombre de bytes que representen el símbol de moneda. Per Exemple: per $, introdueix [36] - per als reals de Brasil R$ [82,36] - per € , introdueix [8364] -ColorFormat=The RGB color is in HEX format, eg: FF0000 +ColorFormat=El color RGB es troba en format HEX, per exemple: FF0000 PositionIntoComboList=Posició de la línia en llistes combo SellTaxRate=Valor de l'IVA RecuperableOnly=Sí per l'IVA "Non Perçue Récupérable" dedicat a algun estat a França. Mantingui el valor a "No" en els altres casos. @@ -1697,9 +1698,9 @@ SamePriceAlsoForSharedCompanies=Si utilitzes el mòdul Multiempresa, amb l'elecc ModuleEnabledAdminMustCheckRights=S'ha activat el mòdul. Els permisos per als mòdul(s) activats es donen només als usuaris administradors. Podria ser necessari concedir permisos a altres usuaris o grups de forma manual si és necessari. UserHasNoPermissions=Aquest usuari no té permisos definits TypeCdr=Utilitze "Cap" si la data de termini de pagament és la data de la factura més un delta en dies (delta és el camp "Nº de dies")
    Utilitze "A final de mes", si, després del delta, la data ha d'aumentar-se per arribar a final de mes (+ "Offset" opcional en dies)
    Utilitze "Actual/Següent" per tindre la data de termini de pagament sent el primer N de cada mes (N es guarda en el camp "Nº de dies") -BaseCurrency=Reference currency of the company (go into setup of company to change this) -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +BaseCurrency=Moneda de referència de l'empresa (entra a la configuració de l'empresa per canviar-la) +WarningNoteModuleInvoiceForFrenchLaw=Aquest mòdul %s compleix les lleis franceses (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=Aquest mòdul %s compleix les lleis franceses (Loi Finance 2016) perquè el mòdul Non Reversible Logs s'ha activat automàticament. WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuració del mòdul Recurs diff --git a/htdocs/langs/ca_ES/agenda.lang b/htdocs/langs/ca_ES/agenda.lang index 30254d7226f..76aaab7c1c6 100644 --- a/htdocs/langs/ca_ES/agenda.lang +++ b/htdocs/langs/ca_ES/agenda.lang @@ -75,17 +75,17 @@ InterventionSentByEMail=Intervenció %s enviada per email ProposalDeleted=Pressupost esborrat OrderDeleted=Comanda esborrada InvoiceDeleted=Factura esborrada -PRODUCT_CREATEInDolibarr=Product %s created -PRODUCT_MODIFYInDolibarr=Product %s modified -PRODUCT_DELETEInDolibarr=Product %s deleted +PRODUCT_CREATEInDolibarr=Producte %s creat +PRODUCT_MODIFYInDolibarr=Producte %s modificat +PRODUCT_DELETEInDolibarr=Producte %s eliminat ##### End agenda events ##### AgendaModelModule=Plantilles de documents per esdeveniments DateActionStart=Data d'inici DateActionEnd=Data finalització AgendaUrlOptions1=Podeu també afegir aquests paràmetres al filtre de sortida: AgendaUrlOptions3=logina=%s ​​per a restringir insercions a les accions creades per l'usuari %s. -AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. -AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). +AgendaUrlOptionsNotAdmin=logina=!%s ​​per a restringir la producció d'accions que no pertanyen a l'usuari %s. +AgendaUrlOptions4=logint=%s per a restringir la producció d'accions assignades a l'usuari %s (propietari i altres). AgendaUrlOptionsProject=project=PROJECT_ID per a restringir la sortida d'accions associades al projecta PROJECT_ID. AgendaShowBirthdayEvents=Mostra aniversaris dels contactes AgendaHideBirthdayEvents=Oculta aniversaris dels contactes diff --git a/htdocs/langs/ca_ES/banks.lang b/htdocs/langs/ca_ES/banks.lang index c73774003f7..e936eccac98 100644 --- a/htdocs/langs/ca_ES/banks.lang +++ b/htdocs/langs/ca_ES/banks.lang @@ -152,6 +152,6 @@ BankAccountModelModule=Plantilles de documents per comptes bancaris DocumentModelSepaMandate=Plantilla per a mandat SEPA. Vàlid només per a països europeus de la CEE. DocumentModelBan=Plantilla per imprimir una pàgina amb informació BAN NewVariousPayment=Nou pagament varis -VariousPayment=Pagament varis +VariousPayment=Pagaments varis VariousPayments=Pagaments varis -ShowVariousPayment=Mostra el pagament varis +ShowVariousPayment=Mostra els pagaments varis diff --git a/htdocs/langs/ca_ES/bills.lang b/htdocs/langs/ca_ES/bills.lang index a1aa5c412d1..7ead0c91c22 100644 --- a/htdocs/langs/ca_ES/bills.lang +++ b/htdocs/langs/ca_ES/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Era la font d'un o diversos abonaments CardBill=Fitxa factura PredefinedInvoices=Factura predefinida Invoice=Factura +PdfInvoiceTitle=Factura Invoices=Factures InvoiceLine=Línia de factura InvoiceCustomer=Factura a client diff --git a/htdocs/langs/ca_ES/compta.lang b/htdocs/langs/ca_ES/compta.lang index 6e3a8ecbd22..58c5dc35a5b 100644 --- a/htdocs/langs/ca_ES/compta.lang +++ b/htdocs/langs/ca_ES/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Compte comptable per defecte per a IVA repercutit - ACCOUNTING_VAT_BUY_ACCOUNT=Compte comptable per defecte per a IVA suportat - IVA a les compres (utilitzat si no ha estat definit al diccionari de IVA) ACCOUNTING_VAT_PAY_ACCOUNT=Compte comptable per defecte per IVA pagat ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Duplica un impost varis ConfirmCloneTax=Confirma la duplicació del pagament de l'impost varis CloneTaxForNextMonth=Clonar-la pel pròxim mes diff --git a/htdocs/langs/ca_ES/errors.lang b/htdocs/langs/ca_ES/errors.lang index d21594a7dc6..c82fbb59576 100644 --- a/htdocs/langs/ca_ES/errors.lang +++ b/htdocs/langs/ca_ES/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, nom de disparador %s duplicat. Ja es troba carregat ErrorNoWarehouseDefined=Error, no hi ha magatzems definits. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=No és possible la validació massiva quan s'estableix l'opció d'augmentar/disminuir l'estoc en aquesta acció (cal validar-ho un per un per poder definir el magatzem a augmentar/disminuir) +ErrorObjectMustHaveStatusDraftToBeValidated=L'objecte %s ha de tenir l'estat 'Esborrany' per ser validat. +ErrorObjectMustHaveLinesToBeValidated=L'objecte %s ha de tenir línies per ser validat. # Warnings WarningPasswordSetWithNoAccount=S'ha indicat una contrasenya per aquest soci. En canvi, no s'ha creat cap compte d'usuari, de manera que aquesta contrasenya s'ha desat però no pot ser utilitzada per entrar a Dolibarr. Es pot utilitzar per un mòdul/interfície extern, però si no cal definir cap usuari i contrasenya per un soci, pots deshabilitar la opció "Gestiona l'entrada per tots els socis" des de la configuració del mòdul Socis. Si necessites gestionar una entrada sense contrasenya, pots mantenir aquest camp buit i permetre aquest avís. Nota: El correu electrònic es pot utilitzar per entrar si el soci està enllaçat a un usuarí diff --git a/htdocs/langs/ca_ES/exports.lang b/htdocs/langs/ca_ES/exports.lang index 1ad1177dc3a..893eaefcd4b 100644 --- a/htdocs/langs/ca_ES/exports.lang +++ b/htdocs/langs/ca_ES/exports.lang @@ -113,14 +113,14 @@ ExportDateFilter=AAAA, AAAAMM, AAAAMMDD: filtres per any/mes/dia
    AAAA+AAAA, A ExportNumericFilter=NNNNN filtra per un valor
    NNNNN+NNNNN filtra sobre un rang de valors
    < NNNN filtra per valors menors
    > NNNNN filtra per valors majors ImportFromLine=Importa començant des del número de línia EndAtLineNb=Final en el número de línia -ImportFromToLine=Import line numbers (from - to) +ImportFromToLine=Importa números de línia (desde - fins a) SetThisValueTo2ToExcludeFirstLine=Per exemple, defineix aquest valor a 3 per excloure les 2 primeres línies KeepEmptyToGoToEndOfFile=Deixa aquest camp buit per anar al final del fitxer -SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt -UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) -NoUpdateAttempt=No update attempt was performed, only insert +SelectPrimaryColumnsForUpdateAttempt=Seleccioneu la columna(s) que s'utilitzarà com a clau principal d'intent d'actualització +UpdateNotYetSupportedForThisImport=L'actualització no és compatible amb aquest tipus d'importació (només afegir) +NoUpdateAttempt=No s'ha realitzat cap intent d'actualització, només afegir ImportDataset_user_1=Usuaris (empleats o no) i propietats -ComputedField=Computed field +ComputedField=Camp calculat ## filters SelectFilterFields=Si vol aplicar un filtre sobre alguns valors, introduïu-los aquí. FilteredFields=Camps filtrats diff --git a/htdocs/langs/ca_ES/install.lang b/htdocs/langs/ca_ES/install.lang index 5602ff160e7..4d42a15aa0c 100644 --- a/htdocs/langs/ca_ES/install.lang +++ b/htdocs/langs/ca_ES/install.lang @@ -53,10 +53,10 @@ AdminLogin=Usuari de l'administrador de la base de dades Dolibarr. PasswordAgain=Verificació de la contrasenya AdminPassword=Contrasenya de l'administrador de la base de dades Dolibarr. CreateDatabase=Crear la base de dades -CreateUser=Crear el propietari +CreateUser=Crea el propietari o concedeix-li permís en la base de dades DatabaseSuperUserAccess=Base de dades - Accés super usuari CheckToCreateDatabase=Seleccioneu aquesta opció si la base de dades no existeix i s'ha de crear. En aquest cas, cal indicar usuari/contrasenya de superusuari, més endavant en aquesta pàgina. -CheckToCreateUser=Seleccioneu aquesta opció si l'usuari no existeix i s'ha de crear.
    En aquest cas, cal indicar usuari/contrasenya de superusuari, més endavant en aquesta pàgina. +CheckToCreateUser=Marca la casella de verificació si el propietari de la base de dades no existeix i s'ha de crear, o si existeix, però la base de dades no existeix i els permisos s'han de concedir.
    En aquest cas, has de triar el seu nom d'usuari i contrasenya i també omplir el nom d'usuari i contrasenya del compte superusuari al final d'aquesta pàgina. Si aquesta casella no està activada, el propietari de la base de dades i les seves contrasenyes han d'existir. DatabaseRootLoginDescription=Usuari de la base que té els drets de creació de bases de dades o compte per a la base de dades, inútil si la base de dades i el seu usuari ja existeixen (com quan estan en un amfitrió). KeepEmptyIfNoPassword=Deixa-ho en blanc si l'usuari no té contrasenya (evita-ho) SaveConfigurationFile=Gravació del fitxer de configuració @@ -138,7 +138,7 @@ KeepDefaultValuesWamp=Estàs utilitzant l'assistent d'instal·lació de DoliWamp KeepDefaultValuesDeb=Estàs utilitzant l'assistent d'instal·lació Dolibarr d'un paquet Linux (Ubuntu, Debian, Fedora...) amb els valors proposats més òptims. Només cal completar la contrasenya del propietari de la base de dades a crear. Canvia els altres paràmetres només si estàs segur del que estàs fent. KeepDefaultValuesMamp=Estàs utilitzant l'assistent d'instal·lació de DoliMamp amb els valors proposats més òptims. Canvia'ls només si estàs segur del que estàs fent. KeepDefaultValuesProxmox=Estàs utilitzant l'assistent d'instal·lació de Dolibarr des d'una màquina virtual Proxmox amb els valors proposats més òptims. Canvia'ls només si estàs segur del que estàs fent. -UpgradeExternalModule=Run dedicated upgrade process of external modules +UpgradeExternalModule=Executa el procés d'actualització dedicat de mòduls externs ######### # upgrade diff --git a/htdocs/langs/ca_ES/loan.lang b/htdocs/langs/ca_ES/loan.lang index 5e9c5bbb647..a1b6f9e1a8e 100644 --- a/htdocs/langs/ca_ES/loan.lang +++ b/htdocs/langs/ca_ES/loan.lang @@ -44,7 +44,7 @@ GoToInterest=%s es destinaran a INTERÈS GoToPrincipal=%s es destinaran a PRINCIPAL YouWillSpend=Gastaràs %s en l'any %s ListLoanAssociatedProject=Llistat de prèstecs associats al projecte -AddLoan=Create loan +AddLoan=Crea un préstec # Admin ConfigLoan=Configuració del mòdul de préstecs LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Compte comptable del capital per defecte diff --git a/htdocs/langs/ca_ES/mails.lang b/htdocs/langs/ca_ES/mails.lang index 74856b642f5..9887f4cbbfc 100644 --- a/htdocs/langs/ca_ES/mails.lang +++ b/htdocs/langs/ca_ES/mails.lang @@ -79,8 +79,8 @@ MailingModuleDescContactsWithThirdpartyFilter=Contacte amb filtres de client MailingModuleDescContactsByCompanyCategory=Contactes per categoria de tercer MailingModuleDescContactsByCategory=Contactes per categories MailingModuleDescContactsByFunction=Contactes per càrrec -MailingModuleDescEmailsFromFile=Emails from file -MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescEmailsFromFile=Correus electrònics desde fitxer +MailingModuleDescEmailsFromUser=Entrada de correus electrònics per usuari MailingModuleDescDolibarrUsers=Usuaris amb correus electrònics MailingModuleDescThirdPartiesByCategories=Tercers (per categories) diff --git a/htdocs/langs/ca_ES/main.lang b/htdocs/langs/ca_ES/main.lang index 363c9cddd79..1335409b2f5 100644 --- a/htdocs/langs/ca_ES/main.lang +++ b/htdocs/langs/ca_ES/main.lang @@ -73,9 +73,10 @@ Apply=Aplicar BackgroundColorByDefault=Color de fons FileRenamed=L'arxiu s'ha renombrat correctament FileGenerated=L'arxiu ha estat generat correctament -FileSaved=The file was successfully saved +FileSaved=El fitxer s'ha desat correctament FileUploaded=L'arxiu s'ha carregat correctament -FileTransferComplete=File(s) was uploaded successfuly +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ò. NbOfEntries=Nº d'entrades GoToWikiHelpPage=Llegeix l'ajuda online (cal tenir accés a internet) @@ -196,6 +197,7 @@ Parameter=Paràmetre Parameters=Paràmetres Value=Valor PersonalValue=Valor personalitzat +NewObject=Nou %s NewValue=Nou valor CurrentValue=Valor actual Code=Codi @@ -360,7 +362,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Sense IVA TTC=IVA inclòs -INCT=Inc. all taxes +INCT=Inc. tots els impostos VAT=IVA VATs=IVAs LT1ES=RE @@ -369,8 +371,8 @@ VATRate=Taxa IVA Average=Mitja Sum=Suma Delta=Diferència -Module=Module/Application -Modules=Modules/Applications +Module=Mòdul/Aplicació +Modules=Mòduls/Aplicacions Option=Opció List=Llistat FullList=Llista completa @@ -414,7 +416,7 @@ TotalDuration=Duració total Summary=Resum DolibarrStateBoard=Estadístiques de base de dades DolibarrWorkBoard=Taula de control de indicadors oberts -NoOpenedElementToProcess=No opened element to process +NoOpenedElementToProcess=Sense elements oberts per processar Available=Disponible NotYetAvailable=Encara no disponible NotAvailable=No disponible @@ -441,6 +443,7 @@ Reporting=Informe Reportings=Informes Draft=Esborrany Drafts=Esborranys +StatusInterInvoiced= Validated=Validat Opened=Actiu New=Nou @@ -614,8 +617,8 @@ PartialWoman=Parcial TotalWoman=Total NeverReceived=Mai rebut Canceled=Anul·lada -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries -YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s +YouCanChangeValuesForThisListFromDictionarySetup=Pots canviar els valors d'aquesta llista des del menú Configuració - Diccionaris +YouCanChangeValuesForThisListFrom=Pots canviar els valors d'aquesta llista des del menú %s YouCanSetDefaultValueInModuleSetup=Pots indicar el valor per defecte utilitzat en la creació de nous registres en el mòdul de configuració Color=Color Documents=Documents @@ -718,7 +721,7 @@ from=de toward=cap a Access=Accés SelectAction=Selecciona acció -SelectTargetUser=Select target user/employee +SelectTargetUser=Selecciona l'usuari/empleat de destí HelpCopyToClipboard=Utilitzeu Ctrl+C per copiar al portapapers SaveUploadedFileWithMask=Desa el fitxer al servidor amb el nom "%s" (del contrari "%s") OriginFileName=Nom original de l'arxiu @@ -727,14 +730,16 @@ SetBankAccount=Definir el compte bancari AccountCurrency=Divisa del compte ViewPrivateNote=Veure notes XMoreLines=%s línia(es) oculta(es) +ShowMoreLines=Mostra més línies PublicUrl=URL pública AddBox=Afegir quadre -SelectElementAndClick=Select an element and click %s +SelectElementAndClick=Selecciona un element i fes clic a %s PrintFile=%s arxius a imprimir ShowTransaction=Mostra la transacció en el compte bancari GoIntoSetupToChangeLogo=Ves a Inici - Configuració - Empresa per canviar el logo o ves a Inici - Configuració - Entorn per ocultar-lo. Deny=Denegar Denied=Denegad +ListOf=Llista de %s ListOfTemplates=Llistat de plantilles Gender=Sexe Genderman=Home @@ -745,8 +750,8 @@ Hello=Hola Sincerely=Sincerament DeleteLine=Elimina la línia ConfirmDeleteLine=Esteu segur de voler eliminar aquesta línia ? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. +NoPDFAvailableForDocGenAmongChecked=No hi havia PDF disponibles per a la generació de document entre els registre comprovats +TooManyRecordForMassAction=S'ha seleccionat massa registres per a l'acció massiva. L'acció està restringida a una llista de %s registres. NoRecordSelected=No s'han seleccionat registres MassFilesArea=Àrea de fitxers generats per accions massives ShowTempMassFilesArea=Mostra l'àrea de fitxers generats per accions massives @@ -766,20 +771,20 @@ Calendar=Calendari GroupBy=Agrupat per... ViewFlatList=Veure llista plana RemoveString=Eliminar cadena '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Alguns idiomes poden estar traduïts parcialment o poden tenir errors. Si detectes algun, pots corregir els fitxers d'idiomes registrant-te a https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Enllaç de descàrrega directa Download=Descarrega ActualizeCurrency=Actualitza el canvi de divisa Fiscalyear=Any fiscal ModuleBuilder=Creador de mòdul -SetMultiCurrencyCode=Set currency +SetMultiCurrencyCode=Estableix moneda BulkActions=Accions massives -ClickToShowHelp=Click to show tooltip help -HR=HR -HRAndBank=HR and Bank +ClickToShowHelp=Fes clic per mostrar l'ajuda desplegable +HR=RRHH +HRAndBank=RRHH i banc AutomaticallyCalculated=Calculat automàticament -TitleSetToDraft=Go back to draft -ConfirmSetToDraft=Are you sure you want to go back to Draft status ? +TitleSetToDraft=Torna a esborrany +ConfirmSetToDraft=Estàs segur que vols tornar a l'estat esborrany? # Week day Monday=Dilluns Tuesday=Dimarts diff --git a/htdocs/langs/ca_ES/modulebuilder.lang b/htdocs/langs/ca_ES/modulebuilder.lang index fe2e816c133..89498e763cd 100644 --- a/htdocs/langs/ca_ES/modulebuilder.lang +++ b/htdocs/langs/ca_ES/modulebuilder.lang @@ -1,40 +1,56 @@ # Dolibarr language file - Source file is en_US - loan -ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). -EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) -ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s -ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +ModuleBuilderDesc=Aquestes eines han de ser utilitzades per usuaris o desenvolupadors experimentats. Et dóna eines per crear o editar el teu propi mòdul (Documentació per a un altre desenvolupament manual aquí). +EnterNameOfModuleDesc=Introdueix el nom del mòdul/aplicació per crear sense espais. Utilitza majúscules per separar paraules (Per exemple: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +ModuleBuilderDesc2=Ruta on es generen/modifiquen els mòduls (primer directori alternatiu definit a %s): %s +ModuleBuilderDesc3=S'han trobat mòduls generats/editables: %s (es detecten com a editables quan el fitxer %s existeix a l'arrel del directori del mòdul). NewModule=Nou mòdul -NewObject=New object -ModuleKey=Module key -ObjectKey=Object key +NewObject=Nou objecte +ModuleKey=Clau del mòdul +ObjectKey=Clau de l'objecte ModuleInitialized=Mòdul inicialitzat -FilesForObjectInitialized=Files for new object initialized -ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. -ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. -ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. -ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. -ModuleBuilderDeschooks=This tab is dedicated to hooks. -ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. -ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. -EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! -EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! -DangerZone=Danger zone -BuildPackage=Build package/documentation -BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) -ModuleIsLive=This module has been activated. Any change on it may break a current active feature. -DescriptionLong=Long description -EditorName=Name of editor -EditorUrl=URL of editor -DescriptorFile=Descriptor file of module -ClassFile=File for PHP class -ApiClassFile=File for PHP API class -PageForList=PHP page for list of record -PageForCreateEditView=PHP page to create/edit/view a record -PathToModulePackage=Path to zip of module/application package -PathToModuleDocumentation=Path to file of module/application documentation -SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. -FileNotYetGenerated=File not yet generated +FilesForObjectInitialized=S'han inicialitzat els fitxers per al nou objecte '%s' +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) +ModuleBuilderDescdescription=Introdueix aquí tota la informació general que descrigui el teu mòdul +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. +ModuleBuilderDescmenus=Aquesta pestanya està dedicada a definir les entrades de menú proporcionades pel teu mòdul. +ModuleBuilderDescpermissions=Aquesta pestanya està dedicada a definir els nous permisos que vols proporcionar amb el teu 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. +ModuleBuilderDeschooks=Aquesta pestanya està dedicada als ganxos (hooks) +ModuleBuilderDescwidgets=Aquesta pestanya està dedicada per crear/gestionar ginys +ModuleBuilderDescbuildpackage=Pots generar aquí un fitxer de paquet "llest per distribuir" (un fitxer .zip normalitzat) del teu mòdul i un fitxer de documentació "llest per distribuir". Només cal que facis clic al botó per crear el paquet o el fitxer de documentació. +EnterNameOfModuleToDeleteDesc=Pots eliminar el mòdul. AVÍS: Tots els fitxers del mòdul, però també les dades estructurades i la documentació, es perdran definitivament! +EnterNameOfObjectToDeleteDesc=Pots eliminar un objecte. AVÍS: Tots els fitxers relacionats amb l'objecte es perdran definitivament! +DangerZone=Zona perillosa +BuildPackage=Construeix paquet/documentació +BuildDocumentation=Construeix documentació +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: +ModuleIsLive=Aquest mòdul s'ha activat. Qualsevol canvi en ell pot trencar una característica activa actual. +DescriptionLong=Descripció llarga +EditorName=Nom de l'editor +EditorUrl=URL d'editor +DescriptorFile=Fitxer descriptor del mòdul +ClassFile=Fitxer per la classe PHP +ApiClassFile=Fitxer per la classe PHP API +PageForList=Pàgina PHP per a la llista de registres +PageForCreateEditView=Pàgina PHP per crear/editar/veure un registre +PathToModulePackage=Ruta al zip del paquet del mòdul/aplicació +PathToModuleDocumentation=Ruta al fitxer de documentació del mòdul/aplicació +SpaceOrSpecialCharAreNotAllowed=Els espais o caràcters especials no estan permesos. +FileNotYetGenerated=El fitxer encara no s'ha generat +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=No és NULL +SearchAll=Utilitzat per a 'cerca tot' +DatabaseIndex=Índex de bases de dades +FileAlreadyExists=El fitxer %s ja existeix +TriggersFile=Fitxer del codi de triggers +HooksFile=Fitxer per al codi de hooks +WidgetFile=Fitxer de widget +ReadmeFile=Fitxer Readme +ChangeLog=Fitxer ChangeLog +SqlFile=Fitxer Sql +SqlFileKey=Fitxer Sql per a claus +AnObjectAlreadyExistWithThisNameAndDiffCase=Ja existeix un objecte amb aquest nom i un cas diferent +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/ca_ES/multicurrency.lang b/htdocs/langs/ca_ES/multicurrency.lang index ac9450ce42f..d2224727252 100644 --- a/htdocs/langs/ca_ES/multicurrency.lang +++ b/htdocs/langs/ca_ES/multicurrency.lang @@ -1,18 +1,19 @@ # Dolibarr language file - Source file is en_US - multicurrency MultiCurrency=Multi moneda -ErrorAddRateFail=Error in added rate -ErrorAddCurrencyFail=Error in added currency -ErrorDeleteCurrencyFail=Error delete fail -multicurrency_syncronize_error=Synchronisation error: %s -multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) -CurrencyLayerAccount=CurrencyLayer API -CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
    Get your API key
    If you use a free account you can't change the currency source (USD by default)
    But if your main currency isn't USD you can use the alternate currency source to force you main currency

    You are limited at 1000 synchronizations per month +ErrorAddRateFail=Error en la taxa afegida +ErrorAddCurrencyFail=Error en la moneda afegida +ErrorDeleteCurrencyFail=Error en esborrar +multicurrency_syncronize_error=Error de sincronització: %s +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Utilitza la data del document per trobar el tipus de canvi, en lloc d'utilitzar la conversió més recent coneguda +multicurrency_useOriginTx=Quan un objecte es crea des d'un altre, manté la conversió original de l'objecte origen (en cas contrari, utilitza l'última conversió coneguda) +CurrencyLayerAccount=API Moneda-Layer +CurrencyLayerAccount_help_to_synchronize=Pots crear un compte al seu lloc web per utilitzar aquesta funcionalitat
    Obté la teva clau API
    Si utilitzes un compte gratuït no pots canviar la moneda origen (USD per defecte)
    Però si la teva moneda principal no és USD pots utilitzar el canvi de moneda origen per forçar la moneda principal

    Estàs limitat a 1000 sincronitzacions al mes multicurrency_appId=Clau API -multicurrency_appCurrencySource=Currency source -multicurrency_alternateCurrencySource= Alternate currency souce +multicurrency_appCurrencySource=Moneda origen +multicurrency_alternateCurrencySource= Canvia la moneda origen CurrenciesUsed=Monedes utilitzades -CurrenciesUsed_help_to_add=Add the differents currencies and rates you need to use on you proposals, orders, etc. -rate=rate -MulticurrencyReceived=Received, original currency -MulticurrencyRemainderToTake=Remaining amout, original currency +CurrenciesUsed_help_to_add=Afegeix les diferents monedes i conversions que necessitis per utilitzar pressupostos, comandes, etc. +rate=Taxa +MulticurrencyReceived=Rebut, moneda original +MulticurrencyRemainderToTake=Import restant, moneda original MulticurrencyPaymentAmount=Import de pagament, moneda original diff --git a/htdocs/langs/ca_ES/orders.lang b/htdocs/langs/ca_ES/orders.lang index 5614cb0573b..5d4811e3555 100644 --- a/htdocs/langs/ca_ES/orders.lang +++ b/htdocs/langs/ca_ES/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Àrea comandes a proveïdors OrderCard=Fitxa comanda OrderId=Id comanda Order=Comanda +PdfOrderTitle=Comanda Orders=Comandes OrderLine=Línia de comanda OrderDate=Data comanda diff --git a/htdocs/langs/ca_ES/other.lang b/htdocs/langs/ca_ES/other.lang index 2ffc6728c4f..a74db030ec5 100644 --- a/htdocs/langs/ca_ES/other.lang +++ b/htdocs/langs/ca_ES/other.lang @@ -9,18 +9,19 @@ BirthdayDate=Data d'aniversari DateToBirth=Data de naixement BirthdayAlertOn=alerta aniversari activada BirthdayAlertOff=alerta aniversari desactivada -TransKey=Translation of the key TransKey -MonthOfInvoice=Month (number 1-12) of invoice date +TransKey=Traducció de la clau TransKey +MonthOfInvoice=Mes (número 1-12) de la data de la factura TextMonthOfInvoice=Mes (text) de la data de factura -PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date -TextPreviousMonthOfInvoice=Previous month (text) of invoice date -NextMonthOfInvoice=Following month (number 1-12) of invoice date -TextNextMonthOfInvoice=Following month (text) of invoice date -ZipFileGeneratedInto=Zip file generated into %s. +PreviousMonthOfInvoice=Mes anterior (número 1-12) de la data de la factura +TextPreviousMonthOfInvoice=Mes anterior (text) de la data de la factura +NextMonthOfInvoice=Mes següent (número 1-12) de la data de la factura +TextNextMonthOfInvoice=Mes següent (text) de la data de la factura +ZipFileGeneratedInto=Fitxer Zip generat a %s. +DocFileGeneratedInto=Fitxer del document generat a %s. YearOfInvoice=Any de la data de factura -PreviousYearOfInvoice=Previous year of invoice date -NextYearOfInvoice=Following year of invoice date +PreviousYearOfInvoice=Any anterior de la data de la factura +NextYearOfInvoice=Any següent de la data de la factura Notify_FICHINTER_ADD_CONTACT=Contacte afegit a la intervenció Notify_FICHINTER_VALIDATE=Validació fitxa intervenció @@ -74,7 +75,7 @@ PredefinedMailTestHtml=Això és un e-mail de prova (la paraula prova ha PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nAquí tens la factura __REF__\n\n__PERSONALIZED__Salutacions\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nVolem comentar que no hem rebut cap notificació de la factura __REF__ que indiqui que ha estat pagada. És per això que li adjuntem de nou la factura com a recordatori.\n\n__PERSONALIZED__Salutacions\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nLi adjuntem el pressupost __PROPREF__\n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nAquí trobarás la sol·licitud de preu __REF__\n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nLi adjuntem la comanda __ORDERREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nLi adjuntem la nostre comanda __ORDERREF__\n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nAquí tens la factura __REF__\n\n__PERSONALIZED__Salutacions\n\n__SIGNATURE__ @@ -161,8 +162,8 @@ AuthenticationDoesNotAllowSendNewPassword=El mode d'autenticació és %s. EnableGDLibraryDesc=Instala o habilita la llibreria GD en la teva instal·lació PHP per poder utilitzar aquesta opció. ProfIdShortDesc=Prof Id %s és una informació que depèn del país del tercer.
    Per exemple, per al país %s, és el codi %s. DolibarrDemo=Demo de Dolibarr ERP/CRM -StatsByNumberOfUnits=Statistics for sum of qty of products/services -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +StatsByNumberOfUnits=Estadístiques de suma quantitat de productes/serveis +StatsByNumberOfEntities=Estadístiques en nombre d'entitats referents (nº de factura, o comanda ...) NumberOfProposals=Número de pressupostos NumberOfCustomerOrders=Número de comandes de client NumberOfCustomerInvoices=Número de factures de client diff --git a/htdocs/langs/ca_ES/paypal.lang b/htdocs/langs/ca_ES/paypal.lang index 953d99fae5b..b226a417b80 100644 --- a/htdocs/langs/ca_ES/paypal.lang +++ b/htdocs/langs/ca_ES/paypal.lang @@ -16,17 +16,17 @@ ThisIsTransactionId=Identificador de la transacció: %s PAYPAL_ADD_PAYMENT_URL=Afegir la url del pagament Paypal en enviar un document per e-mail PredefinedMailContentLink=Podeu fer clic a l'enllaç assegurança de sota per realitzar el seu pagament a través de PayPal\n\n%s\n\n YouAreCurrentlyInSandboxMode=Actualment es troba en mode "sandbox" -NewOnlinePaymentReceived=New online payment received -NewOnlinePaymentFailed=New online payment tried but failed +NewOnlinePaymentReceived=Nou pagament online rebut +NewOnlinePaymentFailed=S'ha intentat el nou pagament online però ha fallat PAYPAL_PAYONLINE_SENDEMAIL=E-Mail a avisar en cas de pagament (amb èxit o no) ReturnURLAfterPayment=URL de retorn després del pagament -ValidationOfOnlinePaymentFailed=Validation of online payment failed -PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error +ValidationOfOnlinePaymentFailed=Ha fallat la validació del pagament online +PaymentSystemConfirmPaymentPageWasCalledButFailed=La pàgina de confirmació de pagament sol·licitada pel sistema de pagament ha retornat un error SetExpressCheckoutAPICallFailed=Ha fallat la crida a l'API SetExpressCheckout. DoExpressCheckoutPaymentAPICallFailed=Ha fallat la crida a l'API DoExpressCheckoutPayment. DetailedErrorMessage=Missatge d'error detallat ShortErrorMessage=Missatge d'error curt ErrorCode=Codi d'error ErrorSeverityCode=Codi sever d'error -OnlinePaymentSystem=Online payment system -PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) +OnlinePaymentSystem=Sistema de pagament online +PaypalLiveEnabled=Paypal live actiu (d'una altra forma en mode prova/sandbox) diff --git a/htdocs/langs/ca_ES/products.lang b/htdocs/langs/ca_ES/products.lang index 4edd95060dc..9a57e45c416 100644 --- a/htdocs/langs/ca_ES/products.lang +++ b/htdocs/langs/ca_ES/products.lang @@ -25,13 +25,13 @@ ProductAccountancySellCode=Codi comptable (venda) ProductOrService=Producte o servei ProductsAndServices=Productes i serveis ProductsOrServices=Productes o serveis -ProductsOnSaleOnly=Products for sale only -ProductsOnPurchaseOnly=Products for purchase only -ProductsNotOnSell=Products not for sale and not for purchase +ProductsOnSaleOnly=Productes només en venda +ProductsOnPurchaseOnly=Productes només per compra +ProductsNotOnSell=Productes no a la venda i no per a la compra ProductsOnSellAndOnBuy=Productes de venda i de compra -ServicesOnSaleOnly=Services for sale only -ServicesOnPurchaseOnly=Services for purchase only -ServicesNotOnSell=Services not for sale and not for purchase +ServicesOnSaleOnly=Serveis només en venda +ServicesOnPurchaseOnly=Serveis només per compra +ServicesNotOnSell=Serveis no a la venda i no per a la compra ServicesOnSellAndOnBuy=Serveis en venda o de compra LastModifiedProductsAndServices=Últims %s productes/serveis modificats LastRecordedProducts=Últims %s productes registrats @@ -178,14 +178,14 @@ m3=m³ liter=litre l=L unitP=Peça -unitSET=Set +unitSET=Conjunt unitS=Segon unitH=Hora unitD=Dia unitKG=Kilogram unitG=Gram unitM=Metre -unitLM=Linear meter +unitLM=Metres lineals unitM2=Metre quadrat unitM3=Metre cúbic unitL=Litre @@ -200,7 +200,7 @@ MultipriceRules=Regles de nivell de preu UseMultipriceRules=Utilitza les regles de preu per nivell (definit en la configuració del mòdul de productes) per autocalcular preus dels altres nivells en funció del primer nivell PercentVariationOver=%% variació sobre %s PercentDiscountOver=%% descompte sobre %s -KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products +KeepEmptyForAutoCalculation=Mantingueu-lo buit per obtenir-ho calculat automàticament pel pes o el volum dels productes ### composition fabrication Build=Fabricar ProductsMultiPrice=Productes i preus per cada nivell de preu @@ -247,7 +247,7 @@ ComposedProduct=Sub-producte MinSupplierPrice=Preu mínim de proveïdor MinCustomerPrice=Preu de client mínim DynamicPriceConfiguration=Configuració de preu dinàmic -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=A la fitxa de producte, amb aquest mòdul habilitat, haureu de poder establir funcions matemàtiques per calcular els preus dels clients o dels proveïdors. Aquesta funció pot utilitzar tots els operadors matemàtics, algunes constants i variables. Podeu definir aquí les variables que voleu utilitzar i si la variable necessita una actualització automàtica, l'URL externa que s'utilitzarà per demanar a Dolibarr que actualitzi automàticament el valor. AddVariable=Afegeix variable AddUpdater=Afegeix actualitzador GlobalVariables=Variables globals @@ -255,10 +255,10 @@ VariableToUpdate=Variable per actualitzar GlobalVariableUpdaters=Actualitzacions de variables globals GlobalVariableUpdaterType0=Dades JSON GlobalVariableUpdaterHelp0=Analitza dades JSON des de l'URL especificada, el valor especifica l'ubicació de valor rellevant -GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterHelpFormat0=Format per a la sol·licitud {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} GlobalVariableUpdaterType1=Dades WebService GlobalVariableUpdaterHelp1=Analitza dades WebService de l'URL especificada, NS especifica el namespace, VALUE especifica l'ubicació del valor pertinent, DATA conter les dades a enviar i METHOD és el mètode WS a trucar -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=El format per a la sol·licitud és {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Interval d'actualizació (minuts) LastUpdated=Última actualització CorrectlyUpdated=Actualitzat correctament @@ -294,14 +294,14 @@ ProductAttributeValueDeleteDialog=Està segur d'eliminar el valor "%s" amb refer ProductCombinationDeleteDialog=Està segur d'eliminar la variant del producte "%s"? ProductCombinationAlreadyUsed=Ha ocorregut un error al eliminar la variant. Comprovi que no siga utilitzada per algun objecte ProductCombinations=Variants -PropagateVariant=Propagate variants +PropagateVariant=Propaga variants HideProductCombinations=Ocultar les variants en el selector de productes ProductCombination=Variant NewProductCombination=Nova variant EditProductCombination=Editant variant -NewProductCombinations=New variants -EditProductCombinations=Editing variants -SelectCombination=Select combination +NewProductCombinations=Nous variants +EditProductCombinations=Editant variants +SelectCombination=Selecciona la combinació ProductCombinationGenerator=Generador de variants Features=Funcionalitats PriceImpact=Impacte en el preu @@ -318,8 +318,8 @@ ErrorDeletingGeneratedProducts=S'ha produït un error al intentar eliminar les v NbOfDifferentValues=Nº de valors diferents NbProducts=Nº de productes ParentProduct=Producte pare -HideChildProducts=Hide variant products -ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? +HideChildProducts=Oculta productes variants +ConfirmCloneProductCombinations=Vols copiar totes les variants del producte a l'altre producte pare amb la referència donada? CloneDestinationReference=Referència del producte destí ErrorCopyProductCombinations=S'ha produït un error al copiar les variants de producte ErrorDestinationProductNotFound=No s'ha trobat el producte de destí diff --git a/htdocs/langs/ca_ES/projects.lang b/htdocs/langs/ca_ES/projects.lang index b4a9a340d75..c3e6a070704 100644 --- a/htdocs/langs/ca_ES/projects.lang +++ b/htdocs/langs/ca_ES/projects.lang @@ -9,8 +9,8 @@ ProjectsArea=Àrea de projectes ProjectStatus=Estat el projecte SharedProject=Projecte compartit PrivateProject=Contactes del projecte -ProjectsImContactFor=Projects I'm explicitely a contact of -AllAllowedProjects=All project I can read (mine + public) +ProjectsImContactFor=Projectes on sóc explícitament un contacte +AllAllowedProjects=Tots els projectes que puc llegir (meu + públic) AllProjects=Tots els projectes MyProjectsDesc=Aquesta vista està limitada als projectes en que estàs com a contacte afectat (per a qualsevol tipus). ProjectsPublicDesc=Aquesta vista mostra tots els projectes en els que vostè té dret a tenir visibilitat. @@ -64,7 +64,7 @@ TaskDescription=Descripció de tasca NewTask=Nova tasca AddTask=Crear tasca AddTimeSpent=Crea temps dedicat -AddHereTimeSpentForDay=Add here time spent for this day/task +AddHereTimeSpentForDay=Afegeix aqui el temps dedicat per aquest dia/tasca Activity=Activitat Activities=Tasques/activitats MyActivities=Les meves tasques/activitats @@ -84,7 +84,7 @@ ListPredefinedInvoicesAssociatedProject=Llista de plantilles de factures de clie ListSupplierOrdersAssociatedProject=Llista de comandes a proveïdors associades al projecte ListSupplierInvoicesAssociatedProject=Llista de factures a proveïdors associades al projecte ListContractAssociatedProject=Llistatde contractes associats al projecte -ListShippingAssociatedProject=List of shippings associated with the project +ListShippingAssociatedProject=Llista d'expedicions associades al projecte ListFichinterAssociatedProject=Llistat d'intervencions associades al projecte ListExpenseReportsAssociatedProject=Llistat d'informes de despeses associades al projecte ListDonationsAssociatedProject=Llistat de donacions associades al projecte @@ -118,7 +118,7 @@ TaskRessourceLinks=Recursos ProjectsDedicatedToThisThirdParty=Projectes dedicats a aquest tercer NoTasks=Cap tasca per a aquest projecte LinkedToAnotherCompany=Enllaçat a una altra empresa -TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. +TaskIsNotAssignedToUser=Tasca no assignada a l'usuari. Utilitza el botó '%s' per assignar una tasca ara. ErrorTimeSpentIsEmpty=El temps dedicat està buit ThisWillAlsoRemoveTasks=Aquesta operació també destruirà les tasques del projecte (%s tasques en aquest moment) i tots els seus temps dedicats. IfNeedToUseOhterObjectKeepEmpty=Si els elements (factura, comanda, ...) pertanyen a un tercer que no és el seleccionat, havent aquests estar lligats al projecte a crear, deixeu buit per permetre el projecte a multi-tercers. @@ -169,15 +169,15 @@ FirstAddRessourceToAllocateTime=Associa un recurs d'usuari per reservar el temps InputPerDay=Entrada per dia InputPerWeek=Entrada per setmana InputPerAction=Entrada per acció -TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=Aquest és el temps dedicat ja registrat per a aquesta tasca/dia i l'usuari %s ProjectsWithThisUserAsContact=Projectes amb aquest usuari com a contacte TasksWithThisUserAsContact=Tasques asignades a l'usuari ResourceNotAssignedToProject=No assignat a cap projecte ResourceNotAssignedToTheTask=No assignat a la tasca TasksAssignedTo=Tasques assignades a AssignTaskToMe=Assignar-me una tasca -AssignTaskToUser=Assign task to %s -SelectTaskToAssign=Select task to assign... +AssignTaskToUser=Assigna una tasca a %s +SelectTaskToAssign=Selecciona una tasca per assignar... AssignTask=Assigna ProjectOverview=Informació general ManageTasks=Utilitza els projectes per seguir tasques i temps @@ -188,7 +188,7 @@ ProjectOppAmountOfProjectsByMonth=Import d'oportunitats per mes ProjectWeightedOppAmountOfProjectsByMonth=Quantitat ponderada d'oportunitats per mes ProjectOpenedProjectByOppStatus=Projectes oberts per estats d'oportunitat ProjectsStatistics=Estadístiques en projectes/leads -TasksStatistics=Statistics on project/lead tasks +TasksStatistics=Estadístiques de tasques de projecte/lideratge TaskAssignedToEnterTime=Tasca assignada. És possible entrar els temps en aquesta tasca. IdTaskTime=Id de temps de tasca YouCanCompleteRef=Si vols completar la referència amb més informació (per utilitzar-la als filtres de cerca), es recomana afegir el caràcter - per separar-ho, així la numeració automàtica funcionarà correctament pels propers projectes. Per exemple %s-ABC. També pots preferir afegir claus de cerca en l'etiqueta. Però la millor pràctica pot ser afegir un camp dedicat, també anomenat Atributs complementaris. diff --git a/htdocs/langs/ca_ES/propal.lang b/htdocs/langs/ca_ES/propal.lang index 9735681b3de..d803adcc00b 100644 --- a/htdocs/langs/ca_ES/propal.lang +++ b/htdocs/langs/ca_ES/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Pressupostos esborrany ProposalsOpened=Pressupostos oberts Prop=Pressupostos CommercialProposal=Pressupost +PdfCommercialProposalTitle=Pressupost ProposalCard=Fitxa pressupost NewProp=Nou pressupost NewPropal=Nou pressupost diff --git a/htdocs/langs/ca_ES/resource.lang b/htdocs/langs/ca_ES/resource.lang index 40dec371160..64a8fd5d1a7 100644 --- a/htdocs/langs/ca_ES/resource.lang +++ b/htdocs/langs/ca_ES/resource.lang @@ -30,7 +30,7 @@ DictionaryResourceType=Tipus de recurs SelectResource=Seleccionar recurs -IdResource=Id resource +IdResource=Id de recurs AssetNumber=Número de serie -ResourceTypeCode=Resource type code +ResourceTypeCode=Codi de tipus de recurs ImportDataset_resource_1=Recursos diff --git a/htdocs/langs/ca_ES/salaries.lang b/htdocs/langs/ca_ES/salaries.lang index 937de3dea2e..43932afa217 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=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Compte comptable utilitzat per usuaris tercers +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Compte comptable per defecte per a despeses de personal Salary=Sou Salaries=Sous diff --git a/htdocs/langs/ca_ES/sendings.lang b/htdocs/langs/ca_ES/sendings.lang index aa094084731..c210d0b315b 100644 --- a/htdocs/langs/ca_ES/sendings.lang +++ b/htdocs/langs/ca_ES/sendings.lang @@ -52,7 +52,7 @@ ShipmentCreationIsDoneFromOrder=De moment, la creació d'una nova expedició es ShipmentLine=Línia d'expedició ProductQtyInCustomersOrdersRunning=Quantitat de producte en comandes de clients obertes ProductQtyInSuppliersOrdersRunning=Quantitat de producte en comandes de proveïdors obertes -ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInShipmentAlreadySent=Quantitat de producte des de comandes de client obertes ja enviades ProductQtyInSuppliersShipmentAlreadyRecevied=Quantitat de producte des de comandes de proveïdor obertes ja rebudes NoProductToShipFoundIntoStock=No s'ha trobat el producte per enviar en el magatzem %s. Corregeix l'estoc o torna enrera per triar un altre magatzem. WeightVolShort=Pes/Vol. diff --git a/htdocs/langs/ca_ES/stocks.lang b/htdocs/langs/ca_ES/stocks.lang index 5cbb392ecd6..21338d1527c 100644 --- a/htdocs/langs/ca_ES/stocks.lang +++ b/htdocs/langs/ca_ES/stocks.lang @@ -53,7 +53,7 @@ IndependantSubProductStock=Estoc del producte i estoc del subproducte són indep QtyDispatched=Quantitat desglossada QtyDispatchedShort=Quant. rebuda QtyToDispatchShort=Quant. a enviar -OrderDispatch=Goods Receptions +OrderDispatch=Recepció d'estocs RuleForStockManagementDecrease=Regla per la reducció automàtica d'estoc (la reducció manual sempre és possible, excepte si hi ha una regla de reducció automàtica activada) RuleForStockManagementIncrease=Regla per l'increment automàtic d'estoc (l'increment manual sempre és possible, excepte si hi ha una regla d'increment automàtica activada) DeStockOnBill=Decrementar els estocs físics sobre les factures/abonaments a clients @@ -71,10 +71,10 @@ StockLimitShort=Límit per l'alerta StockLimit=Estoc límit per les alertes PhysicalStock=Estoc físic RealStock=Estoc real -RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. -RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): +RealStockDesc=L'estoc físic o real és l'estoc que tens actualment als teus magatzems/emplaçaments interns. +RealStockWillAutomaticallyWhen=L'estoc real canviarà automàticament d'acord amb aquestes regles (consulteu la configuració del mòdul d'estoc per canviar-ho): VirtualStock=Estoc virtual -VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) +VirtualStockDesc=L'estoc virtual és l'estoc que tindràs un cop es tanquin totes les accions obertes pendents que afecten als estocs (recepció de comanda de proveïdor, expedició de comanda de client, ...) IdWarehouse=Id. magatzem DescWareHouse=Descripció magatzem LieuWareHouse=Localització magatzem @@ -119,7 +119,7 @@ NbOfProductBeforePeriod=Quantitat del producte %s en estoc abans del periode sel NbOfProductAfterPeriod=Quantitat del producte %s en estoc despres del periode seleccionat (> %s) MassMovement=Moviments en massa SelectProductInAndOutWareHouse=Seleccioni un producte, una quantitat, un magatzem origen i un magatzem destí, seguidament faci clic "%s". Una vegada seleccionats tots els moviments, faci clic en "%s". -RecordMovement=Record transfer +RecordMovement=Registre de transferència ReceivingForSameOrder=Recepcions d'aquesta comanda StockMovementRecorded=Moviments d'estoc registrat RuleForStockAvailability=Regles de requeriment d'estoc @@ -146,50 +146,50 @@ ProductStockWarehouseUpdated=Estoc límit per llançar una alerta i estoc òptim ProductStockWarehouseDeleted=S'ha eliminat correctament el límit d'estoc per alerta i l'estoc òptim desitjat. AddNewProductStockWarehouse=Posar nou estoc límit per alertar i nou estoc òptim desitjat AddStockLocationLine=Decrementa quantitat i a continuació fes clic per afegir un altre magatzem per aquest producte -InventoryDate=Inventory date -NewInventory=New inventory -inventorySetup = Inventory Setup -inventoryCreatePermission=Create new inventory -inventoryReadPermission=View inventories -inventoryWritePermission=Update inventories -inventoryValidatePermission=Validate inventory -inventoryTitle=Inventory -inventoryListTitle=Inventories -inventoryListEmpty=No inventory in progress -inventoryCreateDelete=Create/Delete inventory -inventoryCreate=Create new +InventoryDate=Data d'inventari +NewInventory=Nou inventari +inventorySetup = Configuració de l'inventari +inventoryCreatePermission=Crea un nou inventari +inventoryReadPermission=Veure inventaris +inventoryWritePermission=Actualitza els inventaris +inventoryValidatePermission=Valida l'inventari +inventoryTitle=Inventari +inventoryListTitle=Inventaris +inventoryListEmpty=Cap inventari en progrés +inventoryCreateDelete=Crea/elimina l'inventari +inventoryCreate=Crea nou inventoryEdit=Edita inventoryValidate=Validat inventoryDraft=En servei -inventorySelectWarehouse=Warehouse choice +inventorySelectWarehouse=Selecciona magatzem inventoryConfirmCreate=Crear -inventoryOfWarehouse=Inventory for warehouse : %s -inventoryErrorQtyAdd=Error : one quantity is leaser than zero -inventoryMvtStock=By inventory -inventoryWarningProductAlreadyExists=This product is already into list +inventoryOfWarehouse=Inventari de magatzem: %s +inventoryErrorQtyAdd=Error: una quantitat és menor que zero +inventoryMvtStock=Per inventari +inventoryWarningProductAlreadyExists=Aquest producte ja està en llista SelectCategory=Filtre per categoria -SelectFournisseur=Supplier filter -inventoryOnDate=Inventory -INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory -INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found -INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory -inventoryChangePMPPermission=Allow to change PMP value for a product -ColumnNewPMP=New unit PMP -OnlyProdsInStock=Do not add product without stock -TheoricalQty=Theorique qty -TheoricalValue=Theorique qty -LastPA=Last BP -CurrentPA=Curent BP +SelectFournisseur=Filtre de proveïdor +inventoryOnDate=Inventari +INVENTORY_DISABLE_VIRTUAL=Permet no canviar l'estoc del producte fill d'un kit a l'inventari +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Utilitza el preu de compra si no es pot trobar l'últim preu de compra +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=El moviment d'estoc té data d'inventari +inventoryChangePMPPermission=Permet canviar el valor PMP d'un producte +ColumnNewPMP=Nova unitat PMP +OnlyProdsInStock=No afegeixis producte sense estoc +TheoricalQty=Qtat. teòrica +TheoricalValue=Qtat. teòrica +LastPA=Últim BP +CurrentPA=Actual BP RealQty=Qtat. real RealValue=Valor real -RegulatedQty=Regulated Qty -AddInventoryProduct=Add product to inventory +RegulatedQty=Qtat. regulada +AddInventoryProduct=Afegeix producte a l'inventari AddProduct=Afegir -ApplyPMP=Apply PMP +ApplyPMP=Aplica el PMP FlushInventory=Flush inventory ConfirmFlushInventory=Confirmes aquesta acció? InventoryFlushed=Inventory flushed -ExitEditMode=Exit edition +ExitEditMode=Surt de l'edició inventoryDeleteLine=Elimina la línia -RegulateStock=Regulate Stock +RegulateStock=Regula l'estoc ListInventory=Llistat diff --git a/htdocs/langs/ca_ES/trips.lang b/htdocs/langs/ca_ES/trips.lang index ccb84bdda26..5f6d2e81b0f 100644 --- a/htdocs/langs/ca_ES/trips.lang +++ b/htdocs/langs/ca_ES/trips.lang @@ -70,7 +70,7 @@ DATE_SAVE=Data de validació DATE_CANCEL=Data de cancelació DATE_PAIEMENT=Data de pagament BROUILLONNER=Reobrir -ExpenseReportRef=Ref. expense report +ExpenseReportRef=Ref del informe de despeses ValidateAndSubmit=Validar i sotmetre a aprovació ValidatedWaitingApproval=Validat (pendent d'aprovació) NOT_AUTHOR=No ets l'autor d'aquest informe de despeses. L'operació s'ha cancelat. @@ -88,5 +88,5 @@ NoTripsToExportCSV=No hi ha informe de despeses per exportar en aquest període ExpenseReportPayment=Informe de despeses pagades ExpenseReportsToApprove=Informes de despeses per aprovar ExpenseReportsToPay=Informes de despeses a pagar -CloneExpenseReport=Clone expense report +CloneExpenseReport=Clona el informe de despeses ConfirmCloneExpenseReport=Estàs segur de voler clonar aquest informe de despeses ? diff --git a/htdocs/langs/ca_ES/users.lang b/htdocs/langs/ca_ES/users.lang index dcd49b2e7d9..0e1e106c51d 100644 --- a/htdocs/langs/ca_ES/users.lang +++ b/htdocs/langs/ca_ES/users.lang @@ -66,8 +66,8 @@ InternalUser=Usuari intern ExportDataset_user_1=Usuaris Dolibarr i propietats DomainUser=Usuari de domini Reactivate=Reactivar -CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=An internal user is a user that is part of your company/organisation.
    An external user is a customer, supplier or other.

    In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) +CreateInternalUserDesc=Aquest formulari permet crear un usuari intern a la teva empresa/entitat. Per crear un usuari extern (clients, proveïdors, ...), utilitzeu el botó 'Crea usuari de Dolibarr' a la fitxa de contacte del tercer. +InternalExternalDesc=Un usuari intern és un usuari que pertany a la teva empresa/entitat.
    Un usuariextern és un usuari client, proveïdor o un altre.

    En els 2 casos, els permisos defineixen els drets d'accés, però també l'usuari extern pot tenir un gestor de menús diferent a l'usuari intern (veure Inici - Configuració - Entorn) PermissionInheritedFromAGroup=El permís es concedeix ja que ho hereta d'un grup al qual pertany l'usuari. Inherited=Heretat UserWillBeInternalUser=L'usuari creat serà un usuari intern (ja que no està lligat a un tercer en particular) diff --git a/htdocs/langs/ca_ES/website.lang b/htdocs/langs/ca_ES/website.lang index dcf3374c874..3cd7bcb63be 100644 --- a/htdocs/langs/ca_ES/website.lang +++ b/htdocs/langs/ca_ES/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Crea tantes entrades com número de pàgines web que necessitis DeleteWebsite=Elimina la pàgina web ConfirmDeleteWebsite=Estàs segur de voler elimiar aquesta pàgina web? També s'esborraran totes les pàgines i el seu contingut. WEBSITE_PAGENAME=Nom/alies de pàgina +WEBSITE_HTML_HEADER=Capçalera HTML WEBSITE_CSS_URL=URL del fitxer CSS extern WEBSITE_CSS_INLINE=Contingut CSS -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Llibreria Media -EditCss=Edita estil/CSS +EditCss=Edita l'estil/CSS o la capçalera HTML EditMenu=Edita menú EditPageMeta=Edita "meta" EditPageContent=Edita contingut Website=Lloc web -Webpage=Pàgina web -AddPage=Afegeix pàgina -HomePage=Home Page +Webpage=Pàgina/contenidor web +AddPage=Afegeix pàgina/contenidor +HomePage=Pàgina d'inici PreviewOfSiteNotYetAvailable=La previsualització del teu lloc web %s encara no està disponible. Primer has d'afegir una pàgina. -RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=La pàgina '%s' del lloc web %s s'ha eliminat -PageAdded=Pàgina '%s' afegida +RequestedPageHasNoContentYet=La pàgina sol·licitada amb l'identificador %s encara no té contingut, o el fitxer de memòria cau .tpl.php s'ha eliminat. Edita el contingut de la pàgina per solucionar-ho. +PageContent=Pàgina/Contenidor +PageDeleted=Pàgina/Contenidor '%s' del lloc web %s eliminat +PageAdded=Pàgina/Contenidor '%s' afegit ViewSiteInNewTab=Mostra el lloc en una nova pestanya ViewPageInNewTab=Mostra la pàgina en una nova pestanya SetAsHomePage=Indica com a Pàgina principal @@ -28,4 +30,9 @@ ViewWebsiteInProduction=Mostra la pàgina web utilitzant les URLs d'inici SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. -NoPageYet=No pages yet +VirtualHostUrlNotDefined=No s'ha definit la URL de l'amfitrió virtual que serveix el servidor web extern +NoPageYet=Encara sense pàgines +SyntaxHelp=Ajuda sobre la sintaxi del codi +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clona la pàgina/contenidor +CloneSite=Clona el lloc diff --git a/htdocs/langs/ca_ES/withdrawals.lang b/htdocs/langs/ca_ES/withdrawals.lang index 723dd04967a..829b127717e 100644 --- a/htdocs/langs/ca_ES/withdrawals.lang +++ b/htdocs/langs/ca_ES/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nombre de factura de client amb pagament per domic InvoiceWaitingWithdraw=Factura esperant per domiciliació bancària AmountToWithdraw=Import a domiciliar WithdrawsRefused=Domiciliació bancària refusada -NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. +NoInvoiceToWithdraw=No hi ha cap factura del client amb "Sol·licituds de domiciliació" obertes. Ves a la pestanya '%s' a la fitxa de la factura per fer una sol·licitud. ResponsibleUser=Usuari responsable de les domiciliacions WithdrawalsSetup=Configuració del pagament mitjançant domiciliació bancària WithdrawStatistics=Estadístiques del pagament mitjançant domiciliació bancària @@ -41,7 +41,7 @@ RefusedReason=Motiu de devolució RefusedInvoicing=Facturació de la devolució NoInvoiceRefused=No facturar la devolució InvoiceRefused=Factura rebutjada (Carregar les despeses al client) -StatusDebitCredit=Status debit/credit +StatusDebitCredit=Estat dèbit/crèdit StatusWaiting=En espera StatusTrans=Enviada StatusCredited=Abonada diff --git a/htdocs/langs/ca_ES/workflow.lang b/htdocs/langs/ca_ES/workflow.lang index 1cb9bfaac1b..213184f68c9 100644 --- a/htdocs/langs/ca_ES/workflow.lang +++ b/htdocs/langs/ca_ES/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Configuració del mòdul workflow WorkflowDesc=Aquest mòdul li permet canviar el comportament de les accions automàticament en l'aplicació. De forma predeterminada, el workflow està obert (configuri segons les seves necessitats). Activi les accions automàtiques que li interessin. ThereIsNoWorkflowToModify=No hi ha modificacions disponibles del fluxe de treball amb els mòduls activats. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Crear una comanda de client automàticament a la signatura d'un pressupost -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Crear automàticament una factura a client després de signar un pressupost +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Crea automàticament una comanda de client després d'haver signat un pressupost (la nova comanda tindrà la mateixa quantitat que el pressupost) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Crea automàticament una factura del client després d'haver signat un pressupost (la nova factura tindrà la mateixa quantitat que el pressupost) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Crear automàticament una factura a client després de validar un contracte -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Crear automàticament una factura a client després de tancar una comanda de client -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classificar com facturat el pressupost quan la comanda de client relacionada es classifiqui com pagada -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classificar com facturades les comanda(es) quan la factura relacionada es classifiqui com a pagada -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classificar com a facturades les comanda(es) de clients relacionats quan la factura sigui validada -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classifica com a facturat el pressupost enllaçat quan la factura de client sigui validada -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classificar enllaçant origen de la comanda i enviament quan l'enviament està validat i la quantitat enviada és la mateixa que la de la comanda +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Crea automàticament una factura de client després de tancar una comanda de client (la nova factura tindrà la mateixa quantitat que la comanda) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classifica els pressupostos vinculats d'origen com a facturats quan la comanda del client es posi com a facturada (i si l'import de la comanda és igual a l'import total dels pressupostos vinculats i signats) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classifica els pressupostos vinculats d'origen com a facturats quan la factura del client es validi (i si l'import de la factura és igual a l'import total dels pressupostos vinculats i signats) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classifica les comandes de client vinculades d'origen com a facturades quan la factura del client es validi (i si l'import de la factura és igual a l'import total de les comandes vinculades) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classifica les comandes de client vinculades d'origen com a facturades quan la factura del client es posi com a pagada (i si l'import de la factura és igual a l'import total de les comandes vinculades) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classifica les comandes vinculades com a expedides quan l'expedició es validi (i si la quantitat enviada per totes les expedicions és igual que la comanda a actualitzar) AutomaticCreation=Creació automàtica AutomaticClassification=Classificació automàtica diff --git a/htdocs/langs/cs_CZ/accountancy.lang b/htdocs/langs/cs_CZ/accountancy.lang index 7746d579ab6..0db49164d5b 100644 --- a/htdocs/langs/cs_CZ/accountancy.lang +++ b/htdocs/langs/cs_CZ/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Přehled množství linek již vázán na účetnic OtherInfo=Jiná informace DeleteCptCategory=Odebrat účtování účet ze skupiny ConfirmDeleteCptCategory=Jste si jisti, že chcete odstranit tento účetní účet ze skupiny účetního účtu? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Oblast účetnictví AccountancyAreaDescIntro=Využití evidence modulu se provádí v několika kroku: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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=KROK %s: Definovat účetní účty pro každou banku a finančních účtů. Za tímto účelem přejděte na kartu každého finančního účtu. Můžete začít od strana %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Zůstatek na účtu - +ObjectsRef=Source object ref CAHTF=Celkový nákup dodavatele před zdaněním TotalExpenseReport=Celkové náklady zpráva InvoiceLines=Řádky faktury, které mají být prověřeny @@ -103,7 +110,7 @@ LineOfExpenseReport=Zpráva o výdajích NoAccountSelected=Není vybrán žádný účetní účet VentilatedinAccount=Úspěšně prověření v účetním účtu NotVentilatedinAccount=Neprověřeno v účetním účtu -XLineSuccessfullyBinded=%s produkty / služby úspěšně vázána k účetnímu účtu +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s produkty / služby nebyly vázány na kterémkoli účetním účtu ACCOUNTING_LIMIT_LIST_VENTILATION=Počet prvků pro kontrolu zobrazených na stránce (maximální doporučeno: 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finanční deník ExpenseReportsJournal=Výdajové zprávy journal DescFinanceJournal=Finanční deník včetně všech typů plateb prostřednictvím bankovního účtu -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Účet pro DPH není definován ThirdpartyAccountNotDefined=Účet pro třetí stranu není definováno ProductAccountNotDefined=Účet pro výrobek není definován @@ -170,6 +177,8 @@ AddCompteFromBK=Přidat účetní účty do skupiny ReportThirdParty=Seznam účtů třetí strany DescThirdPartyReport=Konzultujte zde seznam třetích stran, zákazníky a dodavateli a jejich účetní účty ListAccounts=Seznam účetních účtů +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Třída účtu Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Ověřit automaticky AutomaticBindingDone=Automatická vazba provádí ErrorAccountancyCodeIsAlreadyUse=Chyba, nelze odstranit tento účetní účet, protože ho zrovna používáte -MvtNotCorrectlyBalanced=Pohyb není správně vyrovnán. Kredit = %s. Debet = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Ověřovací karta GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=účetní deníky AccountingJournal=Účetní deník NewAccountingJournal=Nový účetní deník ShowAccoutingJournal=Zobrazit účetní deník -Code=Kód Nature=Příroda AccountingJournalType1=Různé operace AccountingJournalType2=Odbyt @@ -221,8 +229,6 @@ AccountingJournalType9=Má-new ErrorAccountingJournalIsAlreadyUse=Tento deník se již používá ## Export -Exports=Exporty -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model exportu OptionsDeactivatedForThisExportModel=Možnosti pro tento exportní model jsou deaktivovány diff --git a/htdocs/langs/cs_CZ/admin.lang b/htdocs/langs/cs_CZ/admin.lang index 0e27050ee19..c082dd8bc2c 100644 --- a/htdocs/langs/cs_CZ/admin.lang +++ b/htdocs/langs/cs_CZ/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Sekce systémových nástrojů SystemToolsAreaDesc=Tato sekce poskytuje správu uživatelských funkcí. V menu vyberte funkci, kterou hledáte. Purge=Očistit PurgeAreaDesc=Tato stránka vám umožňuje odstranit všechny postavené nebo uložené soubory Dolibarr (dočasné soubory nebo všechny soubory v adresáři %s). Použití této funkce není nutné. Je k dispozici pro uživatele, jejichž Dolibarr je provozován u poskytovatele, který neposkytuje oprávnění k odstranění souborů na webovém serveru. -PurgeDeleteLogFile=Vymažte log %s, definovaný pro modul Syslog (bez rizika ztráty) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Vymažte všechny dočasné soubory (bez rizika ztráty dat) PurgeDeleteTemporaryFilesShort=Odstranit dočasné soubory PurgeDeleteAllFilesInDocumentsDir=Odstraňte všechny soubory v adresáři %s. Dočasné soubory, zálohy databáze, soubory přiložené k prvkům (třetí strany, faktury, ...) a uploady do modulu ECM budou vymazány. PurgeRunNow=Vyčistit nyní PurgeNothingToDelete=Žádný adresář nebo soubor k odstranění PurgeNDirectoriesDeleted=%s soubory nebo adresáře odstraněny. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Vyčistit všechny bezpečnostní události ConfirmPurgeAuditEvents=Jste si jisti, že chcete vyčistit všechny bezpečnostní události? Všechny bezpečnostní záznamy budou odstraněny, žádná další data nebudou odstraněna. GenerateBackup=Vytvořit zálohu @@ -298,7 +299,7 @@ SetupIsReadyForUse=Nasazení modulu je dokončeno. Musíte však povolit a nasta NotExistsDirect=Alternativní kořenový adresář není definován.
    InfDirAlt=Od verze 3 je možné definovat alternativní kořenovou složku. To umožňuje ukládat na stejné místo plug-iny a vlastní šablony.
    Stačí vytvořit adresář v kořenovém adresáři Dolibarr (např.: custom).
    InfDirExample=
    Pak je deklarujte v souboru conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    *Řádky jsou zakomentovány znakem "#", pro odkomentování tento znak odmažte. -YouCanSubmitFile=Pro tento krok můžete posílat balíček pomocí tohoto nástroje: Vyberte soubor modulu +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr aktuální verze CallUpdatePage=Přejděte na stránku, která aktualizuje strukturu databáze a data: %s. LastStableVersion=Poslední stabilní verze @@ -535,8 +536,6 @@ Module1120Name=Dodavatel obchodní nabídky Module1120Desc=Požadavek dodavatel obchodní návrh a ceny Module1200Name=Mantis Module1200Desc=Mantis integrace -Module1400Name=Účetnictví -Module1400Desc=Accounting management (double entries) Module1520Name=Dokument Generation Module1520Desc=Hromadná pošta generování dokumentů Module1780Name=Tagy/Kategorie @@ -585,7 +584,7 @@ Module50100Desc=Bod prodejního modulu (POS). Module50200Name=Paypal Module50200Desc=Modul nabídnout on-line platby kreditní kartou stránku s Paypal Module50400Name=Účetnictví (pokročilé) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Přímý tisk (bez otevření dokumentů) pomocí poháry IPP rozhraní (tiskárna musí být viditelné ze serveru, a CUPS musí být installe na serveru). Module55000Name=Anketa, průzkum nebo hlasování @@ -751,8 +750,10 @@ Permission401=Přečtěte slevy Permission402=Vytvořit / upravit slevy Permission403=Ověřit slevy Permission404=Odstranit slevy -Permission510=Číst platy -Permission512=Vytvořit/upravit platy +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Smazat platy Permission517=Export výplat Permission520=Přečtěte si Úvěry @@ -1057,7 +1058,7 @@ RestoreDesc2=Obnovit archivní soubor (soubor zip například) z adresáře doku RestoreDesc3=Obnovení dat, ze záložního souboru výpisu, do databáze nové instalace Dolibarr nebo do databáze tohoto stávající instalace (%s). Varování, po obnovení je dokončeno, musíte použít login / heslo, které existovaly, když byla provedena záloha, se znovu připojit. Chcete-li obnovit záložní databázi do této stávající instalace, můžete sledovat tento asistenta. RestoreMySQL=MySQL import ForcedToByAModule= Toto pravidlo je nucen %s aktivovaným modulem -PreviousDumpFiles=Dostupné databázové soubory zálohování výpisu +PreviousDumpFiles=Generated database backup files WeekStartOnDay=První den v týdnu RunningUpdateProcessMayBeRequired=Spuštění procesu upgradu se zdá být nutná (programy %s verze se liší od verze databáze %s) YouMustRunCommandFromCommandLineAfterLoginToUser=Je nutné spustit tento příkaz z příkazového řádku po přihlášení do shellu s uživatelskými %s nebo musíte přidat parametr-w na konci příkazového řádku, aby %s heslo. diff --git a/htdocs/langs/cs_CZ/banks.lang b/htdocs/langs/cs_CZ/banks.lang index aeaa58c12e3..b67259a2d2c 100644 --- a/htdocs/langs/cs_CZ/banks.lang +++ b/htdocs/langs/cs_CZ/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New různé platební -VariousPayment=Různé platební -VariousPayments=různé platby -ShowVariousPayment=Ukazují různé platby +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/cs_CZ/bills.lang b/htdocs/langs/cs_CZ/bills.lang index af1f08a705b..371c9e86e22 100644 --- a/htdocs/langs/cs_CZ/bills.lang +++ b/htdocs/langs/cs_CZ/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Byl zdrojem jednoho nebo několika dobropisy CardBill=Karta faktury PredefinedInvoices=Předdefinované faktury Invoice=Faktura +PdfInvoiceTitle=Faktura Invoices=Faktury InvoiceLine=Faktura linka InvoiceCustomer=Faktura zákazníka diff --git a/htdocs/langs/cs_CZ/compta.lang b/htdocs/langs/cs_CZ/compta.lang index 9ad184c485d..ee450e3f318 100644 --- a/htdocs/langs/cs_CZ/compta.lang +++ b/htdocs/langs/cs_CZ/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Účtování účet ve výchozím nastavení výběr ACCOUNTING_VAT_BUY_ACCOUNT=Účtování v úvahu jako výchozí pro obnoveného DPH - DPH při nákupu (používá pokud není definována v nastavení slovníku DPH) ACCOUNTING_VAT_PAY_ACCOUNT=Účtovací účet pro platby DPH ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Klonovat sociální / fiskální daň ConfirmCloneTax=Potvrdí klon sociálního / fiskální zaplacení daně CloneTaxForNextMonth=Kopírovat pro příští měsíc diff --git a/htdocs/langs/cs_CZ/errors.lang b/htdocs/langs/cs_CZ/errors.lang index 0da4c3c5123..c61e1ad3175 100644 --- a/htdocs/langs/cs_CZ/errors.lang +++ b/htdocs/langs/cs_CZ/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Chyba, spoušť název %s duplikát. Již vložen z %s. ErrorNoWarehouseDefined=Chyba, nejsou definovány žádné sklady. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings WarningPasswordSetWithNoAccount=Heslo bylo nastaveno pro tohoto člena. Nicméně, žádný uživatelský účet byl vytvořen. Takže toto heslo uloženo, ale nemůže být použit pro přihlášení do Dolibarr. Může být použit externí modulu / rozhraní, ale pokud nepotřebujete definovat libovolné přihlašovací jméno ani heslo pro členem, můžete možnost vypnout „Správa přihlášení pro každého člena“ z nastavení člen modulu. Pokud potřebujete ke správě přihlášení, ale nepotřebují žádné heslo, můžete mít toto pole prázdné, aby se zabránilo toto upozornění. Poznámka: E-mail může být také použit jako přihlášení v případě, že člen je připojen k uživateli. diff --git a/htdocs/langs/cs_CZ/install.lang b/htdocs/langs/cs_CZ/install.lang index c8f7f47dcc1..90d29719e15 100644 --- a/htdocs/langs/cs_CZ/install.lang +++ b/htdocs/langs/cs_CZ/install.lang @@ -53,10 +53,10 @@ AdminLogin=Přihlášení pro vlastníka databáze Dolibarr. PasswordAgain=Heslo znovu AdminPassword=Heslo pro vlastníka databáze Dolibarr. CreateDatabase=Vytvořit databázi -CreateUser=Vytvořit majitele databáze +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Databázový server - přístup Superuser CheckToCreateDatabase=Zaškrtněte, pokud databáze neexistuje a musí být vytvořena.
    V takovém případě budete muset zadat přihlašovací jméno / heslo pro superuživatele účtu v dolní části stránky. -CheckToCreateUser=Zaškrtněte, pokud vlastník databáze neexistuje a musí být vytvořen.
    V takovém případě je potřeba zvolit si přihlašovací jméno a heslo a také vyplnit login / heslo pro superuživatele účtu v dolní části stránky. Pokud nezaškrtnete, vlastník databáze a jeho heslo již musí existovat. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Přihlášení uživatele oprávněného vytvářet nové databáze nebo nové uživatele, povinné, pokud vaše databáze nebo její majitel doposud neexistuje. KeepEmptyIfNoPassword=Ponechte prázdné, pokud uživatel nemá heslo (nedoporučeno) SaveConfigurationFile=Uložit hodnoty diff --git a/htdocs/langs/cs_CZ/main.lang b/htdocs/langs/cs_CZ/main.lang index b4ddbeac2f9..04032bf94d2 100644 --- a/htdocs/langs/cs_CZ/main.lang +++ b/htdocs/langs/cs_CZ/main.lang @@ -75,7 +75,8 @@ FileRenamed=Soubor byl úspěšně přejmenován FileGenerated=Soubor byl úspěšně vygenerován FileSaved=The file was successfully saved FileUploaded=Soubor byl úspěšně nahrán -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=Soubor vybrán pro připojení, ale ještě nebyl nahrán. Klikněte na "Přiložit soubor". NbOfEntries=Počet záznamů GoToWikiHelpPage=Přečtěte si online nápovědu (přístup k internetu je potřeba) @@ -196,6 +197,7 @@ Parameter=Parametr Parameters=Parametry Value=Hodnota PersonalValue=Osobní hodnota +NewObject=New %s NewValue=Nová hodnota CurrentValue=Současná hodnota Code=Kód @@ -441,6 +443,7 @@ Reporting=Hlášení Reportings=Hlášení Draft=Návrh Drafts=Návrhy +StatusInterInvoiced= Validated=Ověřené Opened=Otevřeno New=Nový @@ -727,6 +730,7 @@ SetBankAccount=Definujte bankovní účet AccountCurrency=Měna účtu ViewPrivateNote=Zobrazit poznámky XMoreLines=%s řádky(ů) skryto +ShowMoreLines=Show more lines PublicUrl=Veřejná URL AddBox=Přidejte box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Ukázat záznam o bankovním účtu GoIntoSetupToChangeLogo=Jděte na Domů-Nastavení-Společnost pro změnu loga, nebo je v nastavení skryjte. Deny=Odmítnout Denied=Odmítnuto +ListOf=List of %s ListOfTemplates=Seznam šablon Gender=Pohlaví Genderman=Muž diff --git a/htdocs/langs/cs_CZ/modulebuilder.lang b/htdocs/langs/cs_CZ/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/cs_CZ/modulebuilder.lang +++ b/htdocs/langs/cs_CZ/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/cs_CZ/multicurrency.lang b/htdocs/langs/cs_CZ/multicurrency.lang index 6e9c9ccbe6c..7c8c7b466b0 100644 --- a/htdocs/langs/cs_CZ/multicurrency.lang +++ b/htdocs/langs/cs_CZ/multicurrency.lang @@ -4,7 +4,8 @@ ErrorAddRateFail=Error in added rate ErrorAddCurrencyFail=Error in added currency ErrorDeleteCurrencyFail=Error delete fail multicurrency_syncronize_error=Synchronisation error: %s -multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate) CurrencyLayerAccount=CurrencyLayer API CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
    Get your API key
    If you use a free account you can't change the currency source (USD by default)
    But if your main currency isn't USD you can use the alternate currency source to force you main currency

    You are limited at 1000 synchronizations per month multicurrency_appId=API key diff --git a/htdocs/langs/cs_CZ/orders.lang b/htdocs/langs/cs_CZ/orders.lang index 4dc2cc05b3a..0ccafbe9151 100644 --- a/htdocs/langs/cs_CZ/orders.lang +++ b/htdocs/langs/cs_CZ/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Oblast objednávek dodavatelů OrderCard=Karta objednávky OrderId=ID objednávky Order=Objednávka +PdfOrderTitle=Pořadí Orders=Objednávky OrderLine=Řádek objednávky OrderDate=Datum objednávky diff --git a/htdocs/langs/cs_CZ/other.lang b/htdocs/langs/cs_CZ/other.lang index f81530dc14d..6fc7293989b 100644 --- a/htdocs/langs/cs_CZ/other.lang +++ b/htdocs/langs/cs_CZ/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/cs_CZ/propal.lang b/htdocs/langs/cs_CZ/propal.lang index f3160730740..badb400c1a1 100644 --- a/htdocs/langs/cs_CZ/propal.lang +++ b/htdocs/langs/cs_CZ/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Navrhnout obchodní nabídky ProposalsOpened=Otevřené obchodní návrhy Prop=Obchodní nabídky CommercialProposal=Obchodní nabídka +PdfCommercialProposalTitle=Obchodní nabídka ProposalCard=Karta obchodních nabídek NewProp=Nová obchodní nabídka NewPropal=Nová nabídka diff --git a/htdocs/langs/cs_CZ/salaries.lang b/htdocs/langs/cs_CZ/salaries.lang index 4f47be51d88..daa3bcfee2c 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=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Účtovací účet ve výchozím nastavení personálních nákladů Salary=Mzda Salaries=Mzdy diff --git a/htdocs/langs/cs_CZ/website.lang b/htdocs/langs/cs_CZ/website.lang index 78a904e30f7..324dacf55ab 100644 --- a/htdocs/langs/cs_CZ/website.lang +++ b/htdocs/langs/cs_CZ/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Vytvořte zde tolik vstupů jako množství různých webových DeleteWebsite=Odstranit web ConfirmDeleteWebsite=Jste si jisti, že chcete smazat tuto webovou stránku? Všechny stránky a obsah budou odstraněny. WEBSITE_PAGENAME=Název stránky / alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL externího souboru CSS WEBSITE_CSS_INLINE=obsah CSS -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=knihovna multimédií -EditCss=Editace Style / CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Úprava menu EditPageMeta=Editovat Meta EditPageContent=Editovat obsah Website=Webová stránka -Webpage=webová stránka -AddPage=Přidat stránku +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Ukázky vaše webové stránky %s ještě nejsou k dispozici. Musíte nejprve přidat stránku. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Strana ‚%s‘ z webové stránky %s odstraněny -PageAdded=Stránka ‚%s‘ přidána +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=Zobrazit stránku v nové záložce ViewPageInNewTab=Zobrazit stránku v nové kartě SetAsHomePage=Nastavit jako domovskou stránku @@ -28,4 +30,9 @@ ViewWebsiteInProduction=Pohled webové stránky s použitím domácí adresy URL SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/cs_CZ/workflow.lang b/htdocs/langs/cs_CZ/workflow.lang index fed3a5e4205..938ea44ba17 100644 --- a/htdocs/langs/cs_CZ/workflow.lang +++ b/htdocs/langs/cs_CZ/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Nastavení workflow modulu WorkflowDesc=Tento modul je určen k úpravě chování automatických akcí, v aplikaci. Ve výchozím nastavení workflow je otevřen (uděláte něco, co chcete). Můžete aktivovat automatické akce, které jsou zajímavé. ThereIsNoWorkflowToModify=Workflow zde není nastaven, můžete upravit modul pokud ho chcete aktivovat. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Vytvoření objednávky zákazníka automaticky po podepsání komerčního návrhu -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automaticky vytvoří zákaznickou fakturu až po podpisu obchodní návrh +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automaticky vytvoří zákaznickou faktury poté, co smlouva byla ověřena -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automaticky vytvoří zákaznickou fakturu za objednávku zákazníka je uzavřen -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Označit propojený zdrojový návrh jako zaúčtovaný, když je objednávka zákazníka nastavena jako placená -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Označit propojenou zdrojovou objednávku zákazníka(ů) jako zaúčtované, když jsou zákaznické faktury nastaveny jako placené -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Označit propojenou zdrojovou objednávku zákazníka(ů) jako zaúčtovanou, když je ověřená zákaznická faktura -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Klasifikovat propojený zdroj návrh účtovaný když je zákazník faktury ověřen -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Klasifikovat propojený zdroj rozkaz dodáván, když je zásilka ověřena a množství dodáno je stejný jako v pořadí +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatická tvorba AutomaticClassification=Automatická klasifikace diff --git a/htdocs/langs/da_DK/accountancy.lang b/htdocs/langs/da_DK/accountancy.lang index e23601db728..cf391483da4 100644 --- a/htdocs/langs/da_DK/accountancy.lang +++ b/htdocs/langs/da_DK/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=Liste over de regnskabsmæssige konti +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Kontoens klasse Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Fejl, kan du ikke slette denne regnskabsmæssige konto, fordi den bruges -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Kode Nature=Natur AccountingJournalType1=Various operation AccountingJournalType2=Salg @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Eksporter -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Eksportmodul OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/da_DK/admin.lang b/htdocs/langs/da_DK/admin.lang index ab491d6cfc9..af23b7d07cf 100644 --- a/htdocs/langs/da_DK/admin.lang +++ b/htdocs/langs/da_DK/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Systemværktøjer område SystemToolsAreaDesc=Dette område giver administration funktioner. Brug menuen til at vælge den funktion, du leder efter. Purge=Purge PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Slet alle filer i mappen %s. Midlertidige filer, men også vedhæftede filer elementer (tredjemand, fakturaer, ...) og uploades i ECM-modul vil blive slettet. PurgeRunNow=Rensningsanordningen nu PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted= %s eller mapper slettes. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Rensningsanordningen alle begivenheder ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Generer backup @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr aktuelle version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration -Module1400Name=Regnskabsmæssig ekspert -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Modul til at tilbyde en online betaling side med kreditkort med Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Læs rabatter Permission402=Opret / ændre rabatter Permission403=Valider rabatter Permission404=Slet rabatter -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= Denne regel er tvunget til at %s ved en aktiveret modul -PreviousDumpFiles=Tilgængelig database backup dump filer +PreviousDumpFiles=Generated database backup files WeekStartOnDay=Første dag i ugen RunningUpdateProcessMayBeRequired=Kørsel opgraderingen processen synes at være nødvendig (Programmer version %s adskiller sig fra database version %s) YouMustRunCommandFromCommandLineAfterLoginToUser=Du skal køre denne kommando fra kommandolinjen efter login til en shell med brugerens %s. diff --git a/htdocs/langs/da_DK/banks.lang b/htdocs/langs/da_DK/banks.lang index 497d363346f..f3d897198d2 100644 --- a/htdocs/langs/da_DK/banks.lang +++ b/htdocs/langs/da_DK/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/da_DK/bills.lang b/htdocs/langs/da_DK/bills.lang index 4a54b435151..636a974dca6 100644 --- a/htdocs/langs/da_DK/bills.lang +++ b/htdocs/langs/da_DK/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Faktura kortet PredefinedInvoices=Foruddefinerede Fakturaer Invoice=Faktura +PdfInvoiceTitle=Faktura Invoices=Fakturaer InvoiceLine=Faktura linje InvoiceCustomer=Kunden faktura diff --git a/htdocs/langs/da_DK/compta.lang b/htdocs/langs/da_DK/compta.lang index 821d6408f2b..ef0c558063e 100644 --- a/htdocs/langs/da_DK/compta.lang +++ b/htdocs/langs/da_DK/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/da_DK/errors.lang b/htdocs/langs/da_DK/errors.lang index 39f7c9b2fd4..dbcc00607a6 100644 --- a/htdocs/langs/da_DK/errors.lang +++ b/htdocs/langs/da_DK/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/da_DK/install.lang b/htdocs/langs/da_DK/install.lang index a33a1a1c66a..0fd402bf95d 100644 --- a/htdocs/langs/da_DK/install.lang +++ b/htdocs/langs/da_DK/install.lang @@ -53,10 +53,10 @@ AdminLogin=Log ind for Dolibarr database administrator. Hold tomme, hvis du slut PasswordAgain=Gentag adgangskode en anden gang AdminPassword=Adgangskode til Dolibarr database administrator. Hold tomme, hvis du slutter i anonym CreateDatabase=Opret database -CreateUser=Opret bruger +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Database - SuperUser adgang CheckToCreateDatabase=Afkrydsningsfelt, hvis databasen ikke eksisterer og skal være oprettet.
    I dette tilfælde skal du udfylde login / password for SuperUser konto nederst på denne side. -CheckToCreateUser=Afkrydsningsfelt, hvis login ikke eksisterer og skal være oprettet.
    I dette tilfælde skal du udfylde login / password for SuperUser konto nederst på denne side. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Log ind på den bruger lov til at oprette nye databaser eller nye brugere, ubrugelige, hvis din database og din database login findes allerede (ligesom når du er vært ved en web hosting provider). KeepEmptyIfNoPassword=Efterlad tom, hvis brugeren ikke har nogen adgangskode (undgå dette) SaveConfigurationFile=Gem værdier diff --git a/htdocs/langs/da_DK/main.lang b/htdocs/langs/da_DK/main.lang index 9e2ad417d07..450ad9099e3 100644 --- a/htdocs/langs/da_DK/main.lang +++ b/htdocs/langs/da_DK/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=Filen blev uploadet -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=En fil er valgt for udlæg, men endnu ikke var uploadet. Klik på "Vedhæft fil" for dette. NbOfEntries=Nb af tilmeldinger GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parameter Parameters=Parametre Value=Værdi PersonalValue=Personlige værdi +NewObject=New %s NewValue=Ny værdi CurrentValue=Nuværende værdi Code=Kode @@ -441,6 +443,7 @@ Reporting=Rapportering Reportings=Rapportering Draft=Udkast Drafts=Drafts +StatusInterInvoiced= Validated=Valideret Opened=Åbent New=Ny @@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account AccountCurrency=Account Currency ViewPrivateNote=View notes XMoreLines=%s line(s) hidden +ShowMoreLines=Show more lines PublicUrl=Public URL AddBox=Add box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Gender Genderman=Man diff --git a/htdocs/langs/da_DK/modulebuilder.lang b/htdocs/langs/da_DK/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/da_DK/modulebuilder.lang +++ b/htdocs/langs/da_DK/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/da_DK/orders.lang b/htdocs/langs/da_DK/orders.lang index 96910da21a7..59798a1c6a0 100644 --- a/htdocs/langs/da_DK/orders.lang +++ b/htdocs/langs/da_DK/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Leverandører ordrer område OrderCard=Bestil kort OrderId=Order Id Order=Rækkefølge +PdfOrderTitle=Rækkefølge Orders=Ordrer OrderLine=Bestil online OrderDate=Bestil dato diff --git a/htdocs/langs/da_DK/other.lang b/htdocs/langs/da_DK/other.lang index 4a54f5c58aa..a0bbc8072b5 100644 --- a/htdocs/langs/da_DK/other.lang +++ b/htdocs/langs/da_DK/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/da_DK/propal.lang b/htdocs/langs/da_DK/propal.lang index 1fa1c8210db..1467015b3d4 100644 --- a/htdocs/langs/da_DK/propal.lang +++ b/htdocs/langs/da_DK/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Udkast til kommercielle forslag ProposalsOpened=Open commercial proposals Prop=Kommerciel forslag CommercialProposal=Kommerciel forslag +PdfCommercialProposalTitle=Kommerciel forslag ProposalCard=Forslag kort NewProp=Nye kommercielle forslag NewPropal=Nyt forslag diff --git a/htdocs/langs/da_DK/salaries.lang b/htdocs/langs/da_DK/salaries.lang index 522bf0a65d7..7e0c80d3380 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=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries diff --git a/htdocs/langs/da_DK/website.lang b/htdocs/langs/da_DK/website.lang index a18865b0f91..804eade0c4d 100644 --- a/htdocs/langs/da_DK/website.lang +++ b/htdocs/langs/da_DK/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/da_DK/workflow.lang b/htdocs/langs/da_DK/workflow.lang index aff06d28448..a8ab6b89a04 100644 --- a/htdocs/langs/da_DK/workflow.lang +++ b/htdocs/langs/da_DK/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Workflow-modul opsætning WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/de_AT/compta.lang b/htdocs/langs/de_AT/compta.lang index e4d47e6fe2b..be873ed63e2 100644 --- a/htdocs/langs/de_AT/compta.lang +++ b/htdocs/langs/de_AT/compta.lang @@ -6,6 +6,7 @@ RemainingAmountPayment=Leistende Zahlung übrig: VATReceived=Eingehobene MwSt. VATToCollect=Einzuhebende MwSt. VATSummary=MwSt. Zahllast +VATPaid=VAT paid VATCollected=Eingehobene MwSt. MenuSpecialExpenses=Steuern, Sozialbeiträge und Dividenden AnnualSummaryDueDebtMode=Die Jahresbilanz der Einnahmen/Ausgaben im Modus%sForderungen-Verbindlichkeiten%s meldet Kameralistik. @@ -21,3 +22,4 @@ SellsJournal=Vertrieb Journal PurchasesJournal=Käufe Journal DescSellsJournal=Vertrieb Journal DescPurchasesJournal=Käufe Journal +LinkedOrder==> Bestellung diff --git a/htdocs/langs/de_AT/holiday.lang b/htdocs/langs/de_AT/holiday.lang index 5593de59612..da5673f77f2 100644 --- a/htdocs/langs/de_AT/holiday.lang +++ b/htdocs/langs/de_AT/holiday.lang @@ -1,3 +1,4 @@ # Dolibarr language file - Source file is en_US - holiday DateDebCP=Start-Datum DateFinCP=End-Datum +DeleteCP=Löschen diff --git a/htdocs/langs/de_AT/mails.lang b/htdocs/langs/de_AT/mails.lang index 73d9bd548c3..6e617b087e6 100644 --- a/htdocs/langs/de_AT/mails.lang +++ b/htdocs/langs/de_AT/mails.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - mails +MailTitle=Beschreibung ResetMailing=E-Mail-Kampagne erneut senden MailingStatusValidated=Bestätigt CloneEMailing=E-Mail-Kampagne duplizieren diff --git a/htdocs/langs/de_AT/main.lang b/htdocs/langs/de_AT/main.lang index e4e649378dc..bcdd1aefec6 100644 --- a/htdocs/langs/de_AT/main.lang +++ b/htdocs/langs/de_AT/main.lang @@ -25,8 +25,11 @@ ErrorFailedToSendMail=Fehler beim Senden des Mails (Absender=%s, Empfänger=%s) ErrorDuplicateField=Dieser Wert muß einzigartig sein LevelOfFeature=Funktions-Level PreviousConnexion=Vorherige Verbindung +NotePublic=Notiz (öffentlich) Closed=geschlossen Closed2=geschlossen +ToClone=Klonen +ConfirmClone=Klonen/Duplizieren - Optionen: Of=Von Search=Suche SearchOf=Suche @@ -34,22 +37,30 @@ Upload=Upload PasswordRetype=Geben Sie das Passwort erneut ein DateStart=Start-Datum DateEnd=End-Datum +DateDue=Zahlungsziel DateRequest=Verlange Datum DurationDays=Tag days=Tag UnitPrice=Bruttopreis (Stk.) UnitPriceHT=Nettopreis (Stk.) UnitPriceTTC=Bruttopreis (Stk.) +PriceU=Stückpreis +PriceUHT=Stückpreis (net) AmountAverage=Durchnschnittsbetrag +TotalTTCShort=Summe (inkl. MwSt.) +TotalTTC=Summe (inkl. MwSt.) TotalVAT=Steuer gesamt +VAT=MwSt. Ref=Bezeichnung RefSupplier=Lieferanten Nr. RefPayment=Zahlungs Nr. +Qty=Mng. Drafts=Entwurf Late=Versätet January=Jänner Month01=Jänner ReportName=Berichtname +AmountInCurrency=Beträge in 1%s RefCustomer=Kunden Nr. SendByMail=Per E-Mail senden MailSentBy=E-Mail-Absender @@ -57,12 +68,23 @@ TextUsedInTheMessageBody=E-Mail-Text NoEMail=Keine E-Mails Offered=Angeboten Receive=Erhalte +Documents=Verknüpfte Dateien ThisLimitIsDefinedInSetup=Gesetzte System-Limits (Menü Home-Einstellungen-Sicherheit): %s Kb, PHP Limit: %s Kb UnHidePassword=Passwort-Zeichen anzeigen CloneMainAttributes=Duplikat mit den Haupteigenschaften AttributeCode=Attribut-Code +LinkTo=Verknüpfen mit... +LinkToProposal==> Angebot +LinkToOrder==> Bestellung +LinkToInvoice==> Rechnung +LinkToSupplierOrder==> Lieferantenbestellung +LinkToSupplierProposal==> Lieferantenangebot +LinkToSupplierInvoice==> Lieferantenrechnung +LinkToContract==> Vertrag CreateDraft=Erstelle Entwurf NoPhotoYet=Es wurde noch kein Bild hochgeladen +PublicUrl=Öffentliche Internetadresse ViewList=Liste anzeigen +RelatedObjects=Ähnliche Dokumente Calendar=Kalender SearchIntoInterventions=Eingriffe diff --git a/htdocs/langs/de_AT/members.lang b/htdocs/langs/de_AT/members.lang index a7bb5fc170e..063dfac0666 100644 --- a/htdocs/langs/de_AT/members.lang +++ b/htdocs/langs/de_AT/members.lang @@ -14,6 +14,7 @@ SubscriptionEndDate=Abonnementauslaufdatum SubscriptionLate=Versätet NewMemberType=Neues Mitgliedsrt WelcomeEMail=Willkommens-E-Mail +DeleteType=Löschen Physical=Physisch Moral=Rechtlich MorPhy=Physisch/Rechtlich diff --git a/htdocs/langs/de_AT/sms.lang b/htdocs/langs/de_AT/sms.lang index 5c591816ea1..e795440909c 100644 --- a/htdocs/langs/de_AT/sms.lang +++ b/htdocs/langs/de_AT/sms.lang @@ -1,2 +1,3 @@ # Dolibarr language file - Source file is en_US - sms +SmsTitle=Beschreibung SmsStatusValidated=Bestätigt diff --git a/htdocs/langs/de_AT/users.lang b/htdocs/langs/de_AT/users.lang index 24b0c80c5b1..d2317672533 100644 --- a/htdocs/langs/de_AT/users.lang +++ b/htdocs/langs/de_AT/users.lang @@ -1,4 +1,6 @@ # Dolibarr language file - Source file is en_US - users +DeleteUser=Löschen +DeleteGroup=Löschen DefaultRightsDesc=Definieren Sie hier die, neu erstellten Benutzern automatisch zugewiesenen, Standardberechtigungen. PasswordChangedAndSentTo=Passwort geändert und an %s gesandt. PasswordChangeRequestSent=Antrag auf eine Änderung das Passworts für %s an %s gesandt. diff --git a/htdocs/langs/de_CH/admin.lang b/htdocs/langs/de_CH/admin.lang index 89ca7ecc041..7b96d2672a3 100644 --- a/htdocs/langs/de_CH/admin.lang +++ b/htdocs/langs/de_CH/admin.lang @@ -24,7 +24,6 @@ MaxNbOfLinesForBoxes=Maximale Zeilenanzahl für Boxen MenusDesc=In der Menüverwaltung können Sie den Inhalt der beiden Menüleisten (Horizontal und Vertikal) festlegen MenusEditorDesc=Über den Menü-Editor können Sie Ihre Menüeinträge personalisieren. Gehen Sie dabei sorgfältig vor um die Stabilität des Systems zu gewährleisten und zu verhindern, dass einzelne Module gänzlich unerreichbar werden.
    Einige Module erzeugen einen Menüeintrag (in den meisten Fällen im Menü Alle). Sollten Sie einen oder mehrere dieser Einträge unabsichtlich entfernt haben, können Sie diese durch das Deaktivieren und neuerliche Aktivieren des Moduls beheben. 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 Protokolldatei %s des Systemprotokollmoduls (kein Risiko des Datenverlusts) PurgeDeleteTemporaryFiles=Alle temporären Dateien löschen (kein Datenverlustrisiko) PurgeDeleteTemporaryFilesShort=Temporärdateien löschen PurgeDeleteAllFilesInDocumentsDir=Alle Datein im Verzeichnis %s löschen. Dies beinhaltet temporäre Dateien ebenso wie Datenbanksicherungen, Dokumente (Geschäftspartner, Rechnungen, ...) und alle Inhalte des ECM-Moduls. diff --git a/htdocs/langs/de_CH/website.lang b/htdocs/langs/de_CH/website.lang index 8cb306077f0..77f8d74333c 100644 --- a/htdocs/langs/de_CH/website.lang +++ b/htdocs/langs/de_CH/website.lang @@ -6,7 +6,5 @@ WEBSITE_CSS_URL=URL zu externer CSS Datei EditPageMeta=Metadaten bearbeiten Website=Website PreviewOfSiteNotYetAvailable=Vorschau des Webauftritt %s noch nicht verfügbar. Sie müssen zuerst eine Seite hinzufügen. -PageDeleted=Seite '%s' des Webauftritt %s gelöscht -PageAdded=Seite '%s' hinzugefügt ViewSiteInNewTab=Webauftritt in neuem Tab anzeigen SetAsHomePage=Als Startseite definieren diff --git a/htdocs/langs/de_DE/accountancy.lang b/htdocs/langs/de_DE/accountancy.lang index 50b4b65b560..b6ae612e277 100644 --- a/htdocs/langs/de_DE/accountancy.lang +++ b/htdocs/langs/de_DE/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Übersicht über die Anzahl der bereits an ein Buch OtherInfo=Zusatzinformationen DeleteCptCategory=Buchhaltungskonto aus Gruppe entfernen ConfirmDeleteCptCategory=Soll dieses Buchhaltungskonto wirklich aus der Gruppe entfernt werden? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Buchhaltung AccountancyAreaDescIntro=Die Verwendung des Buchhaltungsmoduls erfolgt in mehreren Schritten: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=SCHRITT %s: Definition der Buchhaltungskonten f AccountancyAreaDescSal=SCHRITT %s: Buchhaltungskonto für Lohnzahlungen definieren. Kann im Menü %s geändert werden. AccountancyAreaDescContrib=SCHRITT %s: Definition der Buchhaltungskonten für besondere Aufwendungen (Sonstige Steuern) . Kann im Menü %s geändert werden. AccountancyAreaDescDonation=SCHRITT %s: Definition der Buchhaltungskonten für Spenden. Kann im Menü %s geändert werden. -AccountancyAreaDescMisc=SCHRITT %s: Buchhaltungskonto für nicht zugeordnete Buchungen. Kann im Menü %s geändert werden. +AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. AccountancyAreaDescLoan=SCHRITT %s: Definitiond der Buchhaltungskonten für Darlehenszahlungen. Kann im Menü %s geändert werden. AccountancyAreaDescBank=SCHRITT %s: Definition der Buchhaltungskonten für jede Bank und Finanzkonten. Gehen Sie zum jeweiligen Finanzkonto. Kann im Menü %s geändert werden. AccountancyAreaDescProd=SCHRITT %s: Definition der Buchhaltungskonten für Ihre Produkte/Dienstleistungen. Kann im Menü %s geändert werden. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Buchungen ins Hauptbuch übernehmen Bookkeeping=Hauptbuch AccountBalance=Saldo Sachkonto - +ObjectsRef=Source object ref CAHTF=Einkaufssume pro Lieferant ohne Steuer TotalExpenseReport=Gesamtausgaben Bericht InvoiceLines=Zeilen der Rechnungen zu verbinden @@ -103,7 +110,7 @@ LineOfExpenseReport=Zeilen der Spesenabrechnung NoAccountSelected=Kein Buchhaltungskonto ausgewählt VentilatedinAccount=erfolgreich zu dem Buchhaltungskonto zugeordnet NotVentilatedinAccount=Nicht zugeordnet, zu einem Buchhaltungskonto -XLineSuccessfullyBinded=%s Produkte/Leistungen erfolgreich an ein Buchhaltungskonto zugeordnet +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s Produkte/Leistungen waren an kein Buchhaltungskonto zugeordnet ACCOUNTING_LIMIT_LIST_VENTILATION=Anzahl der Elemente, die beim Kontieren angezeigt werden (empfohlen Max.: 50) @@ -154,7 +161,7 @@ DelBookKeeping=Eintrag im Hauptbuch löschen FinanceJournal=Finanzjournal ExpenseReportsJournal=Spesenabrechnungsjournal DescFinanceJournal=Finanzjournal inklusive aller Arten von Zahlungen mit Bankkonto -DescJournalOnlyBindedVisible=Dies ist eine Ansicht der Datensätze, die an ein Produkt- / Dienstleistungskonto gebunden sind und in das Hauptbuch übernommen werden können. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Steuerkonto nicht definiert ThirdpartyAccountNotDefined=Konto für Adresse nicht definiert ProductAccountNotDefined=Konto für Produkt nicht definiert @@ -170,6 +177,8 @@ AddCompteFromBK=Buchhaltungskonten zur Gruppe hinzufügen ReportThirdParty=Zeige Partner DescThirdPartyReport=Kontieren Sie hier die Liste der Kunden und Lieferanten zu Ihrem Buchhaltungs-Konten ListAccounts=Liste der Abrechnungskonten +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Kontenklasse Pcgsubtype=Unterkontenklasse @@ -194,7 +203,7 @@ ValidateHistory=automatisch verbinden AutomaticBindingDone=automatische Zuordnung erledigt ErrorAccountancyCodeIsAlreadyUse=Fehler, Sie können dieses Buchhaltungskonto nicht löschen, da es benutzt wird. -MvtNotCorrectlyBalanced=Der Saldo der Buchung ist nicht ausgeglichen. Haben = %s. Soll = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Zuordnungs Karte GeneralLedgerIsWritten=Operationen werden ins Hauptbuch geschrieben GeneralLedgerSomeRecordWasNotRecorded=Einige der Buchungen konnten nicht übernommen werden. Es gab keine Fehler, vermutlich wurden diese Buchungen schon früher übernommen. @@ -210,7 +219,6 @@ AccountingJournals=Buchhaltungsjournale AccountingJournal=Buchhaltungsjournal NewAccountingJournal=Neues Buchhaltungsjournal ShowAccoutingJournal=Buchhaltungsjournal anzeigen -Code=Code Nature=Art AccountingJournalType1=Verschiedene Aktionen AccountingJournalType2=Verkauf @@ -221,8 +229,6 @@ AccountingJournalType9=Hat neue ErrorAccountingJournalIsAlreadyUse=Dieses Journal wird bereits verwendet ## Export -Exports=Exporte -Export=Exportieren ExportDraftJournal=Export draft journal Modelcsv=Exportmodell OptionsDeactivatedForThisExportModel=Für dieses Exportmodell sind die Einstellungen deaktiviert diff --git a/htdocs/langs/de_DE/admin.lang b/htdocs/langs/de_DE/admin.lang index e177e7a544d..7e304d68d52 100644 --- a/htdocs/langs/de_DE/admin.lang +++ b/htdocs/langs/de_DE/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Systemwerkzeugsübersicht SystemToolsAreaDesc=In diesem Bereich finden Sie die Verwaltungsfunktionen. Verwenden Sie das linke Menü zur Auswahl der gesuchten Funktion. 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 nicht erforderlich und richtet sich vorwiegend an Benutzer ohne Zugriff auf das Dateisystem des Webservers (z.B. Hostingpakete) -PurgeDeleteLogFile=Löschen der Protokolldatei %s des Systemprotokollmoduls (Kein Risiko von Datenverlust) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Löschen der Temporärdateien (Kein Risiko von Datenverlust) PurgeDeleteTemporaryFilesShort=temporäre Dateien löschen PurgeDeleteAllFilesInDocumentsDir=Alle Dateien im Verzeichnis %s löschen. Dies beinhaltet temporäre Dateien ebenso wie Datenbanksicherungen, Dokumente (Partner, Rechnungen, ...) und alle Inhalte des ECM-Moduls. PurgeRunNow=Jetzt bereinigen PurgeNothingToDelete=Kein Ordner oder Datei zum löschen. PurgeNDirectoriesDeleted=%s Dateien oder Verzeichnisse gelöscht. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Bereinige alle Sicherheitsereignisse ConfirmPurgeAuditEvents=Möchten Sie wirklich alle Sicherheitsereignisse löschen ? GenerateBackup=Sicherung erzeugen @@ -298,7 +299,7 @@ SetupIsReadyForUse=Modul-Installation abgeschlossen, es muss aber noch aktiviert NotExistsDirect=Das alternative Stammverzeichnis ist nicht zu einem existierenden Verzeichnis definiert.
    InfDirAlt=Seit Version 3 ist es möglich, ein alternatives Stammverzeichnis anzugeben. Dies ermöglicht, Erweiterungen und eigene Templates am gleichen Ort zu speichern.
    Erstellen Sie einfach ein Verzeichis im Hauptverzeichnis von Dolibarr an (z.B. "custom").
    InfDirExample=
    Danach in der Datei conf.php deklarieren
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    Wenn diese Zeilen mit "#" auskommentiert sind, um sie zu aktivieren, einfach das Zeichen "#" entfernen. -YouCanSubmitFile=Durch diesen Schritt, können Sie das Paket mit diesem Tool senden: Wähle Modul Datei +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Aktuelle dolibarr-Version CallUpdatePage=Zur Aktualisierung der Daten und Datenbankstrukturen zur Seite %s gehen. LastStableVersion=Letzte stabile Version @@ -535,8 +536,6 @@ Module1120Name=Lieferant-Angebote Module1120Desc=Anfordern von Lieferanten-Angeboten und Preise Module1200Name=Mantis Module1200Desc=Mantis-Integration -Module1400Name=Buchhaltung -Module1400Desc=Accounting management (double entries) Module1520Name=Dokumente erstellen Module1520Desc= Mailings Dokumente erstellen Module1780Name=Kategorien/#tags @@ -585,7 +584,7 @@ Module50100Desc=Modul Point of Sale (POS)\n Module50200Name=Paypal Module50200Desc=Mit diesem Modul können Sie via PayPal Online Kreditkartenzahlungen entgegennehmen Module50400Name=Buchhaltung (erweitert) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direktdruck (ohne die Dokumente zu öffnen) mittels CUPS IPP (Drucker muss vom Server aus sichtbar sein und auf dem Server muss CUPS installiert sein) Module55000Name=Befragung, Umfrage oder Abstimmung @@ -751,8 +750,10 @@ Permission401=Rabatte einsehen Permission402=Rabatte erstellen/bearbeiten Permission403=Rabatte freigeben Permission404=Rabatte löschen -Permission510=Löhne einsehen -Permission512=Löhne erstellen/bearbeiten +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Löhne löschen Permission517=Löhne exportieren Permission520=Darlehen einsehen @@ -1057,7 +1058,7 @@ RestoreDesc2=Wiederherstellung der Archivdatei des Dokumentenverzeichnis (zum Be RestoreDesc3=* Die Datenbanksicherung aus dem Dump in eine neue Dolibarr-Installation oder das bestehende System (%s) zurückspielen. Achtung: Nach Beendigung dieses Vorganges müssen Sie sich mit dem Benutzernamen/Passwort-Paar zum Zeitpunkt der Sicherung am System anmelden. Zur Wiederherstellung der Datenbank steht Ihnen der folgende Assistent zur Verfügung: RestoreMySQL=MySQL Import ForcedToByAModule= Diese Regel wird %s durch ein aktiviertes Modul aufgezwungen -PreviousDumpFiles=Vorige Datenbanksicherungen +PreviousDumpFiles=Generated database backup files WeekStartOnDay=Wochenstart RunningUpdateProcessMayBeRequired=Eine Systemaktualisierung scheint erforderlich (Programmversion %s unterscheidet sich von Datenbankversion %s) YouMustRunCommandFromCommandLineAfterLoginToUser=Diesen Befehl müssen Sie auf der Kommandozeile (nach Login auf der Shell mit Benutzer %s) ausführen. diff --git a/htdocs/langs/de_DE/banks.lang b/htdocs/langs/de_DE/banks.lang index 3dd77ed9f33..f915e47af5f 100644 --- a/htdocs/langs/de_DE/banks.lang +++ b/htdocs/langs/de_DE/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Scheck zurückgewiesen und Rechnungen wieder ge BankAccountModelModule=Dokumentvorlagen für Bankkonten DocumentModelSepaMandate=Vorlage für SEPA Mandate. Nur sinnvoll in Ländern der EU. DocumentModelBan=Template für den Druck von Seiten mit Bankkonto-Nummern Eintrag. -NewVariousPayment=Neue "Verschiedenes" Zahlung -VariousPayment=Diverse Zahlung -VariousPayments=Diverse Zahlungen -ShowVariousPayment=Zeige "Verschiedenes" Zahlung +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/de_DE/bills.lang b/htdocs/langs/de_DE/bills.lang index 3f43f357b20..725d1329889 100644 --- a/htdocs/langs/de_DE/bills.lang +++ b/htdocs/langs/de_DE/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Diese Rechnung ist bereits Gegenstand einer oder mehrerer Gutsch CardBill=Rechnung - Karte PredefinedInvoices=Vordefinierte Rechnungen Invoice=Rechnung +PdfInvoiceTitle=Rechnung Invoices=Rechnungen InvoiceLine=Rechnungszeile InvoiceCustomer=Kundenrechnung diff --git a/htdocs/langs/de_DE/compta.lang b/htdocs/langs/de_DE/compta.lang index d8c0a533eb9..de2c4ae5faf 100644 --- a/htdocs/langs/de_DE/compta.lang +++ b/htdocs/langs/de_DE/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Standard Buchhaltungs-Konto für die Erhebung der Mw ACCOUNTING_VAT_BUY_ACCOUNT=Standard Buchhaltungs-Konto für Vorsteuer - Ust bei Einkäufen (wird verwendet, wenn nicht unter Einstellungen->Stammdaten USt.-Sätze definiert) 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=Buchhaltungskonten die auf der Partnerkarte definiert wurden werden für die Nebenbücher verwendet, dieses für das Hauptbuch oder als Vorgabewert für Nebenbücher falls kein Buchhaltungskonto auf der Kunden-Partnerkarte definiert wurde +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Standard Buchhaltungskonto für Lieferanten/Kreditoren (wenn nicht beim Lieferanten definiert) -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Buchhaltungskonten die auf der Partnerkarte definiert wurden werden für die Nebenbücher verwendet, dieses für das Hauptbuch oder als Vorgabewert für Nebenbücher falls kein Buchhaltungskonto auf der Lieferanten-Partnerkarte definiert wurde +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Dupliziere Sozialabgabe/Steuersatz ConfirmCloneTax=Bestätigen Sie die Duplizierung der Steuer-/Sozialabgaben-Zahlung CloneTaxForNextMonth=Für nächsten Monat duplizieren diff --git a/htdocs/langs/de_DE/errors.lang b/htdocs/langs/de_DE/errors.lang index 349a4449acb..50c028707d1 100644 --- a/htdocs/langs/de_DE/errors.lang +++ b/htdocs/langs/de_DE/errors.lang @@ -194,6 +194,9 @@ 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=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings WarningPasswordSetWithNoAccount=Es wurde ein Passwort für dieses Mitglied vergeben, aber kein Benutzer erstellt. Das Passwort wird gespeichert, aber kann nicht für die Anmeldung an Dolibarr verwendet werden. Es kann von einem externen Modul/einer Schnittstelle verwendet werden, aber wenn Sie kein Login oder Passwort für dieses Mitglied definiert müssen, können Sie die Option "Login für jedes Mitglied verwalten" in den Mitgliedseinstellungen deaktivieren. Wenn Sie ein Login aber kein Passwort benötige, lassen Sie dieses Feld leer, um diese Meldung zu deaktivieren. Anmerkung: Die E-Mail-Adresse kann auch zur Anmeldung verwendet werden, wenn das Mitglied mit einem Benutzer verbunden wird. diff --git a/htdocs/langs/de_DE/install.lang b/htdocs/langs/de_DE/install.lang index 1e3ceccb663..ca7464f4eb2 100644 --- a/htdocs/langs/de_DE/install.lang +++ b/htdocs/langs/de_DE/install.lang @@ -53,10 +53,10 @@ AdminLogin=Administrator Benutzername für Dolibarr Datenbank PasswordAgain=Passwort wiederholen AdminPassword=Passwort des dolibarr-Datenbankadministrators CreateDatabase=Datenbank erstellen -CreateUser=Erstelle Besitzer +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Datenbankserver - Superadministrator-Zugriff CheckToCreateDatabase=Aktivieren Sie dieses Kontrollkästchen, falls Sie noch keine Datenbank angelegt haben und diese im Zuge der Installation erstellt werden soll.
    Hierfür müssen Sie Benutzername und Passwort des Datenbank-Superusers am Ende der Seite angeben. -CheckToCreateUser=Aktivieren Sie dieses Kontrollkästchen, falls Sie noch keinen Datenbankbenutzer angelegt haben und dieser im Zuge der Installation erstellt werden soll.
    Hierfür müssen Sie Benutzername und Passwort des Datenbank-Superusers am Ende der Seite angeben. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Anmeldedaten des Datenbank-Superusers zur Erstellung neuer Datenbanken und -benutzer. Sollten diese bereits existieren (z.B. weil Ihre Website bei einem Hosting-Provider liegt), ist diese Option nutzlos. KeepEmptyIfNoPassword=Leer lassen wenn der Benutzer kein Passwort hat (nicht empfohlen) SaveConfigurationFile=Konfigurationsdatei wird gespeichert diff --git a/htdocs/langs/de_DE/main.lang b/htdocs/langs/de_DE/main.lang index 3ec7de61727..7a23b19b26b 100644 --- a/htdocs/langs/de_DE/main.lang +++ b/htdocs/langs/de_DE/main.lang @@ -75,7 +75,8 @@ FileRenamed=Datei wurde erfolgreich unbenannt FileGenerated=Die Datei wurde erfolgreich erstellt FileSaved=The file was successfully saved FileUploaded=Datei wurde erfolgreich hochgeladen -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=Ein Dateianhang wurde gewählt aber noch nicht hochgeladen. Klicken Sie auf "Datei anhängen" um den Vorgang zu starten. NbOfEntries=Anzahl der Einträge GoToWikiHelpPage=Onlinehilfe lesen (Internetzugang notwendig) @@ -196,6 +197,7 @@ Parameter=Parameter Parameters=Parameter Value=Wert PersonalValue=Persönlicher Wert +NewObject=New %s NewValue=Neuer Wert CurrentValue=Aktueller Wert Code=Code @@ -441,6 +443,7 @@ Reporting=Berichterstattung Reportings=Berichte Draft=Entwurf Drafts=Entwürfe +StatusInterInvoiced= Validated=Bestätigt Opened=Geöffnet New=Neu @@ -727,6 +730,7 @@ SetBankAccount=Bankkonto angeben AccountCurrency=Kontowährung ViewPrivateNote=Zeige Hinweise XMoreLines=%s Zeile(n) versteckt +ShowMoreLines=Show more lines PublicUrl=Öffentliche URL AddBox=Box anfügen SelectElementAndClick=Element auswählen und %s anklicken @@ -735,6 +739,7 @@ ShowTransaction=Transaktion auf Bankkonto anzeigen GoIntoSetupToChangeLogo=Gehen Sie zu Start - Einstellungen - Firma/Stiftung um das Logo zu ändern oder gehen Sie in Start -> Einstellungen -> Anzeige um es zu verstecken. Deny=ablehnen Denied=abgelehnt +ListOf=List of %s ListOfTemplates=Liste der Vorlagen Gender=Geschlecht Genderman=männlich diff --git a/htdocs/langs/de_DE/modulebuilder.lang b/htdocs/langs/de_DE/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/de_DE/modulebuilder.lang +++ b/htdocs/langs/de_DE/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/de_DE/multicurrency.lang b/htdocs/langs/de_DE/multicurrency.lang index c830c05dd40..cd8fac39c40 100644 --- a/htdocs/langs/de_DE/multicurrency.lang +++ b/htdocs/langs/de_DE/multicurrency.lang @@ -4,7 +4,8 @@ ErrorAddRateFail=Fehler in hinzugefügtem Währungskurs ErrorAddCurrencyFail=Fehler in hinzugefügter Währung ErrorDeleteCurrencyFail=Fehler, konnte Daten nicht löschen multicurrency_syncronize_error=Synchronisationsfehler: %s -multicurrency_useOriginTx=Wenn ein Objekt anhand eines anderen Erstellt wird, den Währungskurs des Originals beibehalten (Ansonsten wird der aktuelle Währungskurs verwendet) +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate) CurrencyLayerAccount=Währungslayer API CurrencyLayerAccount_help_to_synchronize=Erstellen Sie ein Konto auf ihrer Webseite um die Funktionalität nutzen zu können.
    Erhalten sie ihren API key
    Bei Gratisaccounts kann die Währungsquelle nicht verändert werden (USD Standard
    Wenn ihre Basiswährung nicht USD ist, kann die Alternative Währungsquelle zum übersteuern der Hauptwährung verwendet werden

    Sie sind auf 1000 Synchronisationen pro Monat begrenzt multicurrency_appId=API key diff --git a/htdocs/langs/de_DE/orders.lang b/htdocs/langs/de_DE/orders.lang index 79ab3bcd62a..dfbe5601373 100644 --- a/htdocs/langs/de_DE/orders.lang +++ b/htdocs/langs/de_DE/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Übersicht Lieferantenbestellungen OrderCard=Bestellung - Karte OrderId=Bestell-ID Order=Bestellung +PdfOrderTitle=Bestellung Orders=Bestellungen OrderLine=Bestellservice OrderDate=Bestelldatum diff --git a/htdocs/langs/de_DE/other.lang b/htdocs/langs/de_DE/other.lang index aac0ae3d320..fcb5633d33b 100644 --- a/htdocs/langs/de_DE/other.lang +++ b/htdocs/langs/de_DE/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Vorangehender Monat (Text) des Rechnungsdatums NextMonthOfInvoice=Folgender Monat (1-12) des Rechnungsdatums TextNextMonthOfInvoice=Folgender Monat (1-12) des Rechnungsdatum ZipFileGeneratedInto=ZIP-Datei erstellt in %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Jahr der Rechnung PreviousYearOfInvoice=Vorangehendes Jahr des Rechnungsdatums diff --git a/htdocs/langs/de_DE/propal.lang b/htdocs/langs/de_DE/propal.lang index 583ec1ae81f..20ec9db9b33 100644 --- a/htdocs/langs/de_DE/propal.lang +++ b/htdocs/langs/de_DE/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Angebotsentwürfe ProposalsOpened=Offene Angebote Prop=Angebote CommercialProposal=Angebot +PdfCommercialProposalTitle=Angebot ProposalCard=Angebot - Karte NewProp=Neues Angebot NewPropal=Neues Angebot diff --git a/htdocs/langs/de_DE/salaries.lang b/htdocs/langs/de_DE/salaries.lang index 13be926dd27..748ec45c014 100644 --- a/htdocs/langs/de_DE/salaries.lang +++ b/htdocs/langs/de_DE/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Standard Buchhaltungskonto für persönliche Aufwendungen Salary=Lohn Salaries=Löhne diff --git a/htdocs/langs/de_DE/website.lang b/htdocs/langs/de_DE/website.lang index f4b3ef673ed..82fe652295a 100644 --- a/htdocs/langs/de_DE/website.lang +++ b/htdocs/langs/de_DE/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Erstellen Sie hier für jede benötigte Website einen Eintrag. DeleteWebsite=Website löschen ConfirmDeleteWebsite=Möchten Sie diese Website wirklich löschen? Alle Seiten inkl. Inhalt werden auch gelöscht. WEBSITE_PAGENAME=Seitenname/Alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL der externen CSS-Datei WEBSITE_CSS_INLINE=CSS Inhalt -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Medienbibliothek -EditCss=Style/CSS bearbeiten +EditCss=Edit Style/CSS or HTML header EditMenu=Menü bearbeiten EditPageMeta=Meta bearbeiten EditPageContent=Inhalt bearbeiten Website=Webseite -Webpage=Webseite -AddPage=Seite hinzufügen +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Vorschau ihrer Webseite %s noch nicht Verfügbar. Zuerst muss eine Seite hinzugefügt werden. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Seite '%s' der Webseite %s entfernt -PageAdded=Seite '%s' angefügt +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=Webseite in neuen Tab anzeigen ViewPageInNewTab=Seite in neuem Tab anzeigen SetAsHomePage=Als Startseite festlegen @@ -28,4 +30,9 @@ ViewWebsiteInProduction=Anzeige der Webseite über die Startseite\n\n\n\n\n\n\n\ SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Vorschau %s in neuem Tab.

    %s wird durch einen externen Webserver (Wie Apache, Nginx, IIS) ausgeliefert. Dieser Server muss installiert sein. Verzeichnis
    %s
    als URL
    %s durch den externen Webserver freigeben PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/de_DE/workflow.lang b/htdocs/langs/de_DE/workflow.lang index 25e3a46f029..cc564291feb 100644 --- a/htdocs/langs/de_DE/workflow.lang +++ b/htdocs/langs/de_DE/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Workflow Moduleinstellungen WorkflowDesc=Dieses Modul ermöglicht, das Verhalten von automatischen Aktionen in den Anwendungen zu verändern. Standardmäßig wird der Prozess offen sein (Sie können die Dinge in der gewünschten Reihenfolge tun). Sie können automatische Aktionen aktivieren, die Sie interessieren. ThereIsNoWorkflowToModify=Es sind keine Workflow-Änderungen möglich mit den aktivierten Modulen. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Erstelle einen Kundenauftrag automatisch, nachdem ein Angebot unterzeichnet wurde -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Erstelle automatisch eine Kundenrechnung, nachdem das Angebot bestätigt wurde. +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Erstelle automatisch eine Kundenrechnung, nachdem der Vertrag bestätigt wurde. -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Erstelle automatisch eine Kundenrechnung, nachdem ein Auftrag abgeschlossen wurde. -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Kennzeichne verknüpftes Angebot als in Rechnung gestellt, wenn der Kundenauftrag als bezahlt markiert wird -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Kennzeichne verknüpfte Kundenaufträge als verrechnet, wenn die Kundenrechnung als bezahlt markiert wird -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Kennzeichne verknüpfte Kundenaufträge als verrechnet, wenn die Kundenrechnung bestätigt wird -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Kennzeichne das verknüpfte Angebot als abgerechnet, wenn die Kundenrechnung erstellt wurde. -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Kennzeichne verknüpfte Aufträge als geliefert, wenn die Lieferung verbucht wurde und die Liefermenge der Bestellmenge entspricht +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=automatische Erstellung AutomaticClassification=Automatische Klassifikation diff --git a/htdocs/langs/el_GR/accountancy.lang b/htdocs/langs/el_GR/accountancy.lang index c258d991153..292b88bc44f 100644 --- a/htdocs/langs/el_GR/accountancy.lang +++ b/htdocs/langs/el_GR/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Ημερολόγιο οικονομικών ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=Λίστα των λογιστικών λογαριασμών +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Τύπος λογαριασμού Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Σφάλμα, δεν μπορείτε να διαγράψετε αυτόν τον λογιστικό λογαριασμό γιατί χρησιμοποιείται -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Κώδικας Nature=Nature AccountingJournalType1=Various operation AccountingJournalType2=Πωλήσεις @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Εξαγωγές -Export=Εξαγωγή ExportDraftJournal=Export draft journal Modelcsv=Πρότυπο εξαγωγής OptionsDeactivatedForThisExportModel=Γι 'αυτό το μοντέλο εξαγωγών, οι επιλογές είναι απενεργοποιημένες diff --git a/htdocs/langs/el_GR/admin.lang b/htdocs/langs/el_GR/admin.lang index beb168bacfd..646a45f6f2a 100644 --- a/htdocs/langs/el_GR/admin.lang +++ b/htdocs/langs/el_GR/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Περιοχή Εργαλείων Συστήματος SystemToolsAreaDesc=Αυτή η περιοχή παρέχει δυνατότητες διαχείρισης. Χρησιμοποιήστε το μενού για να επιλέξετε τη λειτουργία που ψάχνετε. Purge=Εκκαθάριση PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Διαγραφή ολών των προσωρινών αρχείων (δεν υπάρχει κίνδυνος απώλειας δεδομένων) PurgeDeleteTemporaryFilesShort=Διαγραφή προσωρινών αρχείων PurgeDeleteAllFilesInDocumentsDir=Διαγραφή όλων των αρχείων στον κατάλογο %s. Προσωρινά αρχεία αλλά και βάση δεδομένων αντιγράφων ασφαλείας κάδου απορριμάτων, αρχεία που συνδέονται με τα στοιχεία (ΠΕΛ./ΠΡΟΜ., τιμολόγια, ...) και μεταφορτώνονται στη μονάδα ECM θα διαγραφούν. PurgeRunNow=Διαγραφή τώρα PurgeNothingToDelete=Δεν υπάρχει κατάλογος ή αρχείο για διαγραφή. PurgeNDirectoriesDeleted=%s αρχεία ή κατάλογοι που διαγραφήκαν. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Διαγραφή όλων των γεγονότων ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Δημιουργία αντιγράφου ασφαλείας @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=Για αυτό το βήμα μπορείτε να στείλετε πακέτα χρησιμοποιώντας ατό το εργαλείο: Επιλέξτε αρχείο ενθέματος +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Έκδοση Dolibarr CallUpdatePage=Μετάβαση στη σελίδα ενημέρωσης της δομής της βάσης δεδομένων και των δεδομένων: %s. LastStableVersion=Τελευταία σταθερή έκδοση @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double entries) Module1520Name=Δημιουργία εγγράφων Module1520Desc=Δημιουργία εγγράφου για μαζικά mail Module1780Name=Ετικέτες/Κατηγορίες @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Ενότητα για να προσφέρει μια σε απευθείας σύνδεση σελίδα πληρωμής με πιστωτική κάρτα με Paypal Module50400Name=Λογιστική (για προχωρημένους) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Απευθείας εκτύπωση (χωρίς να ανοίξετε τα έγγραφα) χρησιμοποιώντας Cups IPP διασύνδεση (Ο Εκτυπωτής πρέπει να είναι ορατός από τον server, και το CUPS πρέπει να έχει εγκατασταθεί στο server). Module55000Name=Δημοσκόπηση, έρευνα ή ψηφοφορία @@ -751,8 +750,10 @@ Permission401=Read discounts Permission402=Create/modify discounts Permission403=Validate discounts Permission404=Delete discounts -Permission510=Διαβάστε τους μισθούς -Permission512=Δημιουργία/Τροποποίηση μισθών +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Διαγραφή μισθών Permission517=Εξαγωγή μισθών Permission520=Ανάγνωση δανείων @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files +PreviousDumpFiles=Generated database backup files WeekStartOnDay=Πρώτη ημέρα της εβδομάδας RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. diff --git a/htdocs/langs/el_GR/banks.lang b/htdocs/langs/el_GR/banks.lang index 71a2a29c50f..3bcb97a3718 100644 --- a/htdocs/langs/el_GR/banks.lang +++ b/htdocs/langs/el_GR/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Ελέγξτε την επιστροφή και BankAccountModelModule=Πρότυπα εγγράφων για τραπεζικούς λογαριασμούς DocumentModelSepaMandate=Πρότυπο SEPA. Χρήσιμο μόνο για κράτη μέλη της Ευρωζώνης. DocumentModelBan=Πρότυπο για εκτύπωση σελίδας με πληροφορίες BAN. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/el_GR/bills.lang b/htdocs/langs/el_GR/bills.lang index f5e07bc1753..8035e666fa8 100644 --- a/htdocs/langs/el_GR/bills.lang +++ b/htdocs/langs/el_GR/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Καρτέλα Τιμολογίου PredefinedInvoices=Προκαθορισμένα τιμολόγια Invoice=Τιμολόγιο +PdfInvoiceTitle=Τιμολόγιο Invoices=Τιμολόγια InvoiceLine=Γραμμή Τιμολογίου InvoiceCustomer=Τιμολόγιο Πελάτη diff --git a/htdocs/langs/el_GR/compta.lang b/htdocs/langs/el_GR/compta.lang index f236f0314b3..9921263418e 100644 --- a/htdocs/langs/el_GR/compta.lang +++ b/htdocs/langs/el_GR/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/el_GR/errors.lang b/htdocs/langs/el_GR/errors.lang index 01bec9222fe..bdbd8b340bf 100644 --- a/htdocs/langs/el_GR/errors.lang +++ b/htdocs/langs/el_GR/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/el_GR/install.lang b/htdocs/langs/el_GR/install.lang index eddc83052b6..2436ee86eff 100644 --- a/htdocs/langs/el_GR/install.lang +++ b/htdocs/langs/el_GR/install.lang @@ -53,10 +53,10 @@ AdminLogin=Είσοδος ιδιοκτήτη της βάσης δεδομένω PasswordAgain=Ξαναγράψτε τον κωδικό AdminPassword=Κωδικός ιδιοκτήτη της βάσης δεδομένων Dolibarr. CreateDatabase=Δημιουργία βάσης δεδομένων -CreateUser=Δημιουργία ιδιοκτήτη +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Database server - Superuser access CheckToCreateDatabase=Check box if database does not exist and must be created.
    In this case, you must fill the login/password for superuser account at the bottom of this page. -CheckToCreateUser=Check box if database owner does not exist and must be created.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, useless if your database and your database login already exists (like when you're hosted by a web hosting provider). KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this) SaveConfigurationFile=Αποθήκευση τιμών diff --git a/htdocs/langs/el_GR/main.lang b/htdocs/langs/el_GR/main.lang index 13a87b7aef0..a1261e766ae 100644 --- a/htdocs/langs/el_GR/main.lang +++ b/htdocs/langs/el_GR/main.lang @@ -75,7 +75,8 @@ FileRenamed=Το αρχείο μετονομάστηκε με επιτυχία FileGenerated=Το αρχείο δημιουργήθηκε με επιτυχία FileSaved=The file was successfully saved FileUploaded=Το αρχείο ανέβηκε με επιτυχία -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=Επιλέχθηκε ένα αρχείο για επισύναψη, αλλά δεν έχει μεταφερθεί ακόμη. Πατήστε στο "Επισύναψη Αρχείου". NbOfEntries=Πλήθος εγγραφών GoToWikiHelpPage=Online βοήθεια (απαιτείται σύνδεση στο internet) @@ -196,6 +197,7 @@ Parameter=Παράμετρος Parameters=Παράμετροι Value=Τιμή PersonalValue=Προσωπική Τιμή +NewObject=New %s NewValue=Νέα Τιμή CurrentValue=Τρέχουσα Τιμή Code=Κωδικός @@ -441,6 +443,7 @@ Reporting=Αναφορές Reportings=Αναφορές Draft=Προσχέδιο Drafts=Προσχέδια +StatusInterInvoiced= Validated=Επικυρωμένο Opened=Άνοιγμα New=Νέο @@ -727,6 +730,7 @@ SetBankAccount=Προσδιορίστε Τραπεζικό λογαριασμό AccountCurrency=Νόμισμα Λογαριασμού ViewPrivateNote=Προβολή σημειώσεων XMoreLines=%s γραμμή (ές) κρυμμένη +ShowMoreLines=Show more lines PublicUrl=Δημόσια URL AddBox=Προσθήκη πεδίου SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Εμφάνιση καταχώρισης σε τραπεζικό GoIntoSetupToChangeLogo=Πηγαίνετε Αρχική - Ρυθμίσεις - Εταιρία να αλλάξει το λογότυπο ή πηγαίνετε Αρχική - Ρυθμίσεις - Προβολή για απόκρυψη. Deny=Άρνηση Denied=Άρνηση +ListOf=List of %s ListOfTemplates=Κατάλογος των προτύπων Gender=Φύλο Genderman=Άνδρας diff --git a/htdocs/langs/el_GR/modulebuilder.lang b/htdocs/langs/el_GR/modulebuilder.lang index 19e5f19a1b0..0d4ad2307b4 100644 --- a/htdocs/langs/el_GR/modulebuilder.lang +++ b/htdocs/langs/el_GR/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=Νέο Άρθρωμα @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Γράψε εδώ όλες τις γενικές πληροφορίες που περιγράφουν το άρθρωμα. -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/el_GR/multicurrency.lang b/htdocs/langs/el_GR/multicurrency.lang index c733f753380..b45e32436f7 100644 --- a/htdocs/langs/el_GR/multicurrency.lang +++ b/htdocs/langs/el_GR/multicurrency.lang @@ -4,7 +4,8 @@ ErrorAddRateFail=Error in added rate ErrorAddCurrencyFail=Error in added currency ErrorDeleteCurrencyFail=Error delete fail multicurrency_syncronize_error=Σφάλμα συγχρονισμού:%s -multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate) CurrencyLayerAccount=CurrencyLayer API CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
    Get your API key
    If you use a free account you can't change the currency source (USD by default)
    But if your main currency isn't USD you can use the alternate currency source to force you main currency

    You are limited at 1000 synchronizations per month multicurrency_appId=API key diff --git a/htdocs/langs/el_GR/orders.lang b/htdocs/langs/el_GR/orders.lang index dace308f76f..0579aa5a365 100644 --- a/htdocs/langs/el_GR/orders.lang +++ b/htdocs/langs/el_GR/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Περιοχή παραγγελιών προμηθευτών OrderCard=Καρτέλα παραγγελίας OrderId=Αρ.Παραγγελίας Order=Παραγγελία +PdfOrderTitle=Παραγγελία Orders=Παραγγελίες OrderLine=Γραμμή Παραγγελίας OrderDate=Ημερομηνία παραγγελίας diff --git a/htdocs/langs/el_GR/other.lang b/htdocs/langs/el_GR/other.lang index f56d6867144..4d05fd3ac6b 100644 --- a/htdocs/langs/el_GR/other.lang +++ b/htdocs/langs/el_GR/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/el_GR/propal.lang b/htdocs/langs/el_GR/propal.lang index 755f834b5fe..b577d02796f 100644 --- a/htdocs/langs/el_GR/propal.lang +++ b/htdocs/langs/el_GR/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Σχέδιο Προσφοράς ProposalsOpened=Open commercial proposals Prop=Προσφορές CommercialProposal=Προσφορά +PdfCommercialProposalTitle=Προσφορά ProposalCard=Καρτέλα Προσφοράς NewProp=Νέα Προσφορά NewPropal=Νέα Προσφορά diff --git a/htdocs/langs/el_GR/salaries.lang b/htdocs/langs/el_GR/salaries.lang index ae7fa33641f..e89361ff944 100644 --- a/htdocs/langs/el_GR/salaries.lang +++ b/htdocs/langs/el_GR/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Mισθός Salaries=Μισθοί diff --git a/htdocs/langs/el_GR/website.lang b/htdocs/langs/el_GR/website.lang index 05e664122e3..22e4809b0d8 100644 --- a/htdocs/langs/el_GR/website.lang +++ b/htdocs/langs/el_GR/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Διαγραφή ιστοχώρου ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=Περιεχόμενο CSS -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Βιβλιοθήκη πολυμέσων -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Επεξεργασία μενού EditPageMeta=Edit Meta EditPageContent=Επεξεργασία περιεχομένου Website=Ιστοτοπός -Webpage=Ιστοσελίδα -AddPage=Προσθήκη σελίδας +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Η προεπισκόπιση της ιστοσελίδας σας %s δεν είναι δυνατή. Πρέπει πρώτα να προσθέσετε μια σελίδα. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Η σελίδα '%s' από τον ιστότοπο %s διαγράφηκε -PageAdded=Η σελίδα '%s' προστέθηκς +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=Προβολή χώρου σε νέα καρτέλα ViewPageInNewTab=Προβολή σελίδας σε νέα καρτέλα SetAsHomePage=Ορισμός σαν αρχική σελίδα @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/el_GR/workflow.lang b/htdocs/langs/el_GR/workflow.lang index 50af24ee22a..29dfac8dc9a 100644 --- a/htdocs/langs/el_GR/workflow.lang +++ b/htdocs/langs/el_GR/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Ροής εργασίας ρύθμιση μονάδας WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Κατατάσσει που συνδέονται με παραγγελία (ες) του πελάτη να χρεωθεί όταν το τιμολόγιο του πελάτη έχει οριστεί να καταβληθεί -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Κατατάσσει που συνδέονται με παραγγελία (ες) του πελάτη να χρεωθεί όταν το τιμολόγιο του πελάτη έχει επικυρωθεί -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/en_GB/accountancy.lang b/htdocs/langs/en_GB/accountancy.lang index 4f1dbace022..832f0808b37 100644 --- a/htdocs/langs/en_GB/accountancy.lang +++ b/htdocs/langs/en_GB/accountancy.lang @@ -14,7 +14,6 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default finance accounts for ea AccountancyAreaDescSal=STEP %s: Define default finance accounts for payment of salaries. For this, use the menu entry %s. AccountancyAreaDescContrib=STEP %s: Define default finance accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default finance accounts for donations. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default finance accounts for miscellaneous transactions. For this, use the menu entry %s. AccountancyAreaDescLoan=STEP %s: Define default finance accounts for loans. For this, use the menu entry %s. AccountancyAreaDescBank=STEP %s: Define finance accounts for each bank accounts. For this, go to the card of each finance account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define finance accounts on your products/services. For this, use the menu entry %s. @@ -40,12 +39,12 @@ ExpenseReportLines=Lines of expense reports to link ExpenseReportLinesDone=Linked lines of expense reports IntoAccount=Link line with the Financial account Ventilate=Link +LineId=ID line EndProcessing=Process terminated Lineofinvoice=Invoice line NoAccountSelected=No finance account selected VentilatedinAccount=Linked successfully to the financial account NotVentilatedinAccount=Not linked to the financial account -XLineSuccessfullyBinded=%s products/services successfully linked to an account XLineFailedToBeBinded=%s products/services were not linked to any finance account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to link shown by page (maximum recommended : 50) ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin sorting the page "Links to do" by the most recent elements @@ -69,7 +68,6 @@ NumPiece=Item number AccountingCategory=Finance account groups GroupByAccountAccounting=Group by finance account DelBookKeeping=Delete record in the Ledger -DescJournalOnlyBindedVisible=This is a view of records that are linked to product/service accounts and can be recorded into the Ledger. FeeAccountNotDefined=Account for fees not defined ThirdPartyAccount=Third party account NumMvts=Transaction Number @@ -93,7 +91,6 @@ DescVentilDoneExpenseReport=View here the list of the lines of expense reports a ValidateHistory=Link Automatically AutomaticBindingDone=Automatic link done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this finance account because it is used -MvtNotCorrectlyBalanced=Posting does not balance. Credit = %s. Debit = %s FicheVentilation=Link card GeneralLedgerIsWritten=Transactions are written to the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be processed. If there is no other error message, this is probably because they had already been processed. diff --git a/htdocs/langs/en_GB/admin.lang b/htdocs/langs/en_GB/admin.lang index 5c56c9dd01f..c3396304dae 100644 --- a/htdocs/langs/en_GB/admin.lang +++ b/htdocs/langs/en_GB/admin.lang @@ -24,15 +24,16 @@ CurrentValueSeparatorThousand=Thousands separator PositionByDefault=Default position MenusDesc=Menu managers set the content of the two menu bars (horizontal and vertical). MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and make permanently unreachable menu entries.
    Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them by disabling and re-enabling the module. -PurgeDeleteLogFile=Delete log file %s defined for the Syslog module (no risk of losing data) PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. All temporary files including database backup dumps, any files attached to elements (third parties, invoices, ...) and files uploaded into the ECM module will be deleted. ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted but no other data will be removed. ImportMySqlDesc=To import a backup file, you must use the mysql command from the command line: ImportPostgreSqlDesc=To import a backup file, you must use the pg_restore command from the command line: FileNameToGenerate=File name to be generated\n CommandsToDisableForeignKeysForImportWarning=This is mandatory if you want to restore your sql dumps later +GenericMaskCodes4a=Example on the 99th %s of the third party The Company, with date 2007-01-31:
    ExampleOfDirectoriesForModelGen=Examples of syntax:
    c:\\mydir
    /home/mydir
    DOL_DATA_ROOT/ecm/ecmdir Module330Desc=Bookmark management +Module50200Name=PayPal Permission300=Read barcodes Permission301=Create/modify barcodes Permission302=Delete barcodes diff --git a/htdocs/langs/en_GB/banks.lang b/htdocs/langs/en_GB/banks.lang index 6bc449c5864..71e43f01f8e 100644 --- a/htdocs/langs/en_GB/banks.lang +++ b/htdocs/langs/en_GB/banks.lang @@ -18,3 +18,5 @@ RejectCheck=Cheque returned RejectCheckDate=Date the cheque was returned CheckRejected=Cheque returned CheckRejectedAndInvoicesReopened=Cheque returned and invoices reopened +AutoReportLastAccountStatement=Use automatically last account statement to reconcile +BankAccountReleveModule=Bank Statement \ No newline at end of file diff --git a/htdocs/langs/en_GB/compta.lang b/htdocs/langs/en_GB/compta.lang index 48f980f4449..3bae9797c16 100644 --- a/htdocs/langs/en_GB/compta.lang +++ b/htdocs/langs/en_GB/compta.lang @@ -1,4 +1,8 @@ # Dolibarr language file - Source file is en_US - compta +VATReceived=VAT received +VATToCollect=VAT purchases +VATSummary=VAT Balance +VATPaid=VAT paid CheckReceipt=Cheque deposit CheckReceiptShort=Cheque deposit NewCheckDeposit=New cheque deposit diff --git a/htdocs/langs/en_GB/website.lang b/htdocs/langs/en_GB/website.lang index 3bed7990483..70a04d16ce6 100644 --- a/htdocs/langs/en_GB/website.lang +++ b/htdocs/langs/en_GB/website.lang @@ -1,4 +1,12 @@ # Dolibarr language file - Source file is en_US - website WebsiteSetupDesc=Create here as many entries for websites as you need. Then go into menu Websites to edit them. +EditCss=Edit Style/CSS or HTML header +EditPageContent=Edit Content Website=Website +Webpage=Web page/container +AddPage=Add page/container PreviewOfSiteNotYetAvailable=Preview of your website %s is not yet available. You must first add a page. +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. diff --git a/htdocs/langs/en_IN/compta.lang b/htdocs/langs/en_IN/compta.lang index 6e6975592c2..74422d49b9d 100644 --- a/htdocs/langs/en_IN/compta.lang +++ b/htdocs/langs/en_IN/compta.lang @@ -1,2 +1,6 @@ # Dolibarr language file - Source file is en_US - compta +VATReceived=VAT received +VATToCollect=VAT purchases +VATSummary=VAT Balance +VATPaid=VAT paid ProposalStats=Statistics on quotations diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index a4de6f7470c..3f21438a5fd 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -298,7 +298,7 @@ UnpackPackageInModulesRoot=To deploy/install an external module, unpack the pack SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    -InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. +InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. @@ -526,8 +526,9 @@ Module510Name=Payment of employee wages Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans -Module600Name=Notifications -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails +Module600Name=Notifications on business events +Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), to third-party contacts (setup defined on each third party) or to fixed emails +Module600Long=Note that this module is dedicated to send real time emails when a dedicated business event occurs. If you are looking for a feature to send reminders by email of your agenda events, go into setup of module Agenda. Module700Name=Donations Module700Desc=Donation management Module770Name=Expense reports @@ -544,8 +545,8 @@ Module2000Name=WYSIWYG editor Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) Module2200Name=Dynamic Prices Module2200Desc=Enable the usage of math expressions for prices -Module2300Name=Cron -Module2300Desc=Scheduled job management +Module2300Name=Scheduled jobs +Module2300Desc=Scheduled jobs management (alias cron or chrono table) Module2400Name=Events/Agenda Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. Module2500Name=Electronic Content Management @@ -875,6 +876,8 @@ DictionaryUnits=Units DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead +DictionaryExpenseTaxCat=Expense report categories +DictionaryExpenseTaxRange=Expense report range by category SetupSaved=Setup saved SetupNotSaved=Setup not saved BackToModuleList=Back to modules list @@ -1058,7 +1061,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files +PreviousDumpFiles=Generated database backup files WeekStartOnDay=First day of week RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. @@ -1141,6 +1144,8 @@ RuleForGeneratedPasswords=Rule to generate suggested passwords or validate passw DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page UsersSetup=Users module setup UserMailRequired=EMail required to create a new user +DefaultCategoryCar=Default car category +DefaultRangeNumber=Default range number ##### HRM setup ##### HRMSetup=HRM module setup ##### Company setup ##### @@ -1511,13 +1516,14 @@ AccountancyCodeBuy=Purchase account. code AgendaSetup=Events and agenda module setup PasswordTogetVCalExport=Key to authorize export link PastDelayVCalExport=Do not export event older than -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events) +AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionaries -> Type of agenda events) AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_REMINDER_EMAIL=Enable event reminder by emails (defined on each event). Note: Module %s must be enabled and correctly setup to have reminder sent at the correct frequency. +AGENDA_REMINDER_BROWSER=Enable event reminder on users browser (when event date is reached, each user is able to refuse this from the browser confirmation question) +AGENDA_REMINDER_BROWSER_SOUND=Enable sound notification AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Click To Dial module setup @@ -1609,6 +1615,8 @@ TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both custome IncludePath=Include path (defined into variable %s) ExpenseReportsSetup=Setup of module Expense Reports TemplatePDFExpenseReports=Document templates to generate expense report document +ExpenseReportsIkSetup=Setup of module Expense Reports - Milles index +ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification". ListOfNotificationsPerUser=List of notifications per user* diff --git a/htdocs/langs/en_US/agenda.lang b/htdocs/langs/en_US/agenda.lang index 38a40315985..a62db9c7158 100644 --- a/htdocs/langs/en_US/agenda.lang +++ b/htdocs/langs/en_US/agenda.lang @@ -78,6 +78,11 @@ InvoiceDeleted=Invoice deleted PRODUCT_CREATEInDolibarr=Product %s created PRODUCT_MODIFYInDolibarr=Product %s modified PRODUCT_DELETEInDolibarr=Product %s deleted +EXPENSE_REPORT_CREATEInDolibarr=Expense report %s created +EXPENSE_REPORT_VALIDATEInDolibarr=Expense report %s validated +EXPENSE_REPORT_APPROVEInDolibarr=Expense report %s approved +EXPENSE_REPORT_DELETEInDolibarr=Expense report %s deleted +EXPENSE_REPORT_REFUSEDInDolibarr=Expense report %s refused ##### End agenda events ##### AgendaModelModule=Document templates for event DateActionStart=Start date diff --git a/htdocs/langs/en_US/banks.lang b/htdocs/langs/en_US/banks.lang index 6e2f19f5f36..46222fca80c 100644 --- a/htdocs/langs/en_US/banks.lang +++ b/htdocs/langs/en_US/banks.lang @@ -1,6 +1,8 @@ # Dolibarr language file - Source file is en_US - banks Bank=Bank MenuBankCash=Bank/Cash +MenuVariousPayment=Various payments +MenuNewVariousPayment=New various payment BankName=Bank name FinancialAccount=Account BankAccount=Bank account diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang index 189ef5c1fe2..03ddb1f958e 100644 --- a/htdocs/langs/en_US/bills.lang +++ b/htdocs/langs/en_US/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Invoice card PredefinedInvoices=Predefined Invoices Invoice=Invoice +PdfInvoiceTitle=Invoice Invoices=Invoices InvoiceLine=Invoice line InvoiceCustomer=Customer invoice diff --git a/htdocs/langs/en_US/compta.lang b/htdocs/langs/en_US/compta.lang index 79ad6cfd628..4c6dc5bf169 100644 --- a/htdocs/langs/en_US/compta.lang +++ b/htdocs/langs/en_US/compta.lang @@ -30,18 +30,34 @@ Piece=Accounting Doc. AmountHTVATRealReceived=Net collected AmountHTVATRealPaid=Net paid VATToPay=VAT sells -VATReceived=VAT received -VATToCollect=VAT purchases -VATSummary=VAT Balance -LT2SummaryES=IRPF Balance +VATReceived=Tax received +VATToCollect=Tax purchases +VATSummary=Tax Balance +VATPaid=Tax paid +LT1Summary=Tax 2 summary +LT2Summary=Tax 3 summary LT1SummaryES=RE Balance -VATPaid=VAT paid -LT2PaidES=IRPF Paid +LT2SummaryES=IRPF Balance +LT1SummaryIN=CGST Balance +LT2SummaryIN=SGST Balance +LT1Paid=Tax 2 paid +LT2Paid=Tax 3 paid LT1PaidES=RE Paid -LT2CustomerES=IRPF sales -LT2SupplierES=IRPF purchases +LT2PaidES=IRPF Paid +LT1PaidIN=CGST Paid +LT2PaidIN=SGST Paid +LT1Customer=Tax 2 sales +LT1Supplier=Tax 2 purchases LT1CustomerES=RE sales LT1SupplierES=RE purchases +LT1CustomerIN=CGST sales +LT1SupplierIN=CGST purchases +LT2Customer=Tax 3 sales +LT2Supplier=Tax 3 purchases +LT2CustomerES=IRPF sales +LT2SupplierES=IRPF purchases +LT2CustomerIN=SGST sales +LT2SupplierIN=SGST purchases VATCollected=VAT collected ToPay=To pay SpecialExpensesArea=Area for all special payments diff --git a/htdocs/langs/en_US/cron.lang b/htdocs/langs/en_US/cron.lang index 8eb03114c64..eb3b5a054e5 100644 --- a/htdocs/langs/en_US/cron.lang +++ b/htdocs/langs/en_US/cron.lang @@ -10,10 +10,12 @@ CronSetup= Scheduled job management setup URLToLaunchCronJobs=URL to check and launch qualified cron jobs OrToLaunchASpecificJob=Or to check and launch a specific job KeyForCronAccess=Security key for URL to launch cron jobs -FileToLaunchCronJobs=Command line to launch cron jobs +FileToLaunchCronJobs=Command line to check and launch qualified cron jobs CronExplainHowToRunUnix=On Unix environment you should use the following crontab entry to run the command line each 5 minutes CronExplainHowToRunWin=On Microsoft(tm) Windows environement you can use Scheduled task tools to run the command line each 5 minutes CronMethodDoesNotExists=Class %s does not contains any method %s +CronJobDefDesc=Cron job profiles are defined into the module descriptor file. When module is activated, they are loaded and available so you can administer the jobs from the admin tools menu %s. +CronJobProfiles=List of predefined cron job profiles # Menu EnabledAndDisabled=Enabled and disabled # Page list @@ -53,16 +55,17 @@ CronSaveSucess=Save successfully CronNote=Comment CronFieldMandatory=Fields %s is mandatory CronErrEndDateStartDt=End date cannot be before start date +StatusAtInstall=Status at installation CronStatusActiveBtn=Enable CronStatusInactiveBtn=Disable CronTaskInactive=This job is disabled CronId=Id CronClassFile=Filename with class -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
    For exemple 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 exemple 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 exemple 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 exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth -CronArgsHelp=The method arguments.
    For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
    For exemple 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 exemple 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 exemple 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 exemple 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 exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be
    0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=From @@ -75,5 +78,5 @@ CronCannotLoadClass=Cannot load class %s or object %s UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled jobs" to see and edit scheduled jobs. JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup -MakeLocalDatabaseDump=Create a local database dump +MakeLocalDatabaseDump=Create a local database dump. Parameters are: compression ('gz' or 'bz' or 'none'), backup type ('mysql' or 'pgsql'), 1, 'auto' or filename to build, nb of backup files to keep WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/en_US/dict.lang b/htdocs/langs/en_US/dict.lang index 8971d8e82d4..f0fa27bcbf8 100644 --- a/htdocs/langs/en_US/dict.lang +++ b/htdocs/langs/en_US/dict.lang @@ -325,3 +325,32 @@ PaperFormatCAP3=Format P3 Canada PaperFormatCAP4=Format P4 Canada PaperFormatCAP5=Format P5 Canada PaperFormatCAP6=Format P6 Canada +#### Expense report categories #### +ExpAutoCat=Car +ExpCycloCat=Moped +ExpMotoCat=Motorbike +ExpAuto3CV=3 CV +ExpAuto4CV=4 CV +ExpAuto5CV=5 CV +ExpAuto6CV=6 CV +ExpAuto7CV=7 CV +ExpAuto8CV=8 CV +ExpAuto9CV=9 CV +ExpAuto10CV=10 CV +ExpAuto11CV=11 CV +ExpAuto12CV=12 CV +ExpAuto3PCV=3 CV and more +ExpAuto4PCV=4 CV and more +ExpAuto5PCV=5 CV and more +ExpAuto6PCV=6 CV and more +ExpAuto7PCV=7 CV and more +ExpAuto8PCV=8 CV and more +ExpAuto9PCV=9 CV and more +ExpAuto10PCV=10 CV and more +ExpAuto11PCV=11 CV and more +ExpAuto12PCV=12 CV and more +ExpAuto13PCV=13 CV and more +ExpCyclo=Capacity lower to 50cm3 +ExpMoto12CV=Motorbike 1 or 2 CV +ExpMoto345CV=Motorbike 3, 4 or 5 CV +ExpMoto5PCV=Motorbike 5 CV and more \ No newline at end of file diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang index bb6072ed295..0282e2c06e8 100644 --- a/htdocs/langs/en_US/errors.lang +++ b/htdocs/langs/en_US/errors.lang @@ -197,6 +197,7 @@ ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. +ErrorOnlyInvoiceValidatedCanBeSentInMassAction=Only validated invoices can be sent using the "Send by email" mass action. # Warnings 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. diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index ff874d2fc1b..42bc2ff925a 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -356,17 +356,26 @@ Totalforthispage=Total for this page TotalTTC=Total (inc. tax) TotalTTCToYourCredit=Total (inc. tax) to your credit TotalVAT=Total tax +TotalVATIN=Total IGST TotalLT1=Total tax 2 TotalLT2=Total tax 3 TotalLT1ES=Total RE TotalLT2ES=Total IRPF +TotalLT1IN=Total CGST +TotalLT2IN=Total SGST HT=Net of tax TTC=Inc. tax INCT=Inc. all taxes VAT=Sales tax +VATIN=IGST VATs=Sales taxes +VATINs=IGST taxes +LT1=Sales tax 2 +LT2=Sales tax 3 LT1ES=RE LT2ES=IRPF +LT1IN=CGST +LT2IN=SGST VATRate=Tax Rate Average=Average Sum=Sum @@ -785,6 +794,7 @@ HRAndBank=HR and Bank AutomaticallyCalculated=Automatically calculated TitleSetToDraft=Go back to draft ConfirmSetToDraft=Are you sure you want to go back to Draft status ? +ImportId=Import id # Week day Monday=Monday Tuesday=Tuesday diff --git a/htdocs/langs/en_US/members.lang b/htdocs/langs/en_US/members.lang index db3aefa9363..6dca3afbdb3 100644 --- a/htdocs/langs/en_US/members.lang +++ b/htdocs/langs/en_US/members.lang @@ -171,3 +171,4 @@ VATToUseForSubscriptions=VAT rate to use for subscriptions NoVatOnSubscription=No TVA for subscriptions MEMBER_PAYONLINE_SENDEMAIL=Email to use for email warning when Dolibarr receive a confirmation of a validated payment for a subscription (Example: paymentdone@example.com) ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Product used for subscription line into invoice: %s +NameOrCompany=Name or company \ No newline at end of file diff --git a/htdocs/langs/en_US/modulebuilder.lang b/htdocs/langs/en_US/modulebuilder.lang index 9a7fbb7b3bc..62251069c08 100644 --- a/htdocs/langs/en_US/modulebuilder.lang +++ b/htdocs/langs/en_US/modulebuilder.lang @@ -13,7 +13,7 @@ FilesForObjectInitialized=Files for new object '%s' initialized FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -25,13 +25,13 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: +ModuleIsNotActive=This module was not activated yet. Go into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor EditorUrl=URL of editor DescriptorFile=Descriptor file of module -ClassFile=File for PHP class +ClassFile=File for PHP DAO CRUD class ApiClassFile=File for PHP API class PageForList=PHP page for list of record PageForCreateEditView=PHP page to create/edit/view a record @@ -50,7 +50,11 @@ HooksFile=File for hooks code WidgetFile=Widget file ReadmeFile=Readme file ChangeLog=ChangeLog file +TestClassFile=File for PHP Unit Test class SqlFile=Sql file +SqlFileExtraFields=Sql file for complementary attributes SqlFileKey=Sql file for keys AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case -UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) \ No newline at end of file +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +IsAMeasure=Is a measure +DirScanned=Directory scanned \ No newline at end of file diff --git a/htdocs/langs/en_US/multicurrency.lang b/htdocs/langs/en_US/multicurrency.lang index c53c3aef460..a1e5025fa9d 100644 --- a/htdocs/langs/en_US/multicurrency.lang +++ b/htdocs/langs/en_US/multicurrency.lang @@ -10,7 +10,7 @@ CurrencyLayerAccount=CurrencyLayer API CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
    Get your API key
    If you use a free account you can't change the currency source (USD by default)
    But if your main currency isn't USD you can use the alternate currency source to force you main currency

    You are limited at 1000 synchronizations per month multicurrency_appId=API key multicurrency_appCurrencySource=Currency source -multicurrency_alternateCurrencySource= Alternate currency souce +multicurrency_alternateCurrencySource=Alternate currency source CurrenciesUsed=Currencies used CurrenciesUsed_help_to_add=Add the differents currencies and rates you need to use on you proposals, orders, etc. rate=rate diff --git a/htdocs/langs/en_US/orders.lang b/htdocs/langs/en_US/orders.lang index 363fb504a5b..c62d08412ce 100644 --- a/htdocs/langs/en_US/orders.lang +++ b/htdocs/langs/en_US/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area OrderCard=Order card OrderId=Order Id Order=Order +PdfOrderTitle=Order Orders=Orders OrderLine=Order line OrderDate=Order date @@ -117,6 +118,7 @@ SecondApprovalAlreadyDone=Second approval already done SupplierOrderReceivedInDolibarr=Supplier order %s received %s SupplierOrderSubmitedInDolibarr=Supplier order %s submited SupplierOrderClassifiedBilled=Supplier order %s set billed +OtherOrders=Other orders ##### Types de contacts ##### TypeContact_commande_internal_SALESREPFOLL=Representative following-up customer order TypeContact_commande_internal_SHIPPING=Representative following-up shipping diff --git a/htdocs/langs/en_US/other.lang b/htdocs/langs/en_US/other.lang index e519f7af405..bd52f5dcaa2 100644 --- a/htdocs/langs/en_US/other.lang +++ b/htdocs/langs/en_US/other.lang @@ -18,6 +18,7 @@ NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. DocFileGeneratedInto=Doc file generated into %s. +JumpToLogin=Disconnected. Go to login page... YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/en_US/projects.lang b/htdocs/langs/en_US/projects.lang index d940555f206..a30768709f9 100644 --- a/htdocs/langs/en_US/projects.lang +++ b/htdocs/langs/en_US/projects.lang @@ -23,7 +23,7 @@ OnlyOpenedProject=Only open projects are visible (projects in draft or closed st ClosedProjectsAreHidden=Closed projects are not visible. TasksPublicDesc=This view presents all projects and tasks you are allowed to read. TasksDesc=This view presents all projects and tasks (your user permissions grant you permission to view everything). -AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. +AllTaskVisibleButEditIfYouAreAssigned=All tasks for qualified projects are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects ProjectCategories=Project tags/categories diff --git a/htdocs/langs/en_US/propal.lang b/htdocs/langs/en_US/propal.lang index aefe8e89cd2..2cbbc509076 100644 --- a/htdocs/langs/en_US/propal.lang +++ b/htdocs/langs/en_US/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal +PdfCommercialProposalTitle=Commercial proposal ProposalCard=Proposal card NewProp=New commercial proposal NewPropal=New proposal @@ -63,6 +64,7 @@ ProposalLine=Proposal line AvailabilityPeriod=Availability delay SetAvailability=Set availability delay AfterOrder=after order +OtherProposals=Other proposals ##### Availability ##### AvailabilityTypeAV_NOW=Immediate AvailabilityTypeAV_1W=1 week diff --git a/htdocs/langs/en_US/stocks.lang b/htdocs/langs/en_US/stocks.lang index 460665255b1..81945b17f85 100644 --- a/htdocs/langs/en_US/stocks.lang +++ b/htdocs/langs/en_US/stocks.lang @@ -33,8 +33,10 @@ LastMovement=Latest movement LastMovements=Latest movements Units=Units Unit=Unit -StockCorrection=Correct stock -StockTransfer=Transfer stock +StockCorrection=Stock correction +CorrectStock=Correct stock +StockTransfer=Stock transfer +TransferStock=Transfer stock MassStockTransferShort=Mass stock transfer StockMovement=Stock movement StockMovements=Stock movements @@ -69,6 +71,7 @@ NoPredefinedProductToDispatch=No predefined products for this object. So no disp DispatchVerb=Dispatch StockLimitShort=Limit for alert StockLimit=Stock limit for alert +StockLimitDesc="" (empty) default value means no alert.
    "0" can be used with 'Stock can be negative' configuration. PhysicalStock=Physical stock RealStock=Real Stock RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. @@ -192,4 +195,4 @@ InventoryFlushed=Inventory flushed ExitEditMode=Exit edition inventoryDeleteLine=Delete line RegulateStock=Regulate Stock -ListInventory=List +ListInventory=List \ No newline at end of file diff --git a/htdocs/langs/en_US/trips.lang b/htdocs/langs/en_US/trips.lang index a51a392499b..501ccb6ff10 100644 --- a/htdocs/langs/en_US/trips.lang +++ b/htdocs/langs/en_US/trips.lang @@ -49,6 +49,28 @@ TF_PEAGE=Toll TF_ESSENCE=Fuel TF_HOTEL=Hotel TF_TAXI=Taxi +EX_KME=Mileage costs +EX_FUE=Fuel CV +EX_HOT=Hotel +EX_PAR=Parking CV +EX_TOL=Toll CV +EX_TAX=Various Taxes +EX_IND=Indemnity transportation subscription +EX_SUM=Maintenance supply +EX_SUO=Office supplies +EX_CAR=Car rental +EX_DOC=Documentation +EX_CUR=Customers receiving +EX_OTR=Other receiving +EX_POS=Postage +EX_CAM=CV maintenance and repair +EX_EMM=Employees meal +EX_GUM=Guests meal +EX_BRE=Breakfast +EX_FUE_VP=Fuel PV +EX_TOL_VP=Toll PV +EX_PAR_VP=Parking PV +EX_CAM_VP=PV maintenance and repair ErrorDoubleDeclaration=You have declared another expense report into a similar date range. AucuneLigne=There is no expense report declared yet @@ -89,4 +111,44 @@ ExpenseReportPayment=Expense report payment ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay CloneExpenseReport=Clone expense report -ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? \ No newline at end of file +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? +ExpenseReportsIk=Expense report milles index +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 create or update any rules of calculation. This part will be used when user will create a new expense report +expenseReportOffset=Offset +expenseReportCoef=Coefficient +expenseReportTotalForFive=Example with d = 5 +expenseReportRangeFromTo=from %d to %d +expenseReportRangeMoreThan=more than %d +expenseReportCoefUndefined=(value not defined) +expenseReportCatDisabled=Category disabled - see the c_exp_tax_cat dictionary +expenseReportRangeDisabled=Range disabled - see the c_exp_tax_range dictionay +expenseReportPrintExample=offset + (d x coef) = %s +ExpenseReportApplyTo=Apply to +ExpenseReportDomain=Domain to apply +ExpenseReportLimitOn=Limit on +ExpenseReportDateStart=Date start +ExpenseReportDateEnd=Date end +ExpenseReportLimitAmount=Limite amount +ExpenseReportRestrictive=Restrictive +AllExpenseReport=All type of expense report +OnExpense=Expense line +ExpenseReportRuleSave=Expense report rule saved +ExpenseReportRuleErrorOnSave=Error: %s +RangeNum=Range %d + +ExpenseReportConstraintViolationError=Constraint violation id [%s]: %s is superior to %s %s +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=Constraint violation id [%s]: %s is superior to %s %s +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=Category of car +ExpenseRangeOffset=Offset amount: %s +RangeIk=Mileage range \ No newline at end of file diff --git a/htdocs/langs/en_US/website.lang b/htdocs/langs/en_US/website.lang index cc2f31143ce..816dae7e4a2 100644 --- a/htdocs/langs/en_US/website.lang +++ b/htdocs/langs/en_US/website.lang @@ -7,20 +7,25 @@ WEBSITE_PAGENAME=Page name/alias WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +WEBSITE_ROBOT=Robot file (robots.txt) +WEBSITE_HTACCESS=Web site .htaccess file +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu +EditMedias=Edit medias EditPageMeta=Edit Meta -EditPageContent=Edit Content +EditPageSource=Edit HTML Source +EditPageContent=Edit with CKEditor Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -29,4 +34,18 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. -NoPageYet=No pages yet \ No newline at end of file +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined +NoPageYet=No pages yet +SyntaxHelp=Help on specific syntax tips +YouCanEditHtmlSourceckeditor=You can edit HTML source code using the "Source" button in editor. +YouCanEditHtmlSource=You can include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    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=reldir/filename.ext">.
    for a file into documents/media (open access), syntax is:
    <a href="/document.php?modulepart=medias&file=reldir/filename.ext">.

    To include an image stored into the documents directory, use the viewimage.php wrapper:
    Example, for an image into documents/media (open access), syntax is:
    <a href="/viewimage.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site +ConfirmClonePage=Please enter code/alias of new page and if it is a translation of the cloned page. +PageIsANewTranslation=The new page is a translation of the current page ? +LanguageMustNotBeSameThanClonedPage=You clone a page as a translation. The language of the new page must be different than language of source page. +ParentPageId=Parent page ID +WebsiteId=Website ID +CreateByFetchingExternalPage=Create page/container by fetching page from external URL... +OrEnterPageInfoManually=Or create empty page from scratch... +FetchAndCreate=Fetch and Create diff --git a/htdocs/langs/es_CL/compta.lang b/htdocs/langs/es_CL/compta.lang index efc65af3d5e..23af47f67e4 100644 --- a/htdocs/langs/es_CL/compta.lang +++ b/htdocs/langs/es_CL/compta.lang @@ -2,6 +2,10 @@ Param=Configurar Debit=Débito Credit=Crédito +VATReceived=VAT received +VATToCollect=VAT purchases +VATSummary=VAT Balance +VATPaid=VAT paid ProposalStats=Estadísticas de cotizaciones Dispatched=Despachado ToDispatch=Para despachar diff --git a/htdocs/langs/es_CL/workflow.lang b/htdocs/langs/es_CL/workflow.lang index 866f3929198..e836a302760 100644 --- a/htdocs/langs/es_CL/workflow.lang +++ b/htdocs/langs/es_CL/workflow.lang @@ -2,12 +2,4 @@ WorkflowSetup=Configuración del módulo de flujo de trabajo WorkflowDesc=Este módulo está diseñado para modificar el comportamiento de las acciones automáticas en la aplicación. Por defecto, el flujo de trabajo está abierto (puede hacer las cosas en el orden que desee). Usted puede activar las acciones automáticas que le interesen. ThereIsNoWorkflowToModify=No hay modificaciones de flujo de trabajo disponibles con los módulos activados. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Crear un pedido de cliente automáticamente a la firma de una cotización -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Crear automáticamente una factura de cliente después de que una propuesta comercial es fimada descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Crear automáticamente una factura de cliente después de que un contrato es validado -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Crear automáticamente una factura de cliente después de cerrar una orden de cliente -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Clasificar como facturada la cotización cuando el pedido de cliente relacionado se clasifique como pagado -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Clasificar órden(es) fuente vinculadas del cliente a facturar cuando la factura del cliente se establece a pago -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Clasificar órden(es) fuente vinculadas del cliente a facturar cuando se valida la factura del cliente -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Clasificar propuesta de fuente vinculada a facturar cuando la factura del cliente es validada -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Clasificar orden de origen vinculado a enviar cuando un envío es validado y la cantidad enviada es la misma que en la orden diff --git a/htdocs/langs/es_CO/compta.lang b/htdocs/langs/es_CO/compta.lang index 006f13c57a0..5c76c2dc287 100644 --- a/htdocs/langs/es_CO/compta.lang +++ b/htdocs/langs/es_CO/compta.lang @@ -1,4 +1,8 @@ # Dolibarr language file - Source file is en_US - compta Param=Configuración +VATReceived=VAT received +VATToCollect=VAT purchases +VATSummary=VAT Balance +VATPaid=VAT paid ByThirdParties=Por empresa CodeNotDef=No definida diff --git a/htdocs/langs/es_EC/admin.lang b/htdocs/langs/es_EC/admin.lang index 1c53b65c99c..cdea66549c4 100644 --- a/htdocs/langs/es_EC/admin.lang +++ b/htdocs/langs/es_EC/admin.lang @@ -1,4 +1,323 @@ # Dolibarr language file - Source file is en_US - admin -AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
    Example for ClamAv: /usr/bin/clamscan -AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ExampleOfDirectoriesForModelGen=Examples of syntax:
    c:\\mydir
    /home/mydir
    DOL_DATA_ROOT/ecm/ecmdir +VersionProgram=Versión del programa +VersionLastInstall=Versión de instalación inicial +VersionLastUpgrade=Actualización de la versión más reciente +VersionUnknown=Desconocido +VersionRecommanded=Recomendado +FileCheckDesc=Esta herramienta le permite comprobar la integridad de los archivos y la configuración de la aplicación, la comparación de cada archivo con las oficiales. Valor de algunas constantes de configuración pueden ser también verificados. Puede utilizar esta herramienta para detectar si algunos archivos fueron modificados por un hacker por ejemplo. +FileIntegrityIsOkButFilesWereAdded=La comprobación de integridad de archivos ha pasado, sin embargo, se han añadido algunos archivos nuevos. +FileIntegritySomeFilesWereRemovedOrModified=La comprobación de integridad de archivos ha fallado. Algunos archivos fueron modificados, eliminados o añadidos. +GlobalChecksum=Verificación global +MakeIntegrityAnalysisFrom=Hacer análisis de la integridad de los archivos de la aplicación de +LocalSignature=Firma local incrustada (menos confiable) +RemoteSignature=Remote distant signature (más confiable) +FilesMissing=Archivos perdidos +FilesAdded=Archivos agregados +FileCheckDolibarr=Comprobar la integridad de los archivos de la aplicación +AvailableOnlyOnPackagedVersions=El archivo local para la comprobación de la integridad sólo está disponible cuando la aplicación se instala desde un paquete oficial +XmlNotFound=Archivo de integridad Xml no se encontró +SessionId=ID de sesión +SessionSaveHandler=Manejador para guardar sesiones +SessionSavePath=Localización del almacenamiento de las sesiones +ConfirmPurgeSessions=Es lo que realmente desea purgar todas las sesiones? Esto desconectará todos los usuarios (excepto usted mismo). +NoSessionListWithThisHandler=Guardar controlador de sesión configurado en su PHP no permite la lista de todas las sesiones en ejecución. +ConfirmLockNewSessions=¿Está seguro de que desea restringir cualquier conexión Dolibarr nueva a sí mismo. Solo el usuario %s podrá conectarse después de eso. +UnlockNewSessions=Quitar el bloqueo de conexión +Sessions=Sesión de usuarios +WebUserGroup=Usuario/grupo del servidor web +NoSessionFound=Su PHP parece no permitir la lista de sesiones activas. El directorio utilizado para guardar las sesiones (%s) puede estar protegido (por ejemplo, por los permisos del sistema operativo o por la directiva PHP open_basedir). +DBStoringCharset=Conjunto de caracteres de base de datos para almacenar datos +DBSortingCharset=Conjunto de caracteres de base de datos para ordenar los datos +WarningModuleNotActive=Módulo %s debe estar habilitado +WarningOnlyPermissionOfActivatedModules=Solamente los permisos relacionados con los módulos activados se muestran aquí. Puede activar otros módulos desde: Inicio-> Configuración-> Página Módulos. +DolibarrSetup=Dolibarr instalar o actualizar +GUISetup=Pantalla +SetupArea=Area de configuración +UploadNewTemplate=Subir nueva(s) plantilla(s) +FormToTestFileUploadForm=Formulario para probar la carga del archivo (según la configuración) +IfModuleEnabled=Nota: si es efectivo sólo si el módulo %s está activado +RemoveLock=Eliminar el archivo %s si es que existe para permitir el uso de la herramienta de actualización. +RestoreLock=Restaurar archivo %s, con permiso de lectura solamente, para deshabilitar cualquier uso de la herramienta de actualización. +SecuritySetup=Configuración de seguridad +SecurityFilesDesc=Definir aquí las opciones relacionadas con la seguridad acerca de la carga de archivos. +ErrorModuleRequirePHPVersion=Error, este módulo requiere la versión de PHP%s o superior +ErrorModuleRequireDolibarrVersion=Error, este módulo requiere la versión Dolibarr %s o superior +ErrorDecimalLargerThanAreForbidden=Error, una precisión mayor que %s no es compatible. +DictionarySetup=Configuración del diccionario +ErrorReservedTypeSystemSystemAuto=El valor 'sistema' y 'sistemamauto' esta reservado. Puede utilizar 'user' como valor para añadir su propio registro. +DisableJavascript=Desactivar las funciones JavaScript y Ajax (Recomendado para navegadores de texto o personas ciegas) +UseSearchToSelectCompanyTooltip=Además, si usted tiene un gran número de clientes (> 100 000), puede aumentar la velocidad estableciendo COMPANY_DONOTSEARCH_ANYWHERE constante en 1 en: Configuración-> Otros. La búsqueda se limitará entonces al inicio de la cadena. +UseSearchToSelectContactTooltip=Además, si tiene un gran número de clientes (> 100 000), puede aumentar la velocidad estableciendo constante CONTACT_DONOTSEARCH_ANYWHERE en 1 en: Configuración-> Otros. La búsqueda se limitará entonces al inicio de la cadena. +DelaiedFullListToSelectCompany=Espere a que presione una tecla antes de cargar el contenido de la lista combinada de clientes (Esto puede aumentar el rendimiento si tiene un gran número de clientes, pero es menos conveniente) +DelaiedFullListToSelectContact=Espere que presione una tecla antes de cargar el contenido de la lista de contactos (Esto puede aumentar el rendimiento si tiene un gran número de contactos, pero es menos conveniente) +NumberOfKeyToSearch=Número de caracteres para activar la búsqueda: %s +NotAvailableWhenAjaxDisabled=No disponible cuando Ajax esta inhabilitado +AllowToSelectProjectFromOtherCompany=En el documento de un cliente, puede elegir un proyecto vinculado a otro cliente +JavascriptDisabled=JavaScript desactivado +UsePreviewTabs=Usar pestañas de vista previa +ShowPreview=Mostrar vista previa +CurrentTimeZone=Zona horaria PHP (servidor) +MySQLTimeZone=Zona horaria MySQL (base de datos) +TZHasNoEffect=Las fechas son almacenadas y devueltas por el servidor de base de datos como si estuvieran guardadas como cadena enviada. La zona horaria sólo tiene efecto cuando se utiliza la función UNIX_TIMESTAMP (que no debe ser utilizada por Dolibarr, por lo que la base de datos TZ no debería tener ningún efecto, incluso si se modificó después de introducir los datos). +Space=Espacio +Index=Indice +NextValue=siguiente valor +NextValueForInvoices=Siguiente valor (facturas) +NextValueForCreditNotes=Siguiente valor (notas de crédito) +NextValueForDeposit=Siguiente valor (pago inicial) +NextValueForReplacements=Siguiente valor (sustituciones) +MustBeLowerThanPHPLimit=Nota: Tu PHP limita cada tamaño de archivo a %s%s, sea cual sea el valor de este parámetro +NoMaxSizeByPHPLimit=Nota: No hay límite en tu configuración de PHP +MaxSizeForUploadedFiles=Tamaño máximo de los archivos cargados (0 para rechazar cualquier subida) +UseCaptchaCode=Utilizar código gráfico (CAPTCHA) en la página de inicio de sesión +AntiVirusCommand=Ruta completa al comando antivirus +AntiVirusCommandExample=Ejemplo para ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
    Example for ClamAv: /usr/bin/clamscan +AntiVirusParam=Más parámetros de línea de comandos +ComptaSetup=Configuración del módulo de contabilidad +UserSetup=Configuración de gestión de usuarios +MultiCurrencySetup=Configuración de múltiples divisas +MenuIdParent=ID del menú principal +DetailMenuIdParent=ID del menú principal (vacío para un menú superior) +DetailPosition=Orden por número para definir la posición del menú +AllMenus=Todas +NotConfigured=Módulo/aplicación no está configurado +SetupShort=Configurar +OtherSetup=Otras configuraciones +CurrentValueSeparatorThousand=separador de miles +Destination=Destino +IdModule=Módulo de Identificación +IdPermissions=ID de permisos +LanguageBrowserParameter=Parámetros %s +ClientTZ=Zona horaria del cliente (usuario) +ClientHour=Hora del cliente (usuario) +OSTZ=Zona horaria del servidor +PHPTZ=Zona horaria del servidor PHP +DaylingSavingTime=Horario de verano +CurrentSessionTimeOut=Tiempo de espera de la sesión actual +YouCanEditPHPTZ=Para establecer una zona horaria diferente PHP (no es obligatorio), se puede tratar de añadir un archivo .htaccess con una línea como esta "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Advertencia, al contrario de otras pantallas, las horas de esta página no se encuentran en su zona horaria local, sino en la zona horaria del servidor. +MaxNbOfLinesForBoxes=Número máximo de líneas para los widgets +PositionByDefault=Orden predeterminada +MenusDesc=Los administradores de menús establecen el contenido de las dos barras de menú (horizontal y vertical). +MenusEditorDesc=El editor de menús le permite definir entradas de menú personalizadas. Utilícelo cuidadosamente para evitar inestabilidad y entradas de menú permanentemente inaccesibles.
    Algunos módulos añaden entradas de menú (en el menú Todos en su mayoría). Si elimina algunas de estas entradas por error, puede restaurarlas desactivando y reactivando el módulo. +MenuForUsers=Menú para usuarios +SystemInfo=Información del sistema +SystemToolsArea=Area de herramientas del sistema +SystemToolsAreaDesc=Esta zona proporciona funciones de administración. Utilice el menú para elegir la función que está buscando. +Purge=Purgar +PurgeAreaDesc=Esta página le permite borrar todos los archivos generados o almacenados por Dolibarr (archivos temporales o todos los archivos en el directorio %s). El uso de esta función no es necesaria. Se proporciona como una solución para los usuarios cuyos Dolibarr está alojado en un proveedor que no ofrece permisos para eliminar los archivos generados por el servidor web. +PurgeDeleteLogFile=Eliminar archivo de registro %s definido para el módulo de Registro del Sistema (Syslog) (sin riesgo de perder datos) +PurgeDeleteTemporaryFiles=Eliminar todos los archivos temporales (no hay riesgo de pérdida de datos) +PurgeDeleteAllFilesInDocumentsDir=Elimine todos los archivos del directorio %s. Los archivos temporales, pero también los volcados de copia de seguridad de la base de datos, los archivos adjuntos a elementos (clientes, facturas, ...) y cargados en el módulo ECM se eliminarán. +PurgeRunNow=Purgar ahora +PurgeNothingToDelete=Sin directorio o archivos que desea eliminar. +PurgeNDirectoriesDeleted=%s archivos o directorios eliminados. +PurgeAuditEvents=Purgar todos los eventos de seguridad +ConfirmPurgeAuditEvents=¿Está seguro de que desea eliminar todos los eventos de seguridad? Todos los registros de seguridad se eliminarán, no se eliminarán otros datos. +GenerateBackup=Generar copias de seguridad +Restore=Restaurar +RunCommandSummary=La copia de seguridad se ha puesto en marcha con el siguiente comando +BackupResult=Resultado de la copia de seguridad +BackupFileSuccessfullyCreated=La copia de seguridad se generó correctamente +YouCanDownloadBackupFile=Los archivos generados ahora se pueden descargar +NoBackupFileAvailable=No hay archivos de copia de seguridad disponibles +ToBuildBackupFileClickHere=Para crear un archivo de copia de seguridad, haga clic aqui. +ImportMySqlDesc=Para importar un archivo de copia de seguridad, debe utilizar el comando mysql desde la línea de comandos: +ImportPostgreSqlDesc=Para importar un archivo de copia de seguridad, debe utilizar el comando pg_restore desde la línea de comandos: +FileNameToGenerate=Nombre del archivo para generar +CommandsToDisableForeignKeysForImport=Comando para deshabilitar claves externas en la importación +CommandsToDisableForeignKeysForImportWarning=Obligatorio si desea restaurar su copia de seguridad de SQL más tarde +ExportCompatibility=Compatibilidad de archivo de exportación generados +MySqlExportParameters=Parámetros de exportación de MySQL +PostgreSqlExportParameters=Parámetros de exportación de PostgreSQL +UseTransactionnalMode=Utilice el modo transaccional +FullPathToMysqldumpCommand=Ruta completa al comando mysqldump +FullPathToPostgreSQLdumpCommand=Ruta completa al comando pg_dump +AddDropDatabase=Añadir comando DROP DATABASE +AddDropTable=Añadir comando DROP TABLE +NameColumn=Nombre de columnas +ExtendedInsert=INSERT extendida +NoLockBeforeInsert=No hay comandos de bloqueo alrededor de INSERT +DelayedInsert=Inserción retardada +EncodeBinariesInHexa=Codificar los datos binarios en hexadecimal +IgnoreDuplicateRecords=Ignorar los errores de registro duplicado (INSERT IGNORE) +AutoDetectLang=Detección automática (idioma del navegador) +FeatureDisabledInDemo=Función desactivada en demostración +FeatureAvailableOnlyOnStable=Característica sólo está disponible en las versiones oficiales estables +BoxesDesc=Los widgets son componentes que muestran algunos datos que se pueden agregar para personalizar algunas páginas. Puede elegir entre mostrar el widget o no mediante la selección de la página de destino y haciendo clic en 'Activar', o haciendo clic en el cubo de basura para desactivarlo. +OnlyActiveElementsAreShown=Solo se muestran elementos de módulos habilitados are shown. +ModulesDesc=Los módulos Dolibarr definen qué aplicación / función está habilitada en el software. Algunas aplicaciones / módulos requieren permisos que debe otorgar a los usuarios, después de activarlos. Haga clic en el botón on / off para activar un módulo / aplicación. +ModulesDeployDesc=Si los permisos de su sistema de archivos lo permiten, puede utilizar esta herramienta para implementar un módulo externo. El módulo estará entonces visible en la pestaña %s. +GoModuleSetupArea=Para implementar / instalar un nuevo módulo, vaya al área de configuración del módulo en %s. +DoliStoreDesc=DoliStore, el mercado oficial de módulos externos ERP/CRM de Dolibarr +DoliPartnersDesc=Lista de las empresas que ofrecen módulos o funciones desarrolladas a medida (Nota: cualquier persona con experiencia en programación PHP puede proporcionar desarrollos a medida para un proyecto de código abierto) +BoxesAvailable=Widgets disponibles +BoxesActivated=Widgets activados +ActiveOn=Activado en +SourceFile=Archivo fuente +AvailableOnlyIfJavascriptAndAjaxNotDisabled=Disponible solamente si Javascript no está desactivado +Required=Necesario +UsedOnlyWithTypeOption=Utilizado solo por alguna opción de agenda +DoNotStoreClearPassword=No almacene las contraseñas en la base de datos, pero almacene sólo el valor cifrado (Activado recomendado) +MainDbPasswordFileConfEncrypted=Contraseña de base de datos cifrada en conf.php (activada recomendado) +InstrucToEncodePass=Para que la contraseña se codifique en el archivo conf.php, reemplazar la línea
    $dolibarr_main_db_pass="...";
    by
    $dolibarr_main_db_pass="crypted:%s"; +InstrucToClearPass=Para que la contraseña se descodifique (borrar) en el archivo conf.php, reemplazar la línea
    $dolibarr_main_db_pass="crypted:...";
    by
    $dolibarr_main_db_pass="%s"; +ProtectAndEncryptPdfFiles=Protección de archivos generados en pdf (Activado NO recomendado, rompe la generación de pdf en masa) +ProtectAndEncryptPdfFilesDesc=La protección de un documento PDF lo mantiene disponible para leer e imprimir con cualquier navegador PDF. Sin embargo, la edición y la copia ya no son posibles. Tenga en cuenta que el uso de esta característica hace que la creación de un conjunto global de PDF no funcione. +Feature=Característica +Developpers=Desarrolladores/colaboradores +OfficialWebSite=Dolibarr sitio web internacional oficial +OfficialWiki=Documentación de Dolibarr en Wiki +OfficialMarketPlace=Mercado oficial de módulos/complementos externos +OfficialWebHostingService=Servicios de alojamiento web referenciados (Cloud hosting) +ReferencedPreferredPartners=Socios Preferidos +SocialNetworks=Redes Sociales +ForDocumentationSeeWiki=Para la documentación del usuario o del desarrollador (Doc, Preguntas Frecuentes...),
    Eche un vistazo a la Wiki Dolibarr:
    %s +ForAnswersSeeForum=Para cualquier otra pregunta/ayuda, puede utilizar el foro Dolibarr:
    %sInglés solamente
    . +CurrentMenuHandler=Controlador de menús actual +SpaceX=Espacio X +SpaceY=Espacio Y +NoticePeriod=Periodo de notificación +Emails=Correos electrónicos +EMailsSetup=Configuración de correo electrónico +EMailsDesc=Esta página le permite sobrescribir los parámetros de PHP para el envío de correos electrónicos. En la mayoría de los casos en Unix OS/Linux, la configuración de PHP es correcta y estos parámetros son inútiles. +MAIN_MAIL_SMTP_PORT=SMTP/SMTPS puerto (Por defecto en php.ini: %s) +MAIN_MAIL_SMTP_SERVER=SMTP/Host SMTPS (Por defecto en php.ini: %s) +MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS puerto (No está definido en PHP en sistemas Unix) +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (No está definido en PHP en sistemas Unix) +MAIN_MAIL_EMAIL_FROM=Dirección electróica del remitente para correos electrónicos automáticos (por defecto en php.ini: %s) +MAIN_MAIL_ERRORS_TO=Remitente de correo electrónico se utilizara para devolver los correos electrónicos enviados con errores +MAIN_MAIL_AUTOCOPY_TO=Enviar sistemáticamente una copia carbon oculta (CCO) de todos los correos enviados a +MAIN_DISABLE_ALL_MAILS=Desactivar todos los envíos de correo electrónico (con fines de prueba o demos) +MAIN_MAIL_SENDMODE=Método a utilizar para enviar mensajes de correo electrónico +MAIN_MAIL_SMTPS_ID=ID de SMTP si se requiere autenticación +MAIN_MAIL_SMTPS_PW=Contraseña SMTP si se necesita autenticación +MAIN_MAIL_EMAIL_TLS=Usar cifrado TLS (SSL) +MAIN_MAIL_EMAIL_STARTTLS=Usar cifrado TLS (STARTTLS) +MAIN_DISABLE_ALL_SMS=Desactivar todos los envíos de SMS (con fines de prueba o demos) +MAIN_SMS_SENDMODE=Método a utilizar para enviar SMS +MAIN_MAIL_SMS_FROM=Número de teléfono del remitente predeterminado para el envío de SMS +MAIN_MAIL_DEFAULT_FROMTYPE=Correo electrónico del remitente por defecto para envíos manuales (correo electrónico del usuario o correo electrónico de la empresa) +UserEmail=Correo electrónico del usuario +CompanyEmail=Correo de la empresa +FeatureNotAvailableOnLinux=Característica no disponible en sistemas Unix. Comprobar el programa Sendmail localmente. +SubmitTranslation=Si la traducción para este idioma no es completo o presente errores, puede corregir esto mediante la edición de archivos en el directorio langs/%s y presentar su cambio a www.transifex.com/dolibarr-association/dolibarr/ +SubmitTranslationENUS=Si la traducción para este idioma no es completo o presente errores, puede corregir esto editando los archivos en el directorio langs/%s y enviar archivos modificados a dolibarr.org/forum o para los desarrolladores en github.com / Dolibarr / Dolibarr. +ModuleSetup=Módulo de configuración +ModulesSetup=Módulos de configuración/Aplicación +ModuleFamilyCrm=Gestión de Relaciones con el Cliente (CRM) +ModuleFamilyHr=Gestión de Recursos Humanos (HR) +ModuleFamilyProjects=Proyectos/trabajo colaborativo +ModuleFamilyTechnic=Herramientas multi-módulos +ModuleFamilyFinancial=Módulos financieros (Contabilidad/Tesoreria) +ModuleFamilyECM=Gestión de contenidos electrónicos (ECM) +ModuleFamilyPortal=sitios web y otras aplicaciones frontales +ModuleFamilyInterface=Interfaces con sistemas externos +MenuHandlers=Manejadores de menús +MenuAdmin=Editor de menús +DoNotUseInProduction=No utilizar en producción +ThisIsProcessToFollow=Esto es pasos a procesar: +ThisIsAlternativeProcessToFollow=Esta es una configuración alternativa para procesar manualmente: +FindPackageFromWebSite=Encontrar un paquete que proporciona la función que desea (por ejemplo, en el sitio web oficial de %s). +DownloadPackageFromWebSite=Descargar paquete (por ejemplo, desde el sitio web oficial de %s). +UnpackPackageInDolibarrRoot=Descomprimir los archivos empaquetados en el directorio de servidor dedicado a Dolibarr: %s +UnpackPackageInModulesRoot=Para implementar/instalar un módulo externo, descomprimir los archivos empaquetados en el directorio del servidor dedicado a los módulos: %s +SetupIsReadyForUse=La implementación del módulo está terminada. Sin embargo, debe habilitar y configurar el módulo en su aplicación, vaya a la página para configurar los módulos: %s. +NotExistsDirect=El directorio raíz alternativo no está definido en un directorio existente.
    +InfDirAlt=Desde la versión 3, es posible definir un directorio raíz alternativo. Esto le permite almacenar, en un directorio dedicado, plug-ins y plantillas personalizadas.
    Sólo cree un directorio en la raíz de Dolibarr (por ejemplo: personalizado).
    +YouCanSubmitFile=Para este paso, puede enviar paquetes utilizando esta herramienta: Seleccionar el archivo de módulo +CurrentVersion=Dolibarr versión actual +CallUpdatePage=Vaya a la página que actualiza la estructura y los datos de la base de datos: %s. +LastStableVersion=La última versión estable +LastActivationAuthor=Última autor de activación +LastActivationIP=Última activación IP +UpdateServerOffline=Actualización de servidor fuera de línea +WithCounter=Administrar un contador +GenericMaskCodes=Puede ingresar cualquier máscara de numeración. En esta máscara, podrían utilizarse las siguientes etiquetas:
    {000000} Corresponde a un número que se incrementará en cada %s. Introduzca tantos ceros como la longitud deseada del contador. El contador se completará con ceros de la izquierda para tener tantos ceros como la máscara.
    {000000+000} Igual que la anterior, pero se aplica un desplazamiento correspondiente al número a la derecha del signo +, comenzando en la primera %s.
    {000000@x} Igual a anterior pero el contador se restablece a cero cuando se alcanza el mes x (x entre 1 y 12, o 0 para usar los primeros meses del año fiscal definido en su configuración o 99 para restablecer a cero cada mes). Si se utiliza esta opción y x es 2 o superior, la secuencia {yy}{mm} or {yyyy}{mm} también se requiere.
    {dd} día (01 to 31).
    {mm} mes (01 to 12).
    {yy}, {yyyy} o {y} año más de 2, 4 o 1 número.
    +GenericMaskCodes2={cccc} El código de cliente en n caracteres
    {cccc000} El código del cliente en n caracteres es seguido por un contador dedicado para el cliente. Este contador dedicado al cliente se restablece al mismo tiempo que el contador global.
    {tttt} El código de tipo de cliente/proveedor en n caracteres (ver menú Inicio - Configuración - Diccionario - Tipos de cliente/proveedor). Si agrega esta etiqueta, el contador será diferente para cada tipo de cliente/proveedor.
    +GenericMaskCodes3=Todos los demás caracteres de la máscara permanecerán intactos.
    No se permiten espacios.
    +GenericMaskCodes4a=Ejemplo en el %s 99 de las empresas externas, con fecha 2007-01-31:
    +GenericMaskCodes4b=Ejemplo de cliente/proveedor creados en 2007-03-01:
    +GenericMaskCodes4c=Ejemplo de producto creado en 2007-03-01:
    +GenericMaskCodes5=ABC{yy}{mm}-{000000} dará ABC0701-000099
    {0000+100@1}-ZZZ/{dd}/XXX dará 0199-ZZZ/31/XXX
    IN{yy}{mm}-{0000}-{t} dará IN0701-0099-A si el tipo de empresa es 'Responsable Inscripto' con código para el tipo que es 'A_RI' +GenericNumRefModelDesc=Devuelve un número personalizable de acuerdo con una máscara definida. +ServerAvailableOnIPOrPort=Servidor está disponible en la dirección %s on port %s +ServerNotAvailableOnIPOrPort=Servidor no está disponible en la dirección %s on port %s +DoTestServerAvailability=Probar conectividad del servidor +DoTestSend=Prueba de envío +DoTestSendHTML=Prueba de envío HTML +ErrorCantUseRazIfNoYearInMask=Error, no puede utilizar la opción @ para restablecer el contador cada año si la secuencia {aa} o {aaaa} no está en la máscara. +ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, no se puede utilizar la opción @ si la secuencia {aa}{mm} o {aaaa}{mm} no está en la máscara. +UMask=Parámetro UMask para los nuevos archivos en el sistema de archivos de Unix/Linux/BSD/Mac. +UMaskExplanation=Este parámetro le permite definir los permisos establecidos de forma predeterminada en los archivos creados por Dolibarr en el servidor (durante la carga, por ejemplo).
    Debe ser el valor octal (por ejemplo, 0666 significa leer y escribir para todos).
    Este parámetro es inútil en un servidor Windows. +SeeWikiForAllTeam=Echar un vistazo a la página wiki para la lista completa de todos los actores y su organización +UseACacheDelay=Retardo para el almacenamiento en caché de la respuesta de exportación en segundos (0 o vacío para no caché) +DisableLinkToHelpCenter=Ocultar enlace "Necesita ayuda o soporte" en la página de inicio de sesión +AddCRIfTooLong=No hay envoltura automática, por lo que si la línea está fuera de la página de los documentos porque es demasiado larga, debe agregar devoluciones de carro en la zona de texto. +ConfirmPurge=¿Seguro que desea ejecutar esta purga?
    Esto eliminará definitivamente todos los archivos de datos y no hay forma de restaurarlos (ECM archivos, archivos adjuntos ...). +MinLength=Longitud mínima +LanguageFilesCachedIntoShmopSharedMemory=Archivos .lang cargados en la memoria compartida +ExamplesWithCurrentSetup=Ejemplos con la configuración actual en ejecución +ListOfDirectories=Lista de directorios plantillas OpenDocument +ListOfDirectoriesForModelGenODT=Lista de directorios que contienen archivos de plantillas con formato OpenDocument.

    Ponga aquí la ruta completa de los directorios.
    Agregue un transporte entre cada directorio.
    Para añadir un directorio del módulo GED, añádalo aquí DOL_DATA_ROOT/ecm/yourdirectoryname.

    Los archivos de esos directorios deben finalizar con .odt or .ods. +NumberOfModelFilesFound=Número de archivos de plantillas ODT/ODS que se encuentran en esos directorios +FollowingSubstitutionKeysCanBeUsed=
    Para saber cómo crear sus plantillas de documentos ODT, antes de guardarlos en esos directorios, leer la documentación wiki: +FirstnameNamePosition=Posición del Nombre / Apellido +DescWeather=Las siguientes imágenes se mostrarán en el tablero cuando el número de acciones tardías alcance los siguientes valores: +KeyForWebServicesAccess=Clave para utilizar Servicios Web (parámetro "dolibarrkey" en servicios web) +TestSubmitForm=Formulario de prueba de entrada +ThisForceAlsoTheme=El uso de este administrador de menús también utilizará su propio tema, sea cual sea la elección del usuario. También este administrador de menús especializado para smartphones no funciona en todos los teléfonos inteligentes. Utilice otro administrador de menús si experimenta problemas en la suya. +ThemeDir=Directorio de Skins +ConnectionTimeout=Tiempo de espera de conexión +ResponseTimeout=Tiempo de espera de respuesta +SmsTestMessage=Mensaje de prueba desde __PHONEFROM__ a __PHONETO__ +ModuleMustBeEnabledFirst=Módulo %s debe estar habilitado primero si necesita esta función. +SecurityToken=Clave para proteger las URL +NoSmsEngine=No hay gestor de envío de SMS disponible. El gestor de envío de SMS no está instalado con la distribución predeterminada (porque depende de un proveedor externo), pero puede encontrar algunos en %s +PDFDesc=Puede configurar cada opción globales relacionados con la generación de PDF +PDFAddressForging=Reglas para forjar cuadros de direcciones +HideAnyVATInformationOnPDF=Ocultar toda la información relacionada con el IVA en el PDF generado +HideDescOnPDF=Ocultar la descripción de los productos en el PDF generado +HideRefOnPDF=Ocultar referencia de productos en PDF generado +HideDetailsOnPDF=Ocultar líneas de productos en PDF generado detalles +PlaceCustomerAddressToIsoLocation=Utilice la posición estándar francesa (La Poste) para la posición de dirección del cliente +Library=Biblioteca +UrlGenerationParameters=Parámetros para asegurar URL +SecurityTokenIsUnique=Utilice un parámetro de SecureKey único para cada URL +GetSecuredUrl=Obtener URL calculada +ButtonHideUnauthorized=Ocultar botones para usuarios no administradores para acciones no autorizadas en lugar de mostrar los botones desactivados en gris +OldVATRates=Antigua tasa de IVA +NewVATRates=Nueva tasa de IVA +PriceBaseTypeToChange=Modificar los precios con el valor base de referencia definido en +MassConvert=Iniciar conversión en masa +String=Cuerda +Int=Entero +Float=Flotador +Boolean=Boolean (una casilla de verificación) +ExtrafieldSelect =Seleccionar lista +ExtrafieldSelectList =Seleccionear tabla +ExtrafieldSeparator=Separador (no un campo) +ExtrafieldRadio=Botones de opción (en la única opción) +ExtrafieldCheckBox=Casillas de verificación +ExtrafieldCheckBoxFromList=Casillas de verificación de la tabla +ExtrafieldLink=Enlace a un objeto +ComputedFormula=Campo calculado +ComputedFormulaDesc=Puede introducir aquí una fórmula utilizando otras propiedades de objeto o cualquier código PHP para obtener un valor calculado dinámico. Puede utilizar cualquier fórmula compatible con PHP, incluyendo el "?" Operador de condición y objeto global siguiente: $db, $conf, $langs, $mysoc, $user, $object.
    WARNING: Sólo algunas propiedades de $object puede estar disponible. Si necesita propiedades no cargadas, solo busque el objeto en su fórmula como en el segundo ejemplo.
    Utilizando un campo computado significa que no puede ingresar ningún valor de la interfaz. Además, si hay un error de sintaxis, la fórmula no puede devolver nada.

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

    Ejemplo para volver a cargar el objeto
    (($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

    Otro ejemplo de fórmula para forzar la carga del objeto y su objeto primario:
    (($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Proyecto principal no encontrado' +ExtrafieldParamHelpselect=Lista de parámetros tienen que ser como clave,value

    por ejemplo:
    1, value1
    2, value2
    3, value3
    ...

    Para que la lista dependa de otra lista de atributos complementarios :
    1,value1|options_parent_list_code:parent_key
    2,value2|options_parent_list_code:parent_key

    Para que la lista dependa de otra lista :
    1,value1|parent_list_code:parent_key
    2,value2|parent_list_code:parent_key +ExtrafieldParamHelpcheckbox=Lista de parámetros tiene que ser como clave,value

    por ejemplo :
    1,value1
    2,value2
    3,value3
    … +ExtrafieldParamHelpradio=Lista de parámetros tiene que ser como clave,value

    por ejemplo :
    1,value1
    2,value2
    3,value3
    ... +ExtrafieldParamHelpsellist=Lista de parámetros proviene de una tabla
    Syntax : table_name:label_field:id_field::filter
    Ejemplo : c_typent:libelle:id::filter

    Filtro puede ser una prueba simple (eg active=1) Para mostrar sólo el valor activo
    También puede usar $ID$ En el filtro CON es el ID del objeto actual
    Para hacer un SELECT en el uso del filtro $SEL$
    Si desea filtrar en extrafields utilizar la sintaxis extra.fieldcode=... (donde código de campo es el código de extrafield)

    para que la lista dependa de otro atributo complementario list:
    c_typent:libelle:id:options_parent_list_code|parent_column:filter

    Para que la lista dependa de otra list:
    c_typent:libelle:id:parent_list_code|parent_column:filter +ExtrafieldParamHelpchkbxlst=Lista de parámetros proviene de una tabla
    Syntax : table_name:label_field:id_field::filter
    Ejemplo : c_typent:libelle:id::filter

    filtro puede ser una prueba simple (eg active=1) para mostrar sólo el valor activo
    También puedes usar $ID$ en el filtro CON es el ID del objeto actual
    Para hacer un SELECT en el uso del filtro $SEL$
    si desea filtrar en extrafields utilizar la sintaxis extra.fieldcode=... (donde código de campo es el código de extrafield)

    para que la lista dependa de otra lista de atributos complementarios:
    c_typent:libelle:id:options_parent_list_code|parent_column:filter

    Para que la lista dependa de otra lista:
    c_typent:libelle:id:parent_list_code|parent_column:filter +ExtrafieldParamHelplink=Los parámetros deben ser ObjectName:Classpath
    Syntaxis : ObjectName:Classpath
    Ejemplo : Societe:societe/class/societe.class.php +LibraryToBuildPDF=Biblioteca utilizado para la generación de PDF +WarningUsingFPDF=Advertencia: Su conf.php contiene una directiva dolibarr_pdf_force_fpdf=1. Esto significa que utiliza la biblioteca FPDF para generar archivos PDF. Esta biblioteca es antigua y no soporta muchas características (Unicode, transparencia de imagen, cyrillic, árabe y idiomas asiáticos, ...), por lo que puede experimentar errores durante la generación de PDF.
    Para resolver esto y tener un soporte completo de generación de PDF, por favor descargue TCPDF library, luego comenta o elimina la línea $dolibarr_pdf_force_fpdf=1, and Agregar en su lugar $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' +LocalTaxDesc=Algunos países aplican 2 o 3 impuestos en cada línea de factura. Si este es el caso, elija el tipo de segundo y tercer impuesto y su tasa. El tipo posible es:
    1 : el impuesto local se aplica sobre los productos y servicios sin IVA (impuesto local se calcula sobre la cantidad sin impuestos)
    2 : El impuesto local se aplica en los productos y los servicios incluyendo el IVA (el impuesto local se calcula sobre la cantidad + impuesto principal)
    3 : El impuesto local se aplica en los productos sin IVA (el impuesto local se calcula sobre la cantidad sin impuestos)
    4 : El impuesto local se aplica a los productos, incluido el IVA (el impuesto local se calcula sobre la cantidad + impuesto principal)
    5 : Se aplica el impuesto local sobre los servicios sin IVA (el impuesto local se calcula sobre la cantidad sin impuestos)
    6 : Se aplican impuestos locales sobre los servicios, incluido el IVA (el impuesto local se calcula sobre el importe + impuestos) +LinkToTestClickToDial=Introduzca un número de teléfono para llamar, para mostrar un enlace y probar la URL de ClickToDial para el usuario %s +RefreshPhoneLink=Actualizar enlace +LinkToTest=hacer clic en enlace generado para el usuario % s (haga clic en el número de teléfono para probar) +Module770Name=Reporte de gastos +LTRate=Tarifa +MenuCompanySetup=Empresa/Organización +CompanyName=Nombre diff --git a/htdocs/langs/es_EC/main.lang b/htdocs/langs/es_EC/main.lang index dc6e36a2483..ff99b166487 100644 --- a/htdocs/langs/es_EC/main.lang +++ b/htdocs/langs/es_EC/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 @@ -16,7 +16,458 @@ FormatHourShortDuration=%H:%M FormatDateTextShort=%d %b %Y FormatDateText=%d %B %Y FormatDateHourShort=%d/%m/%Y %H:%M -FormatDateHourSecShort=%d/%m/%Y %H:%M:%S +FormatDateHourSecShort=%d/%m/%Y %H:%M: %s FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M +DatabaseConnection=Conexión con la base de datos +NoTemplateDefined=Ninguna plantilla definida para este tipo de correo electrónico +AvailableVariables=Variables de sustitución disponibles +NoRecordFound=Ningún registro encontrado +NoRecordDeleted=Ningún registro eliminado +NoError=No hay error +ErrorFieldRequired=Campo '%s' necesario +ErrorFailedToOpenFile=No se pudo abrir el archivo %s +ErrorCanNotCreateDir=No se puede crear el directorio %s +ErrorCanNotReadDir=No se puede leer el dir %s +ErrorLogoFileNotFound=No se ha encontrado el archivo de logotipo '%s' +ErrorGoToGlobalSetup=Ir a la configuración de "Empresa/Organización para solucionar este problema +ErrorGoToModuleSetup=Ir al módulo de configuración para solucionar este problema +ErrorFailedToSendMail=No se pudo enviar el correo (emisor= %s, receptor= %s) +ErrorFileNotUploaded=El archivo no se ha subido. Compruebe que el tamaño no exceda el máximo permitido, el espacio libre disponible en el disco y que no hay ya un archivo con el mismo nombre en este directorio. +ErrorInternalErrorDetected=Detectado un error ErrorWrongHostParameter=Parámetro host incorrecto +ErrorYourCountryIsNotDefined=Su país no está definido. Ir a Inicio-Configuración-Edit y vuelva a publicar el formulario. +ErrorRecordIsUsedByChild=No se ha podido eliminar este registro. Este registro se utiliza por lo menos un registro secundario. +ErrorWrongValueForParameterX=valor incorrecto para el parámetro %s +ErrorNoRequestInError=Ninguna solicitud por error +ErrorServiceUnavailableTryLater=El servicio no está disponible por el momento. Inténtelo de nuevo más tarde. +ErrorDuplicateField=Valor duplicado en un campo único +ErrorSomeErrorWereFoundRollbackIsDone=Se encontraron algunos errores. Revertiremos los cambios. +ErrorConfigParameterNotDefined=Parámetro %s no está definido dentro de archivo de configuración Dolibarr conf.php. +ErrorCantLoadUserFromDolibarrDatabase=No se pudo encontrar el usuario %s en la base de datos Dolibarr. +ErrorNoVATRateDefinedForSellerCountry=Error, no hay tipos de IVA definidos para el país '%s'. +ErrorNoSocialContributionForSellerCountry=Error, no hay ningun tipo de impuesto fiscal definido para el país '%s'. +ErrorFailedToSaveFile=Error, Error al guardar el archivo. +ErrorCannotAddThisParentWarehouse=Está intentando agregar un almacén padre que ya es un hijo de uno actual +MaxNbOfRecordPerPage=Maximo número de registro por página +NotAuthorized=No está autorizado para hacer eso. +SetDate=Establecer fecha +SeeHere=Mire aquí +BackgroundColorByDefault=Color de fondo por defecto +FileRenamed=El archivo se cambió de nombre correctamente. +FileGenerated=El archivo se generó correctamente +FileSaved=El archivo se ha guardado correctamente +FileTransferComplete=Archivo(s) cargados correctamente +FilesDeleted=Archivo(s) eliminados correctamente +FileWasNotUploaded=Se ha seleccionado un archivo para adjuntarlo, pero todavía no se ha cargado. Haga clic en "Adjuntar archivo" para hacerlo. +NbOfEntries=Número de entradas +GoToWikiHelpPage=Lea la ayuda en línea (acceso a Internet es necesario) +GoToHelpPage=Leer la ayuda +DolibarrInHttpAuthenticationSoPasswordUseless=El modo de autenticación Dolibarr está configurado en %s en el archivo de configuración conf.php.
    Esto significa que la base de datos de contraseñas es externa a Dolibarr, por lo que cambiar este campo puede no tener efecto. +Undefined=Indefinido +PasswordForgotten=¿Contraseña olvidada? +SeeAbove=Véase más arriba +HomeArea=Área de inicio +PreviousValue=Valor anterior +ConnectedOnMultiCompany=Conectado en ambiente +AuthenticationMode=Modo de autenticación +DatabaseTypeManager=Administrador de tipo de base de datos +RequestLastAccessInError=Error de solicitud de acceso a la base de datos +ReturnCodeLastAccessInError=Código de error de solicitud de acceso a la base de datos +InformationLastAccessInError=Información del error de solicitud de acceso a la base de datos +InformationToHelpDiagnose=Esta información puede ser útil para fines de diagnóstico +TechnicalID=Identificación técnico +NotePublic=Nota (público) +PrecisionUnitIsLimitedToXDecimals=Dolibarr fue configurado para limitar la precisión de los precios unitarios a %s decimales. +DoTest=Prueba +ToFilter=Filtro +WarningYouHaveAtLeastOneTaskLate=Advertencia, tiene al menos un elemento que ha superado el retardo de tolerancia. +All=Todas +OnlineHelp=Ayuda en linea +Under=Debajo +Period=Período +PeriodEndDate=Fecha de finalización del período +NotClosed=No se ha cerrado +Enabled=Habilitado +Disable=Inhabilitar +Disabled=Inhabilitado +AddLink=Agregar enlace +RemoveLink=Retire enlace +AddToDraft=Añadir a redactar +Update=Actualizar +Close=Cerrado +CloseBox=Retire widget desde su panel de control +ConfirmSendCardByMail=Es lo que realmente desea enviar el contenido de esta carta por correo a %s? +Delete=Borrar +Remove=retirar +Resiliate=Terminar +Cancel=Cancelar +ValidateAndApprove=Validar y aprobar +ToValidate=Validar +Save=Guardar +SaveAs=Guardar como +TestConnection=Conexión de prueba +ToClone=Clon +ConfirmClone=Elija los datos que desea clonar: +NoCloneOptionsSpecified=No hay datos definidos para clonar. +Of=De +Run=Correr +Show=Mostrar +Hide=Esconder +ShowCardHere=Mostrar tarjeta +SearchOf=Buscar +Valid=Válido +ToLink=Enlazar +Choose=Escoger +Resize=Cambiar el tamaño +NoUserGroupDefined=No se ha definido ningún grupo de usuarios +PasswordRetype=Reescribe tu contraseña +NoteSomeFeaturesAreDisabled=Tenga en cuenta que una gran cantidad de funciones/módulos están deshabilitados en esta demostración. +Parameters=parámetros +PersonalValue=Valor personal +NewObject=Nuevo %s +MultiLanguage=Multi lenguaje +RefOrLabel=Referencia o etiqueta +Info=Iniciar sesión +Model=Pantilla de documento +DefaultModel=Pantilla de documento por defecto +Action=Evento +NumberByMonth=Número por meses +AmountByMonth=Monto por mes +Limits=límites +Logout=Cerrar sesión +NoLogoutProcessWithAuthMode=No hay función de desconexión aplicable con el modo de autenticación %s +Setup=Configurar +Cards=Tarjetas +Card=Tarjeta +DateToday=El día de hoy +DateEnd=Fecha final +DateCreationShort=Fecha de Creación +DateModificationShort=Fecha de modificación +DateValue=Valor de fecha +DateValueShort=Valor de fecha +DateOperation=Fecha de la operación +DateOperationShort=Fecha de la operación +DateRequest=Fecha de solicitud +DateProcess=Fecha de procesamiento +DateBuild=Fecha de creación del informe +DatePayment=Fecha del pago +UserCreation=Creación de usuarios +UserModification=Modificación de usuario +UserCreationShort=Creación de usuarios +UserModificationShort=Modificación de usuario +Morning=Temprano +Rate=Tarifa +UseLocalTax=Incluye impuestos +Gb=GB +Default=Predeterminados +DefaultValue=Valor predeterminado +DefaultValues=Valores predeterminados +UnitPriceHT=Precio unitario (neto) +UnitPriceTTC=Precio unitario +PriceU=Precio +PriceUHT=Precio (neto) +PriceUHTCurrency=Precio (moneda) +PriceUTTC=Precio (inc. IVA) +Amount=Cantidad +AmountInvoice=Valor de la factura +AmountPayment=Monto del pago +AmountHTShort=Valor (neto) +AmountTTCShort=Valor (inc. IVA) +AmountHT=Valor (neto de impuestos) +AmountTTC=Valor (inc. IVA) +AmountVAT=Impuesto sobre el Valor +MulticurrencyAlreadyPaid=Ya pagado, moneda de origen +MulticurrencyRemainderToPay=Seguir pagando, moneda de origen +MulticurrencyPaymentAmount=Monto a pagar, moneda de origen +MulticurrencyAmountHT=Valor (neto de impuestos), moneda de origen +MulticurrencyAmountTTC=Valor (inc. impuestos), moneda de origen +MulticurrencyAmountVAT=Valor del impuesto, moneda de origen +AmountLT1=Valor del impuesto 2 +AmountLT2=Valor del impuesto 3 +AmountLT1ES=Valor RE +AmountLT2ES=Valor IRPF +AmountTotal=Valor total +AmountAverage=Valor promedio +PriceQtyMinHT=Precio cantidad min. (neto IVA) +TotalHTShort=Total (neto) +TotalHTShortCurrency=Total (neto en moneda) +TotalTTCShort=Total (inc. IVA) +TotalHT=Total (neto de impuestos) +TotalHTforthispage=Total (neto de impuestos) para esta página +Totalforthispage=Total para esta página +TotalTTC=Total (inc. IVA) +TotalTTCToYourCredit=Total (inc. Impuestos) a su crédito +TotalVAT=Total impuestos +TotalLT1=Total impuestos 2 +TotalLT2=Total impuestos 3 +HT=Impuesto neto +TTC=impuestos Inc. +INCT=Inc. todos los impuestos +VAT=Impuesto de venta +VATs=Impuestos de ventas +VATRate=Tasa de impuesto +Average=Promedio +Module=Módulo/Aplicación +Modules=Módulos/Aplicaciones +List=Lista +FullList=Lista completa +Statistics=Estadística +Ref=Referencia +ExternalRef=Referencia externa +RefSupplier=Referencia proveedor +RefPayment=Referencia pago +CommercialProposalsShort=Propuestas comerciales +ActionsToDo=Eventos que se pueden hacer +ActionsToDoShort=Que hacer +ActionsDoneShort=Hecho +ActionNotApplicable=No aplica +ActionRunningNotStarted=Para comenzar +CompanyFoundation=Empresa/Organización +ContactsForCompany=Contactos de clientes +ContactsAddressesForCompany=Contactos/direcciones de clientes +AddressesForCompany=Direcciones de clientes +ActionsOnCompany=Eventos sobre clientes +ActionsOnMember=Eventos sobre miembros +NActionsLate=%s tarde +RequestAlreadyDone=La solicitud ya se registró +Filter=Filtrar +FilterOnInto=Criterios de búsqueda ' %s ' en los campos %s +RemoveFilter=Retirar filtro +ChartGenerated=Gráfico generado +ChartNotGenerated=Gráfico no genera +GeneratedOn=Construir el %s +DolibarrStateBoard=Estadísticas de la base de datos +DolibarrWorkBoard=Abrir el tablero de artículos +NoOpenedElementToProcess=Ningún elemento abierto para procesar +NotYetAvailable=No disponible aún +Categories=Etiquetas/categorías +Category=Etiquetas/categoría +OtherInformations=Otra informacion +ChangedBy=Cambiado por +ResultKo=Fallo +Reporting=Informes +Validated=validado +Opened=Abierto +Topic=Tema +ByCompanies=Por cliente +ByUsers=Por Usuario +Rejects=Rechazos +Preview=Anterior +NextStep=Próximo paso +None=Ninguna +Late=Tarde +LateDesc=Retardo para definir si un registro es tarde o no depende de la configuración. Pregunte a su administrador para cambiar de retardo desde el menú Inicio - Configuración - Alertas. +Photo=Imagen +Photos=Imágenes +DeletePicture=Borrar imagen +ConfirmDeletePicture=Confirmar eliminación de la imagen? +Login=Iniciar sesión +CurrentLogin=Inicio de sesión actual +January=Enero +February=Febrero +March=Marzo +April=Abril +May=Mayo +June=Junio +July=Julio +August=Agosto +September=Septiembre +October=Octubre +November=Noviembre +MayMin=Mayo +Month01=Enero +Month02=Febrero +Month03=Marzo +Month04=Abril +Month05=Mayo +Month06=Junio +Month07=Julio +Month08=Agosto +Month09=Septiembre +Month10=Octubre +Month11=Noviembre +Month12=Diciembre +MonthShort01=Ene +MonthShort04=Abr +MonthShort05=Mayo +MonthShort08=Ago +MonthShort12=Dic +DateFormatYYYYMM=MM-AAAA +DateFormatYYYYMMDD=DD-MM-AAAA +DateFormatYYYYMMDDHHMM=DD-MM-AAAA HH:SS +ReportName=Nombre del reporte +ReportPeriod=Período del reporte +Report=Reporte +Keyword=Palabra clave +Fill=Llenar +Reset=Reiniciar +NotAllowed=No permitido +ReadPermissionNotAllowed=Permiso de lectura no permitido +AmountInCurrency=Valor en %s moneda +NoExample=Ningún ejemplo +NbOfThirdParties=Número de clientes +NbOfLines=Número de líneas +NbOfObjectReferers=Número de artículos relacionados +Referers=Artículos relacionados +DateFromTo=De %s para %s +DateFrom=De %s +Check=Comprobar +Internals=Interno +Externals=Externo +Warning=Advertencia +Warnings=Advertencias +BuildDoc=Generar Documento +Entity=Ambiente +CustomerPreview=Vista previa del cliente +SupplierPreview=Vista Previa del proveedor +ShowCustomerPreview=Mostrar vista previa al cliente +ShowSupplierPreview=Mostrar la previsualización de un proveedor +RefCustomer=Referencia de cliente +Currency=Moneda +Undo=Deshacer +UndoExpandAll=Deshacer expandir +FeatureNotYetSupported=Característica aún no soportado +SendByMail=Enviar por correo electrónico +MailSentBy=Correo electrónico enviado por +TextUsedInTheMessageBody=Cuerpo del correo electronico +SendAcknowledgementByMail=Enviar correo electrónico de confirmación +EMail=Correo electrónico +NoEMail=Sin correo electrónico +Email=Correo electrónico +NoMobilePhone=No hay teléfono móvil +FollowingConstantsWillBeSubstituted=Las siguientes constantes serán reemplazados con el valor correspondiente. +BackToList=Volver a la lista +GoBack=Regresa +CanBeModifiedIfOk=Puede ser modificado si es válido +CanBeModifiedIfKo=Puede ser modificado si no es válida +ValueIsValid=El valor es válido +ValueIsNotValid=El valor no es válido +RecordCreatedSuccessfully=Registro creado con éxito +RecordsModified=%s registro modificado +RecordsDeleted=%s registro eliminado +AutomaticCode=Código automático +MoveBox=Mover widget +Offered=Ofrecido +NotEnoughPermissions=Usted no tiene permiso para esta acción +SessionName=Nombre de sesión +Receive=Recibir +CompleteOrNoMoreReceptionExpected=Completa o nada más esperada +YouCanChangeValuesForThisListFromDictionarySetup=Puede cambiar los valores para esta lista de menú de Configuración - Diccionarios +YouCanChangeValuesForThisListFrom=Puede cambiar los valores para esta lista de menú %s +YouCanSetDefaultValueInModuleSetup=Se puede establecer el valor predeterminado que se utiliza cuando se crea un nuevo registro en la configuración del módulo +Documents=Archivos enlazados +UploadDisabled=Carga inhabilitada +MenuAgendaGoogle=Agenda de google +ThisLimitIsDefinedInSetup=límite de Dolibarr (Menú Inicio-setup-seguridad): %s Kb, límite de PHP: %s Kb +CurrentMenuManager=Gestor de menú actual +Layout=Diseño +DisabledModules=Módulos deshabilitados +For=Por +ForCustomer=Para el cliente +HidePassword=Mostrar comando con la contraseña oculta +UnHidePassword=Mostrar comando real con contraseña clara +Informations=informaciones +AddFile=Agregar archivo +CloneMainAttributes=Clonar objeto con sus atributos principales +PDFMerge=Combinar PDF +Merge=Combinar +DocumentModelStandardPDF=Plantilla PDF estándar +PrintContentArea=Mostrar la página para imprimir el área de contenido principal +MenuManager=Administrador de menús +WarningYouAreInMaintenanceMode=Advertencia, está en un modo de mantenimiento, por lo que sólo se permite el acceso %s a la aplicación en este momento. +CoreErrorMessage=Disculpe, ocurrió un error. Póngase en contacto con el administrador del sistema para comprobar los registros o desactivar $dolibarr_main_prod=1 para obtener más información. +FieldsWithAreMandatory=Los campos con %s son obligatorios +FieldsWithIsForPublic=Los campos con %s se muestran en la lista pública de miembros. Si no lo desea, marque la casilla "público". +AccordingToGeoIPDatabase=(Según la conversión GeoIP) +RequiredField=Campo requerido +ToTest=Prueba +ValidateBefore=La tarjeta debe ser validado antes de usar esta función +Hidden=Oculto +Source=Fuente +AttributeCode=Código de atributo +URLPhoto=URL de la foto/logotipo +SetLinkToAnotherThirdParty=Enlace a otro cliente +LinkTo=Enlace a +LinkToProposal=Enlace a la propuesta +LinkToOrder=Enlace al pedido +LinkToInvoice=Enlace a la factura +LinkToSupplierOrder=Enlace a pedido de proveedor +LinkToSupplierProposal=Enlace a la propuesta del proveedor +LinkToSupplierInvoice=Enlace a la factura del proveedor +LinkToContract=Enlace al contrato +LinkToIntervention=Enlace a la intervención +CreateDraft=Crear proyecto +SetToDraft=Volver al proyecto +ClickToEdit=Click para editar +ByCountry=Por país +ByTown=por ciudad +BySalesRepresentative=Por representante de ventas +LinkedToSpecificUsers=Enlace a un contacto de usuario en particular +NoResults=No hay resultados +AdminTools=Herramientas de administración +SystemTools=Herramientas del sistema +ModulesSystemTools=Módulos de herramientas +NoPhotoYet=No hay imagenes disponibles todavía +SelectAction=Seleccione la acción +HelpCopyToClipboard=Utilizar las teclas Ctrl+C para copiar al portapapeles +SaveUploadedFileWithMask=Guardar el archivo en el servidor con el nombre "%s" (de lo contrario " %s") +OriginFileName=Nombre del archivo original +SetDemandReason=Establecer origen +AccountCurrency=Cuenta de dinero +XMoreLines=%S línea(s) oculta(s) +AddBox=Agregar cuadro +SelectElementAndClick=Seleccione un elemento y haga clic en %s +PrintFile=Imprimir archivo %s +ShowTransaction=Mostrar entrada en la cuenta bancaria +GoIntoSetupToChangeLogo=Vaya a Inicio-Configuración - Empresa para cambiar el logotipo o entrar en Inicio-Configuración-Mostrar para ocultar. +Deny=Negar +Denied=Negado +ListOf=Lista de %s +ListOfTemplates=Lista de plantillas +Gender=Género +ViewList=Vista de la lista +Sincerely=Sinceramente +DeleteLine=Borrar línea +NoPDFAvailableForDocGenAmongChecked=No hay PDF disponibles para la generación de documentos entre el registro guardado +TooManyRecordForMassAction=Demasiados registros seleccionados para la acción masiva. La acción está restringida a una lista de %s registros. +NoRecordSelected=Ningún registro seleccionado +MassFilesArea=Área para archivos construidos por acciones masivas +ShowTempMassFilesArea=Mostrar área de archivos creados por acciones masivas +ClassifyBilled=Clasificar facturas +ClickHere=haga clic aquí +ExportFilteredList=Exportar lista filtrada +ExportList=Exportar lista +Miscellaneous=Varios +GroupBy=Agrupar por... +SomeTranslationAreUncomplete=Algunos idiomas pueden traducirse parcialmente o pueden contener errores. Si detecta alguno, puede arreglar archivos de idioma que se registren en https://transifex.com/projects/p/dolibarr/.href="https://transifex.com/projects/p/dolibarr/" target="_blank">https://transifex.com/projects/p/dolibarr/. +ActualizeCurrency=Actualizar tipo de cambio +ModuleBuilder=Generador de módulos +ClickToShowHelp=Haga clic para mostrar ayuda sobre herramientas +HRAndBank=HR y Banco +TitleSetToDraft=Volver al borrador +ConfirmSetToDraft=¿Seguro que desea volver al estado de borrador? +MondayMin=Lun +TuesdayMin=Mar +WednesdayMin=Mier +ThursdayMin=Jue +FridayMin=Vie +SaturdayMin=Sab +SundayMin=Dom +ShortWednesday=M +SelectMailModel=Seleccionar plantilla de correo electrónico +SetRef=Establecer referencia +Select2ResultFoundUseArrows=Se han encontrado algunos resultados. Utilice las flechas para seleccionar. +Select2NotFound=No se han encontrado resultados +Select2Enter=Ingresar +Select2MoreCharacter=o más carácter +Select2MoreCharactersMore=Buscar sintaxis:
    | o (a | b)
    * Cualquier carácter (a*b)
    ^ Start with (^ab)
    $ End with (ab$)
    +Select2LoadingMoreResults=Cargando más resultados ... +Select2SearchInProgress=Búsqueda en proceso... +SearchIntoThirdparties=Clientes +SearchIntoCustomerInvoices=Facturas de clientes +SearchIntoCustomerProposals=Propuestas de clientes +SearchIntoSupplierProposals=Propuestas de proveedor +SearchIntoCustomerShipments=Envíos de clientes +SearchIntoExpenseReports=Reporte de gastos +SearchIntoLeaves=Hojas diff --git a/htdocs/langs/es_ES/accountancy.lang b/htdocs/langs/es_ES/accountancy.lang index 5e0398a8660..921514755d8 100644 --- a/htdocs/langs/es_ES/accountancy.lang +++ b/htdocs/langs/es_ES/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Ver la cantidad de líneas ligadas a cuentas contab OtherInfo=Otra información DeleteCptCategory=Eliminar la cuenta contable del grupo ConfirmDeleteCptCategory=¿Está seguro de querer eliminar esta cuenta contable del grupo de cuentas contables? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Área contabilidad AccountancyAreaDescIntro=El uso del módulo de contabilidad se realiza en varios pasos: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=PASO %s: Defina las cuentas contables para los AccountancyAreaDescSal=PASO %s: Defina las cuentas contables para los pagos de salarios. Para ello puede utilizar el menú %s. AccountancyAreaDescContrib=PASO %s: Defina las cuentas contables de los gastos especiales (impuestos varios). Para ello puede utilizar el menú %s. AccountancyAreaDescDonation=PASO %s: Defina las cuentas contables para las donaciones. Para ello puede utilizar el menú %s. -AccountancyAreaDescMisc=PASO %s: Defina las cuentas contables para registros varios. Para ello puede utilizar el menú %s. +AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. AccountancyAreaDescLoan=PASO %s: Defina las cuentas contables para los préstamos. Para ello puede utilizar el menú %s.\n AccountancyAreaDescBank=PASO %s: Defina las cuentas contables para cada banco y cuentas financieras. Puede empezar desde la página %s. AccountancyAreaDescProd=PASO %s: Defina las cuentas contables en sus productos. Para ello puede utilizar el menú %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Registrar movimientos en el Libro Mayor Bookkeeping=Libro Mayor AccountBalance=Saldo de la cuenta - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total informe de gastos InvoiceLines=Líneas de facturas a contabilizar @@ -103,7 +110,7 @@ LineOfExpenseReport=Línea de informe de gastos NoAccountSelected=No se ha seleccionado cuenta contable VentilatedinAccount=Contabilizada con éxito en la cuenta contable NotVentilatedinAccount=Cuenta sin contabilización en la contabilidad -XLineSuccessfullyBinded=%s productos/servicios unidos a una cuenta contable. +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s productos/servicios sin cuenta contable ACCOUNTING_LIMIT_LIST_VENTILATION=Número de elementos a contabilizar que se muestran por página (máximo recomendado: 50) @@ -154,7 +161,7 @@ DelBookKeeping=Eliminar los registros del Libro Mayor FinanceJournal=Diario financiero ExpenseReportsJournal=Diario informe de gastos DescFinanceJournal=El diario financiero incluye todos los tipos de pagos por cuenta bancaria -DescJournalOnlyBindedVisible=Esta es una vista de registros que están vinculados a una cuenta contable de productos/servicios y pueden ser registrados en el Libro Mayor. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Cuenta contable para IVA no definida ThirdpartyAccountNotDefined=Cuenta contable de tercero no definida ProductAccountNotDefined=Cuenta contable de producto no definida @@ -170,6 +177,8 @@ AddCompteFromBK=Añadir cuentas contables al grupo ReportThirdParty=Listado de cuentas de terceros DescThirdPartyReport=Consulte aquí el listado de clientes y proveedores y sus códigos contables ListAccounts=Listado de cuentas contables +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Tipo del plan Pcgsubtype=Subcuenta @@ -194,7 +203,7 @@ ValidateHistory=Vincular automáticamente AutomaticBindingDone=Vinculación automática finalizada ErrorAccountancyCodeIsAlreadyUse=Error, no puede eliminar esta cuenta ya que está siendo usada -MvtNotCorrectlyBalanced=Movimiento descuadrado. Debe = %s. Haber = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Ficha contable GeneralLedgerIsWritten=Transacciones escritas en el Libro Mayor GeneralLedgerSomeRecordWasNotRecorded=Algunas de las operaciones que no podrán registrarse. Si no hay un mensaje de error, es probable que ya estén contabilizadas @@ -210,7 +219,6 @@ AccountingJournals=Diarios contables AccountingJournal=Diario contable NewAccountingJournal=Nuevo diario contable ShowAccoutingJournal=Mostrar diario contable -Code=Código Nature=Naturaleza AccountingJournalType1=Operaciones varias AccountingJournalType2=Ventas @@ -221,8 +229,6 @@ AccountingJournalType9=Haber ErrorAccountingJournalIsAlreadyUse=Este diario ya esta siendo usado ## Export -Exports=Exportaciones -Export=Exportar ExportDraftJournal=Export draft journal Modelcsv=Modelo de exportación OptionsDeactivatedForThisExportModel=Las opciones están desactivadas para este modelo de exportación diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang index 92311441ec2..7cd5bf0f887 100644 --- a/htdocs/langs/es_ES/admin.lang +++ b/htdocs/langs/es_ES/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Área utilidades del sistema SystemToolsAreaDesc=Esta área ofrece distintas funciones de administración. Utilice la menú para elegir la funcionalidad buscada. Purge=Purga PurgeAreaDesc=Esta página le permite borrar todos los archivos generados o almacenados por Dolibarr (archivos temporales o todos los archivos del directorio %s). El uso de esta función no es necesaria. Se proporciona como solución para los usuarios cuyos Dolibarr se encuentran en un proveedor que no ofrece permisos para eliminar los archivos generados por el servidor web. -PurgeDeleteLogFile=Eliminar archivo de registro %s definido en el módulo Syslog (no hay riesgo de perder datos) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Eliminar todos los ficheros temporales (sin riesgo de perdida de datos) PurgeDeleteTemporaryFilesShort=Eliminar archivos temporales PurgeDeleteAllFilesInDocumentsDir=Eliminar todos los archivos del directorio %s. Archivos temporales y archivos adjuntados a elementos (terceros, facturas, etc.) serán eliminados. PurgeRunNow=Purgar PurgeNothingToDelete=Sin directorios o archivos a eliminar. PurgeNDirectoriesDeleted=%s archivos o directorios eliminados +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Purgar los eventos de seguridad ConfirmPurgeAuditEvents=¿Está seguro de que desea purgar todos los eventos de seguridad? Se eliminarán todos los registros de seguridad, no se eliminarán datos. GenerateBackup=Generar copia de seguridad @@ -298,7 +299,7 @@ SetupIsReadyForUse=La instalación del módulo ha concluido. Sin embargo, debe h NotExistsDirect=El directorio raíz alternativo no está configurado en un directorio existente.
    InfDirAlt=Desde la versión 3, es posible definir un directorio raíz alternativo. Esto le permite almacenar, en un directorio dedicado, plug-ins y plantillas personalizadas.
    Sólo cree un directorio en la raíz de Dolibarr (por ejemplo: custom).
    InfDirExample=
    Luego indíquelo en el archivo conf.php
    $ dolibarr_main_url_root_alt = 'http://miservidor /custom'
    $ dolibarr_main_document_root_alt = '/ruta/de/dolibarr/htdocs/custom '
    Si estas líneas se encuentran comentadas con "#", para habilitarlas, basta con descomentar eliminando el carácter "#". -YouCanSubmitFile=Para este paso, puede enviar el paquete usando esta herramienta: Seleccionar el archivo del módulo +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Versión actual de Dolibarr CallUpdatePage=Ir a la página de actualización de la estructura de la base de datos y sus datos: %s. LastStableVersion=Última versión estable @@ -535,8 +536,6 @@ Module1120Name=Presupuesto de proveedor Module1120Desc=Solicitud presupuesto y precios a proveedor Module1200Name=Mantis Module1200Desc=Interfaz con el sistema de seguimiento de incidencias Mantis -Module1400Name=Contabilidad experta -Module1400Desc=Accounting management (double entries) Module1520Name=Generación Documento Module1520Desc=Generación de documentos de correo masivo Module1780Name=Etiquetas/Categorías @@ -585,7 +584,7 @@ Module50100Desc=Módulo punto de venta (TPV) Module50200Name=Paypal Module50200Desc=Módulo para proporcionar un pago en línea con tarjeta de crédito mediante Paypal Module50400Name=Contabilidad (avanzada) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=La impresión directa (sin abrir los documentos) usa el interfaz Cups IPP (La impresora debe ser visible por el servidor y CUPS debe estar instalado en el servidor) Module55000Name=Encuesta o Voto @@ -751,8 +750,10 @@ Permission401=Consultar haberes Permission402=Crear/modificar haberes Permission403=Validar haberes Permission404=Eliminar haberes -Permission510=Consultar salarios -Permission512=Crear/modificar salarios +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Eliminar salarios Permission517=Exportar salarios Permission520=Consultar Créditos @@ -1057,7 +1058,7 @@ RestoreDesc2=Tomar el archivo (archivo zip, por ejemplo) del directorio de los d RestoreDesc3=Restaurar el archivo de volcado guardado en la base de datos de la nueva instalación de Dolibarr o de esta instalación (%s). Atención, una vez realizada la restauración, deberá utilizar un login/contraseña de administrador existente en el momento de la copia de seguridad para conectarse. Para restaurar la base de datos en la instalación actual, puede utilizar el asistente a continuación. RestoreMySQL=Importación MySQL ForcedToByAModule= Esta regla está forzada a %s por uno de los módulos activados -PreviousDumpFiles=Archivos de copia de seguridad de la base de datos disponibles +PreviousDumpFiles=Generated database backup files WeekStartOnDay=Primer día de la semana RunningUpdateProcessMayBeRequired=Parece necesario realizar el proceso de actualización (la versión del programa %s difiere de la versión de la base de datos %s) YouMustRunCommandFromCommandLineAfterLoginToUser=Debe ejecutar el comando desde un shell después de haber iniciado sesión con la cuenta %s. diff --git a/htdocs/langs/es_ES/banks.lang b/htdocs/langs/es_ES/banks.lang index 2d81ed7a690..7c79dc37091 100644 --- a/htdocs/langs/es_ES/banks.lang +++ b/htdocs/langs/es_ES/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Cheque devuelto y facturas reabiertas BankAccountModelModule=Modelos de documentos para cuentas bancarias DocumentModelSepaMandate=Plantilla de mandato SEPA, usable únicamente para paises miembros de la UEE DocumentModelBan=Plantilla para imprimir una página con la información IBAN. -NewVariousPayment=Nuevo pago varios -VariousPayment=Pago varios -VariousPayments=Pagos varios -ShowVariousPayment=Mostrar pago varios +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/es_ES/bills.lang b/htdocs/langs/es_ES/bills.lang index 242b27c55c8..9f2e3d495a4 100644 --- a/htdocs/langs/es_ES/bills.lang +++ b/htdocs/langs/es_ES/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Corregida por uno o más abonos CardBill=Ficha factura PredefinedInvoices=Factura predefinida Invoice=Factura +PdfInvoiceTitle=Factura Invoices=Facturas InvoiceLine=Línea de factura InvoiceCustomer=Factura a cliente diff --git a/htdocs/langs/es_ES/compta.lang b/htdocs/langs/es_ES/compta.lang index 76bf55ea0ec..20d05c2020e 100644 --- a/htdocs/langs/es_ES/compta.lang +++ b/htdocs/langs/es_ES/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Cuenta contable por defecto para el IVA de ventas (u ACCOUNTING_VAT_BUY_ACCOUNT=Cuenta contable por defecto para el IVA de compras (usado si no se define en el diccionario de IVA) ACCOUNTING_VAT_PAY_ACCOUNT=Código contable por defecto para el pago de IVA ACCOUNTING_ACCOUNT_CUSTOMER=Cuenta contable a usar para clientes -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Se utilizará una cuenta contable dedicada definida en la ficha de terceros para el relleno del Libro Mayor, o como valor predeterminado de la contabilidad del Libro Mayor si no se define una cuenta contable en la ficha del tercero +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Cuenta contable a usar para proveedores -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Se utilizará una cuenta contable dedicada definida en la ficha de terceros para el relleno del Libro Mayor, o como valor predeterminado de la contabilidad del Libro Mayor si no se define una cuenta contable en la ficha del tercero +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clonar una tasa social/fiscal ConfirmCloneTax=Confirmar la clonación de una tasa social/fiscal CloneTaxForNextMonth=Clonarla para el próximo mes diff --git a/htdocs/langs/es_ES/errors.lang b/htdocs/langs/es_ES/errors.lang index 0b170ca6342..ee612dc50c7 100644 --- a/htdocs/langs/es_ES/errors.lang +++ b/htdocs/langs/es_ES/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, nombre de trigger %s duplicado. Ya se encuentra car ErrorNoWarehouseDefined=Error, no hay definidos almacenes. ErrorBadLinkSourceSetButBadValueForRef=El enlace que utiliza no es válido. Hay definido un 'origen para el pago, pero el valor de 'ref' no es válido. ErrorTooManyErrorsProcessStopped=Demasiados errores. El proceso ha sido detenido +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings WarningPasswordSetWithNoAccount=Se fijó una contraseña para este miembro. Sin embargo, no se ha creado ninguna cuenta de usuario. Así que esta contraseña no se puede utilizar para acceder a Dolibarr. Puede ser utilizada por un módulo/interfaz externo, pero si no necesitar definir accesos de un miembro, puede desactivar la opción "Administrar un inicio de sesión para cada miembro" en la configuración del módulo miembros. Si necesita administrar un inicio de sesión, pero no necesita ninguna contraseña, puede dejar este campo vacío para evitar esta advertencia. Nota: También puede usarse el correo electrónico como inicio de sesión si el miembro está vinculada a un usuario. diff --git a/htdocs/langs/es_ES/install.lang b/htdocs/langs/es_ES/install.lang index ca340bcc6d1..eaea7f43bdb 100644 --- a/htdocs/langs/es_ES/install.lang +++ b/htdocs/langs/es_ES/install.lang @@ -53,10 +53,10 @@ AdminLogin=Usuario del administrador de la base de datos Dolibarr. Deje vacío s PasswordAgain=Verificación de la contraseña AdminPassword=Contraseña del administrador de la base de datos Dolibarr. Deje vacío si se conecta en anonymous CreateDatabase=Crear la base de datos -CreateUser=Crear el propietario +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Base de datos - Acceso super usuario CheckToCreateDatabase=Seleccione esta opción si la base de datos no existe y debe crearse. En este caso, es necesario indicar usuario/contraseña del superusuario más adelante en esta página. -CheckToCreateUser=Seleccione esta opción si el usuario no existe y debe crearse.
    En este caso, es necesario indicar usuario/contraseña del superusuario más adelante en esta página. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Usuario de la base que tiene los derechos de creación de bases de datos o cuenta para la base de datos, inútil si la base de datos y su usuario ya existen (como cuando están en un anfitrión). KeepEmptyIfNoPassword=Deje vacío si el usuario no tiene contraseña SaveConfigurationFile=Grabación del archivo de configuración diff --git a/htdocs/langs/es_ES/main.lang b/htdocs/langs/es_ES/main.lang index 1a785c93704..977f396e2ba 100644 --- a/htdocs/langs/es_ES/main.lang +++ b/htdocs/langs/es_ES/main.lang @@ -75,7 +75,8 @@ FileRenamed=El archivo ha sido renombrado correctamente FileGenerated=el archivo ha sido generado correctamente FileSaved=The file was successfully saved FileUploaded=El archivo se ha subido correctamente -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=Un archivo ha sido seleccionado para adjuntarlo, pero aún no se ha subido. Haga clic en "Adjuntar este archivo" para ello. NbOfEntries=Nº de entradas GoToWikiHelpPage=Leer la ayuda en línea (es necesario acceso a Internet ) @@ -196,6 +197,7 @@ Parameter=Parámetro Parameters=Parámetros Value=Valor PersonalValue=Valor personalizado +NewObject=New %s NewValue=Nuevo valor CurrentValue=Valor actual Code=Código @@ -441,6 +443,7 @@ Reporting=Informe Reportings=Informes Draft=Borrador Drafts=Borradores +StatusInterInvoiced= Validated=Validado Opened=Activo New=Nuevo @@ -727,6 +730,7 @@ SetBankAccount=Definir cuenta bancaria AccountCurrency=Divisa de la cuenta ViewPrivateNote=Ver notas XMoreLines=%s línea(s) ocultas +ShowMoreLines=Show more lines PublicUrl=URL pública AddBox=Añadir caja SelectElementAndClick=Seleccione un elemento y haga clic %s @@ -735,6 +739,7 @@ ShowTransaction=Mostrar registro en la cuenta bancaria GoIntoSetupToChangeLogo=Vaya a Inicio->Configuración->Empresa/Institución para cambiar el logo o vaya a Inicio->Configuración->Entorno para ocultarlo Deny=Denegar Denied=Denegada +ListOf=List of %s ListOfTemplates=Listado de plantillas Gender=Sexo Genderman=Hombre diff --git a/htdocs/langs/es_ES/modulebuilder.lang b/htdocs/langs/es_ES/modulebuilder.lang index 12876829546..ea9665b95ea 100644 --- a/htdocs/langs/es_ES/modulebuilder.lang +++ b/htdocs/langs/es_ES/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Módulos generados/editables encontrados: %s (se detectan como editables cuando el archivo %s existe en la raíz del directorio del módulo). NewModule=Nuevo módulo @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Módulo inicializado -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Introduzca aquí toda la información general que describa su módulo -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=Esta pestaña está dedicada a definir entradas de menú proporcionadas por su módulo. ModuleBuilderDescpermissions=Esta pestaña está dedicada a definir los nuevos permisos que desea proporcionar con su módulo. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Zona peligrosa BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=Este módulo ha sido activado. Cualquier cambio en él puede romper una característica activa actual. DescriptionLong=Descripción larga EditorName=Nombre del editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/es_ES/multicurrency.lang b/htdocs/langs/es_ES/multicurrency.lang index a64bfa51b44..a2a4c316c6e 100644 --- a/htdocs/langs/es_ES/multicurrency.lang +++ b/htdocs/langs/es_ES/multicurrency.lang @@ -4,7 +4,8 @@ ErrorAddRateFail=Error al añadir tasa ErrorAddCurrencyFail=Error al añadir la divisa ErrorDeleteCurrencyFail=Error al eliminar multicurrency_syncronize_error=Error sincronización: %s -multicurrency_useOriginTx=Cuando un objeto se crea desde otro, mantiene la tasa original del objeto de origen (de lo contrario, utilice la nueva tasa conocida) +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate) CurrencyLayerAccount=CurrencyLayer API CurrencyLayerAccount_help_to_synchronize=Debe crear una cuenta en su sitio web para utilizar esta función.
    Obtenga su clave API
    Si utiliza una cuenta gratuita, no puede cambiar la divisa origen (USD por defecto)
    . Pero si su divisa principal no es USD, puede usar la divisa origen alternativa para forzar su divisa principal.

    Está limitado a 1000 sincronizaciones por mes multicurrency_appId=Clave API diff --git a/htdocs/langs/es_ES/orders.lang b/htdocs/langs/es_ES/orders.lang index 2107778efaf..1533b4f25cb 100644 --- a/htdocs/langs/es_ES/orders.lang +++ b/htdocs/langs/es_ES/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Área pedidos a proveedores OrderCard=Ficha pedido OrderId=Id pedido Order=Pedido +PdfOrderTitle=Orden Orders=Pedidos OrderLine=Línea de pedido OrderDate=Fecha pedido diff --git a/htdocs/langs/es_ES/other.lang b/htdocs/langs/es_ES/other.lang index 33379c66d60..300a2f255a1 100644 --- a/htdocs/langs/es_ES/other.lang +++ b/htdocs/langs/es_ES/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Mes anterior (texto) de la fecha de la factura NextMonthOfInvoice=Mes siguiente (número 1-12) de la fecha de la factura TextNextMonthOfInvoice=Mes siguiente (texto) de la fecha de la factura ZipFileGeneratedInto=Archivo zip generado en %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Año de la fecha de la factura PreviousYearOfInvoice=Año anterior de la fecha de la factura diff --git a/htdocs/langs/es_ES/propal.lang b/htdocs/langs/es_ES/propal.lang index 923437a4754..39e457ea6aa 100644 --- a/htdocs/langs/es_ES/propal.lang +++ b/htdocs/langs/es_ES/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Presupuestos borrador ProposalsOpened=Presupuestos abiertos Prop=Presupuestos CommercialProposal=Presupuesto +PdfCommercialProposalTitle=Presupuesto ProposalCard=Ficha presupuesto NewProp=Nuevo presupuesto NewPropal=Nuevo presupuesto diff --git a/htdocs/langs/es_ES/salaries.lang b/htdocs/langs/es_ES/salaries.lang index fe6c4de8ec2..1586e1012c9 100644 --- a/htdocs/langs/es_ES/salaries.lang +++ b/htdocs/langs/es_ES/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Código contable cargas financieras Salary=Salario Salaries=Salarios diff --git a/htdocs/langs/es_ES/website.lang b/htdocs/langs/es_ES/website.lang index 9962f07cf32..cba37fcf340 100644 --- a/htdocs/langs/es_ES/website.lang +++ b/htdocs/langs/es_ES/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Cree aquí tanto la entrada como el número de diferentes sitio DeleteWebsite=Eliminar sitio web ConfirmDeleteWebsite=¿Está seguro de querer eliminar este sitio web? Todas las páginas y contenido también sera eliminado WEBSITE_PAGENAME=Nombre/alias página +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL del fichero CSS externo WEBSITE_CSS_INLINE=Contenido CSS -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Librería de medios -EditCss=Editar Estilo/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Editar menu EditPageMeta=Editar Meta EditPageContent=Editar contenido Website=Sitio web -Webpage=Página web -AddPage=Añadir página +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Vista previa de su sitio web %s todavía no disponible. Debe de añadir primero una página. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Página '%s' del sitio web %s eliminada -PageAdded=Página '%s' añadida +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=Ver sitio en una pestaña nueva ViewPageInNewTab=Ver página en una pestaña nueva SetAsHomePage=Establecer como Página de inicio @@ -28,4 +30,9 @@ ViewWebsiteInProduction=Ver sitio web usando la URL de inicio SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Vista previa de %s en una nueva pestaña.

    %s será servido por un servidor web externo (como Apache, Nginx, IIS). Antes debe instalar y configurar este servidor URL de
    %s
    servido por el servidor externo:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/es_ES/workflow.lang b/htdocs/langs/es_ES/workflow.lang index 0d3ef48d095..a0a69401f5a 100644 --- a/htdocs/langs/es_ES/workflow.lang +++ b/htdocs/langs/es_ES/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Configuración del módulo Flujo de trabajo WorkflowDesc=Este módulo está diseñado para modificar el comportamiento de acciones automáticas en la aplicación. Por defecto, el flujo de trabajo está abierto (se pueden hacer cosas en el orden que se desee). Puede activar las acciones automáticas que le interesen. ThereIsNoWorkflowToModify=No hay disponibles modificaciones de flujo de trabajo de los módulos activados. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Crear un pedido de cliente automáticamente a la firma de un presupuesto -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Crear una factura a cliente automáticamente a la firma de un presupuesto +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Crear una factura a cliente automáticamente al validar un contrato -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Crear una factura a cliente automáticamente después de cerrar una orden -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Clasificar como facturado el presupuesto cuando el pedido de cliente relacionado se clasifique como pagado -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Clasificar como facturados los pedidos cuando la factura relacionada se clasifique como pagada -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Clasificar como facturados los pedidos de cliente relacionados cuando la factura sea validada -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Clasificar como facturado el presupuesto relacionado cuando la factura a cliente sea validada -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Clasificar como enviado el pedido relacionado cuando el envío relacionado sea validado y la cantidad enviada sea la misma que la del pedido +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Creación automática AutomaticClassification=Clasificación automática diff --git a/htdocs/langs/es_MX/accountancy.lang b/htdocs/langs/es_MX/accountancy.lang index ccf0f375279..68c8ebc4432 100644 --- a/htdocs/langs/es_MX/accountancy.lang +++ b/htdocs/langs/es_MX/accountancy.lang @@ -3,14 +3,27 @@ ACCOUNTING_EXPORT_SEPARATORCSV=Separador de columnas para el archivo de exportac ACCOUNTING_EXPORT_DATE=Formato de fecha para el archivo de exportación ACCOUNTING_EXPORT_PIECE=Exportar el número de pieza ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Exportación con cuenta global -ACCOUNTING_EXPORT_DEVISE=Exportar moneda +DefaultForService=Predeterminado para servicio +InvoiceLabel=Etiqueta de factura +DeleteCptCategory=Eliminar cuenta contable del grupo +ConfirmDeleteCptCategory=¿Está seguro de que desea eliminar esta cuenta de contabilidad del grupo de cuentas contables? +AlreadyInGeneralLedger=Ya registrado en diarios +AccountancyAreaDescJournalSetup=PASO %s: Cree o verifique el contenido de su lista de diario desde el menú %s +AccountancyAreaDescBind=PASO %s: Compruebe el enlace entre las líneas %s existentes y la cuenta de contabilidad está terminada, para que la aplicación pueda registrar las transacciones en el libro mayor en un solo clic. Complete los enlaces que falten. Para ello, utilice la entrada de menú %s. Selectchartofaccounts=Seleccionar gráfico activo de cuentas +ShowAccountingAccount=Mostrar cuenta contable +ShowAccountingJournal=Mostrar registro de contabilidad Ventilation=Agregando a cuentas CustomersVentilation=Agregar factura de cliente SuppliersVentilation=Agregar factura de proveedor CreateMvts=Crear nueva transaccion UpdateMvts=Modificación de una transacción +ValidTransaction=Validar transacción +WriteBookKeeping=Journalize transacciones en Ledger +Bookkeeping=Libro mayor CAHTF=Total de compra al proveedor antes de impuestos +InvoiceLines=Líneas de facturas para enlazar +InvoiceLinesDone=Líneas de facturas vinculadas IntoAccount=Unir partida con la cuenta contable Ventilate=Agregar Processing=Procesando @@ -19,6 +32,7 @@ SelectedLines=Partidas seleccionadas Lineofinvoice=Partida de factura VentilatedinAccount=Agregado exitosamente a la cuenta contable NotVentilatedinAccount=No añadido a la cuenta contable +ACCOUNTING_LIMIT_LIST_VENTILATION=Número de elementos a enlazar mostrado por página (máximo recomendado: 50) ACCOUNTING_MISCELLANEOUS_JOURNAL=Diario de varios ACCOUNTING_EXPENSEREPORT_JOURNAL=Diario de reporte de gastos ACCOUNTING_SOCIAL_JOURNAL=Diario Social @@ -29,11 +43,34 @@ ACCOUNTING_SERVICE_BUY_ACCOUNT=Cuenta contable por defecto para los servicios co ACCOUNTING_SERVICE_SOLD_ACCOUNT=Cuenta contable por defecto para los servicios vendidos (si no ha sido definida en la hoja servicio) Labelcompte=Descripción de la cuenta Sens=Significado +ByAccounts=Por cuentas +DelYear=Año a borrar +DelJournal=Diario a borrar +DelBookKeeping=Eliminar registro del libro mayor DescFinanceJournal=Diario financiero incluyendo todos los tipos de pagos por cuenta bancaria +NewAccountingMvt=Nueva transacción +NumMvts=Número de transacción +ListeMvts=Lista de movimientos ErrorDebitCredit=Débito y Crédito no pueden tener un valor al mismo tiempo +ReportThirdParty=Listar cuenta de terceros +DescThirdPartyReport=Consulte aquí la lista de clientes y proveedores de terceros y sus cuentas de contabilidad Pcgtype=Tipo de cuenta +Pcgsubtype=Subclase de cuenta TotalVente=Facturación total antes de impuestos TotalMarge=Margen de ventas total DescVentilDoneSupplier=Consulte aquí la lista de partidas de las facturas a proveedores y sus cuentas contables +DescVentilExpenseReport=Consulte aquí la lista de líneas de reporte de gastos vinculadas (o no) a una cuenta de contabilidad de comisiones +DescVentilExpenseReportMore=Si configura la cuenta contable en el tipo de líneas de reporte de gastos, la aplicación podrá hacer todo el enlace entre sus líneas de informes de gastos y la cuenta de contabilidad de su plan de cuentas, con un clic con el botón "%s" . Si la cuenta no se ha establecido en el diccionario de comisiones o si todavía tiene algunas líneas no vinculadas a ninguna cuenta, tendrá que realizar una vinculación manual en el menú " %s". ErrorAccountancyCodeIsAlreadyUse=Error, no es posible eliminar ésta cuenta contable porque está siendo usada -MvtNotCorrectlyBalanced=Movimiento balanceado incorrectamente. Crédito = %s. Débito = %s +AccountingJournal=Diario de contabilidad +ShowAccoutingJournal=Mostrar registro de contabilidad +AccountingJournalType1=Varias operaciones +AccountingJournalType5=Informe de gastos +AccountingJournalType9=Tiene nuevo +ErrorAccountingJournalIsAlreadyUse=Este diario ya está en uso +ExportDraftJournal=Exportar borrador de diario +Modelcsv_CEGID=Exportar con compatibilidad para CEGID Expert +Modelcsv_agiris=Exportar a Agiris (En pruebas aún) +SomeMandatoryStepsOfSetupWereNotDone=Algunos pasos obligatorios de la instalación no se realizaron, favor de completar +ExportNotSupported=El formato de exportación configurado no se admite en esta página +NoJournalDefined=Ningún diario definido diff --git a/htdocs/langs/es_MX/admin.lang b/htdocs/langs/es_MX/admin.lang index 7a5fd81233d..6e98301ce82 100644 --- a/htdocs/langs/es_MX/admin.lang +++ b/htdocs/langs/es_MX/admin.lang @@ -18,6 +18,7 @@ WarningModuleNotActive=El módulo %s debe estar habilitado WarningOnlyPermissionOfActivatedModules=Sólo los permisos relacionados a los módulos activados son mostrados aquí. Puedes activar otros módulos en la página Inicio->Configuración->Módulos DolibarrSetup=Instalación o actualización de Dolibarr SetupArea=Área de configuración +UploadNewTemplate=Subir nueva(s) plantilla(s) FormToTestFileUploadForm=Formulario para probar la carga de archivos (según la configuración) IfModuleEnabled=Nota: sí es efectivo sólo si el módulo %s está activado RemoveLock=Eliminar archivo %s si existe para permitir el uso de la herramienta para actualizar @@ -65,15 +66,63 @@ OSTZ=Servidor OS Zona Horaria PHPTZ=Servidor PHP Zona Horaria DaylingSavingTime=Hora de verano CurrentSessionTimeOut=Sesión actual pausada +MaxNbOfLinesForBoxes=Número máximo de líneas para widgets PositionByDefault=Pedido por defecto Position=Puesto MenusDesc=Administradores de menú establecen contenido de las dos barras de menú (horizontal y vertical) MenusEditorDesc=El editorde menú te permite definir entradas personales de menú. Usalo cuidadosamente para evitar inestabilidad y permanente incapacidad de acceder a entradas del menú.
    Algunos módulos agregan entradas de menú (en menú Todoprincipalmente). Si tu remueves algunas de estas entradas por error, tu puedes restaurarlas deshabilitando y rehabilitando el módulo. +MenuForUsers=Menú para usuarios +LangFile=Archivo .lang +SystemInfo=Información del sistema +SystemToolsArea=Área de herramientas del sistema +SystemToolsAreaDesc=Esta área proporciona funciones de administración. Utilice el menú para elegir la función que está buscando. +PurgeAreaDesc=Esta página le permite borrar todos los archivos generados o almacenados por Dolibarr (archivos temporales o todos los archivos del directorio %s ). No es necesario utilizar esta función. Se proporciona como una solución para los usuarios cuyo Dolibarr está alojado por un proveedor que no ofrece permisos para eliminar archivos generados por el servidor web. +PurgeDeleteTemporaryFiles=Eliminar todos los archivos temporales (sin riesgo de perder datos) +PurgeDeleteAllFilesInDocumentsDir=Elimine todos los archivos del directorio %s . Los archivos temporales, pero también los volcados de copia de seguridad de la base de datos, los archivos adjuntos a elementos (terceros, facturas, ...) y cargados en el módulo ECM se eliminarán. +PurgeRunNow=Purgar ahora +PurgeNothingToDelete=Ningún directorio o archivos que desee eliminar. +PurgeNDirectoriesDeleted= %s archivos o directorios eliminados. +PurgeAuditEvents=Purgar todos los eventos de seguridad +ConfirmPurgeAuditEvents=¿Está seguro de que desea eliminar todos los eventos de seguridad? Todos los registros de seguridad se eliminarán, no se eliminarán otros datos. +Backup=Copia de Seguridad +Restore=Restaurar +RunCommandSummary=Se ha iniciado la copia de seguridad con el siguiente comando +BackupResult=Resultado de copia de seguridad +BackupFileSuccessfullyCreated=Archivo de copia de seguridad generado correctamente +YouCanDownloadBackupFile=Los archivos generados ahora se pueden descargar +NoBackupFileAvailable=No hay archivos de copia de seguridad disponibles. +ToBuildBackupFileClickHere=Para crear un archivo de copia de seguridad, haga clic aquí . +ImportMySqlDesc=Para importar un archivo de copia de seguridad, debe utilizar el comando mysql desde la línea de comandos: +ImportPostgreSqlDesc=Para importar un archivo de respaldo, debe usar el comando pg_restore en la linea de comandos: +ImportMySqlCommand=%s %s < miarchivoderespaldo.sql +FileNameToGenerate=Nombre de archivo a generar +CommandsToDisableForeignKeysForImport=Comando para deshabilitar claves foráneas en la importación +CommandsToDisableForeignKeysForImportWarning=Obligatorio si desea restaurar su copia de seguridad de SQL más tarde +MySqlExportParameters=Parámetros de exportación de MySQL +PostgreSqlExportParameters=Parámetros de exportación de PostgreSQL +UseTransactionnalMode=Usar modo transaccional +FullPathToPostgreSQLdumpCommand=Ruta completa del comando pg_dump +ExportOptions=Opciónes de exportación +AddDropDatabase=Agregar comando DROP DATABASE +AddDropTable=Agregar comando DROP TABLE +NameColumn=Nombre de columnas +EncodeBinariesInHexa=Convertir datos binarios en hexadecimal +OnlyActiveElementsAreShown=Solo elementos de \nmodulos habilitados son\n mostrados. +ModulesDesc=Módulos Dolibarr definen que\naplicación/característica esta habilitada en\nel programa. Algunas\naplicaciónes/módulos requieren\npermisos que tu debes otorgar a\nusuarios, despues de activarlos.\nHaz click en el botón on/off para habilitar un\nmódulo/aplicación. +ModulesMarketPlaceDesc=Tu puedes encontrar mas módulos para descargar en sitios web externos en el Internet URL=Vínculo +LastActivationIP=IP de activación más reciente ExampleOfDirectoriesForModelGen=Examples of syntax:
    c:\\mydir
    /home/mydir
    DOL_DATA_ROOT/ecm/ecmdir +WarningSettingSortOrder=Advertencia, establecer un orden predeterminado puede resultar en un error técnico al pasar a la página de lista si "campo" es un campo desconocido. Si experimenta un error de este tipo, vuelva a esta página para eliminar el orden predeterminado y restaurar el comportamiento predeterminado. Module50Name=productos Module770Name=Reporte de gastos +Module3200Desc=Active el registro de algunos eventos empresariales en un registro no reversible. Los eventos se archivan en tiempo real. El registro es una tabla de sucesos encadenados que se pueden leer y exportar. Este módulo puede ser obligatorio para algunos países. DictionaryCanton=Estado/Provincia +DictionaryAccountancyJournal=Diarios de contabilidad Upgrade=Actualizar CompanyName=Nombre LDAPFieldFirstName=Nombre(s) +CacheByServerDesc=Por ejemplo, utilizando la directiva Apache "ExpiresByType image/gif A2592000" +AGENDA_SHOW_LINKED_OBJECT=Mostrar objeto vinculado en la vista de agenda +ConfFileMustContainCustom=Instalar o construir un módulo externo desde la aplicación necesita guardar los archivos del módulo en el directorio %s . Para que este directorio sea procesado por Dolibarr, debe configurar su conf/conf.php para agregar las 2 líneas de directiva: $dolibarr_main_url_root_alt='/custom';
    $dolibarr_main_document_root_alt='%s/custom'; +WarningNoteModulePOSForFrenchLaw=Este módulo %s es compatible con las leyes francesas (Loi Finance 2016) porque el módulo Non Reversible Logs se activa automáticamente. diff --git a/htdocs/langs/es_MX/agenda.lang b/htdocs/langs/es_MX/agenda.lang index 53d212bf453..d92663bcb04 100644 --- a/htdocs/langs/es_MX/agenda.lang +++ b/htdocs/langs/es_MX/agenda.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - agenda ActionsOwnedBy=Evento propiedad de +AffectedTo=Asignado a Event=Evento ListOfActions=Lista de eventos EventOnFullDay=Evento de todo el día(s) @@ -35,9 +36,13 @@ SupplierInvoiceSentByEMail=Factura de proveedor %s enviada por correo electróni ShippingSentByEMail=Envío %s enviado por correo electrónico ShippingValidated=Envío %s validado InterventionSentByEMail=Intervención %s enviada por correo electrónico +PRODUCT_CREATEInDolibarr=Producto %s creado +PRODUCT_MODIFYInDolibarr=Producto %s modificado +PRODUCT_DELETEInDolibarr=Producto %s eliminado DateActionEnd=Fecha de finalización AgendaUrlOptions1=También puede agregar los siguientes parámetros para filtrar la salida: AgendaUrlOptions3=logina=%s para restringir la salida a las acciones propiedad del usuario %s. +AgendaUrlOptionsNotAdmin= logina =!%s para restringir la salida a acciones que no pertenecen al usuario %s . AgendaUrlOptions4=logint=%s para restringir la salida a acciones asignadas al usuario %s. AgendaUrlOptionsProject=project=PROJECT_ID para restringir la salida a acciones asociadas al proyecto PROJECT_ID. ExportDataset_event1=Lista de eventos de la agenda diff --git a/htdocs/langs/es_MX/banks.lang b/htdocs/langs/es_MX/banks.lang index 0d809e615c9..28419a19c6f 100644 --- a/htdocs/langs/es_MX/banks.lang +++ b/htdocs/langs/es_MX/banks.lang @@ -28,22 +28,34 @@ BankType2=Cuenta de caja/efectivo AccountsArea=Área de cuentas AccountCard=Ficha de cuenta DeleteAccount=Eliminar cuenta +ConfirmDeleteAccount=¿Seguro que desea eliminar esta cuenta? IdTransaction=ID de transacción +ListTransactions=Listar entradas +ListTransactionsByCategory=Listar entradas / categoría +TransactionsToConciliate=Entradas para conciliar Conciliable=Puede ser conciliado OnlyOpenedAccount=Sólo las cuentas abiertas DisableConciliation=Desactivar función de conciliación para esta cuenta ConciliationDisabled=Característica conciliación deshabilitada StatusAccountOpened=Abierta LineRecord=Transacción +AddBankRecord=Añadir entrada +AddBankRecordLong=Añadir entrada manualmente DateConciliating=Fecha de conciliación +BankLineConciliated=Entrada reconciliada CustomerInvoicePayment=Pago de cliente WithdrawalPayment=Pago de retiro SocialContributionPayment=Pago de impuesto social/fiscal +TransferDesc=Transferencia de una cuenta a otra, Dolibarr escribirá dos registros (un débito en la cuenta de origen y un crédito en la cuenta de destino, para esta transacción se utilizará la misma cantidad (excepto signo), etiqueta y fecha) TransferFromToDone=La transferencia de %s hacia %s de %s %s ha sido registrada. +ValidateCheckReceipt=¿Validar este recibo de cheque? +ConfirmValidateCheckReceipt=¿Está seguro de que desea validar este recibo de cheques, ningún cambio será posible una vez hecho esto? +DeleteCheckReceipt=¿Eliminar este recibo de cheque? BankChecks=Cheques bancarios BankChecksToReceipt=Cheques en espera de depósito ShowCheckReceipt=Mostrar recibo de depósito de cheque NumberOfCheques=Número de cheque +DeleteTransaction=Eliminar la entrada ExportDataset_banque_2=Ficha de depósito TransactionOnTheOtherAccount=Transacción en la otra cuenta PaymentNumberUpdateSucceeded=Número de pago actualizado con éxito diff --git a/htdocs/langs/es_MX/companies.lang b/htdocs/langs/es_MX/companies.lang index 1550a99d48e..b93f3b13a4d 100644 --- a/htdocs/langs/es_MX/companies.lang +++ b/htdocs/langs/es_MX/companies.lang @@ -17,6 +17,7 @@ AliasNameShort=Nombre simple CountryIsInEEC=El país está dentro de la Comunidad Económica Europea ThirdPartyName=Nombre de tercero ThirdPartyCustomersWithIdProf12=Clientes con %s o %s +ToCreateContactWithSameName=Creará automáticamente un contacto/dirección con la misma información en tercero. En la mayoría de los casos, incluso si su tercero es una persona física, la creación de un tercero solo es suficiente. ParentCompany=Empresa matriz ReportByCustomers=Reporte por clientes ReportByQuarter=Reporte por tasa @@ -30,9 +31,11 @@ CountryId=ID de país PhonePro=Teléfono trabajo PhonePerso=Teléfono particular PhoneMobile=Celular +No_Email=Rechazar e-mailings masivos Town=Ciudad Web=Página de internet LocalTax1IsUsed=Usar segundo impuesto +LocalTax1IsUsedES=RE se utiliza LocalTax2IsUsed=Usar tercer impuesto WrongCustomerCode=Código de cliente inválido WrongSupplierCode=Código de proveedor inválido @@ -84,6 +87,9 @@ ProfId2MA=ID Prof. 2 (Patente) ProfId3MA=Id Prof. 3 (I.F.) ProfId4MA=ID Prof. 4 (C.N.S.S.) ProfId2MX=R.P. IMSS +ProfId3PT=Prof Id 3 (número de registro comercial) +VATIntra=Número de IVA +VATIntraShort=Número de IVA VATIntraSyntaxIsValid=La sintaxis es válida ProspectCustomer=Cliente potencial / Cliente CustomerCard=Ficha del cliente diff --git a/htdocs/langs/es_MX/compta.lang b/htdocs/langs/es_MX/compta.lang index 9c1cd218356..b209aec0b1e 100644 --- a/htdocs/langs/es_MX/compta.lang +++ b/htdocs/langs/es_MX/compta.lang @@ -1,4 +1,9 @@ # Dolibarr language file - Source file is en_US - compta +MenuFinancial=Financiero Param=Configuración +VATReceived=VAT received +VATToCollect=VAT purchases +VATSummary=VAT Balance +VATPaid=VAT paid PaymentSocialContribution=Pago de impuesto social/fiscal ByThirdParties=Por terceros diff --git a/htdocs/langs/es_MX/holiday.lang b/htdocs/langs/es_MX/holiday.lang index b831a466cf7..213091587cf 100644 --- a/htdocs/langs/es_MX/holiday.lang +++ b/htdocs/langs/es_MX/holiday.lang @@ -1,9 +1,19 @@ # Dolibarr language file - Source file is en_US - holiday +Holidays=Licencias +CPTitreMenu=Licencias +MenuAddCP=Nueva solicitud de licencia +NotActiveModCP=Debe activar el módulo de licencias para ver esta página. +AddCP=Hacer una solicitud de licencia DateDebCP=Fecha de inicio DateFinCP=Fecha de finalización ApprovedCP=Aprobado CancelCP=Cancelado RefuseCP=Rechazado +ListeCP=Lista de licencias +ReviewedByCP=Será aprobado por +SendRequestCP=Crear solicitud de licencia +DelayToRequestCP=Las solicitudes de permiso deben ser hechas al menos %s día(s) antes. +MenuConfCP=Balance de licencias EditCP=Editar ActionCancelCP=Cancelar MotifCP=Razón diff --git a/htdocs/langs/es_MX/install.lang b/htdocs/langs/es_MX/install.lang index 5b0120eb612..bbd54f20597 100644 --- a/htdocs/langs/es_MX/install.lang +++ b/htdocs/langs/es_MX/install.lang @@ -40,7 +40,6 @@ PasswordAgain=Vuelva a escribir la contraseña por segunda vez AdminPassword=Contraseña para el propietario de la base de datos de Dolibarr. DatabaseSuperUserAccess=Servidor de base de datos - acceso de Superusuario CheckToCreateDatabase=Marque la casilla si no existe base de datos y se debe crear.
    En este caso, debe llenar el login/contraseña de la cuenta de superusuario en la parte inferior de esta página. -CheckToCreateUser=Marque la casilla si el propietario de base de datos no existe y debe ser creado.
    En este caso, debe elegir su nombre de usuario y contraseña y también llenar el login/contraseña de la cuenta de superusuario en la parte inferior de esta página. Si esta casilla no está marcada, el propietario de la base de datos y su contraseña deben existir. DatabaseRootLoginDescription=Login del usuario con permisos para crear nuevas bases de datos o nuevos usuarios, obligatorio si su base de datos o su propietario no existen. KeepEmptyIfNoPassword=Deje en blanco si el usuario no tiene contraseña (evite esto) SaveConfigurationFile=Guardar valores diff --git a/htdocs/langs/es_MX/main.lang b/htdocs/langs/es_MX/main.lang index e48ab931f18..3a69d24074e 100644 --- a/htdocs/langs/es_MX/main.lang +++ b/htdocs/langs/es_MX/main.lang @@ -94,6 +94,7 @@ DefaultValue=Valor predeterminado PriceUTTC=P.U. (IVA incl.) AmountInvoice=Importe de la factura AmountPayment=Importe de pago +MulticurrencyPaymentAmount=Monto del pago, moneda original AmountLT1=Importe impuestos 2 AmountLT2=Importe impuestos 3 AmountAverage=Importe promedio @@ -104,6 +105,7 @@ TTC=IVA Incluido VATs=Impuestos de ventas VATRate=Tasa de IVA Average=Promedio +Modules=Módulos/Aplicaciones List=Lista FullList=Lista completa RefSupplier=Ref. Proveedor @@ -291,3 +293,4 @@ SearchIntoCustomerOrders=Pedidos de los clientes SearchIntoCustomerProposals=Propuestas de clientes SearchIntoSupplierProposals=Propuestas de proveedores SearchIntoExpenseReports=Reporte de gastos +SearchIntoLeaves=Licencias diff --git a/htdocs/langs/es_MX/paybox.lang b/htdocs/langs/es_MX/paybox.lang index b5e026cdced..dd38b46a33b 100644 --- a/htdocs/langs/es_MX/paybox.lang +++ b/htdocs/langs/es_MX/paybox.lang @@ -1,2 +1,3 @@ # Dolibarr language file - Source file is en_US - paybox +WelcomeOnPaymentPage=Bienvenido a nuestro servicio de pago en línea Continue=Siguiente diff --git a/htdocs/langs/es_MX/products.lang b/htdocs/langs/es_MX/products.lang index af22c89503a..020764ca7f6 100644 --- a/htdocs/langs/es_MX/products.lang +++ b/htdocs/langs/es_MX/products.lang @@ -1,6 +1,21 @@ # Dolibarr language file - Source file is en_US - products -TMenuProducts=productos -Products=productos +ProductId=ID de producto / servicio +CantBeLessThanMinPrice=El precio de venta no puede ser inferior al mínimo permitido para este producto (%s sin impuestos). Este mensaje también puede aparecer si escribe un descuento demasiado importante. ContractStatusClosed=Cerrada -ExportDataset_produit_1=productos +ErrorProductBadRefOrLabel=Valor incorrecto para referencia o etiqueta. +ProductsAndServicesArea=Área de productos y servicios +ProductsArea=Área de producto +SetDefaultBarcodeType=Establecer el tipo de código de barras +AssociatedProductsAbility=Activar la función para administrar productos virtuales +AssociatedProducts=Producto virtual +KeywordFilter=Filtro de palabras clave +NoMatchFound=No se encontraron coincidencias +DeleteProduct=Eliminar un producto / servicio +ExportDataset_produit_1=Productos ImportDataset_produit_1=productos +GlobalVariableUpdaterType0=Datos JSON +GlobalVariableUpdaterHelp0=Analiza los datos JSON de la URL especificada, VALUE especifica la ubicación del valor relevante, +GlobalVariableUpdaterHelpFormat0=Formato de la solicitud {"URL": "http://example.com/urlofjson", "VALUE": "array1, array2, targetvalue"} +GlobalVariableUpdaterType1=Datos de WebService +GlobalVariableUpdaterHelp1=Analiza los datos de WebService desde la URL especificada, NS especifica el espacio de nombres, VALUE especifica la ubicación del valor relevante, DATA debe contener los datos a enviar y METHOD es el método WS que llama +GlobalVariableUpdaterHelpFormat1=El formato de la solicitud es {"URL": "http://example.com/urlofws", "VALUE": "array, targetvalue", "NS": "http://example.com/urlofns", "METHOD" : "MyWSMethod", "DATA": {"tus": "datos", "a": "enviar"}} diff --git a/htdocs/langs/es_MX/stocks.lang b/htdocs/langs/es_MX/stocks.lang index 07ee78f0dea..4bfe01abf24 100644 --- a/htdocs/langs/es_MX/stocks.lang +++ b/htdocs/langs/es_MX/stocks.lang @@ -1,6 +1,8 @@ # Dolibarr language file - Source file is en_US - stocks Stock=stock Location=Ubicación +StockCorrection=Correct stock +StockTransfer=Transfer stock inventoryEdit=Editar inventoryDeleteLine=Borrar línea ListInventory=Lista diff --git a/htdocs/langs/es_MX/users.lang b/htdocs/langs/es_MX/users.lang index 3e1587b1ba1..b3893c38b29 100644 --- a/htdocs/langs/es_MX/users.lang +++ b/htdocs/langs/es_MX/users.lang @@ -1,3 +1,14 @@ # Dolibarr language file - Source file is en_US - users +UserCard=Tarjeta de usuario +GroupCard=Tarjeta de grupo +Permission=Permiso +EditPassword=Editar contraseña +SendNewPassword=Regenerar y enviar contraseña +ReinitPassword=Regenerar contraseña +PasswordChangedTo=La contraseña ha cambiado a: %s +UserRights=Permisos de usuario +UserGUISetup=Configuración de la pantalla del usuario +DisableAUser=Deshabilitar un usuario +EnableAUser=Habilitar un usuario LastName=Apellido FirstName=Nombre(s) diff --git a/htdocs/langs/et_EE/accountancy.lang b/htdocs/langs/et_EE/accountancy.lang index e50968beac9..984e52fea67 100644 --- a/htdocs/langs/et_EE/accountancy.lang +++ b/htdocs/langs/et_EE/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Kood Nature=Loomus AccountingJournalType1=Various operation AccountingJournalType2=Müügid @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Eksportimised -Export=Eksport ExportDraftJournal=Export draft journal Modelcsv=Eksportimise mudel OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/et_EE/admin.lang b/htdocs/langs/et_EE/admin.lang index d41e513558d..9b67cffee6b 100644 --- a/htdocs/langs/et_EE/admin.lang +++ b/htdocs/langs/et_EE/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Süsteemi tööriistade ala SystemToolsAreaDesc=Selles alas on administreerimise vahendid. Kasuta menüüd, et leida soovitud tööriist. Purge=Tühjenda PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Kustuta kõik failid kataloogis %s. Kustutatakse ajutised failid, andmebaasi varukoopiad, elementidega (kolmandad isikud, arved, ...) seotud failid ning dokumendihaldusse üles laetud failid. PurgeRunNow=Tühjenda nüüd PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s faili või kataloogi kustutatud. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Tühjenda kõik turvalisusega seotud sündmused ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Loo varukoopia @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarri praegune versioo CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Viimane stabiilne versioon @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantise integratsioon -Module1400Name=Raamatupidamine -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Sildid/kategooriad @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Moodul, mis pakub online-makse võimalust krediitkaardiga Paypali abil Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Allahindluste vaatamine Permission402=Allahindluste loomine/muutmine Permission403=Allahindluste kinnitamine Permission404=Allahindluste kustutamine -Permission510=Palkade vaatamine -Permission512=Palkade loomine/muutmine +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Palkade kustutamine Permission517=Palkade eksportimine Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQLi import ForcedToByAModule= Aktiveeritud moodul on antud reegli väärtuseks sundinud %s -PreviousDumpFiles=Saadaval andmebaasi varukoopiate tõmmised +PreviousDumpFiles=Generated database backup files WeekStartOnDay=Nädala esimene päev RunningUpdateProcessMayBeRequired=Tundub, et on vaja käivitada uuendamise protsess (programmi versioon %s erineb andmebaasi versioonist %s) YouMustRunCommandFromCommandLineAfterLoginToUser=Antud käsu peab käivitama käsurealt pärast kasutajaga %s sisse logimist või lisades -W võtme käsu lõppu parooli %s kasutamiseks. diff --git a/htdocs/langs/et_EE/banks.lang b/htdocs/langs/et_EE/banks.lang index e1bdf4e567c..4dfa50b5096 100644 --- a/htdocs/langs/et_EE/banks.lang +++ b/htdocs/langs/et_EE/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/et_EE/bills.lang b/htdocs/langs/et_EE/bills.lang index 5d33969c01b..cead2faa754 100644 --- a/htdocs/langs/et_EE/bills.lang +++ b/htdocs/langs/et_EE/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Arve kaart PredefinedInvoices=Eelmääratletud arved Invoice=Arve +PdfInvoiceTitle=Arve Invoices=Arved InvoiceLine=Arve rida InvoiceCustomer=Müügiarve diff --git a/htdocs/langs/et_EE/compta.lang b/htdocs/langs/et_EE/compta.lang index f5ca41fd6bb..098f28682aa 100644 --- a/htdocs/langs/et_EE/compta.lang +++ b/htdocs/langs/et_EE/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/et_EE/errors.lang b/htdocs/langs/et_EE/errors.lang index fa6e137939d..5031e949385 100644 --- a/htdocs/langs/et_EE/errors.lang +++ b/htdocs/langs/et_EE/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/et_EE/install.lang b/htdocs/langs/et_EE/install.lang index 314ab09b0f3..f64b29c5d7f 100644 --- a/htdocs/langs/et_EE/install.lang +++ b/htdocs/langs/et_EE/install.lang @@ -53,10 +53,10 @@ AdminLogin=Dolibarri andmebaasi omaniku kasutajanimi. PasswordAgain=Korda parooli AdminPassword=Dolibarri andmebaasi omaniku parool. CreateDatabase=Loo andmebaas -CreateUser=Loo omanik +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Andmebaasi server - administraatori ligipääs CheckToCreateDatabase=Märgista ruut, kui andmebaasi ei ole veel olemas ja see tuleb luua.
    Sellisel juhul tuleb antud lehe alumises osas täita andmebaasi administraatori kasutajanimi ja parool. -CheckToCreateUser=Märgista ruut, kui andmebaasi omanikku ei ole veel olemas ja see tuleb luua.
    Sellisel juhul tuleb talle valida kasutajanimi ja parool ning täita antud lehe alumises osas asuvad andmebaasi administraatori kasutajanime ja parooli väljad. Kui antud ruut on märgistamata, peavad andmebaasi omanik, andmebaas ja parool juba seadistatud olema. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Kui andmebaasi või selle omanikku ei ole olemas, peab siia sisestama sellise kasutaja kasutajanime, kellel on lubatud luua uusi andmebaase või kasutajaid. KeepEmptyIfNoPassword=Jäta tühjaks, kui kasutajal pole parooli (väldi seda) SaveConfigurationFile=Salvesta väärtused diff --git a/htdocs/langs/et_EE/main.lang b/htdocs/langs/et_EE/main.lang index c872796e827..2a5f4b85d36 100644 --- a/htdocs/langs/et_EE/main.lang +++ b/htdocs/langs/et_EE/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=Fail on edukalt üles laetud -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=Fail on valitud manustamiseks, kuid on veel üles laadimata. Klõpsa "Lisa fail" nupul selle lisamiseks. NbOfEntries=Kannete arv GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parameeter Parameters=Parameetrid Value=Väärtus PersonalValue=Isiklik väärtus +NewObject=New %s NewValue=Uus väärtus CurrentValue=Praegune väärtus Code=Kood @@ -441,6 +443,7 @@ Reporting=Aruandlus Reportings=Aruandlus Draft=Mustand Drafts=Mustandid +StatusInterInvoiced= Validated=Kinnitatud Opened=Ava New=Uus @@ -727,6 +730,7 @@ SetBankAccount=Määratle pangakonto AccountCurrency=Konto valuuta ViewPrivateNote=Vaata märkmeid XMoreLines=%s joon(t) varjatud +ShowMoreLines=Show more lines PublicUrl=Avalik link AddBox=Lisa kast SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Mine Kodu - Seadistamine - Ettevõte logo muutmiseks või mine Kodu - Seadistamine - Kuva logo peitmiseks. Deny=Lükka tagasi Denied=Tagasi lükatud +ListOf=List of %s ListOfTemplates=List of templates Gender=Gender Genderman=Man diff --git a/htdocs/langs/et_EE/modulebuilder.lang b/htdocs/langs/et_EE/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/et_EE/modulebuilder.lang +++ b/htdocs/langs/et_EE/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/et_EE/orders.lang b/htdocs/langs/et_EE/orders.lang index d04b6361c9b..1d6b8579aa0 100644 --- a/htdocs/langs/et_EE/orders.lang +++ b/htdocs/langs/et_EE/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Ostutellimuste ala OrderCard=Tellimuse kaar OrderId=Tellimuse ID Order=Tellimus +PdfOrderTitle=Tellimus Orders=Tellimused OrderLine=Tellimuse rida OrderDate=Telllimuse kuupäev diff --git a/htdocs/langs/et_EE/other.lang b/htdocs/langs/et_EE/other.lang index a348bf71cab..73e0996752f 100644 --- a/htdocs/langs/et_EE/other.lang +++ b/htdocs/langs/et_EE/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/et_EE/propal.lang b/htdocs/langs/et_EE/propal.lang index 49094c66a9a..1b393d898bb 100644 --- a/htdocs/langs/et_EE/propal.lang +++ b/htdocs/langs/et_EE/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Koosta pakkumiste mustandeid ProposalsOpened=Open commercial proposals Prop=Pakkumised CommercialProposal=Pakkumine +PdfCommercialProposalTitle=Pakkumine ProposalCard=Pakkumise kaart NewProp=Uus pakkumine NewPropal=Uus pakkumine diff --git a/htdocs/langs/et_EE/salaries.lang b/htdocs/langs/et_EE/salaries.lang index 9c3315775c6..0536dd64079 100644 --- a/htdocs/langs/et_EE/salaries.lang +++ b/htdocs/langs/et_EE/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Palk Salaries=Palgad diff --git a/htdocs/langs/et_EE/website.lang b/htdocs/langs/et_EE/website.lang index bc746cfb616..ed5596423d5 100644 --- a/htdocs/langs/et_EE/website.lang +++ b/htdocs/langs/et_EE/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/et_EE/workflow.lang b/htdocs/langs/et_EE/workflow.lang index d0608b39635..55b75307493 100644 --- a/htdocs/langs/et_EE/workflow.lang +++ b/htdocs/langs/et_EE/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Töövoo mooduli seaded WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Pärast tellimusega seotud makse laekumist määra tellimusega seotud pakkumise staatuseks 'Arve esitatud' -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Kui müügiarve staatuseks on määratud 'Makstud', siis määra seotud tellimus(t)e staatuseks 'Arve esitatud' -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Kui müügiarve on kinnitatud, siis määra seotud tellimus(t)e staatuseks 'Arve esitatud' -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/eu_ES/accountancy.lang b/htdocs/langs/eu_ES/accountancy.lang index 5946647eac8..a7176d2e55f 100644 --- a/htdocs/langs/eu_ES/accountancy.lang +++ b/htdocs/langs/eu_ES/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Kodea Nature=Nature AccountingJournalType1=Various operation AccountingJournalType2=Sales @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/eu_ES/admin.lang b/htdocs/langs/eu_ES/admin.lang index 7ad6e90e525..ad6c0142a90 100644 --- a/htdocs/langs/eu_ES/admin.lang +++ b/htdocs/langs/eu_ES/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Sistemaren tresnen gunea SystemToolsAreaDesc=Gune honek kudeaketarako aukerak eskaintzen ditu. Bilatzen ari zarena aukeratzeko menua erabili. Purge=Garbitu PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. PurgeRunNow=Orain garbitu PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s fitxategi edo karpetak ezabatu dira. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Garbitu segurtasuneko gertaera guztiak ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Segurtasun-kopia egin @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr-en uneko bertsioa CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration -Module1400Name=Kontabilitatea -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Read discounts Permission402=Create/modify discounts Permission403=Validate discounts Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files +PreviousDumpFiles=Generated database backup files WeekStartOnDay=First day of week RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. diff --git a/htdocs/langs/eu_ES/banks.lang b/htdocs/langs/eu_ES/banks.lang index 6e8ca4df40f..8bb93412cfa 100644 --- a/htdocs/langs/eu_ES/banks.lang +++ b/htdocs/langs/eu_ES/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/eu_ES/bills.lang b/htdocs/langs/eu_ES/bills.lang index 73782407f3b..5c398b8ff9e 100644 --- a/htdocs/langs/eu_ES/bills.lang +++ b/htdocs/langs/eu_ES/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Invoice card PredefinedInvoices=Predefined Invoices Invoice=Invoice +PdfInvoiceTitle=Invoice Invoices=Fakturak InvoiceLine=Invoice line InvoiceCustomer=Customer invoice diff --git a/htdocs/langs/eu_ES/compta.lang b/htdocs/langs/eu_ES/compta.lang index e12d45ebc22..65b6e95f44c 100644 --- a/htdocs/langs/eu_ES/compta.lang +++ b/htdocs/langs/eu_ES/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/eu_ES/errors.lang b/htdocs/langs/eu_ES/errors.lang index feada2d1b5a..853a34b4bb4 100644 --- a/htdocs/langs/eu_ES/errors.lang +++ b/htdocs/langs/eu_ES/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/eu_ES/install.lang b/htdocs/langs/eu_ES/install.lang index a3533a31277..5b6ba06e78a 100644 --- a/htdocs/langs/eu_ES/install.lang +++ b/htdocs/langs/eu_ES/install.lang @@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner. PasswordAgain=Retype password a second time AdminPassword=Password for Dolibarr database owner. CreateDatabase=Create database -CreateUser=Create owner +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Database server - Superuser access CheckToCreateDatabase=Check box if database does not exist and must be created.
    In this case, you must fill the login/password for superuser account at the bottom of this page. -CheckToCreateUser=Check box if database owner does not exist and must be created.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists. KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this) SaveConfigurationFile=Save values diff --git a/htdocs/langs/eu_ES/main.lang b/htdocs/langs/eu_ES/main.lang index 53867790cd6..b0d931d147c 100644 --- a/htdocs/langs/eu_ES/main.lang +++ b/htdocs/langs/eu_ES/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=The file was successfully uploaded -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parameter Parameters=Parameters Value=Balioa PersonalValue=Personal value +NewObject=New %s NewValue=Balio berria CurrentValue=Current value Code=Kodea @@ -441,6 +443,7 @@ Reporting=Reporting Reportings=Reporting Draft=Draft Drafts=Drafts +StatusInterInvoiced= Validated=Validated Opened=Open New=New @@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account AccountCurrency=Account Currency ViewPrivateNote=View notes XMoreLines=%s line(s) hidden +ShowMoreLines=Show more lines PublicUrl=Public URL AddBox=Add box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Gender Genderman=Man diff --git a/htdocs/langs/eu_ES/modulebuilder.lang b/htdocs/langs/eu_ES/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/eu_ES/modulebuilder.lang +++ b/htdocs/langs/eu_ES/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/eu_ES/orders.lang b/htdocs/langs/eu_ES/orders.lang index fc4b781423f..2ee06c5e46a 100644 --- a/htdocs/langs/eu_ES/orders.lang +++ b/htdocs/langs/eu_ES/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area OrderCard=Order card OrderId=Order Id Order=Order +PdfOrderTitle=Order Orders=Orders OrderLine=Order line OrderDate=Order date diff --git a/htdocs/langs/eu_ES/other.lang b/htdocs/langs/eu_ES/other.lang index 40f0204e1ac..36fc95ff46b 100644 --- a/htdocs/langs/eu_ES/other.lang +++ b/htdocs/langs/eu_ES/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/eu_ES/propal.lang b/htdocs/langs/eu_ES/propal.lang index 3fdb379c5a2..271fb44ac40 100644 --- a/htdocs/langs/eu_ES/propal.lang +++ b/htdocs/langs/eu_ES/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal +PdfCommercialProposalTitle=Commercial proposal ProposalCard=Proposal card NewProp=New commercial proposal NewPropal=New proposal diff --git a/htdocs/langs/eu_ES/salaries.lang b/htdocs/langs/eu_ES/salaries.lang index 634880bcd4b..a1cfebf53c4 100644 --- a/htdocs/langs/eu_ES/salaries.lang +++ b/htdocs/langs/eu_ES/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Soldata Salaries=Soldatak diff --git a/htdocs/langs/eu_ES/website.lang b/htdocs/langs/eu_ES/website.lang index 252396603aa..b41e3bc14d3 100644 --- a/htdocs/langs/eu_ES/website.lang +++ b/htdocs/langs/eu_ES/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/eu_ES/workflow.lang b/htdocs/langs/eu_ES/workflow.lang index 54246856e9b..8021fb9b198 100644 --- a/htdocs/langs/eu_ES/workflow.lang +++ b/htdocs/langs/eu_ES/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Workflow module setup WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/fa_IR/accountancy.lang b/htdocs/langs/fa_IR/accountancy.lang index cf8fdb077dc..a8fc6df824e 100644 --- a/htdocs/langs/fa_IR/accountancy.lang +++ b/htdocs/langs/fa_IR/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=جمع میزان تامین کنندۀ خرید قبل از مالیات TotalExpenseReport=Total expense report InvoiceLines=تعداد سطور صورتحساب برای شامل شدن @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=به دقت به حساب بخش حسابداری شامل شد NotVentilatedinAccount=به حساب حسابداری شامل نشد -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=تعداد عناصری که برای شامل شدن در یک صفحه فهرست می شوند (حداکثر پیشنهادی: 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=فهرست حساب های حسابداری +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=کلاس حساب Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=رمز Nature=طبیعت AccountingJournalType1=Various operation AccountingJournalType2=فروش @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=صادرات -Export=صادرات ExportDraftJournal=Export draft journal Modelcsv=نوع صادرات OptionsDeactivatedForThisExportModel=برای این نوع صادرات، انتخاب ها غیر فعال شده است diff --git a/htdocs/langs/fa_IR/admin.lang b/htdocs/langs/fa_IR/admin.lang index 04f0dacc180..cc3c0c6955c 100644 --- a/htdocs/langs/fa_IR/admin.lang +++ b/htdocs/langs/fa_IR/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=ابزار های سیستم منطقه SystemToolsAreaDesc=این منطقه فراهم می کند ویژگی های دولت. با استفاده از منوی را انتخاب کنید از ویژگی های شما دنبال آن هستید. Purge=پالایش PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=حذف همه فایل ها در دایرکتوری٪ است. فایل های موقتی، بلکه افسردگی پشتیبان پایگاه داده، فایل های پیوست شده به عناصر (اشخاص ثالث، فاکتورها، ...) و ارسال به ماژول ECM حذف خواهد شد. PurgeRunNow=اکنون پاکسازی PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=٪ s فایل یا دایرکتوری حذف شده است. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=پاکسازی تمام حوادث امنیتی ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=ایجاد پشتیبان گیری @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=نسخه فعلی Dolibarr CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=اخوندک Module1200Desc=ادغام آخوندک -Module1400Name=حسابداری -Module1400Desc=Accounting management (double entries) Module1520Name=ساخت سند Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=پی پال Module50200Desc=ماژول برای ارائه یک صفحه پرداخت آنلاین از طریق کارت اعتباری با پی پال Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=خوانده شده تخفیف Permission402=ایجاد / اصلاح تخفیف Permission403=اعتبار تخفیف Permission404=حذف تخفیف -Permission510=خوانده شده حقوق -Permission512=ایجاد / اصلاح حقوق +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=حذف حقوق Permission517=حقوق صادرات Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=واردات خروجی زیر ForcedToByAModule= این قانون توسط یک ماژول فعال به٪ s اجباری -PreviousDumpFiles=فایل روگرفت پایگاه داده پشتیبان گیری می کند +PreviousDumpFiles=Generated database backup files WeekStartOnDay=اولین روز هفته RunningUpdateProcessMayBeRequired=در حال اجرا عملیات ارتقا، به نظر می رسد لازم باشد (برنامه نسخه٪ s از پایگاه داده نسخه٪ s متفاوت است) YouMustRunCommandFromCommandLineAfterLoginToUser=شما باید این دستور از خط فرمان پس از ورود به یک پوسته با کاربر٪ s را اجرا کنید و یا شما باید گزینه در پایان خط فرمان افزودنی رمز عبور برای ارائه. diff --git a/htdocs/langs/fa_IR/banks.lang b/htdocs/langs/fa_IR/banks.lang index bf584a664bd..d0f2bcfeabd 100644 --- a/htdocs/langs/fa_IR/banks.lang +++ b/htdocs/langs/fa_IR/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/fa_IR/bills.lang b/htdocs/langs/fa_IR/bills.lang index aade7bffac1..3d21437a0ef 100644 --- a/htdocs/langs/fa_IR/bills.lang +++ b/htdocs/langs/fa_IR/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=کارت فاکتور PredefinedInvoices=فاکتورها از پیش تعریف شده Invoice=صورت حساب +PdfInvoiceTitle=صورت حساب Invoices=صورت حساب InvoiceLine=خط فاکتور InvoiceCustomer=صورت حساب به مشتری diff --git a/htdocs/langs/fa_IR/compta.lang b/htdocs/langs/fa_IR/compta.lang index 5a4510ef659..85736d60ce1 100644 --- a/htdocs/langs/fa_IR/compta.lang +++ b/htdocs/langs/fa_IR/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/fa_IR/errors.lang b/htdocs/langs/fa_IR/errors.lang index 276a2e9ec03..effa368eb67 100644 --- a/htdocs/langs/fa_IR/errors.lang +++ b/htdocs/langs/fa_IR/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/fa_IR/install.lang b/htdocs/langs/fa_IR/install.lang index 2dc950faccc..317c201950e 100644 --- a/htdocs/langs/fa_IR/install.lang +++ b/htdocs/langs/fa_IR/install.lang @@ -53,10 +53,10 @@ AdminLogin=ورود برای صاحب پایگاه داده Dolibarr. PasswordAgain=تکرار گذرواژه بار دوم AdminPassword=رمز عبور برای صاحب پایگاه داده Dolibarr. CreateDatabase=ایجاد پایگاه داده -CreateUser=ایجاد صاحب +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=بانک اطلاعات سرور - دسترسی به کاربران بالاتر را میدهد CheckToCreateDatabase=جعبه چک کنید اگر پایگاه داده وجود ندارد و باید ایجاد شود.
    در این مورد، شما باید وارد شوید / رمز عبور برای نام کاربر مدیر در پایین این صفحه را پر کنید. -CheckToCreateUser=جعبه چک کنید اگر صاحب پایگاه داده وجود ندارد و باید ایجاد شود.
    در این مورد، شما باید نام کاربری و رمز عبور خود را انتخاب کنید و همچنین ورود / رمز عبور در پایین این صفحه را پر کنید برای حساب کاربر مدیر. اگر این جعبه خالی، پایگاه داده مالک و کلمه عبور خود را باید وجود داشته باشد. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=ورود از کاربر مجاز به ایجاد پایگاه داده جدید و یا کاربران جدید، اجباری اگر بانک اطلاعاتی شما و یا صاحب آن می کند در حال حاضر وجود ندارد. KeepEmptyIfNoPassword=دیدگاهتان را خالی اگر کاربر هیچ رمز عبور (جلوگیری از این) SaveConfigurationFile=صرفه جویی در مقدار diff --git a/htdocs/langs/fa_IR/main.lang b/htdocs/langs/fa_IR/main.lang index d68747bc55c..84b71458f68 100644 --- a/htdocs/langs/fa_IR/main.lang +++ b/htdocs/langs/fa_IR/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=فایل با موفقیت آپلود شد -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=فایل برای پیوست انتخاب شده، اما هنوز ارسال نشده. بر روی "فایل ضمیمه" برای این کلیک کنید. NbOfEntries=Nb و از نوشته GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=پارامتر Parameters=پارامترها Value=ارزش PersonalValue=ارزش شخصی +NewObject=New %s NewValue=ارزش های جدید CurrentValue=ارزش کنونی Code=رمز @@ -441,6 +443,7 @@ Reporting=گزارش Reportings=گزارش Draft=پیش نویس Drafts=نوعی بازی چکرز +StatusInterInvoiced= Validated=اعتبار Opened=باز New=جدید @@ -727,6 +730,7 @@ SetBankAccount=تعریف حساب های بانکی AccountCurrency=حساب ارز ViewPrivateNote=مشاهده یادداشت XMoreLines=٪ خط (بازدید کنندگان) پنهان +ShowMoreLines=Show more lines PublicUrl=URL عمومی AddBox=اضافه کردن جعبه SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Gender Genderman=Man diff --git a/htdocs/langs/fa_IR/modulebuilder.lang b/htdocs/langs/fa_IR/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/fa_IR/modulebuilder.lang +++ b/htdocs/langs/fa_IR/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/fa_IR/orders.lang b/htdocs/langs/fa_IR/orders.lang index 985764a766f..d11a66e5f0e 100644 --- a/htdocs/langs/fa_IR/orders.lang +++ b/htdocs/langs/fa_IR/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=منطقه سفارشات تولید کنندگان OrderCard=کارت منظور OrderId=سفارش کد سفارش Order=سفارش +PdfOrderTitle=سفارش Orders=سفارشات OrderLine=خط منظور OrderDate=تاریخ سفارش diff --git a/htdocs/langs/fa_IR/other.lang b/htdocs/langs/fa_IR/other.lang index 4c2cd6caefe..073250b6c29 100644 --- a/htdocs/langs/fa_IR/other.lang +++ b/htdocs/langs/fa_IR/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/fa_IR/propal.lang b/htdocs/langs/fa_IR/propal.lang index 9aa36a10cec..2810bc388d9 100644 --- a/htdocs/langs/fa_IR/propal.lang +++ b/htdocs/langs/fa_IR/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=طرح تجاری پیش نویس ProposalsOpened=Open commercial proposals Prop=طرح های تجاری CommercialProposal=پیشنهاد تجاری +PdfCommercialProposalTitle=پیشنهاد تجاری ProposalCard=کارت های پیشنهادی NewProp=طرح تجاری جدید NewPropal=پیشنهاد جدید diff --git a/htdocs/langs/fa_IR/salaries.lang b/htdocs/langs/fa_IR/salaries.lang index eb488d53baf..6641ba267bd 100644 --- a/htdocs/langs/fa_IR/salaries.lang +++ b/htdocs/langs/fa_IR/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=حقوق Salaries=حقوق diff --git a/htdocs/langs/fa_IR/website.lang b/htdocs/langs/fa_IR/website.lang index 2dffe244283..094492623b9 100644 --- a/htdocs/langs/fa_IR/website.lang +++ b/htdocs/langs/fa_IR/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/fa_IR/workflow.lang b/htdocs/langs/fa_IR/workflow.lang index ee38a5ec4e5..3bb25e63283 100644 --- a/htdocs/langs/fa_IR/workflow.lang +++ b/htdocs/langs/fa_IR/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=راه اندازی ماژول گردش کار WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=طبقه بندی پیشنهاد منبع مربوط به صورتحساب در هنگام سفارش مشتری به پرداخت مجموعه -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=طبقه بندی مرتبط با سفارش مشتری منبع (بازدید کنندگان) صورتحساب زمانی که صورت حساب مشتری به پرداخت مجموعه -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=طبقه بندی مرتبط با سفارش مشتری منبع (بازدید کنندگان) صورتحساب زمانی که صورت حساب به مشتری اعتبار است -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/fi_FI/accountancy.lang b/htdocs/langs/fi_FI/accountancy.lang index e0ad50e67e3..c516c20b1c4 100644 --- a/htdocs/langs/fi_FI/accountancy.lang +++ b/htdocs/langs/fi_FI/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Kirjanpitoalue AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Tilin saldo - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=Kirjanpitotiliä ei ole valittu VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=ALV tiliä ei ole määritelty ThirdpartyAccountNotDefined=Sidosryhmän tiliä ei ole määritetty ProductAccountNotDefined=Tuotteen tiliä ei ole määritetty @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Koodi Nature=Luonto AccountingJournalType1=Various operation AccountingJournalType2=Myynti @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/fi_FI/admin.lang b/htdocs/langs/fi_FI/admin.lang index 6e19845dd24..76bfde351fa 100644 --- a/htdocs/langs/fi_FI/admin.lang +++ b/htdocs/langs/fi_FI/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Kehitysresurssit alueella SystemToolsAreaDesc=Tämä alue tarjoaa hallinnon ominaisuuksia. Käytä valikosta valita ominaisuus, jota etsit. Purge=Siivoa PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Poista Syslog modulin lokitiedosto %s (ei vaaraa tiedon menetyksestä) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Poista kaikki tiedostot hakemistoon %s. Väliaikaiset tiedostot, mutta myös liitetyt tiedostot elementtejä (kolmansien osapuolten, laskut, ...) ja siirretty osaksi ECM moduuli on poistettu. PurgeRunNow=Siivoa nyt PurgeNothingToDelete=Ei tuhottavia hakemistoja eikä tiedostoja. PurgeNDirectoriesDeleted= %s tiedostot tai hakemistot poistetaan. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Purge kaikki tapahtumat ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Luo varmuuskopio @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr nykyinen versio CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis yhdentyminen -Module1400Name=Kirjanpidon asiantuntija -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Moduuli tarjoaa online-maksu-sivulla luottokortilla PayPal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Lue alennukset Permission402=Luoda / muuttaa alennukset Permission403=Validate alennukset Permission404=Poista alennukset -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= Tämä sääntö on pakko %s on aktivoitu moduuli -PreviousDumpFiles=Käytettävissä oleva tietokanta taaksepäin dumpata arkistoida +PreviousDumpFiles=Generated database backup files WeekStartOnDay=Viikon ensimmäinen päivä RunningUpdateProcessMayBeRequired=Jatkuva päivitys näyttää olevan tarpeen (Ohjelmat versio %s eroaa versio tietokannasta %s) YouMustRunCommandFromCommandLineAfterLoginToUser=Sinun on suoritettava tämä komento komentoriviltä jälkeen kirjautua kuori käyttäjän %s. diff --git a/htdocs/langs/fi_FI/banks.lang b/htdocs/langs/fi_FI/banks.lang index 2e5de46bb4e..574d813d52c 100644 --- a/htdocs/langs/fi_FI/banks.lang +++ b/htdocs/langs/fi_FI/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Shekki palautunut ja lasku avautunut uudelleen BankAccountModelModule=Pankkitilien dokumenttimallit DocumentModelSepaMandate=SEPA valtuuden malli. Käyttökelpoinen vain EEC alueen valtioissa DocumentModelBan=BAN tiedon sisältävä tulostusmalli -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/fi_FI/bills.lang b/htdocs/langs/fi_FI/bills.lang index 62a4bdcf98a..1d97390b8a1 100644 --- a/htdocs/langs/fi_FI/bills.lang +++ b/htdocs/langs/fi_FI/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Lasku-kortti PredefinedInvoices=Ennalta Laskut Invoice=Lasku +PdfInvoiceTitle=Lasku Invoices=Laskut InvoiceLine=Laskun linja InvoiceCustomer=Asiakas lasku diff --git a/htdocs/langs/fi_FI/compta.lang b/htdocs/langs/fi_FI/compta.lang index b5757b3ccb9..38f2eda4cc8 100644 --- a/htdocs/langs/fi_FI/compta.lang +++ b/htdocs/langs/fi_FI/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/fi_FI/errors.lang b/htdocs/langs/fi_FI/errors.lang index be9b66629fd..f1aae8762e8 100644 --- a/htdocs/langs/fi_FI/errors.lang +++ b/htdocs/langs/fi_FI/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/fi_FI/install.lang b/htdocs/langs/fi_FI/install.lang index 786f51a9e15..c75da3c29d5 100644 --- a/htdocs/langs/fi_FI/install.lang +++ b/htdocs/langs/fi_FI/install.lang @@ -53,10 +53,10 @@ AdminLogin=Kirjautumistunnuksen Dolibarr tietokannan ylläpitäjä. Pidä tyhjä PasswordAgain=Kirjoita salasana uudelleen toisen kerran AdminPassword=Salasana Dolibarr tietokannan ylläpitäjä. Pidä tyhjä jos kytket nimettömässä CreateDatabase=Luo tietokanta -CreateUser=Luo käyttäjä +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Tietokanta - SuperUser pääsy CheckToCreateDatabase=Valintaruutu, jos tietokanta ei ole olemassa, ja ne on luotu.
    Tässä tapauksessa sinun täytyy täyttää tunnus / salasana SuperUser huomioon alareunassa tällä sivulla. -CheckToCreateUser=Valintaruutu, jos kirjautuminen ei ole olemassa, ja ne on luotu.
    Tässä tapauksessa sinun täytyy täyttää tunnus / salasana SuperUser huomioon alareunassa tällä sivulla. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Kirjaudu että käyttäjä voi luoda uusia tietokantoja tai uusia käyttäjiä, hyödytön, jos tietokanta ja tietokanta on jo olemassa (kuten silloin, kun olet isännöi Web hosting-palvelujen tarjoaja). KeepEmptyIfNoPassword=Jätä tyhjä, jos käyttäjä ei ole salasanaa (välttää) SaveConfigurationFile=Tallenna arvot diff --git a/htdocs/langs/fi_FI/main.lang b/htdocs/langs/fi_FI/main.lang index 6ddbc02b3e5..5df97f55cb6 100644 --- a/htdocs/langs/fi_FI/main.lang +++ b/htdocs/langs/fi_FI/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=Tiedosto on siirretty onnistuneesti -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=Tiedosto on valittu liite mutta ei ollut vielä ladattu. Klikkaa "Liitä tiedosto" tätä. NbOfEntries=Huom Merkintöjen GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parametri Parameters=Parametrit Value=Arvo PersonalValue=Henkilökohtainen arvo +NewObject=New %s NewValue=Uusi arvo CurrentValue=Nykyinen arvo Code=Koodi @@ -441,6 +443,7 @@ Reporting=Raportointi Reportings=Raportointi Draft=Vedos Drafts=Vedokset +StatusInterInvoiced= Validated=Vahvistetut Opened=Avoinna New=Uusi @@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account AccountCurrency=Tilin valuutta ViewPrivateNote=Katso huomiot XMoreLines=%s rivi(ä) piilossa +ShowMoreLines=Show more lines PublicUrl=Julkinen URL AddBox=Lisää laatikko SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Näytä pankkitilin kirjaus GoIntoSetupToChangeLogo=Vaihtaaksesi logoa mene Home - Setup - Company tai Home - Setup - Display poistaaksesi Deny=Kiellä Denied=Kielletty +ListOf=List of %s ListOfTemplates=List of templates Gender=Sukupuoli Genderman=Mies diff --git a/htdocs/langs/fi_FI/modulebuilder.lang b/htdocs/langs/fi_FI/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/fi_FI/modulebuilder.lang +++ b/htdocs/langs/fi_FI/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/fi_FI/orders.lang b/htdocs/langs/fi_FI/orders.lang index 67f1e9ab961..9e7071fd177 100644 --- a/htdocs/langs/fi_FI/orders.lang +++ b/htdocs/langs/fi_FI/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Tavarantoimittajien tilausalue OrderCard=Tilauskortti OrderId=Tilausnumero Order=Tilaus +PdfOrderTitle=Tilaus Orders=Tilaukset OrderLine=Tilaus linja OrderDate=Tilauspäivämäärä diff --git a/htdocs/langs/fi_FI/other.lang b/htdocs/langs/fi_FI/other.lang index b7153b0af83..f3e273a75ed 100644 --- a/htdocs/langs/fi_FI/other.lang +++ b/htdocs/langs/fi_FI/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/fi_FI/propal.lang b/htdocs/langs/fi_FI/propal.lang index 7838a26e5b6..d91ed638462 100644 --- a/htdocs/langs/fi_FI/propal.lang +++ b/htdocs/langs/fi_FI/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Tarjousluonnos ProposalsOpened=Open commercial proposals Prop=Tarjoukset CommercialProposal=Tarjous +PdfCommercialProposalTitle=Tarjous ProposalCard=Tarjous kortti NewProp=Uusi tarjous NewPropal=Uusi tarjous diff --git a/htdocs/langs/fi_FI/salaries.lang b/htdocs/langs/fi_FI/salaries.lang index e58fae86173..68cd52ce9ba 100644 --- a/htdocs/langs/fi_FI/salaries.lang +++ b/htdocs/langs/fi_FI/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Oletus kirjanpitotili henkilöstökuluille Salary=Palkka Salaries=Palkat diff --git a/htdocs/langs/fi_FI/website.lang b/htdocs/langs/fi_FI/website.lang index 5467f426527..74b4a5004a5 100644 --- a/htdocs/langs/fi_FI/website.lang +++ b/htdocs/langs/fi_FI/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/fi_FI/workflow.lang b/htdocs/langs/fi_FI/workflow.lang index d84f837e853..a2e45fe20fa 100644 --- a/htdocs/langs/fi_FI/workflow.lang +++ b/htdocs/langs/fi_FI/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Workflow-moduuli asennus WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/fr_BE/compta.lang b/htdocs/langs/fr_BE/compta.lang index e2c889c3ed2..985741d0aff 100644 --- a/htdocs/langs/fr_BE/compta.lang +++ b/htdocs/langs/fr_BE/compta.lang @@ -1,4 +1,8 @@ # Dolibarr language file - Source file is en_US - compta +VATReceived=VAT received +VATToCollect=VAT purchases +VATSummary=VAT Balance +VATPaid=VAT paid SalesTurnover=Chiffre d'affaires des ventes Dispatched=Envoyé ToDispatch=Envoyer diff --git a/htdocs/langs/fr_CA/accountancy.lang b/htdocs/langs/fr_CA/accountancy.lang index 045c2f24504..e2c2bef7381 100644 --- a/htdocs/langs/fr_CA/accountancy.lang +++ b/htdocs/langs/fr_CA/accountancy.lang @@ -31,7 +31,6 @@ AccountancyAreaDescExpenseReport=STEP %s: définissez les comptes comptables par AccountancyAreaDescSal=Étape %s: définissez les comptes comptables par défaut pour le paiement des salaires. Pour cela, utilisez l'entrée de menu %s. AccountancyAreaDescContrib=Étape %s: définissez les comptes comptables par défaut pour les dépenses spéciales (taxes diverses). Pour cela, utilisez l'entrée de menu %s. AccountancyAreaDescDonation=Étape %s: définissez les comptes comptables par défaut pour le don. Pour cela, utilisez l'entrée de menu %s. -AccountancyAreaDescMisc=STEP %s: définissez les comptes comptables par défaut pour les transactions diverses. Pour cela, utilisez l'entrée de menu %s. AccountancyAreaDescLoan=Étape %s: définissez les comptes comptables par défaut pour les prêts. Pour cela, utilisez l'entrée de menu %s. AccountancyAreaDescBank=ÉTAPE %s: définissez les comptes comptables de chaque banque et compte financier. Pour cela, passez la carte de chaque compte financier. Vous pouvez commencer à partir de la page %s. AccountancyAreaDescProd=STEP %s: définissez les comptes comptables sur vos produits / services. Pour cela, utilisez l'entrée de menu %s. @@ -66,7 +65,6 @@ EndProcessing=Processus terminé. LineOfExpenseReport=Ligne de rapport de dépenses NoAccountSelected=Aucun compte comptable sélectionné VentilatedinAccount=Lié avec succès au compte comptable -XLineSuccessfullyBinded=%s produits / services liés avec succès à un compte comptable XLineFailedToBeBinded=%s produits / services n'étaient liés à aucun compte comptable ACCOUNTING_LIMIT_LIST_VENTILATION=Nombre d'éléments à lier affichés par page (maximum recommandé: 50) ACCOUNTING_LIST_SORT_VENTILATION_TODO=Commencez le tri de la page "Reliure à faire" par les éléments les plus récents @@ -91,7 +89,6 @@ DelBookKeeping=Supprimer l'enregistrement du Ledger FinanceJournal=Journal des finances ExpenseReportsJournal=Journal des rapports de dépenses DescFinanceJournal=Journal de banque comprenant tous les types de règlements autres que espèce\t -DescJournalOnlyBindedVisible=Il s'agit d'une vue d'ensemble qui est liée au compte de comptabilité des produits / services et peut être enregistrée dans le Ledger. VATAccountNotDefined=Compte pour la TVA non définie ThirdpartyAccountNotDefined=Compte pour un tiers non défini ProductAccountNotDefined=Compte pour produit non défini @@ -114,7 +111,6 @@ DescVentilExpenseReport=Consultez ici la liste des lignes de rapport de dépense DescVentilExpenseReportMore=Si vous configurez un compte comptable sur le type de lignes de rapport de dépenses, l'application sera en mesure d'établir toute la liaison entre vos lignes de rapport de dépenses et le compte comptable de votre plan comptable, en un clic avec le bouton "%s". Si le compte n'a pas été défini sur le dictionnaire des tarifs ou si vous avez encore certaines lignes qui ne sont liées à aucun compte, vous devrez effectuer une liaison manuelle à partir du menu "%s". DescVentilDoneExpenseReport=Consultez ici la liste des rapports des lignes de dépenses et de leurs comptes comptables AutomaticBindingDone=Liaison automatique effectuée -MvtNotCorrectlyBalanced=Le mouvement n'est pas correctement équilibré. Crédit = %s. Débit = %s FicheVentilation=Carte de reliure GeneralLedgerIsWritten=Les transactions sont écrites dans le Ledger GeneralLedgerSomeRecordWasNotRecorded=Certaines transactions n'ont pas pu être envoyées. S'il n'y a pas d'autre message d'erreur, c'est probablement parce qu'ils ont déjà été envoyés. diff --git a/htdocs/langs/fr_CA/admin.lang b/htdocs/langs/fr_CA/admin.lang index 2bacefb10cd..555b82fa0ca 100644 --- a/htdocs/langs/fr_CA/admin.lang +++ b/htdocs/langs/fr_CA/admin.lang @@ -29,7 +29,6 @@ MaxNbOfLinesForBoxes=Nombre maximum de lignes pour les widgets MenusDesc=Les gestionnaires de menu définissent le contenu des deux barres de menus (horizontales et verticales). MenusEditorDesc=L'éditeur de menu vous permet de définir des entrées de menu personnalisées. Utilisez-le soigneusement pour éviter l'instabilité et les entrées de menu inaccessibles en permanence.
    Certains modules ajoutent des entrées de menu (dans le menu Tous principalement). Si vous supprimez certaines de ces entrées par erreur, vous pouvez les restaurer en désactivant et en redéfinissant le module. PurgeAreaDesc=Cette page vous permet de supprimer tous les fichiers générés ou stockés par Dolibarr (fichiers temporaires ou tous les fichiers dans le répertoire %s). L'utilisation de cette fonctionnalité n'est pas nécessaire. Il est fourni en tant que solution de contournement pour les utilisateurs dont Dolibarr est hébergé par un fournisseur qui n'offre pas d'autorisations pour supprimer les fichiers générés par le serveur Web. -PurgeDeleteLogFile=Supprimer le fichier journal %s défini pour le module Syslog (sans risque de perte de données) PurgeDeleteTemporaryFiles=Supprimez tous les fichiers temporaires (pas de risque de perte de données) PurgeDeleteTemporaryFilesShort=Supprimer les fichiers temporaires PurgeNothingToDelete=Pas de répertoire ou de fichiers à supprimer. @@ -69,7 +68,6 @@ SetupIsReadyForUse=Le déploiement du module est terminé. Vous devez toutefois NotExistsDirect=Le répertoire racine alternatif n'est pas défini dans un répertoire existant. InfDirAlt=Depuis la version 3, il est possible de définir un autre répertoire racine. Cela vous permet de stocker, dans un répertoire dédié, des plug-ins et des modèles personnalisés.
    Créez simplement un répertoire à la racine de Dolibarr (par exemple: personnalisé). InfDirExample=
    Puis déclarer dans le fichier conf.php
    $ dolibarr_main_url_root_alt = 'http: // myserver / custom'
    $ dolibarr_main_document_root_alt = '/ path / of / dolibarr / htdocs / Custom '
    Si ces lignes sont commentées avec "#", pour les activer, il suffit de faire un commentaire en supprimant le caractère "#". -YouCanSubmitFile=Sélectionner le module : CallUpdatePage=Accédez à la page qui met à jour la structure et les données de la base de données: %s. LastStableVersion=Dernière version stable LastActivationDate=Dernière date d'activation @@ -157,7 +155,6 @@ Module20000Name=Gestion des demandes de congès Module20000Desc=Déclaration et suivi des congès des employés Module39000Name=Lot/Série du produit Module50100Desc=Module de point de vente (POS). -Module50400Desc=Gestion de la comptabilité (partie double) Module55000Name=Sondage, enquête ou vote Module55000Desc=Module pour faire des sondages en ligne, des enquêtes ou des votes (comme Doodle , Studs , Rdvz , ... ) Module63000Desc=Gérer les ressources (imprimantes, voitures, salles, ...) vous pouvez ensuite partager vos événements diff --git a/htdocs/langs/fr_CA/banks.lang b/htdocs/langs/fr_CA/banks.lang index 6a3fbaaa9c8..86feb35c9f2 100644 --- a/htdocs/langs/fr_CA/banks.lang +++ b/htdocs/langs/fr_CA/banks.lang @@ -51,7 +51,3 @@ CheckRejected=Chèque renvoyé CheckRejectedAndInvoicesReopened=Chèques retournés et factures rouvertes DocumentModelSepaMandate=Modèle de mandat SEPA. Utile pour les pays européens en CEE seulement. DocumentModelBan=Modèle pour imprimer une page avec des informations BAN. -NewVariousPayment=Nouveau paiement varié -VariousPayment=Paiement varié -VariousPayments=Différents paiements -ShowVariousPayment=Afficher divers paiements diff --git a/htdocs/langs/fr_CA/compta.lang b/htdocs/langs/fr_CA/compta.lang index 83c937e8801..21903306a49 100644 --- a/htdocs/langs/fr_CA/compta.lang +++ b/htdocs/langs/fr_CA/compta.lang @@ -74,9 +74,7 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Compte comptable par défaut pour la perception de l ACCOUNTING_VAT_BUY_ACCOUNT=Compte comptable par défaut pour la TVA récupérée - TVA sur les achats (utilisé si non défini sur la configuration du dictionnaire TVA) ACCOUNTING_VAT_PAY_ACCOUNT=Compte comptable par défaut pour payer la TVA ACCOUNTING_ACCOUNT_CUSTOMER=Compte comptable utilisé pour les tiers clients -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Le compte comptable dédié défini sur une carte tierce sera utilisé pour la comptabilisation de Subledger, celui-ci pour le grand livre général ou la valeur par défaut de la comptabilité de Sous-compte si le compte dédié d'accoutant au client sur un tiers n'est pas défini ACCOUNTING_ACCOUNT_SUPPLIER=Compte comptable utilisé pour les tiers fournisseurs -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Le compte comptable dédié défini sur une carte tierce sera utilisé pour l'affectation de logiciels afférent, celui-ci pour le grand livre général ou la valeur par défaut de la comptabilité de sous-compte si le compte dédié d'accoutant du fournisseur sur un tiers n'est pas défini CloneTax=Cloner une charge sociale ConfirmCloneTax=Confirmer le clonage de la charge sociale AddExtraReport=Rapports supplémentaires (ajouter un rapport client étranger et national) diff --git a/htdocs/langs/fr_CA/modulebuilder.lang b/htdocs/langs/fr_CA/modulebuilder.lang index 9914ef82026..a45cae2fbc8 100644 --- a/htdocs/langs/fr_CA/modulebuilder.lang +++ b/htdocs/langs/fr_CA/modulebuilder.lang @@ -5,5 +5,6 @@ ModuleBuilderDescpermissions=Cet onglet est dédié à définir les nouvelles au ModuleBuilderDeschooks=Cet onglet est dédié aux crochets. ModuleBuilderDescwidgets=Cet onglet est dédié à la gestion / création de widgets. DangerZone=Zone dangereuse +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=Ce module a été activé. Toute modification peut briser une caractéristique active actuelle. DescriptionLong=Longue description diff --git a/htdocs/langs/fr_CA/multicurrency.lang b/htdocs/langs/fr_CA/multicurrency.lang index 6082b9b76bb..8ef94fc7350 100644 --- a/htdocs/langs/fr_CA/multicurrency.lang +++ b/htdocs/langs/fr_CA/multicurrency.lang @@ -3,7 +3,6 @@ ErrorAddRateFail=Erreur dans le taux ajouté ErrorAddCurrencyFail=Erreur dans la monnaie ajoutée ErrorDeleteCurrencyFail=Erreur de suppression d'échec multicurrency_syncronize_error=Erreur de synchronisation: %s -multicurrency_useOriginTx=Lorsqu'un objet est créé à partir d'un autre, gardez le taux d'origine de l'objet source (sinon utilisez le nouveau taux connu) CurrencyLayerAccount_help_to_synchronize=Vous devriez créer un compte sur leur site Web pour utiliser cette fonctionnalité
    Obtenez votre clé API
    Si vous utilisez un compte gratuit, vous ne pouvez pas modifier la source de devises(USD par défaut)
    Mais si votre devise principale n'est pas USD, vous pouvez utiliser la source de devise alternative pour vous forcer la monnaie principale

    Vous êtes limité À 1000 synchronisations par mois multicurrency_appCurrencySource=Source de devises multicurrency_alternateCurrencySource=Autre devise souce diff --git a/htdocs/langs/fr_CA/stocks.lang b/htdocs/langs/fr_CA/stocks.lang index e09f4791145..8522f87f48b 100644 --- a/htdocs/langs/fr_CA/stocks.lang +++ b/htdocs/langs/fr_CA/stocks.lang @@ -49,7 +49,6 @@ StockLimitShort=Limite d'alerte StockLimit=Limite de stock pour l'alerte RealStockDesc=Le stock physique ou réel est le stock que vous avez actuellement dans vos entrepôts / emplacements internes. RealStockWillAutomaticallyWhen=Le stock réel changera automatiquement en fonction de ces règles (voir la configuration du module stock pour le modifier): -VirtualStock=Stock virtuel VirtualStockDesc=Le stock virtuel est le stock que vous obtiendrez une fois que toutes les actions ouvertes pendantes qui affectent les stocks seront fermées (commande fournisseur reçue, commande client expédiée, ...) IdWarehouse=Id entrepôt LieuWareHouse=Entrepôt de localisation @@ -75,7 +74,6 @@ UseVirtualStockByDefault=Utilisez le stock virtuel par défaut, au lieu du stock UseVirtualStock=Utiliser un stock virtuel UsePhysicalStock=Utiliser un stock physique CurentSelectionMode=Mode de sélection actuel -CurentlyUsingVirtualStock=Stock virtuel CurentlyUsingPhysicalStock=Stock physique RuleForStockReplenishment=Règle pour la reconstitution des stocks AlertOnly=Alertes uniquement diff --git a/htdocs/langs/fr_CA/website.lang b/htdocs/langs/fr_CA/website.lang index bfd090806e5..037b01b18f3 100644 --- a/htdocs/langs/fr_CA/website.lang +++ b/htdocs/langs/fr_CA/website.lang @@ -6,15 +6,16 @@ WEBSITE_PAGENAME=Nom / alias de la page WEBSITE_CSS_URL=URL du fichier CSS externe WEBSITE_CSS_INLINE=Contenu CSS MediaFiles=Médiathèque -EditCss=Modifier style / CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Menu Edition EditPageMeta=Modifier Meta EditPageContent=Modifier le contenu Website=Site Internet -Webpage=page web +Webpage=Web page/container +AddPage=Add page/container PreviewOfSiteNotYetAvailable=Aperçu de votre site web %s n'est pas encore disponible. Vous devez d'abord ajouter une page. -PageDeleted=Page '%s' du site %s supprimé -PageAdded=La page '%s' a ajouté +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=Afficher le site dans un nouvel onglet ViewPageInNewTab=Afficher la page dans un nouvel onglet ViewWebsiteInProduction=Afficher le site Web à l'aide d'URL d'accueil diff --git a/htdocs/langs/fr_CA/workflow.lang b/htdocs/langs/fr_CA/workflow.lang index e0f853db9e4..18356f83120 100644 --- a/htdocs/langs/fr_CA/workflow.lang +++ b/htdocs/langs/fr_CA/workflow.lang @@ -2,12 +2,4 @@ WorkflowSetup=Configuration du module de workflow WorkflowDesc=Ce module est conçu pour modifier le comportement des actions automatiques en application. Par défaut, le workflow est ouvert (vous pouvez faire les choses dans l'ordre que vous voulez) . Vous pouvez activer les actions automatiques qui vous intéressent . ThereIsNoWorkflowToModify=Il n'y a pas de modification de flux de travail disponibles avec les modules activés . -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Créer automatiquement une commande client après une proposition commerciale est signée -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Créer automatiquement une facture client après une proposition commerciale est signée descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Créer automatiquement une facture client après un contrat est validé -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Crée automatiquement une facture client après la fermeture d'une commande client -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classez proposition source liée à bec lors de la commande du client est réglé sur payé -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classez commande client source liée(s) à bec lorsque la facture client est réglé sur payé -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classez ordre lié source de client(s) à bec lorsque la facture client est validée -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classer la proposition de source liée à facturer lorsque la facture du client est validée -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classer l'ordre source lié à l'expédition lorsqu'un envoi est validé et la quantité expédiée est identique à celle de l'ordre diff --git a/htdocs/langs/fr_FR/accountancy.lang b/htdocs/langs/fr_FR/accountancy.lang index 7c1738a0ff9..d185ec9b83a 100644 --- a/htdocs/langs/fr_FR/accountancy.lang +++ b/htdocs/langs/fr_FR/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Vue d'ensemble du nombre de lignes liées à un com OtherInfo=Autre information DeleteCptCategory=Supprimer le code comptable du groupe ConfirmDeleteCptCategory=Êtes-vous sur de vouloir supprimer ce compte comptable du groupe comptable ? +JournalizationInLedgerStatus=Statut de journalisation AlreadyInGeneralLedger=Enregistrement déjà présent dans le grand livre +NotYetInGeneralLedger=non encore envoyé dans le grand livre + +MainAccountForCustomersNotDefined=Compte comptable général pour les clients sans compte dédié +MainAccountForSuppliersNotDefined=Compte comptable général pour les fournisseurs sans compte dédié +MainAccountForUsersNotDefined=Compte comptable général pour les utilisateurs sans compte dédié +MainAccountForVatPaymentNotDefined=Compte comptable général pour les paiements de TVA sans compte dédié AccountancyArea=Espace comptabilité AccountancyAreaDescIntro=L'utilisation du module de comptabilité se fait en plusieurs étapes: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=Étape %s : Définissez les comptes comptables AccountancyAreaDescSal=Étape %s : Définissez les comptes comptables de paiements de salaires. Pour cela, suivez le menu suivant %s. AccountancyAreaDescContrib=Étape %s : Définissez les comptes comptables des dépenses spéciales (taxes diverses). Pour cela, suivez le menu suivant %s. AccountancyAreaDescDonation=Étape %s : Définissez le compte comptable par défaut des dons. Pour cela, suivez le menu suivant %s. -AccountancyAreaDescMisc=Étape %s : Définissez les comptes comptables par défaut. Pour cela, suivez le menu suivant %s. +AccountancyAreaDescMisc=ÉTAPE 1%s : définissez le compte par défaut obligatoire et les comptes comptables par défaut pour les transactions diverses. Pour cela, utilisez l'entrée du menu 1%s. AccountancyAreaDescLoan=Étape %s : Définissez les comptes comptables par défaut des emprunts. Pour cela, suivez le menu suivant %s. AccountancyAreaDescBank=Étape %s : Définissez les comptes comptables de chaque compte bancaire ou financier. Vous pouvez commencer à partir de la page %s. AccountancyAreaDescProd=Étape %s : Définissez les comptes comptables sur vos produits/services. Pour cela, suivez le menu suivant %s. @@ -79,11 +86,11 @@ SuppliersVentilation=Liaison factures fournisseur ExpenseReportsVentilation=Liaison notes de frais CreateMvts=Créer nouvelle transaction UpdateMvts=Modification d'une transaction -ValidTransaction=Validate transaction +ValidTransaction=Valider la traduction WriteBookKeeping=Inscrire les transactions dans le grand livre Bookkeeping=Grand livre AccountBalance=Balance des comptes - +ObjectsRef=Référence de l'objet source CAHTF=Total achat fournisseur HT TotalExpenseReport=Total note de frais InvoiceLines=Lignes de factures à ventiler @@ -103,7 +110,7 @@ LineOfExpenseReport=Ligne de note de frais NoAccountSelected=Pas de compte comptable sélectionné VentilatedinAccount=Liée avec succès sur compte comptable NotVentilatedinAccount=Non lié au compte comptable -XLineSuccessfullyBinded=%s produits/services liés avec succès à un compte comptable +XLineSuccessfullyBinded=%s produits/service correctement liés à un compte comptable XLineFailedToBeBinded=%s produits/services n'ont pu être liés à un compte comptable ACCOUNTING_LIMIT_LIST_VENTILATION=Nombre d'éléments à lier représentés par page (maximum recommandé: 50) @@ -154,7 +161,7 @@ DelBookKeeping=Supprimer l'enregistrement du grand livre FinanceJournal=Journal de trésorerie ExpenseReportsJournal=Journal des notes de frais DescFinanceJournal=Journal de trésorerie comprenant tous les types de paiements par compte bancaire / caisse -DescJournalOnlyBindedVisible=Ceci est une vue des enregistrements qui sont liés à un compte comptable produits/services et qui peuvent être enregistrés dans le grand livre. +DescJournalOnlyBindedVisible=Vue des enregistrements liés à des comptes comptable qui peuvent être enregistrés dans le grand livre. VATAccountNotDefined=Compte de la TVA non défini ThirdpartyAccountNotDefined=Compte pour le tiers non défini ProductAccountNotDefined=Compte pour le produit non défini @@ -170,6 +177,8 @@ AddCompteFromBK=Ajouter un code comptable au groupe ReportThirdParty=Liste des comptes tiers DescThirdPartyReport=Consultez ici la liste des tiers clients et fournisseurs et leurs codes comptables ListAccounts=Liste des comptes comptables +UnknownAccountForThirdparty=Compte de tiers inconnu. %s sera utilisé +UnknownAccountForThirdpartyBlocking=Compte de tiers inconnu. Erreur bloquante. Pcgtype=Classe de compte Pcgsubtype=Sous-classe de compte @@ -194,7 +203,7 @@ ValidateHistory=Lier automatiquement AutomaticBindingDone=Liaison automatique faite ErrorAccountancyCodeIsAlreadyUse=Erreur, vous ne pouvez pas détruire de compte comptable car il est utilisé -MvtNotCorrectlyBalanced=Le mouvement n'est pas équilibré. Crédit = %s. Débit = %s +MvtNotCorrectlyBalanced=Mouvement non équilibré. Crédit = %s. Débit = %s FicheVentilation=Fiche lien GeneralLedgerIsWritten=Les transactions sont enregistrées dans le grand livre GeneralLedgerSomeRecordWasNotRecorded=Certaines des opérations n'ont pu être enregistrées. S'il n'y a pas d'autres messages, c'est probablement car elles sont déjà enregistrées. @@ -210,7 +219,6 @@ AccountingJournals=Journaux comptables AccountingJournal=Journal comptable NewAccountingJournal=Nouveau journal comptable ShowAccoutingJournal=Afficher le journal -Code=Code Nature=Nature AccountingJournalType1=Opérations Diverses AccountingJournalType2=Ventes @@ -221,9 +229,7 @@ AccountingJournalType9=A-nouveaux ErrorAccountingJournalIsAlreadyUse=Le journal est déjà utilisé ## Export -Exports=Exports -Export=Exporter -ExportDraftJournal=Exporter le brouillard +ExportDraftJournal=Exporter le journal brouillon Modelcsv=Modèle d'export OptionsDeactivatedForThisExportModel=Pour ce modèle d'export, les options sont désactivées Selectmodelcsv=Sélectionner un modèle d'export diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index fb1ac85b8a3..a5338997eb2 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Espace outils systèmes SystemToolsAreaDesc=Cet espace offre des fonctions d'administration diverses. Utilisez le menu pour choisir la fonctionnalité recherchée. Purge=Purger PurgeAreaDesc=Cette page vous permet d'effacer tous les fichiers construits ou stockés par Dolibarr (fichiers temporaires ou tous les fichiers du répertoire %s). L'utilisation de cette fonction n'est pas nécessaire. Elle est fournie pour les utilisateurs qui hébergent Dolibarr chez un hébergeur qui n'offre pas les permissions de supprimer les fichiers sauvegardés par le serveur Web. -PurgeDeleteLogFile=Effacer le fichier de traces de debug %s défini pour le module 'Journaux et traces' (pas de risque de perte de données) +PurgeDeleteLogFile=Effacer les fichiers de traces de debug, incluant %s défini pour le module 'Journaux et traces' (pas de risque de perte de données) PurgeDeleteTemporaryFiles=Effacer tous les fichiers temporaires (pas de risque de perte de données) PurgeDeleteTemporaryFilesShort=Effacer les fichiers temporaires PurgeDeleteAllFilesInDocumentsDir=Effacer tous les fichiers du répertoire %s. Les fichiers temporaires mais aussi les fichiers « dumps » de sauvegarde de base de données, les fichiers joints aux éléments (tiers, factures, ...) ou fichiers stockés dans le module GED seront irrémédiablement effacés. PurgeRunNow=Lancer la purge maintenant PurgeNothingToDelete=Aucun dossier ou fichier à supprimer. PurgeNDirectoriesDeleted=%s fichiers ou répertoires supprimés. +PurgeNDirectoriesFailed=Echec de la suppression des fichiers ou du répertoire '%s'. PurgeAuditEvents=Purger les événements d'audit de sécurité ConfirmPurgeAuditEvents=Êtes vous sûr de vouloir purger la liste des événements d'audit de sécurité. Toute la liste sera effacée, mais ceci est sans conséquence sur vos autres données. GenerateBackup=Générer sauvegarde @@ -298,7 +299,7 @@ SetupIsReadyForUse=L"installation du module est terminée. Il est cependant néc NotExistsDirect=Le dossier racine alternatif n'est pas défini.
    InfDirAlt=Depuis les versions 3, il est possible de définir un dossier racine alternatif. Cela permet d'installer modules et thèmes additionnels dans un répertoire dédié.
    Créer un dossier racine alternatif à Dolibarr (ex : custom).
    InfDirExample=
    Ensuite, déclarer ceci dans le fichier conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    Si ces lignes sont commentées avec un symbole "#" ou "//", activer les en supprimant le caractère "#" ou "//". -YouCanSubmitFile=Pour cette étape, vous pouvez soumettre votre package en utilisant cet outil: Sélectionner le fichier du module +YouCanSubmitFile=Pour cette étape, vous pouvez soumettre votre fichier package ici : CurrentVersion=Version actuelle de Dolibarr CallUpdatePage=Aller à la page de mise à jour de la structure et des données de la base : %s. LastStableVersion=Dernière version stable disponible @@ -535,8 +536,6 @@ Module1120Name=Propositions commerciales fournisseurs Module1120Desc=Demander des devis et tarifs aux fournisseurs Module1200Name=Mantis Module1200Desc=Interface avec le bug tracker Mantis -Module1400Name=Comptabilité -Module1400Desc=Comptabilité double partie Module1520Name=Génération de document Module1520Desc=Génération de documents de publipostages Module1780Name=Libellés/Catégories @@ -585,7 +584,7 @@ Module50100Desc=Module Caisse enregistreuse - Point de vente (POS) Module50200Name=Paypal Module50200Desc=Module permettant d'offrir en ligne une page de paiement par carte de crédit avec Paypal Module50400Name=Comptabilité (avancée) -Module50400Desc=Comptabilité double partie +Module50400Desc=Gestion de la comptabilité (double partie, comptes généraux et auxiliaires) Module54000Name=PrintIPP Module54000Desc=Impression directe (sans ouvrir les documents) en utilisant l'interface Cups IPP (l'imprimante doit être visible depuis le serveur, et CUPS doit être installé sur le serveur). Module55000Name=Sondage ou Vote @@ -751,8 +750,10 @@ Permission401=Consulter les avoirs Permission402=Créer/modifier les avoirs Permission403=Valider les avoirs Permission404=Supprimer les avoirs -Permission510=Consulter les salaires -Permission512=Créer/modifier les salaires +Permission501=Lire les fiches des contrats/salaires +Permission502=Créer/modifier les contrats/salaires des employés +Permission511=Lire les règlements de salaires +Permission512=Créer/modifier les règlements de salaires Permission514=Supprimer les salaires Permission517=Exporter les salaires Permission520=Consulter les emprunts @@ -971,7 +972,7 @@ CompanyZip=Code postal CompanyTown=Ville CompanyCountry=Pays CompanyCurrency=Devise principale -CompanyObject=L'objet de la société +CompanyObject=Objet de la société Logo=Logo DoNotSuggestPaymentMode=Ne pas suggérer NoActiveBankAccountDefined=Aucun compte bancaire actif défini @@ -1057,7 +1058,7 @@ RestoreDesc2=Restaurez le fichier archive (fichier zip par exemple) du répertoi RestoreDesc3=Restaurez les données, depuis le fichier « dump » de sauvegarde, dans la base de données d'une nouvelle installation de Dolibarr ou de cette instance en cours (%s). Attention, une fois la restauration faite, il faudra utiliser un identifiant/mot de passe administrateur existant à l'époque de la sauvegarde pour se connecter. Pour restaurer la base dans l'installation actuelle, vous pouvez utiliser l'assistant suivant. RestoreMySQL=Importation MySQL ForcedToByAModule= Cette règle est forcée à %s par un des modules activés -PreviousDumpFiles=Fichiers de sauvegarde de la base de données disponibles +PreviousDumpFiles=Fichiers de sauvegarde de la base de données générés WeekStartOnDay=Premier jour de la semaine RunningUpdateProcessMayBeRequired=Le lancement du processus de mise à jour semble requis (La version des programmes %s diffère de la version de la base %s) YouMustRunCommandFromCommandLineAfterLoginToUser=Vous devez exécuter la commande sous un terminal après vous être identifié avec le compte %s ou ajouter -W à la fin de la commande pour fournir le mot de passe de %s. diff --git a/htdocs/langs/fr_FR/agenda.lang b/htdocs/langs/fr_FR/agenda.lang index 212abf31e25..bf3b567b631 100644 --- a/htdocs/langs/fr_FR/agenda.lang +++ b/htdocs/langs/fr_FR/agenda.lang @@ -84,7 +84,7 @@ DateActionStart=Date de début DateActionEnd=Date de fin AgendaUrlOptions1=Vous pouvez aussi ajouter les paramètres suivants pour filtrer les réponses : AgendaUrlOptions3=logina=%s pour limiter l'export aux actions dont l'utilisateur %s est propriétaire. -AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptionsNotAdmin=logina=!%s pour restreindre l'affichage aux actions non assignées à l'utilisateur %s. AgendaUrlOptions4=logint=%spour limiter l'affichage aux actions assignées à l'utilisateur %s (propriétaire et autres). AgendaUrlOptionsProject=project=PROJECT_ID pour restreindre aux événements associés au projet PROJECT_ID. AgendaShowBirthdayEvents=Afficher les anniversaires de contacts diff --git a/htdocs/langs/fr_FR/banks.lang b/htdocs/langs/fr_FR/banks.lang index c28a15a6e16..1098609f1a4 100644 --- a/htdocs/langs/fr_FR/banks.lang +++ b/htdocs/langs/fr_FR/banks.lang @@ -38,6 +38,9 @@ AccountStatement=Relevé AccountStatementShort=Relevé AccountStatements=Relevés LastAccountStatements=Derniers relevés bancaires +AutoReportLastAccountStatement=Proposer automatiquement le dernier relevé bancaire rapproché +BankAccountReleveModule=Rapprochement relevés bancaires +Conciliated=Rapproché IOMonthlyReporting=Rapport mensuel E/S BankAccountDomiciliation=Domiciliation du compte BankAccountCountry=Pays du compte @@ -151,7 +154,7 @@ CheckRejectedAndInvoicesReopened=Chèque rejeté et factures réouvertes BankAccountModelModule=Modèles de documents pour les comptes bancaires DocumentModelSepaMandate=Modèle de mandat SEPA. Utile pour les pays européens de la CEE seulement. DocumentModelBan=Modèle pour imprimer une page avec des informations du compte bancaire. -NewVariousPayment=Nouveau paiement divers -VariousPayment=Paiement divers -VariousPayments=Paiements divers -ShowVariousPayment=Afficher les paiements divers +NewVariousPayment=Nouvelle opération diverse +VariousPayment=Opérations diverses +VariousPayments=Opérations diverses +ShowVariousPayment=Afficher les opérations diverses diff --git a/htdocs/langs/fr_FR/bills.lang b/htdocs/langs/fr_FR/bills.lang index 40602533bf9..913ff439ecc 100644 --- a/htdocs/langs/fr_FR/bills.lang +++ b/htdocs/langs/fr_FR/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Cette facture a déjà fait l'objet d'un ou plusieurs avoirs. CardBill=Fiche facture PredefinedInvoices=Facture modèles Invoice=Facture +PdfInvoiceTitle=Facture Invoices=Factures InvoiceLine=Ligne de facture InvoiceCustomer=Facture client diff --git a/htdocs/langs/fr_FR/commercial.lang b/htdocs/langs/fr_FR/commercial.lang index bef770d044f..01e9e885569 100644 --- a/htdocs/langs/fr_FR/commercial.lang +++ b/htdocs/langs/fr_FR/commercial.lang @@ -19,7 +19,7 @@ ShowTask=Afficher tâche ShowAction=Afficher événement ActionsReport=Rapport des événements ThirdPartiesOfSaleRepresentative=Tiers ayant pour commercial -SaleRepresentativesOfThirdParty=Commerciaux d'un tiers +SaleRepresentativesOfThirdParty=Commerciaux du tiers SalesRepresentative=Commercial SalesRepresentatives=Commerciaux SalesRepresentativeFollowUp=Commercial (suivi) diff --git a/htdocs/langs/fr_FR/compta.lang b/htdocs/langs/fr_FR/compta.lang index ae51312a5f7..bf89f51d5c7 100644 --- a/htdocs/langs/fr_FR/compta.lang +++ b/htdocs/langs/fr_FR/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Compte comptable par défaut pour l'encaissement de ACCOUNTING_VAT_BUY_ACCOUNT=Compte comptable par défaut pour le paiement de la TVA - TVA sur les achats (utilisé si non défini au niveau de la configuration du dictionnaire de TVA) ACCOUNTING_VAT_PAY_ACCOUNT=Compte comptable par défaut pour le paiement de la TVA ACCOUNTING_ACCOUNT_CUSTOMER=Compte comptable utilisé pour le tiers client -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Le compte comptable dédié défini sur une carte tierce sera utilisé pour l'affectation de comptes de Subledger, celui-ci pour le grand livre ou comme valeur par défaut de la comptabilité de Sous-compte si le compte dépendant d'un compte sur un tiers n'est pas défini +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Compte comptable utilisé pour le tiers fournisseur -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Le compte comptable dédié défini sur une carte tierce sera utilisé pour la comptabilisation de Subledger, celui-ci pour le grand livre général ou la valeur par défaut de la comptabilité de Sous-compte si le compte dédié d'accoutant du fournisseur sur un tiers n'est pas défini +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Cloner une charge sociale/fiscale ConfirmCloneTax=Confirmez le clone du paiement de charge sociale/fiscale CloneTaxForNextMonth=Cloner pour le mois suivant diff --git a/htdocs/langs/fr_FR/cron.lang b/htdocs/langs/fr_FR/cron.lang index fee4f308444..d2fc39a6860 100644 --- a/htdocs/langs/fr_FR/cron.lang +++ b/htdocs/langs/fr_FR/cron.lang @@ -57,7 +57,7 @@ CronStatusActiveBtn=Activer CronStatusInactiveBtn=Désactiver CronTaskInactive=Cette tâche est désactivée CronId=Id -CronClassFile=Nom de fichier avec classe +CronClassFile=Nom de fichier intégrant la classe CronModuleHelp=Nom du dossier du module dans Dolibarr (fonctionne aussi avec les modules externes).
    Par exemple, pour appeler la méthode d'appel des produits Dolibarr /htdocs/product/class/product.class.php, la valeur du module est product. CronClassFileHelp=Le chemin relatif et le nom du fichier à charger (le chemin d'accès est relatif au répertoire racine du serveur Web).
    Par exemple, appeler la méthode de récupération de Dolibarr Product object htdocs / product / class / product.class.php , la valeur du nom de fichier de classe est product / class / product.class .php CronObjectHelp=Le nom de l'objet à charger.
    Par exemple, appeler la méthode de récupération de l'objet de produit Dolibarr /htdocs/product/class/product.class.php, la valeur pour le nom de fichier de classe est Produit diff --git a/htdocs/langs/fr_FR/errors.lang b/htdocs/langs/fr_FR/errors.lang index 09a0dac5a34..9c8240cca51 100644 --- a/htdocs/langs/fr_FR/errors.lang +++ b/htdocs/langs/fr_FR/errors.lang @@ -98,7 +98,7 @@ ErrorDeleteNotPossibleLineIsConsolidated=Suppression impossible car l'enregistre ErrorProdIdAlreadyExist=%s est attribué à un autre tiers ErrorFailedToSendPassword=Échec de l'envoi du mot de passe ErrorFailedToLoadRSSFile=Echec de la récupération du flux RSS. Ajoutez la constante MAIN_SIMPLEXMLLOAD_DEBUG si le message d'erreur n'est pas assez explicite. -ErrorForbidden=Accès refusé.
    Vous essayez d'accéder à une page, région ou fonctionalité d'un module désactivé, ou sans être dans une session authentifiée, ou avec un utilisateur non autorisé. +ErrorForbidden=Accès refusé.
    Vous essayez d'accéder à une page, région ou fonctionnalité d'un module désactivé, ou sans être dans une session authentifiée, ou avec un utilisateur non autorisé. ErrorForbidden2=Les permissions pour cet identifiant peuvent être attribuées par l'administrateur Dolibarr via le menu %s -> %s. ErrorForbidden3=Dolibarr ne semble pas fonctionner au sein d'une session authentifiée. Consultez la documentation d'installation de Dolibarr pour savoir comment gérer les authentifications (htaccess, mod_auth ou autre...). ErrorNoImagickReadimage=La classe Imagick n'est pas présente sur cette installation de PHP. L'aperçu n'est donc pas disponible. Les administrateurs peuvent désactiver cet onglet dans le menu Configuration - Affichage. @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Erreur, doublon du trigger nommé %s. Déjà chargé à pa ErrorNoWarehouseDefined=Erreur, aucun entrepôts défini. ErrorBadLinkSourceSetButBadValueForRef=Le lien que vous utilisez n'est pas valide. Une 'source' pour le paiement est définie, mais la valeur pour 'ref' n'est pas valide. ErrorTooManyErrorsProcessStopped=Trop d'erreurs, Le processus a été arrêté. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=La validation de masse n'est pas possible lorsque l'option pour augmenter / diminuer le stock est définie sur cette action (vous devez valider un par un afin que vous puissiez définir l'entrepôt pour augmenter / diminuer) +ErrorObjectMustHaveStatusDraftToBeValidated=L'objet %s doit être au statut brouillon pour être validé +ErrorObjectMustHaveLinesToBeValidated=L'objet %s doit contenir des lignes # Warnings WarningPasswordSetWithNoAccount=Un mot de passe a été fixé pour cet adhérent. Cependant, aucun compte d'utilisateur n'a été créé. Donc, ce mot de passe est stocké, mais ne peut être utilisé pour accéder à Dolibarr. Il peut être utilisé par un module/interface externe, mais si vous n'avez pas besoin de définir ni login ni mot de passe pour un adhérent, vous pouvez désactiver l'option «Gérer un login pour chaque adhérent" depuis la configuration du module Adhérents. Si vous avez besoin de gérer un login, mais pas de mot de passe, vous pouvez laisser ce champ vide pour éviter cet avertissement. Remarque: L'email peut également être utilisé comme login si l'adhérent est lié à un utilisateur. diff --git a/htdocs/langs/fr_FR/install.lang b/htdocs/langs/fr_FR/install.lang index 4f2b0958b1f..db041c0ad46 100644 --- a/htdocs/langs/fr_FR/install.lang +++ b/htdocs/langs/fr_FR/install.lang @@ -53,10 +53,10 @@ AdminLogin=Identifiant du propriétaire de la base de données Dolibarr. PasswordAgain=Vérification du mot de passe AdminPassword=Mot de passe du propriétaire de la base de données Dolibarr. CreateDatabase=Créer la base de données -CreateUser=Créer le propriétaire +CreateUser=Créer le propriétaire ou lui affecter les droits à la base DatabaseSuperUserAccess=Serveur de base de données - Accès super utilisateur CheckToCreateDatabase=Cochez cette option si la base de données n'existe pas et doit être créée.
    Dans ce cas, il faut renseigner identifiant et mot de passe du super-utilisateur au bas de cette page. -CheckToCreateUser=Cochez cette option si l'utilisateur propriétaire n'existe pas et doit être créé.
    Dans ce cas, il faut renseigner l'identifiant et mot de passe du propriétaire à créer ainsi que l'identifiant et mot de passe du super-utilisateur au bas de cette page. Si la case n'est pas cochée, l'identifiant et le mot de passe du propriétaire doivent exister. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Identifiant de l'utilisateur de la base ayant les droits de création de bases de données ou de comptes pour la base, requis si la base ou son propriétaire n'existent pas déjà et doivent être créés. KeepEmptyIfNoPassword=Laissez vide si l'administrateur n'a pas de mot de passe SaveConfigurationFile=Enregistrement du fichier de configuration diff --git a/htdocs/langs/fr_FR/modulebuilder.lang b/htdocs/langs/fr_FR/modulebuilder.lang index d12a7a0fa8a..293766ed765 100644 --- a/htdocs/langs/fr_FR/modulebuilder.lang +++ b/htdocs/langs/fr_FR/modulebuilder.lang @@ -1,40 +1,56 @@ # Dolibarr language file - Source file is en_US - loan -ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). -EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) -ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc=Cet outil est réservé aux utilisateurs avancés ou développeurs. Il donne accès aux outil de création ou d'édition de modules additionnels (Cliquez ici pour plus d'information). +EnterNameOfModuleDesc=saisissez le nom du module (sans espace) pour le créer. Utilisez les majuscules pour identifier les mots (par exemple : MonModule, BoutiqueECommerce,...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +ModuleBuilderDesc2=Chemin ou les modules sont générés/modifiés ( premier répertoire alternatif défini dans %s):%s ModuleBuilderDesc3=Modules générés/éditables trouvés %s (ils sont détectés comme éditables quand le fichier %s existse dans le répertoire racine du module). NewModule=Nouveau module -NewObject=New object -ModuleKey=Module key -ObjectKey=Object key +NewObject=Nouvel objet +ModuleKey=Clé du module +ObjectKey=Clé de l'objet ModuleInitialized=Module initialisé -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Fichiers pour les nouvel objet '%s' initialisés +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Entrez ici toutes les informations générales qui décrivent votre module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Définissez ici les objets que vous souhaitez gérer avec votre module. Une classe CRUD DAO, des fichiers SQL, une page pour lister l'enregistrement des objets, pour créer / modifier / afficher un enregistrement et une API sera générée. ModuleBuilderDescmenus=Cet onglet est dédié à la définition des entrées menu fournies par votre module. ModuleBuilderDescpermissions=Cet onglet est dédié à la définition des nouvelles permissions dont vous voulez fournir avec votre module. -ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDesctriggers=Vue des triggers ajoutés par votre module. Pour inclure le code exécuté au lancement d'un événement commercial, éditez le fichier. ModuleBuilderDeschooks=Cet onglet est dédié aux points d'accroche. ModuleBuilderDescwidgets=Cet onglet est dédié à la gestion/construction de widgets. ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. -EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfModuleToDeleteDesc=Vous pouvez supprimer votre module. ATTENTION : tous les fichiers et les données seront définitivement perdus ! EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! DangerZone=Zone de danger -BuildPackage=Build package/documentation +BuildPackage=Générer package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=Ce module n' pas encore été activé. Allez page %s pour l'activer ou cliquez ici: ModuleIsLive=Ce module a été activé. Tout changement sur lui pourrait casser une fonctionnalité actuellement activée. DescriptionLong=Description longue EditorName=Nom de l'éditeur EditorUrl=URL de l'éditeur -DescriptorFile=Descriptor file of module -ClassFile=File for PHP class -ApiClassFile=File for PHP API class -PageForList=PHP page for list of record -PageForCreateEditView=PHP page to create/edit/view a record -PathToModulePackage=Path to zip of module/application package -PathToModuleDocumentation=Path to file of module/application documentation -SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. -FileNotYetGenerated=File not yet generated +DescriptorFile=Fichier descriptif du module +ClassFile=Fichier de la classe PHP +ApiClassFile=Fichier de la classe PHP de l'API +PageForList=Page PHP pour la liste des enregistrements +PageForCreateEditView=Page PHP pour créer/modifier/afficher un enregistrement +PathToModulePackage=Chemin du zip du package du module/application +PathToModuleDocumentation=Chemin d'accès au fichier de documentation du module +SpaceOrSpecialCharAreNotAllowed=Les espaces et les caractères spéciaux ne sont pas autorisés. +FileNotYetGenerated=Fichier non encore généré +SpecificationFile=Fichier de description des règles métiers +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Non NULL +SearchAll=Utilisé par la "recherche globale" +DatabaseIndex=Indexation base +FileAlreadyExists=Le fichier %s existe déjà +TriggersFile=Fichier de code des triggers +HooksFile=Fichier du code des hooks +WidgetFile=Fichier Widget +ReadmeFile=Fichier Readme +ChangeLog=Fichier de log +SqlFile=Fichier SQL +SqlFileKey=Fichier Sql pour les clés +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/fr_FR/multicurrency.lang b/htdocs/langs/fr_FR/multicurrency.lang index 47830225a07..4bc05ae4795 100644 --- a/htdocs/langs/fr_FR/multicurrency.lang +++ b/htdocs/langs/fr_FR/multicurrency.lang @@ -4,7 +4,8 @@ ErrorAddRateFail=Erreur lors de l'ajout du taux ErrorAddCurrencyFail=Erreur lors de l'ajout de la devise ErrorDeleteCurrencyFail=Erreur de suppression multicurrency_syncronize_error=Erreur de synchronisation %s -multicurrency_useOriginTx=Quand un objet est créé à partir d'un autre, gardez le taux original de l'objet source ( ou alors, utilisez le nouveau taux connu ) +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate +multicurrency_useOriginTx=Quand un objet est créé à partir d'un autre, garder le taux original de l'objet source (sinon utiliser le dernier taux connu) CurrencyLayerAccount=API CurrencyLayer CurrencyLayerAccount_help_to_synchronize=Vous devez créer un compte sur leur site web pour pouvoir utiliser cette fonctionnalité.
    Obtenez votre Clé API
    Si vous utilisez un compte gratuit, vous ne pouvez pas changer la devise source(USD par défaut)
    Mais si votre devise principale n'est pas USD, vous pouvez utiliser une devise source alternative pour forcer votre devise principale

    Vous êtes limité à 1000 synchronisations par mois. multicurrency_appId=Clé API diff --git a/htdocs/langs/fr_FR/orders.lang b/htdocs/langs/fr_FR/orders.lang index 597370bfc06..d768ea749f6 100644 --- a/htdocs/langs/fr_FR/orders.lang +++ b/htdocs/langs/fr_FR/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Espace commandes fournisseurs OrderCard=Fiche commande OrderId=Identifiant commande Order=Commande +PdfOrderTitle=Commande Orders=Commandes OrderLine=Ligne de commande OrderDate=Date de commande diff --git a/htdocs/langs/fr_FR/other.lang b/htdocs/langs/fr_FR/other.lang index 5b160082aaf..346fcf42934 100644 --- a/htdocs/langs/fr_FR/other.lang +++ b/htdocs/langs/fr_FR/other.lang @@ -16,7 +16,8 @@ PreviousMonthOfInvoice=Mois précédent (numéro 1-12) la date de facturation TextPreviousMonthOfInvoice=Mois précédent (texte) de la date de facturation NextMonthOfInvoice=Le mois suivant (numéro 1-12) la date de facturation TextNextMonthOfInvoice=Le mois suivant (texte) la date de facturation -ZipFileGeneratedInto=Zip file generated into %s. +ZipFileGeneratedInto=Fichier zip généré dans %s +DocFileGeneratedInto=Fichier doc généré dans %s. YearOfInvoice=Année de la date de facturation PreviousYearOfInvoice=Année précédente de la date de facturation diff --git a/htdocs/langs/fr_FR/products.lang b/htdocs/langs/fr_FR/products.lang index 410217cc15a..ee4c7c328cf 100644 --- a/htdocs/langs/fr_FR/products.lang +++ b/htdocs/langs/fr_FR/products.lang @@ -247,7 +247,7 @@ ComposedProduct=Sous-produits MinSupplierPrice=Prix minimum fournisseur MinCustomerPrice=Prix client minimum DynamicPriceConfiguration=Configuration du prix dynamique -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=L'activation de ce module ajoute au fiches des produits une fonction d'enregistrement de formules de calcul des prix sur les prix de vente et d'achat. Ces formules supportent tous les opérateurs mathématiques, quelques constantes et variables. Définissez ici les variables que que vous voulez pouvoir utiliser, et si la variable nécessite d'être actualisée, l'URL externe ou Dolibarr ira chercher la nouvelle valeur AddVariable=Ajouter une Variable AddUpdater=Ajouter URL de mise à jour GlobalVariables=Variables globales @@ -255,10 +255,10 @@ VariableToUpdate=Variable à mettre à jour GlobalVariableUpdaters=Mis à jour variable globale GlobalVariableUpdaterType0=Données JSON GlobalVariableUpdaterHelp0=Analyse les données JSON depuis l'URL spécifiée, VALUE indique l'emplacement de la valeur pertinente, -GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterHelpFormat0=Le format est {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} GlobalVariableUpdaterType1=Données WebService GlobalVariableUpdaterHelp1=Analyse les données de WebService pour l'URL spécifiée, NS spécifie l'espace de noms, VALUE indique l'emplacement de la valeur pertinente, DATA doit contenir les données à envoyer et METHOD est la méthode WS appelée -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=Le format est {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data, "to": "send"}} UpdateInterval=Intervale de mise à jour (minutes) LastUpdated=Dernière mise à jour CorrectlyUpdated=Mise à jour avec succès diff --git a/htdocs/langs/fr_FR/projects.lang b/htdocs/langs/fr_FR/projects.lang index ea54d6f967d..746fbd59c38 100644 --- a/htdocs/langs/fr_FR/projects.lang +++ b/htdocs/langs/fr_FR/projects.lang @@ -23,7 +23,7 @@ OnlyOpenedProject=Seuls les projets ouverts sont visibles (les projets à l'éta ClosedProjectsAreHidden=Les projets fermés ne sont pas visible. TasksPublicDesc=Cette vue présente tous les projets et tâches pour lesquels vous êtes habilité à avoir une visibilité. TasksDesc=Cette vue présente tous les projets et tâches (vos habilitations vous offrant une vue exhaustive). -AllTaskVisibleButEditIfYouAreAssigned=Toutes les tâches d'un tel projet sont visibles mais il n'est possible de saisir du temps passé que sur celles qui vous sont assignées.\nAssignez vous la tache pour pouvoir saisir un temps passé. +AllTaskVisibleButEditIfYouAreAssigned=Toutes les tâches des projets sont visibles mais il n'est possible de saisir du temps passé que sur celles qui vous sont assignées.\nAssignez vous la tâche pour pouvoir saisir un temps passé. OnlyYourTaskAreVisible=Seules les tâches qui vous sont assignées sont visibles. Assignez vous une tâche pour la voir et saisir du temps passé ImportDatasetTasks=Tâches des projets ProjectCategories=Catégories/tags de projet diff --git a/htdocs/langs/fr_FR/propal.lang b/htdocs/langs/fr_FR/propal.lang index f57692e0aa4..01819cfbd74 100644 --- a/htdocs/langs/fr_FR/propal.lang +++ b/htdocs/langs/fr_FR/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Propositions commerciales brouillons ProposalsOpened=Propositions commerciales ouvertes Prop=Propositions commerciales CommercialProposal=Proposition commerciale +PdfCommercialProposalTitle=Proposition commerciale ProposalCard=Fiche proposition NewProp=Nouvelle proposition commerciale NewPropal=Nouvelle proposition diff --git a/htdocs/langs/fr_FR/salaries.lang b/htdocs/langs/fr_FR/salaries.lang index b029df75429..96ed81a08bb 100644 --- a/htdocs/langs/fr_FR/salaries.lang +++ b/htdocs/langs/fr_FR/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Compte comptable salaires -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Compte comptable utilisé pour les utilisateurs +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Compte comptable par défaut pour les charges de personnel Salary=Salaire Salaries=Salaires diff --git a/htdocs/langs/fr_FR/stocks.lang b/htdocs/langs/fr_FR/stocks.lang index 5fc0ccedec7..9a79bf2f8bd 100644 --- a/htdocs/langs/fr_FR/stocks.lang +++ b/htdocs/langs/fr_FR/stocks.lang @@ -64,7 +64,7 @@ ReStockOnBill=Incrémente les stocks physiques sur validation des factures/avoir ReStockOnValidateOrder=Incrémente les stocks physiques sur approbation des commandes fournisseurs ReStockOnDispatchOrder=Incrémente les stocks réels sur ventilation manuelle dans les entrepôts, après réception de la marchandise OrderStatusNotReadyToDispatch=La commande n'a pas encore ou n'a plus un statut permettant une ventilation en stock. -StockDiffPhysicTeoric=Explication de l'écart stock physique-théorique +StockDiffPhysicTeoric=Explication de l'écart stock physique-virtuel NoPredefinedProductToDispatch=Pas de produits prédéfinis dans cet objet. Aucune ventilation en stock n'est donc à faire. DispatchVerb=Ventiler StockLimitShort=Limite pour alerte @@ -73,7 +73,7 @@ PhysicalStock=Stock physique RealStock=Stock réel RealStockDesc=Le stock physique ou réel est le stock présent dans les entrepôts. RealStockWillAutomaticallyWhen=Le stock réel sera modifié selon ces règles (voir la configuration du module Stock) : -VirtualStock=Stock théorique +VirtualStock=Stock virtuel VirtualStockDesc=Le stock virtuel est la quantité de produit en stock après que les opération affectant les stock sont terminées (réceptions de commandes fournisseurs, expéditions de commandes clients,...) IdWarehouse=Identifiant entrepôt DescWareHouse=Description entrepôt @@ -100,11 +100,11 @@ StockToBuy=À commander Replenishment=Réapprovisionnement ReplenishmentOrders=Commandes de réapprovisionnement VirtualDiffersFromPhysical=Selon les options d'augmentation/décrémentation de stock, le stock physique et le stock virtuel (stock physique + commandes actuelles) peuvent différer -UseVirtualStockByDefault=Utilisez le stock théorique par défaut, au lieu du stock réel, pour la fonction de réapprovisionnement -UseVirtualStock=Utilisation du stock théorique +UseVirtualStockByDefault=Utilisez le stock virtuel par défaut, au lieu du stock réel, pour la fonction de réapprovisionnement +UseVirtualStock=Utilisation du stock virtuel UsePhysicalStock=Utilisation du stock réel CurentSelectionMode=Mode de sélection en cours -CurentlyUsingVirtualStock=Stock théorique +CurentlyUsingVirtualStock=Stock virtuel CurentlyUsingPhysicalStock=Stock réel RuleForStockReplenishment=Règle de gestion du réapprovisionnement des stocks SelectProductWithNotNullQty=Sélectionnez au moins un produit avec une quantité non nulle et un fournisseur @@ -119,7 +119,7 @@ NbOfProductBeforePeriod=Quantité du produit %s en stock avant la périod NbOfProductAfterPeriod=Quantité du produit %s en stock après la période sélectionnée (> %s) MassMovement=Mouvement en masse SelectProductInAndOutWareHouse=Sélectionner un produit, une quantité à transférer, un entrepôt source et destination et cliquer sur "%s". Une fois tous les mouvements choisis, cliquer sur "%s". -RecordMovement=Virement enregistré +RecordMovement=Enregistrer transfert ReceivingForSameOrder=Réceptions pour cette commande StockMovementRecorded=Mouvement de stocks enregistré RuleForStockAvailability=Règles d'exigence sur les stocks @@ -176,8 +176,8 @@ INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Le mouvement de stock a une date d'inv inventoryChangePMPPermission=Autoriser à changer la valeur PMP d'un produit ColumnNewPMP=Nouvelle unité PMP OnlyProdsInStock=N'ajoutez pas un produit sans stock -TheoricalQty=Quantité théorique -TheoricalValue=Quantité théorique +TheoricalQty=Quantité virtuelle +TheoricalValue=Quantité virtuelle LastPA=Dernier BP CurrentPA=BP actuel RealQty=Quantité réelle diff --git a/htdocs/langs/fr_FR/website.lang b/htdocs/langs/fr_FR/website.lang index bf6e9fc4bbe..3b8390283e0 100644 --- a/htdocs/langs/fr_FR/website.lang +++ b/htdocs/langs/fr_FR/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Créer ici autant d'entrée que de nombre différents de sites DeleteWebsite=Effacer site web ConfirmDeleteWebsite=Êtes-vous sûr de vouloir supprimer ce site web. Toutes les pages et le contenu seront également supprimés. WEBSITE_PAGENAME=Nom/alias de la page +WEBSITE_HTML_HEADER=En-tête HTML WEBSITE_CSS_URL=URL du fichier de la feuille de style (CSS) externe WEBSITE_CSS_INLINE=Contenu de la feuille de style (CSS) -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Répertoire de médias -EditCss=Modifier la feuille de style (CSS) +EditCss=Editer l'en-tête HTML ou Style/CSS EditMenu=Modifier menu EditPageMeta=Modifier métadonnées EditPageContent=Modifier contenu Website=Site web -Webpage=Page web -AddPage=Ajouter une page +Webpage=Page/contenair Web +AddPage=Ajouter une page/contenair HomePage=Page d'accueil PreviewOfSiteNotYetAvailable=La prévisualisation de votre site web %s n'est pas disponible actuellement. Vous devez créer une première page. -RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' du site web %s effacée -PageAdded=Page '%s' ajouté +RequestedPageHasNoContentYet=La page demandée avec l'id=%s ne présente encore aucun contenu ou le fichier cache .tpl.php a été supprimé. Ajoutez du contenu à la page pour résoudre cela. +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' du site '%s' supprimée +PageAdded=Page/Contenair '%s' ajoutée ViewSiteInNewTab=Pré-visualiser le site dans un nouvel onglet ViewPageInNewTab=Pré-visualiser la page dans un nouvel onglet SetAsHomePage=Définir comme page d'accueil @@ -28,4 +30,9 @@ ViewWebsiteInProduction=Pré-visualiser le site web en utilisant l'URL de la pag SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Prévisualiser %s dans un nouvel onglet.

    . Le %s sera servi par un serveur web externe ( comme Apache, Nginx, IIS ). Vous pouvez installer et configurer ce serveur avant de pointer sur le répertoire :
    %s
    URL servie par un serveur externe:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. -NoPageYet=Aucune page +VirtualHostUrlNotDefined=URL du virtual host servit par le serveur web externe non défini +NoPageYet=Pas de page pour l'instant +SyntaxHelp=Aide sur la syntaxe du code +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Cloner la page/contenair +CloneSite=Cloner le site diff --git a/htdocs/langs/fr_FR/withdrawals.lang b/htdocs/langs/fr_FR/withdrawals.lang index 07c87c60b23..97720cbf019 100644 --- a/htdocs/langs/fr_FR/withdrawals.lang +++ b/htdocs/langs/fr_FR/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nombre de factures en attente de prélèvement pou InvoiceWaitingWithdraw=Factures en attente de prélèvement AmountToWithdraw=Somme à prélever WithdrawsRefused=Prélèvements rejetés -NoInvoiceToWithdraw=Aucune facture client avec 'Demande de débit direct' ouverte. Rendez vous sur l'onglet "%s" sur la carte de facture pour faire une demande. +NoInvoiceToWithdraw=Aucune facture client ouverte avec des 'Demandes de prélèvement' n'est en attente. Rendez vous sur l'onglet '%s' sur la fiche facture pour faire une demande. ResponsibleUser=Utilisateur responsable des prélèvements WithdrawalsSetup=Configuration des prélèvements WithdrawStatistics=Statistiques des prélèvements @@ -76,7 +76,7 @@ ThisWillAlsoAddPaymentOnInvoice=Ceci créera également les paiements sur les fa StatisticsByLineStatus=Statistiques par statut des lignes RUM=RUM RUMLong=Référence Unique de Mandat -RUMWillBeGenerated=Le numéro de RUM sera généré une fois les informations de compte bancaire sont enregistrées +RUMWillBeGenerated=Si vide le numéro de RUM sera généré une fois les informations de compte bancaire sont enregistrées WithdrawMode=Mode de prélévement (FRST ou RECUR) WithdrawRequestAmount=Montant de la demande de prélèvement WithdrawRequestErrorNilAmount=Impossible de créer une demande de prélèvement pour un montant nul diff --git a/htdocs/langs/fr_FR/workflow.lang b/htdocs/langs/fr_FR/workflow.lang index a9eb29c7a8d..e4506c8b69e 100644 --- a/htdocs/langs/fr_FR/workflow.lang +++ b/htdocs/langs/fr_FR/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Configuration du module workflow WorkflowDesc=Ce module est conçu pour modifier le comportement des actions automatiques dans l'application. Par défaut, le workflow est ouvert (vous pouvez faire les choses dans l'ordre que vous voulez). Vous pouvez toutefois activer des actions automatiques qui vous intéressent. ThereIsNoWorkflowToModify=Il n'y a pas de modifications de workflow disponibles avec les modules activés. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Créer une commande client automatiquement à la signature d'une proposition commerciale -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Créer une commande client automatiquement lorsqu'une proposition commerciale est signée +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Créer automatiquement une commande client à la signature d'un proposition commerciale (la commande sera du même montant que la proposition commerciale) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Créer automatiquement une facture client à la signature d'une proposition commerciale (la facture sera du même montant que la proposition commerciale source) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Créer une facture client automatiquement à la validation d'un contrat -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Créer une facture client automatiquement à la clôture d'une commande client -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classer facturée la proposition commerciale source quand la commande client dérivée est classée payée -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classer facturée la ou les commandes clients source quand la facture client dérivée est classée payée -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classer facturée la ou les commandes clients source lorsque la facture client dérivée est validée -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=A la validation d'une commande, classer la proposition commerciale source "facturée" -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classez la commande liée à expédiée quand une expédition est validée et que la quantité expédiée totale est la même que dans la commande +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Créer automatiquement une facture client à la cloture d'un commande (la facture sera du même montant que la commande) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classer la/les proposition(s) commerciale(s) source(s) facturée(s) au classement facturé de la commande (et si le montant des deux documents est le même) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classer la/les proposition(s) commerciale(s) facturée(s) à la validation d'une facture client (si la facture est du même montant que la commande) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classer la/les commande(s) client(s) source(s) facturée à la validation de la facture client (et si le montant des deux documents est le même) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classer la/les commande(s) client(s) source(s) facturée au classement payé de la facture client (et si le montant des deux documents est le même) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classer la commande source expédiée à la validation d'une expédition (si les quantité des documents sont les mêmes) AutomaticCreation=Création automatique AutomaticClassification=Classification automatique diff --git a/htdocs/langs/he_IL/accountancy.lang b/htdocs/langs/he_IL/accountancy.lang index d239f259a94..a7176d2e55f 100644 --- a/htdocs/langs/he_IL/accountancy.lang +++ b/htdocs/langs/he_IL/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Code Nature=Nature AccountingJournalType1=Various operation AccountingJournalType2=Sales @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/he_IL/admin.lang b/htdocs/langs/he_IL/admin.lang index 3032ace60b8..4fe077529b5 100644 --- a/htdocs/langs/he_IL/admin.lang +++ b/htdocs/langs/he_IL/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=כלי המערכת באזור SystemToolsAreaDesc=אזור זה מספק תכונות ניהול. השתמשו בתפריט כדי לבחור את התכונה שאתה מחפש. Purge=Purge PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=מחק את כל הקבצים %s במדריך. קבצים זמניים, אלא גם גיבוי מסד הנתונים משליכה, קבצים המצורפים אלמנטים (צדדים שלישיים, חשבוניות, ...) ורק לאחר מכן להעלות את מודול ECM יימחקו. PurgeRunNow=לטהר עכשיו PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s קבצים או ספריות נמחק. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=לטהר את כל אירועי האבטחה ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=ליצור גיבוי @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr הגרסה הנוכחית CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=גמל שלמה Module1200Desc=גמל שלמה אינטגרציה -Module1400Name=חשבונאות -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=מודול להציע בדף התשלום באינטרנט באמצעות כרטיס אשראי עם Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=קרא הנחות Permission402=יצירה / שינוי הנחות Permission403=אמת הנחות Permission404=מחק את הנחות -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= כלל זה הוא נאלץ %s ידי מודול מופעל -PreviousDumpFiles=גיבוי מסד הנתונים זמינים קובצי dump +PreviousDumpFiles=Generated database backup files WeekStartOnDay=היום הראשון בשבוע RunningUpdateProcessMayBeRequired=הפעלת תהליך השדרוג נראה שיהיה צורך (תוכניות %s גרסה שונה %s גרסה מסד נתונים) YouMustRunCommandFromCommandLineAfterLoginToUser=עליך להפעיל את הפקודה משורת הפקודה לאחר ההתחברות להפגיז עם %s משתמש או עליך להוסיף-W אפשרות בסוף של שורת הפקודה כדי לספק את הסיסמה %s. diff --git a/htdocs/langs/he_IL/banks.lang b/htdocs/langs/he_IL/banks.lang index ba42f9a4c83..9bce7b9e29a 100644 --- a/htdocs/langs/he_IL/banks.lang +++ b/htdocs/langs/he_IL/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/he_IL/bills.lang b/htdocs/langs/he_IL/bills.lang index 39f2206a8c3..03376084dc9 100644 --- a/htdocs/langs/he_IL/bills.lang +++ b/htdocs/langs/he_IL/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Invoice card PredefinedInvoices=Predefined Invoices Invoice=Invoice +PdfInvoiceTitle=Invoice Invoices=חשבוניות InvoiceLine=Invoice line InvoiceCustomer=Customer invoice diff --git a/htdocs/langs/he_IL/compta.lang b/htdocs/langs/he_IL/compta.lang index a009e65313f..d5225c43d4f 100644 --- a/htdocs/langs/he_IL/compta.lang +++ b/htdocs/langs/he_IL/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/he_IL/errors.lang b/htdocs/langs/he_IL/errors.lang index feada2d1b5a..853a34b4bb4 100644 --- a/htdocs/langs/he_IL/errors.lang +++ b/htdocs/langs/he_IL/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/he_IL/install.lang b/htdocs/langs/he_IL/install.lang index a1decca40be..21fc66d6b4f 100644 --- a/htdocs/langs/he_IL/install.lang +++ b/htdocs/langs/he_IL/install.lang @@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner. PasswordAgain=Retype password a second time AdminPassword=Password for Dolibarr database owner. CreateDatabase=Create database -CreateUser=Create owner +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Database server - Superuser access CheckToCreateDatabase=Check box if database does not exist and must be created.
    In this case, you must fill the login/password for superuser account at the bottom of this page. -CheckToCreateUser=Check box if database owner does not exist and must be created.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists. KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this) SaveConfigurationFile=Save values diff --git a/htdocs/langs/he_IL/main.lang b/htdocs/langs/he_IL/main.lang index 8639dddc42d..ec964851027 100644 --- a/htdocs/langs/he_IL/main.lang +++ b/htdocs/langs/he_IL/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=The file was successfully uploaded -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parameter Parameters=Parameters Value=Value PersonalValue=Personal value +NewObject=New %s NewValue=New value CurrentValue=Current value Code=Code @@ -441,6 +443,7 @@ Reporting=Reporting Reportings=Reporting Draft=Draft Drafts=Drafts +StatusInterInvoiced= Validated=Validated Opened=Open New=New @@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account AccountCurrency=Account Currency ViewPrivateNote=View notes XMoreLines=%s line(s) hidden +ShowMoreLines=Show more lines PublicUrl=Public URL AddBox=Add box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Gender Genderman=Man diff --git a/htdocs/langs/he_IL/modulebuilder.lang b/htdocs/langs/he_IL/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/he_IL/modulebuilder.lang +++ b/htdocs/langs/he_IL/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/he_IL/orders.lang b/htdocs/langs/he_IL/orders.lang index 428229faa13..89ad1f259da 100644 --- a/htdocs/langs/he_IL/orders.lang +++ b/htdocs/langs/he_IL/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area OrderCard=Order card OrderId=Order Id Order=סדר +PdfOrderTitle=סדר Orders=Orders OrderLine=Order line OrderDate=Order date diff --git a/htdocs/langs/he_IL/other.lang b/htdocs/langs/he_IL/other.lang index be9c293e87a..896d24a7165 100644 --- a/htdocs/langs/he_IL/other.lang +++ b/htdocs/langs/he_IL/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/he_IL/propal.lang b/htdocs/langs/he_IL/propal.lang index a89bbe8917d..e4c56cf0719 100644 --- a/htdocs/langs/he_IL/propal.lang +++ b/htdocs/langs/he_IL/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal +PdfCommercialProposalTitle=Commercial proposal ProposalCard=Proposal card NewProp=New commercial proposal NewPropal=New proposal diff --git a/htdocs/langs/he_IL/salaries.lang b/htdocs/langs/he_IL/salaries.lang index 522bf0a65d7..7e0c80d3380 100644 --- a/htdocs/langs/he_IL/salaries.lang +++ b/htdocs/langs/he_IL/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries diff --git a/htdocs/langs/he_IL/website.lang b/htdocs/langs/he_IL/website.lang index b3b05ee6cc9..98577e0de5e 100644 --- a/htdocs/langs/he_IL/website.lang +++ b/htdocs/langs/he_IL/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/he_IL/workflow.lang b/htdocs/langs/he_IL/workflow.lang index 54246856e9b..8021fb9b198 100644 --- a/htdocs/langs/he_IL/workflow.lang +++ b/htdocs/langs/he_IL/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Workflow module setup WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/hr_HR/accountancy.lang b/htdocs/langs/hr_HR/accountancy.lang index f48e84adf6f..f543e8f0552 100644 --- a/htdocs/langs/hr_HR/accountancy.lang +++ b/htdocs/langs/hr_HR/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Stanje računa - +ObjectsRef=Source object ref CAHTF=Ukupna nabava dobavljača prije poreza TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Financijski izvještaj uključujući sve tipove plačanja po bankovnom računom -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=Popis obračunskih računa +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Klasa računa Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Greška, ne možete obrisati obračunski račun jer je u upotrebi -MvtNotCorrectlyBalanced=Kretanje nije točno balansirano. Potražno = %s. Dugovno = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Kod Nature=Vrsta AccountingJournalType1=Various operation AccountingJournalType2=Prodaja @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/hr_HR/admin.lang b/htdocs/langs/hr_HR/admin.lang index 273fa4c4e16..81b801cc76e 100644 --- a/htdocs/langs/hr_HR/admin.lang +++ b/htdocs/langs/hr_HR/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Sučelje sistemskih alata SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. Purge=Trajno izbriši PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Obriši dnevnik datoteka %s definiran za Syslog modul ( nema rizika od gubitka podataka) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Obriši sve privremene datotek ( bez rizika od gubitka podataka) PurgeDeleteTemporaryFilesShort=Obriši privremene datoteke PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. PurgeRunNow=Izbriši sada PurgeNothingToDelete=Nema mapa i datoteka za brisanje. PurgeNDirectoriesDeleted=%s datoteka ili mapa obrisano. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Trajno izbriši sve sigurnosne događaje ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Generiraj backup @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=Ovo je prvi korak, možete poslati paket koristeći ovaj alat: Odaberite datoteke modula +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Trenutna verzija Dolibarr-a CallUpdatePage=Idite na stranicu koja nadograđuje strukturu baze i podatke: %s LastStableVersion=Zadnja stabilna verzija @@ -535,8 +536,6 @@ Module1120Name=Ponuda dobavljača Module1120Desc=Zahtjev za ponudom dobavljača s cijenama Module1200Name=Mantis Module1200Desc=Integracija Mantisa -Module1400Name=Računovodstvo -Module1400Desc=Accounting management (double entries) Module1520Name=Generiranje dokumenta Module1520Desc=Mass mail document generation Module1780Name=Kategorije @@ -585,7 +584,7 @@ Module50100Desc=Modul prodajnog mjesta (POS) Module50200Name=Paypal Module50200Desc=Modul za mogućnost online plaćanja kreditnom karticom putem PayPal-a Module50400Name=Računovodstvo (napredno) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Anketa, Upitnik ili Glasanje @@ -751,8 +750,10 @@ Permission401=Čitaj popuste Permission402=Kreiraj/izmjeni popuste Permission403=Ovjeri popuste Permission404=Obriši popuste -Permission510=Čitaj plaće -Permission512=Kreiraj/izmjeni plaće +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Obriši plaće Permission517=Izvoz plaća Permission520=Čitaj kredite @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL uvoz ForcedToByAModule= Ovo pravilo je forsirano na %s od aktiviranog modula -PreviousDumpFiles=Dostupne datoteke backupa baze podataka +PreviousDumpFiles=Generated database backup files WeekStartOnDay=Prvi dan tjedna RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. diff --git a/htdocs/langs/hr_HR/banks.lang b/htdocs/langs/hr_HR/banks.lang index 56e12a1b1e6..5682fdd3115 100644 --- a/htdocs/langs/hr_HR/banks.lang +++ b/htdocs/langs/hr_HR/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Ček je vračen i računi su ponovo otvoreni BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/hr_HR/bills.lang b/htdocs/langs/hr_HR/bills.lang index 2b7c423e600..40c0304c6a0 100644 --- a/htdocs/langs/hr_HR/bills.lang +++ b/htdocs/langs/hr_HR/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Kartica računa PredefinedInvoices=Predlošci računa Invoice=Račun +PdfInvoiceTitle=Račun Invoices=Računi InvoiceLine=Popis računa InvoiceCustomer=Račun za kupca diff --git a/htdocs/langs/hr_HR/compta.lang b/htdocs/langs/hr_HR/compta.lang index cf920e14dcd..5ccb91fe885 100644 --- a/htdocs/langs/hr_HR/compta.lang +++ b/htdocs/langs/hr_HR/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Kloniraj društveni/fiskalni porez ConfirmCloneTax=Potvrdi kloniranje plaćanja društvenog/fiskalnog poreza CloneTaxForNextMonth=Kloniraj za sljedeći mjesec diff --git a/htdocs/langs/hr_HR/errors.lang b/htdocs/langs/hr_HR/errors.lang index 14629ea74fa..a6a61d78aa4 100644 --- a/htdocs/langs/hr_HR/errors.lang +++ b/htdocs/langs/hr_HR/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/hr_HR/install.lang b/htdocs/langs/hr_HR/install.lang index 66c9a3ad0e1..f268e8f6d8f 100644 --- a/htdocs/langs/hr_HR/install.lang +++ b/htdocs/langs/hr_HR/install.lang @@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner. PasswordAgain=Retype password a second time AdminPassword=Password for Dolibarr database owner. CreateDatabase=Create database -CreateUser=Create owner +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Database server - Superuser access CheckToCreateDatabase=Check box if database does not exist and must be created.
    In this case, you must fill the login/password for superuser account at the bottom of this page. -CheckToCreateUser=Check box if database owner does not exist and must be created.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists. KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this) SaveConfigurationFile=Save values diff --git a/htdocs/langs/hr_HR/main.lang b/htdocs/langs/hr_HR/main.lang index e6aa43f8e71..36b57d6332f 100644 --- a/htdocs/langs/hr_HR/main.lang +++ b/htdocs/langs/hr_HR/main.lang @@ -75,7 +75,8 @@ FileRenamed=Ime datoteke uspješno promijenjeno FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=Datoteka je uspješno učitana -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=Datoteka je odabrana za prilogu ali nije još učitana. Klikni na "Priloži datoteku". NbOfEntries=Br. unosa GoToWikiHelpPage=Pročitajte Online pomoć ( potreban pristup Internetu) @@ -196,6 +197,7 @@ Parameter=Parametar Parameters=Parametri Value=Vrijednost PersonalValue=Osobna vrijednost +NewObject=New %s NewValue=Nova vrijednost CurrentValue=Trenutna vrijednost Code=Kod @@ -441,6 +443,7 @@ Reporting=Izvještavanje Reportings=Izvještavanje Draft=Skica Drafts=Skice +StatusInterInvoiced= Validated=Ovjereno Opened=Otvori New=Novo @@ -727,6 +730,7 @@ SetBankAccount=Postavi bankovni račun AccountCurrency=Valuta računa ViewPrivateNote=Vidi napomene XMoreLines=%s stavaka(e) skriveno +ShowMoreLines=Show more lines PublicUrl=Javni URL AddBox=Dodaj blok SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Idite na Home - Podešavanje - Tvrtka za promjenu logotipa ili idite na Home - Podešavanje - Prikaz za skrivanje. Deny=Odbij Denied=Odbijeno +ListOf=List of %s ListOfTemplates=Popis predložaka Gender=Spol Genderman=Muško diff --git a/htdocs/langs/hr_HR/modulebuilder.lang b/htdocs/langs/hr_HR/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/hr_HR/modulebuilder.lang +++ b/htdocs/langs/hr_HR/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/hr_HR/orders.lang b/htdocs/langs/hr_HR/orders.lang index 914f9795a6d..71bdce0a288 100644 --- a/htdocs/langs/hr_HR/orders.lang +++ b/htdocs/langs/hr_HR/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Sučelje narudžba dobavljačima OrderCard=Kartica nardžbi OrderId=Broj narudžbe Order=Narudžba +PdfOrderTitle=Narudžba Orders=Narudžbe OrderLine=Stavka narudžbe OrderDate=Datum narudžbe diff --git a/htdocs/langs/hr_HR/other.lang b/htdocs/langs/hr_HR/other.lang index ae97363f5af..eed37d5ff16 100644 --- a/htdocs/langs/hr_HR/other.lang +++ b/htdocs/langs/hr_HR/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/hr_HR/propal.lang b/htdocs/langs/hr_HR/propal.lang index 480dfcf74ac..9592dcf9ce3 100644 --- a/htdocs/langs/hr_HR/propal.lang +++ b/htdocs/langs/hr_HR/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Skice ponuda ProposalsOpened=Otvori ponude Prop=Ponude CommercialProposal=Ponuda +PdfCommercialProposalTitle=Ponuda ProposalCard=Kartica ponude NewProp=Nova ponuda NewPropal=Nova ponuda diff --git a/htdocs/langs/hr_HR/salaries.lang b/htdocs/langs/hr_HR/salaries.lang index 068b6b0c7a7..d39faa96e4b 100644 --- a/htdocs/langs/hr_HR/salaries.lang +++ b/htdocs/langs/hr_HR/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Plaća Salaries=Plaće diff --git a/htdocs/langs/hr_HR/website.lang b/htdocs/langs/hr_HR/website.lang index 3f9e3fb04cf..82ce8697a27 100644 --- a/htdocs/langs/hr_HR/website.lang +++ b/htdocs/langs/hr_HR/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Kreirajte različitih unosa koliko god to želite ovisno koliko DeleteWebsite=Obriši Web mjesto ConfirmDeleteWebsite=Jeste li sigurni da želite obrisati ovo web mjesto. Sve stranice i sadržaj biti će isto obrisan. WEBSITE_PAGENAME=Naziv stranice/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL vanjske CSS datoteke WEBSITE_CSS_INLINE=CSS sadržaj -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Mediji -EditCss=Uredi stil/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Uredi izbornik EditPageMeta=Uredi meta EditPageContent=Uredi sadržaj Website=Website -Webpage=Web page -AddPage=Dodaj stranicu +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Pregled vašeg web mjesta %s nije još dostupan. Prvo morate dodati stranicu. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Stranica %s od web lokacije %s je obrisana -PageAdded=Stranica '%s' je dodana +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=Pogledaj lokaciju u novom tabu ViewPageInNewTab=Pogledaj stranicu u novom tabu SetAsHomePage=Postavi kao početnu stranicu @@ -28,4 +30,9 @@ ViewWebsiteInProduction=Pogledaj web lokaciju koristeći URL naslovnice SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/hr_HR/workflow.lang b/htdocs/langs/hr_HR/workflow.lang index 07dfd7e1707..1289c328c4b 100644 --- a/htdocs/langs/hr_HR/workflow.lang +++ b/htdocs/langs/hr_HR/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Podešavanje modula radnog procesa WorkflowDesc=Ovaj modul je dizajniran da mijenja ponašanje automatskih akcija u aplikaciji. Prema predefiniranom, radni proces je otvoren (možete raditi stvari po redu kako želite). Možete uključiti automatske akcije za koje ste zainteresirani. ThereIsNoWorkflowToModify=Nema dostupnih promjena radnog procesa za aktivirane module. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatski kreiraj narudžbu kupca kada je ponuda ovjerena potpisom -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatski kreiraj račun kupca nakon što je ponuda ovjerena potpisom +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatski kreiraj račun kupca nakon što je ugovor ovjeren -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatski kreiraj račun kupca nakon što je narudžba kupca zatvorena -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Označi povezanu ponudu kao naplaćeno kada je narudžba kupca postavljena kao plaćena -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Označi vezanu narudžbu(e) kupca naplaćeno kada je račun kupca postavljen kao plaćeno -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Označi vezanu narudžbu(e) kupca naplaćeno kada je račun kupca postavljen kao ovjereno -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Označi povezanu ponudu kao naplaćeno kada je račun kupca ovjeren -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/hu_HU/accountancy.lang b/htdocs/langs/hu_HU/accountancy.lang index 26d9bc44c53..fbd915772dd 100644 --- a/htdocs/langs/hu_HU/accountancy.lang +++ b/htdocs/langs/hu_HU/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Számlaosztály Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Kód Nature=Természet AccountingJournalType1=Various operation AccountingJournalType2=Eladások @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Export -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/hu_HU/admin.lang b/htdocs/langs/hu_HU/admin.lang index 71fe5fa2d07..10d5a60890b 100644 --- a/htdocs/langs/hu_HU/admin.lang +++ b/htdocs/langs/hu_HU/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Rendszereszközök területe SystemToolsAreaDesc=Ez a terület ad adminisztrációs funkciókat. Használja a menüt a funkciót, amit keresel. Purge=Tisztítsd PurgeAreaDesc=Ezen az oldalon a Dolibarr által generált fájlokat törölhet (ideiglenes fájlokat vagy minden fájlt a %s könyvtárban) Ennek a funkciónak a használata nem kötelező. Leginkább hosztolt környezetben lehet hasznos ahol a szolgáltató nem ad jogosultságot a webszerver logfájljainak törlésére. -PurgeDeleteLogFile=A Syslog modulban definiált %s logfájl törlése (nem vezet adatvesztéshez) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Töröljön minden ideiglenes fájlt (nincs adatvesztés lehetősége) PurgeDeleteTemporaryFilesShort=Ideiglenes fájlok törlése PurgeDeleteAllFilesInDocumentsDir=Összes fájl törlése %s könyvtárban. Az ideiglenes fájlok, hanem adatbázis mentés guba, csatolt fájlok elemek (harmadik fél, számlák, ...) és feltölteni az ECM modul törlődik. PurgeRunNow=Ürítsd ki most PurgeNothingToDelete=Nincs törlésre váró fájl vagy könyvtár PurgeNDirectoriesDeleted=%s törölt fájlokat vagy könyvtárakat. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Üríts minden biztonsági eseményt ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Biztonsági mentés indítása @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr jelenlegi verziója CallUpdatePage=Lépjen az oldalra amiben az adatbázis struktúrát és adatokat frissíti: %s LastStableVersion=Utolsó stabil verzió @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integráció -Module1400Name=Számvitel -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Címkék/kategóriák @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Modult kínál online fizetési oldalra hitelkártya Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Olvassa kedvezmények Permission402=Létrehozza / módosítja kedvezmények Permission403=Kedvezmények érvényesítése Permission404=Törlés kedvezmények -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= Ez a szabály arra kényszerül, hogy %s által aktivált modul -PreviousDumpFiles=Elérhető adatbázis mentés fájlok kiírása +PreviousDumpFiles=Generated database backup files WeekStartOnDay=A hét első napja RunningUpdateProcessMayBeRequired=Futás a frissítési folyamat úgy tűnik, hogy szükség (Programok változat eltér %s %s adatbázis verzió) YouMustRunCommandFromCommandLineAfterLoginToUser=Kell futtatni ezt a parancsot a parancssorból bejelentkezés után a shell felhasználói %s vagy hozzá kell-W opció végén parancsot, hogy %s jelszót. diff --git a/htdocs/langs/hu_HU/banks.lang b/htdocs/langs/hu_HU/banks.lang index 4d67f6a88ac..d0840c9733f 100644 --- a/htdocs/langs/hu_HU/banks.lang +++ b/htdocs/langs/hu_HU/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Csekk visszatért és a számla újranyitott BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/hu_HU/bills.lang b/htdocs/langs/hu_HU/bills.lang index 219bb5b4c3c..5b48ba19995 100644 --- a/htdocs/langs/hu_HU/bills.lang +++ b/htdocs/langs/hu_HU/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Számla kártya PredefinedInvoices=Előre definiált számlák Invoice=Számla +PdfInvoiceTitle=Számla Invoices=Számlák InvoiceLine=Számla tételsor InvoiceCustomer=Vásárlói számla diff --git a/htdocs/langs/hu_HU/compta.lang b/htdocs/langs/hu_HU/compta.lang index 8bff007aad1..5847363c48e 100644 --- a/htdocs/langs/hu_HU/compta.lang +++ b/htdocs/langs/hu_HU/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/hu_HU/errors.lang b/htdocs/langs/hu_HU/errors.lang index b35d06274d5..0ddbe6f2a10 100644 --- a/htdocs/langs/hu_HU/errors.lang +++ b/htdocs/langs/hu_HU/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/hu_HU/install.lang b/htdocs/langs/hu_HU/install.lang index 4080bc69214..7d62ca4fa56 100644 --- a/htdocs/langs/hu_HU/install.lang +++ b/htdocs/langs/hu_HU/install.lang @@ -53,10 +53,10 @@ AdminLogin=Adatbázis tulajdonos bejelentkezési neve. PasswordAgain=Jelszó mégegyszer AdminPassword=Adatbázis tulajdonos jelszava. CreateDatabase=Adatbázis lérehozása -CreateUser=Tulajdonos lérehozása +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Adatbázis szerver - Superuser hozzáférés CheckToCreateDatabase=Pipálja ki a dobozt ha szeretné, hogy a rendszer létrehozza az adatbázist.
    Ebbben az esetben a SuperUser bejelentkezési adatait ki kell tölteni az oldal alján. -CheckToCreateUser=Pipálja ki a dobozt ha szeretné, hogy a rendszer létrehozza az adatbázis tulajdonos.
    Ebbben az esetben a SuperUser bejelentkezési adatait ki kell tölteni az oldal alján. A a doboz nincs kipipálva akkor az adatbázisnak és a tulajdonosának léteznie kell. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=A felhasználó jogosúlt új adatbázisok vagy új felhasználók létrehozására, felesleges ha a szolgáltatás hostolt formában veszik igénybe. KeepEmptyIfNoPassword=Hagyja üresen ha a felhasználónak nincs jelszava (az ilyet jobb elkerülni) SaveConfigurationFile=Értékek mentése diff --git a/htdocs/langs/hu_HU/main.lang b/htdocs/langs/hu_HU/main.lang index 224a44673a6..a4d9fd2f936 100644 --- a/htdocs/langs/hu_HU/main.lang +++ b/htdocs/langs/hu_HU/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=A fájl sikeresen fel lett töltve -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=Egy fájl ki lett választva csatolásra, de még nincs feltöltve. Kattintson a "Fájl Csatolása" gombra. NbOfEntries=Bejegyzések száma GoToWikiHelpPage=Online súgó olvasása (Internet hozzáférés szükséges) @@ -196,6 +197,7 @@ Parameter=Paraméter Parameters=Paraméterek Value=Érték PersonalValue=Személyes Érték +NewObject=New %s NewValue=Új Érték CurrentValue=Jelenlegi Érték Code=Kód @@ -441,6 +443,7 @@ Reporting=Jelentés Reportings=Jelentés Draft=Piszkozat Drafts=Piszkozatok +StatusInterInvoiced= Validated=Hitelesítve Opened=Nyitott New=Új @@ -727,6 +730,7 @@ SetBankAccount=Bankszámla megadása AccountCurrency=Számla pénzneme ViewPrivateNote=Megjegyzések XMoreLines=%s sor rejtve maradt +ShowMoreLines=Show more lines PublicUrl=Nyílvános URL AddBox=Add box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Elutasít Denied=Elutasítva +ListOf=List of %s ListOfTemplates=List of templates Gender=Nem Genderman=Férfi diff --git a/htdocs/langs/hu_HU/modulebuilder.lang b/htdocs/langs/hu_HU/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/hu_HU/modulebuilder.lang +++ b/htdocs/langs/hu_HU/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/hu_HU/multicurrency.lang b/htdocs/langs/hu_HU/multicurrency.lang index b8ed714c199..a529b8b73bb 100644 --- a/htdocs/langs/hu_HU/multicurrency.lang +++ b/htdocs/langs/hu_HU/multicurrency.lang @@ -4,7 +4,8 @@ ErrorAddRateFail=Error in added rate ErrorAddCurrencyFail=Error in added currency ErrorDeleteCurrencyFail=Error delete fail multicurrency_syncronize_error=Synchronisation error: %s -multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate) CurrencyLayerAccount=CurrencyLayer API CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
    Get your API key
    If you use a free account you can't change the currency source (USD by default)
    But if your main currency isn't USD you can use the alternate currency source to force you main currency

    You are limited at 1000 synchronizations per month multicurrency_appId=API key diff --git a/htdocs/langs/hu_HU/orders.lang b/htdocs/langs/hu_HU/orders.lang index 10c3129a255..8c71586d3bd 100644 --- a/htdocs/langs/hu_HU/orders.lang +++ b/htdocs/langs/hu_HU/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Beszállítói rendelések OrderCard=Megrendelőlap OrderId=Megrendelés azonosító Order=Megrendelés +PdfOrderTitle=Megrendelés Orders=Megrendelések OrderLine=Rendelés vonal OrderDate=Megrendelés dátuma diff --git a/htdocs/langs/hu_HU/other.lang b/htdocs/langs/hu_HU/other.lang index f31707938d1..39f6697d47f 100644 --- a/htdocs/langs/hu_HU/other.lang +++ b/htdocs/langs/hu_HU/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/hu_HU/propal.lang b/htdocs/langs/hu_HU/propal.lang index 62eadf4b4fd..07f2e39544d 100644 --- a/htdocs/langs/hu_HU/propal.lang +++ b/htdocs/langs/hu_HU/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Készítsen üzleti ajánlatot ProposalsOpened=Open commercial proposals Prop=Üzleti ajánlatok CommercialProposal=Üzleti ajánlat +PdfCommercialProposalTitle=Üzleti ajánlat ProposalCard=Javaslat kártya NewProp=Új kereskedelmi javaslat NewPropal=Új javaslat diff --git a/htdocs/langs/hu_HU/salaries.lang b/htdocs/langs/hu_HU/salaries.lang index 522bf0a65d7..7e0c80d3380 100644 --- a/htdocs/langs/hu_HU/salaries.lang +++ b/htdocs/langs/hu_HU/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries diff --git a/htdocs/langs/hu_HU/website.lang b/htdocs/langs/hu_HU/website.lang index a08625214ee..bf9583ace3a 100644 --- a/htdocs/langs/hu_HU/website.lang +++ b/htdocs/langs/hu_HU/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=A honlap törlése ConfirmDeleteWebsite=Biztos benne, hogy le akarja törölni a honlapot? Az összes oldal és tartalom el fog veszni! WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/hu_HU/workflow.lang b/htdocs/langs/hu_HU/workflow.lang index 66a73578b56..2a858eb89a9 100644 --- a/htdocs/langs/hu_HU/workflow.lang +++ b/htdocs/langs/hu_HU/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Workflow modul beállítása WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/id_ID/accountancy.lang b/htdocs/langs/id_ID/accountancy.lang index c39776372ae..1462537a500 100644 --- a/htdocs/langs/id_ID/accountancy.lang +++ b/htdocs/langs/id_ID/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Saldo akun - +ObjectsRef=Source object ref CAHTF=Total pembelian pemasok sebelum pajak TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=Daftar akun-akun akunting +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Kesalahan, Anda tidak dapat menghapus akun akuntansi ini karena digunakan -MvtNotCorrectlyBalanced=Perpindahan tidak benar seimbang . Kredit = %s . Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Code Nature=Nature AccountingJournalType1=Various operation AccountingJournalType2=Sales @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Ekspor -Export=Ekspor ExportDraftJournal=Export draft journal Modelcsv=Model Ekspor OptionsDeactivatedForThisExportModel=Untuk model ekspor ini , opsi dinonaktifkan diff --git a/htdocs/langs/id_ID/admin.lang b/htdocs/langs/id_ID/admin.lang index 6fbbdb0eced..cd226dca547 100644 --- a/htdocs/langs/id_ID/admin.lang +++ b/htdocs/langs/id_ID/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Daerah Alat-Alat Sistem SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. Purge=Perbersihan PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. PurgeRunNow=Bersihkan sekarang PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s files or directories deleted. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Purge all security events ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Generate backup @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Versi Dolibarr saat ini CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration -Module1400Name=Akunting -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Read discounts Permission402=Create/modify discounts Permission403=Validate discounts Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files +PreviousDumpFiles=Generated database backup files WeekStartOnDay=First day of week RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. diff --git a/htdocs/langs/id_ID/banks.lang b/htdocs/langs/id_ID/banks.lang index 9a9c493bb49..f520bd86643 100644 --- a/htdocs/langs/id_ID/banks.lang +++ b/htdocs/langs/id_ID/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/id_ID/bills.lang b/htdocs/langs/id_ID/bills.lang index 90a2cc650e9..d0e821f1973 100644 --- a/htdocs/langs/id_ID/bills.lang +++ b/htdocs/langs/id_ID/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Kartu tagihan PredefinedInvoices=Tagihan tetap sementara Invoice=Tagihan +PdfInvoiceTitle=Tagihan Invoices=Tagihan - tagihan InvoiceLine=Baris tagihan InvoiceCustomer=Tagihan pelanggan diff --git a/htdocs/langs/id_ID/compta.lang b/htdocs/langs/id_ID/compta.lang index 65bbb736dc8..aefd4dbb5f5 100644 --- a/htdocs/langs/id_ID/compta.lang +++ b/htdocs/langs/id_ID/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/id_ID/errors.lang b/htdocs/langs/id_ID/errors.lang index feada2d1b5a..853a34b4bb4 100644 --- a/htdocs/langs/id_ID/errors.lang +++ b/htdocs/langs/id_ID/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/id_ID/install.lang b/htdocs/langs/id_ID/install.lang index 650d19c5c3b..3e848bd60f8 100644 --- a/htdocs/langs/id_ID/install.lang +++ b/htdocs/langs/id_ID/install.lang @@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner. PasswordAgain=Ketikkan ulang kata kunci AdminPassword=Password for Dolibarr database owner. CreateDatabase=Create database -CreateUser=Create owner +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Database server - Superuser access CheckToCreateDatabase=Check box if database does not exist and must be created.
    In this case, you must fill the login/password for superuser account at the bottom of this page. -CheckToCreateUser=Check box if database owner does not exist and must be created.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists. KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this) SaveConfigurationFile=Save values diff --git a/htdocs/langs/id_ID/main.lang b/htdocs/langs/id_ID/main.lang index edb07272adb..d3122044f1a 100644 --- a/htdocs/langs/id_ID/main.lang +++ b/htdocs/langs/id_ID/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=The file was successfully uploaded -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parameter Parameters=Parameters Value=Value PersonalValue=Personal value +NewObject=New %s NewValue=New value CurrentValue=Current value Code=Code @@ -441,6 +443,7 @@ Reporting=Reporting Reportings=Reporting Draft=Konsep Drafts=Drafts +StatusInterInvoiced= Validated=Divalidasi Opened=Open New=New @@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account AccountCurrency=Account Currency ViewPrivateNote=View notes XMoreLines=%s line(s) hidden +ShowMoreLines=Show more lines PublicUrl=Public URL AddBox=Add box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Gender Genderman=Man diff --git a/htdocs/langs/id_ID/modulebuilder.lang b/htdocs/langs/id_ID/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/id_ID/modulebuilder.lang +++ b/htdocs/langs/id_ID/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/id_ID/orders.lang b/htdocs/langs/id_ID/orders.lang index 2e3c8444a35..aa7aa052cfb 100644 --- a/htdocs/langs/id_ID/orders.lang +++ b/htdocs/langs/id_ID/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area OrderCard=Order card OrderId=Order Id Order=Order +PdfOrderTitle=Order Orders=Orders OrderLine=Order line OrderDate=Tanggal Pemesanan diff --git a/htdocs/langs/id_ID/other.lang b/htdocs/langs/id_ID/other.lang index 4b742a40a6e..7c0fd283d2b 100644 --- a/htdocs/langs/id_ID/other.lang +++ b/htdocs/langs/id_ID/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/id_ID/propal.lang b/htdocs/langs/id_ID/propal.lang index 8502ce5e775..712ae22817f 100644 --- a/htdocs/langs/id_ID/propal.lang +++ b/htdocs/langs/id_ID/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal +PdfCommercialProposalTitle=Commercial proposal ProposalCard=Proposal card NewProp=New commercial proposal NewPropal=New proposal diff --git a/htdocs/langs/id_ID/salaries.lang b/htdocs/langs/id_ID/salaries.lang index 1810ca6becf..52d9b4b190b 100644 --- a/htdocs/langs/id_ID/salaries.lang +++ b/htdocs/langs/id_ID/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Gaji Salaries=Gaji diff --git a/htdocs/langs/id_ID/website.lang b/htdocs/langs/id_ID/website.lang index b3b05ee6cc9..98577e0de5e 100644 --- a/htdocs/langs/id_ID/website.lang +++ b/htdocs/langs/id_ID/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/id_ID/workflow.lang b/htdocs/langs/id_ID/workflow.lang index 54246856e9b..8021fb9b198 100644 --- a/htdocs/langs/id_ID/workflow.lang +++ b/htdocs/langs/id_ID/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Workflow module setup WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/is_IS/accountancy.lang b/htdocs/langs/is_IS/accountancy.lang index 1957b97071b..e756d019ed9 100644 --- a/htdocs/langs/is_IS/accountancy.lang +++ b/htdocs/langs/is_IS/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Code Nature=Náttúra AccountingJournalType1=Various operation AccountingJournalType2=Velta @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/is_IS/admin.lang b/htdocs/langs/is_IS/admin.lang index 4f86f10e466..5eae95f6ebe 100644 --- a/htdocs/langs/is_IS/admin.lang +++ b/htdocs/langs/is_IS/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Kerfi verkfæri area SystemToolsAreaDesc=Þetta svæði býður upp á gjöf lögun. Notaðu valmyndina til að velja aðgerðina sem þú ert að leita að. Purge=Purge PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Eyða öllum skrám í möppunni %s . Tímabundin skrá en einnig skrár sem viðhengi til þættir (þriðja aðila, reikningum, ...) og hlaða inn á ECM mát verður eytt. PurgeRunNow=Hreinsa nú PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted= %s skrá eða framkvæmdarstjóra eytt. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Hreinsa alla viðburði ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Búa til öryggisafrit @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr núverandi útgáfa CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis sameining -Module1400Name=Bókhald -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module til að bjóða upp á netinu greiðslu síðu með kreditkorti með Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Lesa afsláttur Permission402=Búa til / breyta afsláttur Permission403=Staðfesta afsláttur Permission404=Eyða afsláttur -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= Þessi regla er þvinguð til %s með virkt mát -PreviousDumpFiles=Laus gagnasafn afrit afrita skrár +PreviousDumpFiles=Generated database backup files WeekStartOnDay=Fyrsti dagur vikunnar RunningUpdateProcessMayBeRequired=Running the uppfærsla aðferð virðist vera krafist (Programs útgáfa %s er frábrugðið gagnasafn útgáfa %s ) YouMustRunCommandFromCommandLineAfterLoginToUser=Þú verður að keyra þessa skipun frá stjórn lína eftir innskráningu í skel með notandann %s . diff --git a/htdocs/langs/is_IS/banks.lang b/htdocs/langs/is_IS/banks.lang index de9adb84a95..2b4983a642b 100644 --- a/htdocs/langs/is_IS/banks.lang +++ b/htdocs/langs/is_IS/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/is_IS/bills.lang b/htdocs/langs/is_IS/bills.lang index 7f4a8b56b1c..fd30bb8da4f 100644 --- a/htdocs/langs/is_IS/bills.lang +++ b/htdocs/langs/is_IS/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Invoice kort PredefinedInvoices=Fyrirfram ákveðnum Reikningar Invoice=Invoice +PdfInvoiceTitle=Invoice Invoices=Kvittanir InvoiceLine=Invoice línu InvoiceCustomer=Viðskiptavinur Reikningar diff --git a/htdocs/langs/is_IS/compta.lang b/htdocs/langs/is_IS/compta.lang index 1882883d39c..e117e50e495 100644 --- a/htdocs/langs/is_IS/compta.lang +++ b/htdocs/langs/is_IS/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/is_IS/errors.lang b/htdocs/langs/is_IS/errors.lang index 67c301be52a..349e87d8d65 100644 --- a/htdocs/langs/is_IS/errors.lang +++ b/htdocs/langs/is_IS/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/is_IS/install.lang b/htdocs/langs/is_IS/install.lang index bb5119260d1..9b1373d7d05 100644 --- a/htdocs/langs/is_IS/install.lang +++ b/htdocs/langs/is_IS/install.lang @@ -53,10 +53,10 @@ AdminLogin=Innskráning fyrir Dolibarr gagnasafn eigandi. PasswordAgain=Sláðu lykilorðið inn aftur í annað sinn AdminPassword=Lykilorð fyrir Dolibarr gagnasafn eigandi. CreateDatabase=Búa til gagnasafn -CreateUser=Búa til eiganda +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Gagnasafn framreiðslumaður - Ofurpaur aðgang CheckToCreateDatabase=Hakaðu í reitinn ef gagnagrunnur er ekki til og því þarf að skapa.
    Í þessum tilfellum verður þú að fylla tenging / lykilorð til Ofurpaur reikning neðst á þessari síðu. -CheckToCreateUser=Hakaðu í reitinn ef gagnasafn eigandi er ekki til og því þarf að skapa.
    Í þessum tilfellum verður þú að velja notandanafn og lykilorð og einnig fylla tenging / lykilorð til að Ofurpaur reikning neðst á þessari síðu. Ef þessi kassi er valið, eigandi gagnagrunn og lykilorð hans verður að vera til. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Innskráning á notanda leyft að búa til nýja gagnagrunna eða nýr notandi, gagnslaus ef gagnasafninu og gagnasafn innskráningu þegar til (eins og þegar þú ert haldin af vefþjónusta fyrir hendi). KeepEmptyIfNoPassword=Leyfi tómur ef notandi hefur ekki aðgangsorð (forðast þetta) SaveConfigurationFile=Vista gildi diff --git a/htdocs/langs/is_IS/main.lang b/htdocs/langs/is_IS/main.lang index e04359d8154..35498966464 100644 --- a/htdocs/langs/is_IS/main.lang +++ b/htdocs/langs/is_IS/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=Skráin tókst að hlaða inn -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=A-skrá er valin fyrir viðhengi en var ekki enn upp. Smelltu á "Hengja skrá" fyrir þessu. NbOfEntries=ATH færslna GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Viðfang Parameters=Breytur Value=Gildi PersonalValue=Starfsfólk gildi +NewObject=New %s NewValue=Nýtt gildi CurrentValue=Núverandi gildi Code=Code @@ -441,6 +443,7 @@ Reporting=Skýrslur Reportings=Skýrslur Draft=Víxill Drafts=Drög +StatusInterInvoiced= Validated=Staðfestar Opened=Opnaðu New=New @@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account AccountCurrency=Account Currency ViewPrivateNote=View notes XMoreLines=%s line(s) hidden +ShowMoreLines=Show more lines PublicUrl=Public URL AddBox=Add box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Gender Genderman=Man diff --git a/htdocs/langs/is_IS/modulebuilder.lang b/htdocs/langs/is_IS/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/is_IS/modulebuilder.lang +++ b/htdocs/langs/is_IS/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/is_IS/orders.lang b/htdocs/langs/is_IS/orders.lang index 50ce943e5e1..3768251619f 100644 --- a/htdocs/langs/is_IS/orders.lang +++ b/htdocs/langs/is_IS/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Birgjar pantanir area OrderCard=Panta kort OrderId=Order Id Order=Panta +PdfOrderTitle=Panta Orders=Pantanir OrderLine=Pöntunarlína OrderDate=Panta dagsetningu diff --git a/htdocs/langs/is_IS/other.lang b/htdocs/langs/is_IS/other.lang index e833def6b78..b566f598687 100644 --- a/htdocs/langs/is_IS/other.lang +++ b/htdocs/langs/is_IS/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/is_IS/propal.lang b/htdocs/langs/is_IS/propal.lang index 6c9569b9f13..34bd8edbebd 100644 --- a/htdocs/langs/is_IS/propal.lang +++ b/htdocs/langs/is_IS/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Drög að auglýsing tillögur ProposalsOpened=Open commercial proposals Prop=Auglýsing tillögur CommercialProposal=Auglýsing tillögu +PdfCommercialProposalTitle=Auglýsing tillögu ProposalCard=Tillaga kort NewProp=Ný auglýsing tillögu NewPropal=Ný tillaga diff --git a/htdocs/langs/is_IS/salaries.lang b/htdocs/langs/is_IS/salaries.lang index 522bf0a65d7..7e0c80d3380 100644 --- a/htdocs/langs/is_IS/salaries.lang +++ b/htdocs/langs/is_IS/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries diff --git a/htdocs/langs/is_IS/website.lang b/htdocs/langs/is_IS/website.lang index b3b05ee6cc9..98577e0de5e 100644 --- a/htdocs/langs/is_IS/website.lang +++ b/htdocs/langs/is_IS/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/is_IS/workflow.lang b/htdocs/langs/is_IS/workflow.lang index 2a3bb2db100..0883dfcc71d 100644 --- a/htdocs/langs/is_IS/workflow.lang +++ b/htdocs/langs/is_IS/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Vinnuflæði mát skipulag WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/it_IT/accountancy.lang b/htdocs/langs/it_IT/accountancy.lang index 5a25f74299a..0f08b7a8e13 100644 --- a/htdocs/langs/it_IT/accountancy.lang +++ b/htdocs/langs/it_IT/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Saldo - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Righe di fatture da vincolare @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Movimento non bilanciato correttamente. Credito =%s. Debito =%s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Codice Nature=Natura AccountingJournalType1=Various operation AccountingJournalType2=Vendite @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Esportazioni -Export=Esportazione ExportDraftJournal=Export draft journal Modelcsv=Modello di esportazione OptionsDeactivatedForThisExportModel=Per questo modello di esportazione, le opzioni sono disattivate diff --git a/htdocs/langs/it_IT/admin.lang b/htdocs/langs/it_IT/admin.lang index 91618398a0e..c4ff725990d 100644 --- a/htdocs/langs/it_IT/admin.lang +++ b/htdocs/langs/it_IT/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Sezione strumenti di gestione del sistema SystemToolsAreaDesc=Questa sezione offre funzioni di gestione. Utilizzare il menu per scegliere la funzione che stai cercando. Purge=Pulizia PurgeAreaDesc=Questa pagina consente di eliminare tutti i file su disco creati da Dolibarr (file temporanei o tutti i file in %s ). L'utilizzo di questa funzione non è strettamente necessario.
    Viene fornita per gli utenti Dolibarr che utilizzano un servizio di hosting che non offre le autorizzazioni per eliminare i file temporanei dai server web. -PurgeDeleteLogFile=Eliminia il log file %s definito nel modulo Syslog (nessun rischio di perdita di dati) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Elimina tutti i file temporanei (nessun rischio di perdere dati) PurgeDeleteTemporaryFilesShort=Cancella fle temporanei PurgeDeleteAllFilesInDocumentsDir=Elimina tutti i file nella directory %s . I file temporanei, ma anche file allegati di elementi (terze parti, fatture, ...) saranno cancellati. PurgeRunNow=Procedo all'eliminazione PurgeNothingToDelete=Nessuna directory o file da eliminare. PurgeNDirectoriesDeleted= %s di file o directory eliminati. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Elimina tutti gli eventi di sicurezza ConfirmPurgeAuditEvents=Vuoi davvero eliminare tutti gli eventi di sicurezza? Tutti i log di sicurezza verranno cancellati, nessun altro dato verrà rimosso. GenerateBackup=Genera il backup @@ -298,7 +299,7 @@ SetupIsReadyForUse=Installazione del modulo completata. Devi abilitare e configu NotExistsDirect=La directory root alternativa non è stata associata ad una directory esistente.
    InfDirAlt=A partire dalla versione 3 è possibile definire una directory root alternativa. Ciò permette di archiviare plugin e template personalizzati nello stesso posto.
    Basta creare una directory nella root di Dolibarr (per esempio: custom).
    InfDirExample=
    Poi dichiaralo nel file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    . Se queste righe sono commentate con "#", per abilitarle basta rimuovere il carattere "#". -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Versione attuale di Dolibarr CallUpdatePage=Vai alla pagina che aggiorna la struttura del database e dati su %s. LastStableVersion=Ultima versione stabile @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Integrazione Mantis -Module1400Name=Contabilità avanzata -Module1400Desc=Accounting management (double entries) Module1520Name=Generazione dei documenti Module1520Desc=Mass mail document generation Module1780Name=Tag/categorie @@ -585,7 +584,7 @@ Module50100Desc=Modulo per la creazione di un punto vendita (POS) Module50200Name=Paypal Module50200Desc=Modulo per offrire il pagamento online con Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Stampa diretta (senza aprire i documenti) tramite l'interfaccia CUPS IPP (la stampante deve essere visibile dal server, e il server deve avere CUPS installato). Module55000Name=Sondaggio, Indagine o Votazione @@ -751,8 +750,10 @@ Permission401=Vedere sconti Permission402=Creare/modificare sconti Permission403=Convalidare sconti Permission404=Eliminare sconti -Permission510=Read Salaries -Permission512=Crea/modifica stipendi +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Esporta stipendi Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Ripristinare da un file di archivio (zip file, ad esempio) della ca RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=Importa MySQL ForcedToByAModule= Questa regola è impsotata su %s da un modulo attivo -PreviousDumpFiles=È disponibile il precedente backup del database (dump) +PreviousDumpFiles=Generated database backup files WeekStartOnDay=Primo giorno della settimana RunningUpdateProcessMayBeRequired=Sembra necessario eseguire l'aggiornamento (Il programma è alla versione %s e differisce dalla versione %s del database) YouMustRunCommandFromCommandLineAfterLoginToUser=È necessario eseguire questo comando dal riga di comando dopo il login in una shell con l'utente %s. diff --git a/htdocs/langs/it_IT/banks.lang b/htdocs/langs/it_IT/banks.lang index eac03717371..e171ccf3187 100644 --- a/htdocs/langs/it_IT/banks.lang +++ b/htdocs/langs/it_IT/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Assegno restituito e fatture riaperte BankAccountModelModule=Modelli di documento per i conti bancari e le casse DocumentModelSepaMandate=Modello di documento per i mandati SEPA. Da utilizzare solamente per i paese appartenenti alla CEE DocumentModelBan=Template per la stampa delle informazioni relative al BAN -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/it_IT/bills.lang b/htdocs/langs/it_IT/bills.lang index 163b0cf937c..37eaa448c90 100644 --- a/htdocs/langs/it_IT/bills.lang +++ b/htdocs/langs/it_IT/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Rettificata da una o più fatture CardBill=Scheda fattura PredefinedInvoices=Fatture predefinite Invoice=Fattura +PdfInvoiceTitle=Fattura Invoices=Fatture InvoiceLine=Riga fattura InvoiceCustomer=Fattura attiva diff --git a/htdocs/langs/it_IT/compta.lang b/htdocs/langs/it_IT/compta.lang index 7c7e389799e..764d3b9a2a3 100644 --- a/htdocs/langs/it_IT/compta.lang +++ b/htdocs/langs/it_IT/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Codice contabile predefinito per la riscossione dell ACCOUNTING_VAT_BUY_ACCOUNT=Codice contabile predefinito per il recupero dell'IVA sugli acquisti (usato se l'IVA non è definita nel dizionario) ACCOUNTING_VAT_PAY_ACCOUNT=Codice contabile predefinito per il pagamento dell'IVA ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clonare tassa/contributo ConfirmCloneTax=Conferma la clonazione del pagamento tassa/contributo CloneTaxForNextMonth=Clona nel mese successivo diff --git a/htdocs/langs/it_IT/errors.lang b/htdocs/langs/it_IT/errors.lang index 7f6d02f4920..bc35e2e510b 100644 --- a/htdocs/langs/it_IT/errors.lang +++ b/htdocs/langs/it_IT/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/it_IT/install.lang b/htdocs/langs/it_IT/install.lang index 9df8c739036..747f8040a16 100644 --- a/htdocs/langs/it_IT/install.lang +++ b/htdocs/langs/it_IT/install.lang @@ -53,10 +53,10 @@ AdminLogin=Login per amministratore del database. Da lasciare vuoto se ci si col PasswordAgain=Conferma la password una seconda volta AdminPassword=Password per amministratore del database. Da lasciare vuoto se ci si collega in forma anonima CreateDatabase=Crea database -CreateUser=Crea utente +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Accesso superutente al database CheckToCreateDatabase=Seleziona questa opzione se il database non esiste e deve essere creato.
    Sarà necessario indicare login e password dell'account di root in fondo a questa pagina. -CheckToCreateUser=Seleziona questa opzione se l'utente non esiste e deve essere creato.
    In questo caso, è necessario indicare login e password dell'account di root in fondo a questa pagina. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Login utente con permesso di creare nuovi database o nuovi utenti. Non è necessario se il database esiste già. KeepEmptyIfNoPassword=Lasciare vuoto se l'utente non ha alcuna password (da evitare per motivi di sicurezza) SaveConfigurationFile=Salva file diff --git a/htdocs/langs/it_IT/main.lang b/htdocs/langs/it_IT/main.lang index 510682bf199..1245ddca45a 100644 --- a/htdocs/langs/it_IT/main.lang +++ b/htdocs/langs/it_IT/main.lang @@ -75,7 +75,8 @@ FileRenamed=Il file è stato rinominato con successo FileGenerated=Il file è stato generato con successo FileSaved=The file was successfully saved FileUploaded=Il file è stato caricato con successo -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=Il file selezionato per l'upload non è stato ancora caricato. Clicca su Allega file per farlo NbOfEntries=Numero di voci GoToWikiHelpPage=Leggi l'aiuto online (è richiesto un collegamento internet) @@ -196,6 +197,7 @@ Parameter=Parametro Parameters=Parametri Value=Valore PersonalValue=Valore personalizzato +NewObject=New %s NewValue=Nuovo valore CurrentValue=Valore attuale Code=Codice @@ -441,6 +443,7 @@ Reporting=Reportistica Reportings=Reportistiche Draft=Bozza Drafts=Bozze +StatusInterInvoiced= Validated=Convalidato Opened=Aperto New=Nuovo @@ -727,6 +730,7 @@ SetBankAccount=Definisci un numero di Conto Corrente Bancario AccountCurrency=Valuta del conto ViewPrivateNote=Vedi note XMoreLines=%s linea(e) nascoste +ShowMoreLines=Show more lines PublicUrl=URL pubblico AddBox=Aggiungi box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Vai in Home -> Impostazioni -> Società per cambiare il logo o in Home - Setup -> display per nasconderlo. Deny=Rifiuta Denied=Rifiutata +ListOf=List of %s ListOfTemplates=Elenco dei modelli Gender=Genere Genderman=Uomo diff --git a/htdocs/langs/it_IT/modulebuilder.lang b/htdocs/langs/it_IT/modulebuilder.lang index 395196b55bc..858a33dda37 100644 --- a/htdocs/langs/it_IT/modulebuilder.lang +++ b/htdocs/langs/it_IT/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Moduli generati/modificabili trovati: %s (vengono rilevati come modificabili quando il file %sesiste nella directory principale del modulo). NewModule=Nuovo modulo @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Modulo inizializzato -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Inserisci qui le informazioni generali che descrivono il modulo -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=Questa scheda è dedicata a definire le voci di menu fornite dal tuo modulo ModuleBuilderDescpermissions=Questa scheda è dedicata a definire le nuove autorizzazione che vuoi fornire con il modulo ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=Questo modulo è stato attivato. Qualsiasi sua modifica può interrompere una funzionalità attiva. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/it_IT/multicurrency.lang b/htdocs/langs/it_IT/multicurrency.lang index b8ed714c199..a529b8b73bb 100644 --- a/htdocs/langs/it_IT/multicurrency.lang +++ b/htdocs/langs/it_IT/multicurrency.lang @@ -4,7 +4,8 @@ ErrorAddRateFail=Error in added rate ErrorAddCurrencyFail=Error in added currency ErrorDeleteCurrencyFail=Error delete fail multicurrency_syncronize_error=Synchronisation error: %s -multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate) CurrencyLayerAccount=CurrencyLayer API CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
    Get your API key
    If you use a free account you can't change the currency source (USD by default)
    But if your main currency isn't USD you can use the alternate currency source to force you main currency

    You are limited at 1000 synchronizations per month multicurrency_appId=API key diff --git a/htdocs/langs/it_IT/orders.lang b/htdocs/langs/it_IT/orders.lang index 672c4dfcdf2..da03aea752c 100644 --- a/htdocs/langs/it_IT/orders.lang +++ b/htdocs/langs/it_IT/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Area ordini dei fornitori OrderCard=Scheda ordine OrderId=Identificativo ordine Order=Ordine +PdfOrderTitle=Ordine Orders=Ordini OrderLine=Riga Ordine OrderDate=Data ordine diff --git a/htdocs/langs/it_IT/other.lang b/htdocs/langs/it_IT/other.lang index 94bc2f70965..8cea90bfbd8 100644 --- a/htdocs/langs/it_IT/other.lang +++ b/htdocs/langs/it_IT/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/it_IT/propal.lang b/htdocs/langs/it_IT/propal.lang index d29182243c0..128478e935c 100644 --- a/htdocs/langs/it_IT/propal.lang +++ b/htdocs/langs/it_IT/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Bozza di proposte commerciali ProposalsOpened=Proposte commerciali aperte Prop=Preventivi/Prop. commerciali CommercialProposal=Preventivo/Proposta commerciale +PdfCommercialProposalTitle=Preventivo/Proposta commerciale ProposalCard=Proposta di carta NewProp=Nuova proposta commerciale NewPropal=Nuova proposta diff --git a/htdocs/langs/it_IT/salaries.lang b/htdocs/langs/it_IT/salaries.lang index a85e06ebc55..97d80db7f10 100644 --- a/htdocs/langs/it_IT/salaries.lang +++ b/htdocs/langs/it_IT/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Stipendio Salaries=Stipendi diff --git a/htdocs/langs/it_IT/website.lang b/htdocs/langs/it_IT/website.lang index c352320dfcf..7389678c646 100644 --- a/htdocs/langs/it_IT/website.lang +++ b/htdocs/langs/it_IT/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Crea qui tante voci quante il numero di siti ti servono. Vai po DeleteWebsite=Cancella sito web ConfirmDeleteWebsite=Sei sicuro di vole cancellare questo sito web? Anche tutte le pagine e contenuti saranno cancellati. WEBSITE_PAGENAME=Titolo/alias della pagina +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=Indirizzo URL del file CSS esterno WEBSITE_CSS_INLINE=Codice CSS -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Libreria media -EditCss=Modifica stile/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Modifica menu EditPageMeta=Modifica metadati EditPageContent=Modifica contenuti Website=Sito web -Webpage=Web page -AddPage=Aggiungi pagina +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=L'anteprima del sito %s non è ancora disponibile. Devi prima aggiungere almeno una pagina. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Pagina '%s' del sito %s cancellata -PageAdded=Pagina '%s' aggiunta +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=Visualizza sito in una nuova scheda ViewPageInNewTab=Visualizza pagina in una nuova scheda SetAsHomePage=Imposta come homepage @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/it_IT/workflow.lang b/htdocs/langs/it_IT/workflow.lang index 7c461f30e45..186a02fe32b 100644 --- a/htdocs/langs/it_IT/workflow.lang +++ b/htdocs/langs/it_IT/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Impostazioni flusso di lavoro WorkflowDesc=Questo modulo è progettato per modificare il comportamento di azioni automatiche nell'applicazione. Per impostazione predefinita, il flusso di lavoro è aperto (si possono fare cose nell'ordine che volete). È possibile attivare le azioni automatiche che vi interessano. ThereIsNoWorkflowToModify=Non ci sono modifiche del flusso di lavoro disponibili con i moduli attivati. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Crea automaticamente un ordine del cliente, dopo una proposta commerciale firmata -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Creare automaticamente una fattura attiva alla firma di una proposta commerciale +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Creare automaticamente una fattura attiva alla convalida del contratto -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Creare automaticamente una fattura attiva alla chiusura dell'ordine cliente -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classifica la proposta commerciale collegata come fatturare quando l'ordine cliente è impostato come pagato -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classifica gli ordini dei clienti "fatturati" quando la fattura viene impostata come pagata -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classifica gli ordini dei clienti da fatturare quando la fattura è validata -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classifica il preventivo come pagato quando la relativa fattura cliente è confermata -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classifica l'ordine come spedito quando la spedizione è confermata e la quantità spedita è la stessa dell'ordine +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Creazione automatica AutomaticClassification=Classificazione automatica diff --git a/htdocs/langs/ja_JP/accountancy.lang b/htdocs/langs/ja_JP/accountancy.lang index be989d84b1e..7d340996dcc 100644 --- a/htdocs/langs/ja_JP/accountancy.lang +++ b/htdocs/langs/ja_JP/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=コー​​ド Nature=自然 AccountingJournalType1=Various operation AccountingJournalType2=販売 @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/ja_JP/admin.lang b/htdocs/langs/ja_JP/admin.lang index 7c9ac4da083..0dcdddba0dd 100644 --- a/htdocs/langs/ja_JP/admin.lang +++ b/htdocs/langs/ja_JP/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=システムツールエリア SystemToolsAreaDesc=この領域は、管理機能を提供します。あなたが探している機能を選択するメニューを使用します。 Purge=Purge PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=ディレクトリ%s内のすべてのファイルを削除します。一時ファイルだけでなく、要素にアタッチされた(第三者請求、...)とECMモジュールにアップロードされたデータベースのバックアップダンプファイルが削除されます。 PurgeRunNow=今パージ PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%sファイルまたはディレクトリが削除されました。 +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=すべてのセキュリティイベントをパージする ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=バックアップを生成 @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr現在のバージョン CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=カマキリ Module1200Desc=カマキリの統合 -Module1400Name=会計 -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=ペイパル Module50200Desc=Paypalとクレジットカードによるオンライン決済のページを提供するモジュール Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=割引を読む Permission402=割引を作成/変更 Permission403=割引を検証する Permission404=割引を削除します。 -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= このルールがアクティブ化モジュールによって%sに強制されます。 -PreviousDumpFiles=使用可能なデータベース·バックアップ·ダンプ·ファイル +PreviousDumpFiles=Generated database backup files WeekStartOnDay=週の最初の日 RunningUpdateProcessMayBeRequired=アップグレードプロセスを実行する(プログラムバージョン%sは、データベースのバージョン%sとは異なります)が必要と思われる YouMustRunCommandFromCommandLineAfterLoginToUser=あなたは、ユーザ%s、シェルへのログイン後にコマンドラインからこのコマンドを実行する必要がありますか、追加する必要があります-Wオプションをコマンドラインの末尾に%sパスワード提供します。 diff --git a/htdocs/langs/ja_JP/banks.lang b/htdocs/langs/ja_JP/banks.lang index 8c3b589249b..c53384ecdde 100644 --- a/htdocs/langs/ja_JP/banks.lang +++ b/htdocs/langs/ja_JP/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/ja_JP/bills.lang b/htdocs/langs/ja_JP/bills.lang index 6a8c56531e6..70ec763e7f3 100644 --- a/htdocs/langs/ja_JP/bills.lang +++ b/htdocs/langs/ja_JP/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=請求書カード PredefinedInvoices=事前に定義された請求書 Invoice=請求書 +PdfInvoiceTitle=請求書 Invoices=請求書 InvoiceLine=請求書の行 InvoiceCustomer=得意先請求書 diff --git a/htdocs/langs/ja_JP/compta.lang b/htdocs/langs/ja_JP/compta.lang index 4d1d4ae77ac..0d14f8c89f1 100644 --- a/htdocs/langs/ja_JP/compta.lang +++ b/htdocs/langs/ja_JP/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/ja_JP/errors.lang b/htdocs/langs/ja_JP/errors.lang index 9f88ac112e1..9a18e016e66 100644 --- a/htdocs/langs/ja_JP/errors.lang +++ b/htdocs/langs/ja_JP/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/ja_JP/install.lang b/htdocs/langs/ja_JP/install.lang index 2b7e0da9f7a..631be2fe2b3 100644 --- a/htdocs/langs/ja_JP/install.lang +++ b/htdocs/langs/ja_JP/install.lang @@ -53,10 +53,10 @@ AdminLogin=Dolibarrデータベース所有者のログイン。 PasswordAgain=もう一度パスワードを再入力 AdminPassword=Dolibarrデータベースの所有者のパスワード。 CreateDatabase=データベースを作成します。 -CreateUser=所有者を作成します。 +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=データベースサーバ - スーパーユーザーのアクセス CheckToCreateDatabase=データベースが存在しない場合はチェックボックスをオンにして作成する必要があります。
    このケースでは、このページの下部にスーパーユーザアカウントのログイン/パスワードを入力する必要があります。 -CheckToCreateUser=データベースの所有者が存在しない場合はチェックボックスをオンにして作成する必要があります。
    このケースでは、そのログイン名とパスワードを選択しても、ログイン/このページの下部にスーパーユーザーアカウント用のパスワードを入力する必要があります。このボックスがチェックされていない場合、所有者のデータベースとそのパスワードが存在する必要があります。 +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=あなたのデータベースおよびデータベースのログインが既に存在する場合(あなたがウェブホスティングプロバイダによってホストされているときのように)役に立たない、新しいデータベースまたは新しいユーザを作成することを禁止するユーザのログイン。 KeepEmptyIfNoPassword=ユーザーがパスワードを持っていない場合(これを避けるため)を空のままに SaveConfigurationFile=値を保存 diff --git a/htdocs/langs/ja_JP/main.lang b/htdocs/langs/ja_JP/main.lang index cec9b26293f..ceebaef98c9 100644 --- a/htdocs/langs/ja_JP/main.lang +++ b/htdocs/langs/ja_JP/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=ファイルが正常にアップロードされました -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=ファイルが添付ファイルが選択されているが、まだアップロードされませんでした。このために "添付ファイル"をクリックしてください。 NbOfEntries=エントリのNb GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=パラメーター Parameters=パラメータ Value=値 PersonalValue=個人的価値 +NewObject=New %s NewValue=新しい値 CurrentValue=電流値 Code=コー​​ド @@ -441,6 +443,7 @@ Reporting=報告 Reportings=報告 Draft=ドラフト Drafts=ドラフト +StatusInterInvoiced= Validated=検証 Opened=開く New=新しい @@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account AccountCurrency=Account Currency ViewPrivateNote=View notes XMoreLines=%s line(s) hidden +ShowMoreLines=Show more lines PublicUrl=Public URL AddBox=Add box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Gender Genderman=Man diff --git a/htdocs/langs/ja_JP/modulebuilder.lang b/htdocs/langs/ja_JP/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/ja_JP/modulebuilder.lang +++ b/htdocs/langs/ja_JP/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/ja_JP/orders.lang b/htdocs/langs/ja_JP/orders.lang index 2f94e595440..e1840a8a4c2 100644 --- a/htdocs/langs/ja_JP/orders.lang +++ b/htdocs/langs/ja_JP/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=仕入先の受注エリア OrderCard=注文カード OrderId=Order Id Order=オーダー +PdfOrderTitle=オーダー Orders=受注 OrderLine=注文明細行 OrderDate=注文日 diff --git a/htdocs/langs/ja_JP/other.lang b/htdocs/langs/ja_JP/other.lang index c850750651f..4047253b30b 100644 --- a/htdocs/langs/ja_JP/other.lang +++ b/htdocs/langs/ja_JP/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/ja_JP/propal.lang b/htdocs/langs/ja_JP/propal.lang index fdbfa32a8d3..97c0f37bf01 100644 --- a/htdocs/langs/ja_JP/propal.lang +++ b/htdocs/langs/ja_JP/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=ドラフト商業の提案 ProposalsOpened=Open commercial proposals Prop=商用の提案 CommercialProposal=商業的提案 +PdfCommercialProposalTitle=商業的提案 ProposalCard=提案カード NewProp=新しい商業提案 NewPropal=新たな提案 diff --git a/htdocs/langs/ja_JP/salaries.lang b/htdocs/langs/ja_JP/salaries.lang index 522bf0a65d7..7e0c80d3380 100644 --- a/htdocs/langs/ja_JP/salaries.lang +++ b/htdocs/langs/ja_JP/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries diff --git a/htdocs/langs/ja_JP/website.lang b/htdocs/langs/ja_JP/website.lang index 408fce2ec28..3069557f845 100644 --- a/htdocs/langs/ja_JP/website.lang +++ b/htdocs/langs/ja_JP/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=ウェブサイトを削除 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=ウェブサイト -Webpage=Web page -AddPage=ページの追加 +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=ホームページに設定する @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/ja_JP/workflow.lang b/htdocs/langs/ja_JP/workflow.lang index cd30eb6de7a..4ed1b10cc51 100644 --- a/htdocs/langs/ja_JP/workflow.lang +++ b/htdocs/langs/ja_JP/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=ワークフローモジュールのセットアップ WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/ka_GE/accountancy.lang b/htdocs/langs/ka_GE/accountancy.lang index d239f259a94..a7176d2e55f 100644 --- a/htdocs/langs/ka_GE/accountancy.lang +++ b/htdocs/langs/ka_GE/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Code Nature=Nature AccountingJournalType1=Various operation AccountingJournalType2=Sales @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/ka_GE/admin.lang b/htdocs/langs/ka_GE/admin.lang index a443d04f35d..8dba7af0e0b 100644 --- a/htdocs/langs/ka_GE/admin.lang +++ b/htdocs/langs/ka_GE/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=System tools area SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. Purge=Purge PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. PurgeRunNow=Purge now PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s files or directories deleted. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Purge all security events ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Generate backup @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Read discounts Permission402=Create/modify discounts Permission403=Validate discounts Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files +PreviousDumpFiles=Generated database backup files WeekStartOnDay=First day of week RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. diff --git a/htdocs/langs/ka_GE/banks.lang b/htdocs/langs/ka_GE/banks.lang index ba42f9a4c83..9bce7b9e29a 100644 --- a/htdocs/langs/ka_GE/banks.lang +++ b/htdocs/langs/ka_GE/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/ka_GE/bills.lang b/htdocs/langs/ka_GE/bills.lang index 1e83ba9b2d1..6bcd2464c1c 100644 --- a/htdocs/langs/ka_GE/bills.lang +++ b/htdocs/langs/ka_GE/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Invoice card PredefinedInvoices=Predefined Invoices Invoice=Invoice +PdfInvoiceTitle=Invoice Invoices=Invoices InvoiceLine=Invoice line InvoiceCustomer=Customer invoice diff --git a/htdocs/langs/ka_GE/compta.lang b/htdocs/langs/ka_GE/compta.lang index 94a3bd671ef..f8b5b683cb8 100644 --- a/htdocs/langs/ka_GE/compta.lang +++ b/htdocs/langs/ka_GE/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/ka_GE/errors.lang b/htdocs/langs/ka_GE/errors.lang index feada2d1b5a..853a34b4bb4 100644 --- a/htdocs/langs/ka_GE/errors.lang +++ b/htdocs/langs/ka_GE/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/ka_GE/install.lang b/htdocs/langs/ka_GE/install.lang index a3533a31277..5b6ba06e78a 100644 --- a/htdocs/langs/ka_GE/install.lang +++ b/htdocs/langs/ka_GE/install.lang @@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner. PasswordAgain=Retype password a second time AdminPassword=Password for Dolibarr database owner. CreateDatabase=Create database -CreateUser=Create owner +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Database server - Superuser access CheckToCreateDatabase=Check box if database does not exist and must be created.
    In this case, you must fill the login/password for superuser account at the bottom of this page. -CheckToCreateUser=Check box if database owner does not exist and must be created.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists. KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this) SaveConfigurationFile=Save values diff --git a/htdocs/langs/ka_GE/main.lang b/htdocs/langs/ka_GE/main.lang index 3401829afa2..ec019cbe3bf 100644 --- a/htdocs/langs/ka_GE/main.lang +++ b/htdocs/langs/ka_GE/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=The file was successfully uploaded -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parameter Parameters=Parameters Value=Value PersonalValue=Personal value +NewObject=New %s NewValue=New value CurrentValue=Current value Code=Code @@ -441,6 +443,7 @@ Reporting=Reporting Reportings=Reporting Draft=Draft Drafts=Drafts +StatusInterInvoiced= Validated=Validated Opened=Open New=New @@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account AccountCurrency=Account Currency ViewPrivateNote=View notes XMoreLines=%s line(s) hidden +ShowMoreLines=Show more lines PublicUrl=Public URL AddBox=Add box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Gender Genderman=Man diff --git a/htdocs/langs/ka_GE/modulebuilder.lang b/htdocs/langs/ka_GE/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/ka_GE/modulebuilder.lang +++ b/htdocs/langs/ka_GE/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/ka_GE/orders.lang b/htdocs/langs/ka_GE/orders.lang index 331e3b49d3e..0c59b4f4ada 100644 --- a/htdocs/langs/ka_GE/orders.lang +++ b/htdocs/langs/ka_GE/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area OrderCard=Order card OrderId=Order Id Order=Order +PdfOrderTitle=Order Orders=Orders OrderLine=Order line OrderDate=Order date diff --git a/htdocs/langs/ka_GE/other.lang b/htdocs/langs/ka_GE/other.lang index e15d490c0f2..e519f7af405 100644 --- a/htdocs/langs/ka_GE/other.lang +++ b/htdocs/langs/ka_GE/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/ka_GE/propal.lang b/htdocs/langs/ka_GE/propal.lang index 3fdb379c5a2..271fb44ac40 100644 --- a/htdocs/langs/ka_GE/propal.lang +++ b/htdocs/langs/ka_GE/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal +PdfCommercialProposalTitle=Commercial proposal ProposalCard=Proposal card NewProp=New commercial proposal NewPropal=New proposal diff --git a/htdocs/langs/ka_GE/salaries.lang b/htdocs/langs/ka_GE/salaries.lang index 522bf0a65d7..7e0c80d3380 100644 --- a/htdocs/langs/ka_GE/salaries.lang +++ b/htdocs/langs/ka_GE/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries diff --git a/htdocs/langs/ka_GE/website.lang b/htdocs/langs/ka_GE/website.lang index b3b05ee6cc9..98577e0de5e 100644 --- a/htdocs/langs/ka_GE/website.lang +++ b/htdocs/langs/ka_GE/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/ka_GE/workflow.lang b/htdocs/langs/ka_GE/workflow.lang index 54246856e9b..8021fb9b198 100644 --- a/htdocs/langs/ka_GE/workflow.lang +++ b/htdocs/langs/ka_GE/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Workflow module setup WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/km_KH/accountancy.lang b/htdocs/langs/km_KH/accountancy.lang index d239f259a94..a7176d2e55f 100644 --- a/htdocs/langs/km_KH/accountancy.lang +++ b/htdocs/langs/km_KH/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Code Nature=Nature AccountingJournalType1=Various operation AccountingJournalType2=Sales @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/km_KH/admin.lang b/htdocs/langs/km_KH/admin.lang index a443d04f35d..8dba7af0e0b 100644 --- a/htdocs/langs/km_KH/admin.lang +++ b/htdocs/langs/km_KH/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=System tools area SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. Purge=Purge PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. PurgeRunNow=Purge now PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s files or directories deleted. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Purge all security events ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Generate backup @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Read discounts Permission402=Create/modify discounts Permission403=Validate discounts Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files +PreviousDumpFiles=Generated database backup files WeekStartOnDay=First day of week RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. diff --git a/htdocs/langs/km_KH/banks.lang b/htdocs/langs/km_KH/banks.lang index ba42f9a4c83..9bce7b9e29a 100644 --- a/htdocs/langs/km_KH/banks.lang +++ b/htdocs/langs/km_KH/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/km_KH/bills.lang b/htdocs/langs/km_KH/bills.lang index 1e83ba9b2d1..6bcd2464c1c 100644 --- a/htdocs/langs/km_KH/bills.lang +++ b/htdocs/langs/km_KH/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Invoice card PredefinedInvoices=Predefined Invoices Invoice=Invoice +PdfInvoiceTitle=Invoice Invoices=Invoices InvoiceLine=Invoice line InvoiceCustomer=Customer invoice diff --git a/htdocs/langs/km_KH/compta.lang b/htdocs/langs/km_KH/compta.lang index 94a3bd671ef..f8b5b683cb8 100644 --- a/htdocs/langs/km_KH/compta.lang +++ b/htdocs/langs/km_KH/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/km_KH/errors.lang b/htdocs/langs/km_KH/errors.lang index feada2d1b5a..853a34b4bb4 100644 --- a/htdocs/langs/km_KH/errors.lang +++ b/htdocs/langs/km_KH/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/km_KH/install.lang b/htdocs/langs/km_KH/install.lang index a3533a31277..5b6ba06e78a 100644 --- a/htdocs/langs/km_KH/install.lang +++ b/htdocs/langs/km_KH/install.lang @@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner. PasswordAgain=Retype password a second time AdminPassword=Password for Dolibarr database owner. CreateDatabase=Create database -CreateUser=Create owner +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Database server - Superuser access CheckToCreateDatabase=Check box if database does not exist and must be created.
    In this case, you must fill the login/password for superuser account at the bottom of this page. -CheckToCreateUser=Check box if database owner does not exist and must be created.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists. KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this) SaveConfigurationFile=Save values diff --git a/htdocs/langs/km_KH/main.lang b/htdocs/langs/km_KH/main.lang index 247568767e1..0bd248e3ef2 100644 --- a/htdocs/langs/km_KH/main.lang +++ b/htdocs/langs/km_KH/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=The file was successfully uploaded -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parameter Parameters=Parameters Value=Value PersonalValue=Personal value +NewObject=New %s NewValue=New value CurrentValue=Current value Code=Code @@ -441,6 +443,7 @@ Reporting=Reporting Reportings=Reporting Draft=Draft Drafts=Drafts +StatusInterInvoiced= Validated=Validated Opened=Open New=New @@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account AccountCurrency=Account Currency ViewPrivateNote=View notes XMoreLines=%s line(s) hidden +ShowMoreLines=Show more lines PublicUrl=Public URL AddBox=Add box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Gender Genderman=Man diff --git a/htdocs/langs/km_KH/modulebuilder.lang b/htdocs/langs/km_KH/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/km_KH/modulebuilder.lang +++ b/htdocs/langs/km_KH/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/km_KH/orders.lang b/htdocs/langs/km_KH/orders.lang index 331e3b49d3e..0c59b4f4ada 100644 --- a/htdocs/langs/km_KH/orders.lang +++ b/htdocs/langs/km_KH/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area OrderCard=Order card OrderId=Order Id Order=Order +PdfOrderTitle=Order Orders=Orders OrderLine=Order line OrderDate=Order date diff --git a/htdocs/langs/km_KH/other.lang b/htdocs/langs/km_KH/other.lang index e15d490c0f2..e519f7af405 100644 --- a/htdocs/langs/km_KH/other.lang +++ b/htdocs/langs/km_KH/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/km_KH/propal.lang b/htdocs/langs/km_KH/propal.lang index 3fdb379c5a2..271fb44ac40 100644 --- a/htdocs/langs/km_KH/propal.lang +++ b/htdocs/langs/km_KH/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal +PdfCommercialProposalTitle=Commercial proposal ProposalCard=Proposal card NewProp=New commercial proposal NewPropal=New proposal diff --git a/htdocs/langs/km_KH/salaries.lang b/htdocs/langs/km_KH/salaries.lang index 522bf0a65d7..7e0c80d3380 100644 --- a/htdocs/langs/km_KH/salaries.lang +++ b/htdocs/langs/km_KH/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries diff --git a/htdocs/langs/km_KH/website.lang b/htdocs/langs/km_KH/website.lang index b3b05ee6cc9..98577e0de5e 100644 --- a/htdocs/langs/km_KH/website.lang +++ b/htdocs/langs/km_KH/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/km_KH/workflow.lang b/htdocs/langs/km_KH/workflow.lang index 54246856e9b..8021fb9b198 100644 --- a/htdocs/langs/km_KH/workflow.lang +++ b/htdocs/langs/km_KH/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Workflow module setup WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/kn_IN/accountancy.lang b/htdocs/langs/kn_IN/accountancy.lang index d239f259a94..a7176d2e55f 100644 --- a/htdocs/langs/kn_IN/accountancy.lang +++ b/htdocs/langs/kn_IN/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Code Nature=Nature AccountingJournalType1=Various operation AccountingJournalType2=Sales @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/kn_IN/admin.lang b/htdocs/langs/kn_IN/admin.lang index 517c98b5717..82e187963b4 100644 --- a/htdocs/langs/kn_IN/admin.lang +++ b/htdocs/langs/kn_IN/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=System tools area SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. Purge=Purge PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. PurgeRunNow=Purge now PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s files or directories deleted. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Purge all security events ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Generate backup @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Read discounts Permission402=Create/modify discounts Permission403=Validate discounts Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files +PreviousDumpFiles=Generated database backup files WeekStartOnDay=First day of week RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. diff --git a/htdocs/langs/kn_IN/banks.lang b/htdocs/langs/kn_IN/banks.lang index e0f9cba8719..bb263fb992c 100644 --- a/htdocs/langs/kn_IN/banks.lang +++ b/htdocs/langs/kn_IN/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/kn_IN/bills.lang b/htdocs/langs/kn_IN/bills.lang index bb0539153ec..835e6df9dd4 100644 --- a/htdocs/langs/kn_IN/bills.lang +++ b/htdocs/langs/kn_IN/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Invoice card PredefinedInvoices=Predefined Invoices Invoice=Invoice +PdfInvoiceTitle=Invoice Invoices=Invoices InvoiceLine=Invoice line InvoiceCustomer=Customer invoice diff --git a/htdocs/langs/kn_IN/compta.lang b/htdocs/langs/kn_IN/compta.lang index 94a3bd671ef..f8b5b683cb8 100644 --- a/htdocs/langs/kn_IN/compta.lang +++ b/htdocs/langs/kn_IN/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/kn_IN/errors.lang b/htdocs/langs/kn_IN/errors.lang index feada2d1b5a..853a34b4bb4 100644 --- a/htdocs/langs/kn_IN/errors.lang +++ b/htdocs/langs/kn_IN/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/kn_IN/install.lang b/htdocs/langs/kn_IN/install.lang index a3533a31277..5b6ba06e78a 100644 --- a/htdocs/langs/kn_IN/install.lang +++ b/htdocs/langs/kn_IN/install.lang @@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner. PasswordAgain=Retype password a second time AdminPassword=Password for Dolibarr database owner. CreateDatabase=Create database -CreateUser=Create owner +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Database server - Superuser access CheckToCreateDatabase=Check box if database does not exist and must be created.
    In this case, you must fill the login/password for superuser account at the bottom of this page. -CheckToCreateUser=Check box if database owner does not exist and must be created.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists. KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this) SaveConfigurationFile=Save values diff --git a/htdocs/langs/kn_IN/main.lang b/htdocs/langs/kn_IN/main.lang index a82fe088a1c..95a9802a5b9 100644 --- a/htdocs/langs/kn_IN/main.lang +++ b/htdocs/langs/kn_IN/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=The file was successfully uploaded -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parameter Parameters=Parameters Value=Value PersonalValue=Personal value +NewObject=New %s NewValue=New value CurrentValue=Current value Code=Code @@ -441,6 +443,7 @@ Reporting=Reporting Reportings=Reporting Draft=Draft Drafts=Drafts +StatusInterInvoiced= Validated=Validated Opened=ತೆರೆಯಲಾಗಿದೆ New=New @@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account AccountCurrency=Account Currency ViewPrivateNote=View notes XMoreLines=%s line(s) hidden +ShowMoreLines=Show more lines PublicUrl=Public URL AddBox=Add box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Gender Genderman=Man diff --git a/htdocs/langs/kn_IN/modulebuilder.lang b/htdocs/langs/kn_IN/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/kn_IN/modulebuilder.lang +++ b/htdocs/langs/kn_IN/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/kn_IN/orders.lang b/htdocs/langs/kn_IN/orders.lang index 835e0041229..f3c23442a7b 100644 --- a/htdocs/langs/kn_IN/orders.lang +++ b/htdocs/langs/kn_IN/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area OrderCard=Order card OrderId=Order Id Order=Order +PdfOrderTitle=Order Orders=Orders OrderLine=Order line OrderDate=Order date diff --git a/htdocs/langs/kn_IN/other.lang b/htdocs/langs/kn_IN/other.lang index 96501a9e5a9..50012afd695 100644 --- a/htdocs/langs/kn_IN/other.lang +++ b/htdocs/langs/kn_IN/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/kn_IN/propal.lang b/htdocs/langs/kn_IN/propal.lang index 4c23e93a991..4d98c863b37 100644 --- a/htdocs/langs/kn_IN/propal.lang +++ b/htdocs/langs/kn_IN/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal +PdfCommercialProposalTitle=Commercial proposal ProposalCard=Proposal card NewProp=New commercial proposal NewPropal=New proposal diff --git a/htdocs/langs/kn_IN/salaries.lang b/htdocs/langs/kn_IN/salaries.lang index 522bf0a65d7..7e0c80d3380 100644 --- a/htdocs/langs/kn_IN/salaries.lang +++ b/htdocs/langs/kn_IN/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries diff --git a/htdocs/langs/kn_IN/website.lang b/htdocs/langs/kn_IN/website.lang index b3b05ee6cc9..98577e0de5e 100644 --- a/htdocs/langs/kn_IN/website.lang +++ b/htdocs/langs/kn_IN/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/kn_IN/workflow.lang b/htdocs/langs/kn_IN/workflow.lang index 54246856e9b..8021fb9b198 100644 --- a/htdocs/langs/kn_IN/workflow.lang +++ b/htdocs/langs/kn_IN/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Workflow module setup WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/ko_KR/accountancy.lang b/htdocs/langs/ko_KR/accountancy.lang index d239f259a94..a7176d2e55f 100644 --- a/htdocs/langs/ko_KR/accountancy.lang +++ b/htdocs/langs/ko_KR/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Code Nature=Nature AccountingJournalType1=Various operation AccountingJournalType2=Sales @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/ko_KR/admin.lang b/htdocs/langs/ko_KR/admin.lang index 82d41d46e0c..1056574f5f0 100644 --- a/htdocs/langs/ko_KR/admin.lang +++ b/htdocs/langs/ko_KR/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=System tools area SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. Purge=Purge PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. PurgeRunNow=Purge now PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s files or directories deleted. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Purge all security events ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Generate backup @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Read discounts Permission402=Create/modify discounts Permission403=Validate discounts Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files +PreviousDumpFiles=Generated database backup files WeekStartOnDay=First day of week RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. diff --git a/htdocs/langs/ko_KR/banks.lang b/htdocs/langs/ko_KR/banks.lang index ba42f9a4c83..9bce7b9e29a 100644 --- a/htdocs/langs/ko_KR/banks.lang +++ b/htdocs/langs/ko_KR/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/ko_KR/bills.lang b/htdocs/langs/ko_KR/bills.lang index a2054db4162..1e70c698381 100644 --- a/htdocs/langs/ko_KR/bills.lang +++ b/htdocs/langs/ko_KR/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Invoice card PredefinedInvoices=Predefined Invoices Invoice=Invoice +PdfInvoiceTitle=Invoice Invoices=Invoices InvoiceLine=Invoice line InvoiceCustomer=Customer invoice diff --git a/htdocs/langs/ko_KR/compta.lang b/htdocs/langs/ko_KR/compta.lang index 1fe127bd3a6..8ec49f04718 100644 --- a/htdocs/langs/ko_KR/compta.lang +++ b/htdocs/langs/ko_KR/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/ko_KR/errors.lang b/htdocs/langs/ko_KR/errors.lang index feada2d1b5a..853a34b4bb4 100644 --- a/htdocs/langs/ko_KR/errors.lang +++ b/htdocs/langs/ko_KR/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/ko_KR/install.lang b/htdocs/langs/ko_KR/install.lang index da9171dd0c3..3814d95c771 100644 --- a/htdocs/langs/ko_KR/install.lang +++ b/htdocs/langs/ko_KR/install.lang @@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner. PasswordAgain=Retype password a second time AdminPassword=Password for Dolibarr database owner. CreateDatabase=Create database -CreateUser=Create owner +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Database server - Superuser access CheckToCreateDatabase=Check box if database does not exist and must be created.
    In this case, you must fill the login/password for superuser account at the bottom of this page. -CheckToCreateUser=Check box if database owner does not exist and must be created.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists. KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this) SaveConfigurationFile=Save values diff --git a/htdocs/langs/ko_KR/main.lang b/htdocs/langs/ko_KR/main.lang index 19047551ce0..474108a77f9 100644 --- a/htdocs/langs/ko_KR/main.lang +++ b/htdocs/langs/ko_KR/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=The file was successfully uploaded -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=첨부할 파일을 선택했지만 바로 업로드할 수는 없습니다. 업로드하려면 "파일 첨부"를 클릭하십시오. NbOfEntries=엔트리 Nb GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parameter Parameters=Parameters Value=Value PersonalValue=Personal value +NewObject=New %s NewValue=New value CurrentValue=Current value Code=Code @@ -441,6 +443,7 @@ Reporting=Reporting Reportings=Reporting Draft=Draft Drafts=Drafts +StatusInterInvoiced= Validated=Validated Opened=Open New=New @@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account AccountCurrency=Account Currency ViewPrivateNote=View notes XMoreLines=%s line(s) hidden +ShowMoreLines=Show more lines PublicUrl=Public URL AddBox=Add box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Gender Genderman=Man diff --git a/htdocs/langs/ko_KR/modulebuilder.lang b/htdocs/langs/ko_KR/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/ko_KR/modulebuilder.lang +++ b/htdocs/langs/ko_KR/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/ko_KR/orders.lang b/htdocs/langs/ko_KR/orders.lang index 331e3b49d3e..0c59b4f4ada 100644 --- a/htdocs/langs/ko_KR/orders.lang +++ b/htdocs/langs/ko_KR/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area OrderCard=Order card OrderId=Order Id Order=Order +PdfOrderTitle=Order Orders=Orders OrderLine=Order line OrderDate=Order date diff --git a/htdocs/langs/ko_KR/other.lang b/htdocs/langs/ko_KR/other.lang index e15d490c0f2..e519f7af405 100644 --- a/htdocs/langs/ko_KR/other.lang +++ b/htdocs/langs/ko_KR/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/ko_KR/propal.lang b/htdocs/langs/ko_KR/propal.lang index 3fdb379c5a2..271fb44ac40 100644 --- a/htdocs/langs/ko_KR/propal.lang +++ b/htdocs/langs/ko_KR/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal +PdfCommercialProposalTitle=Commercial proposal ProposalCard=Proposal card NewProp=New commercial proposal NewPropal=New proposal diff --git a/htdocs/langs/ko_KR/salaries.lang b/htdocs/langs/ko_KR/salaries.lang index 522bf0a65d7..7e0c80d3380 100644 --- a/htdocs/langs/ko_KR/salaries.lang +++ b/htdocs/langs/ko_KR/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries diff --git a/htdocs/langs/ko_KR/website.lang b/htdocs/langs/ko_KR/website.lang index b3b05ee6cc9..98577e0de5e 100644 --- a/htdocs/langs/ko_KR/website.lang +++ b/htdocs/langs/ko_KR/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/ko_KR/workflow.lang b/htdocs/langs/ko_KR/workflow.lang index 54246856e9b..8021fb9b198 100644 --- a/htdocs/langs/ko_KR/workflow.lang +++ b/htdocs/langs/ko_KR/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Workflow module setup WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/lo_LA/accountancy.lang b/htdocs/langs/lo_LA/accountancy.lang index 0f8c1607cf7..dec8b7744d2 100644 --- a/htdocs/langs/lo_LA/accountancy.lang +++ b/htdocs/langs/lo_LA/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Code Nature=Nature AccountingJournalType1=Various operation AccountingJournalType2=Sales @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=ສົ່ງອອກ ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/lo_LA/admin.lang b/htdocs/langs/lo_LA/admin.lang index 8e9ac20478d..39e5f0016ce 100644 --- a/htdocs/langs/lo_LA/admin.lang +++ b/htdocs/langs/lo_LA/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=System tools area SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. Purge=Purge PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. PurgeRunNow=Purge now PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s files or directories deleted. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Purge all security events ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Generate backup @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration -Module1400Name=ບັນ​ຊີ -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Read discounts Permission402=Create/modify discounts Permission403=Validate discounts Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files +PreviousDumpFiles=Generated database backup files WeekStartOnDay=First day of week RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. diff --git a/htdocs/langs/lo_LA/banks.lang b/htdocs/langs/lo_LA/banks.lang index 0bf0174048f..14ae185bc8b 100644 --- a/htdocs/langs/lo_LA/banks.lang +++ b/htdocs/langs/lo_LA/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/lo_LA/bills.lang b/htdocs/langs/lo_LA/bills.lang index 1e83ba9b2d1..6bcd2464c1c 100644 --- a/htdocs/langs/lo_LA/bills.lang +++ b/htdocs/langs/lo_LA/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Invoice card PredefinedInvoices=Predefined Invoices Invoice=Invoice +PdfInvoiceTitle=Invoice Invoices=Invoices InvoiceLine=Invoice line InvoiceCustomer=Customer invoice diff --git a/htdocs/langs/lo_LA/compta.lang b/htdocs/langs/lo_LA/compta.lang index b16ca4f1053..22a8842f202 100644 --- a/htdocs/langs/lo_LA/compta.lang +++ b/htdocs/langs/lo_LA/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/lo_LA/errors.lang b/htdocs/langs/lo_LA/errors.lang index feada2d1b5a..853a34b4bb4 100644 --- a/htdocs/langs/lo_LA/errors.lang +++ b/htdocs/langs/lo_LA/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/lo_LA/install.lang b/htdocs/langs/lo_LA/install.lang index a3533a31277..5b6ba06e78a 100644 --- a/htdocs/langs/lo_LA/install.lang +++ b/htdocs/langs/lo_LA/install.lang @@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner. PasswordAgain=Retype password a second time AdminPassword=Password for Dolibarr database owner. CreateDatabase=Create database -CreateUser=Create owner +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Database server - Superuser access CheckToCreateDatabase=Check box if database does not exist and must be created.
    In this case, you must fill the login/password for superuser account at the bottom of this page. -CheckToCreateUser=Check box if database owner does not exist and must be created.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists. KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this) SaveConfigurationFile=Save values diff --git a/htdocs/langs/lo_LA/main.lang b/htdocs/langs/lo_LA/main.lang index 27c35edadea..2244c5114a0 100644 --- a/htdocs/langs/lo_LA/main.lang +++ b/htdocs/langs/lo_LA/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=The file was successfully uploaded -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parameter Parameters=Parameters Value=Value PersonalValue=Personal value +NewObject=New %s NewValue=New value CurrentValue=Current value Code=Code @@ -441,6 +443,7 @@ Reporting=Reporting Reportings=Reporting Draft=Draft Drafts=Drafts +StatusInterInvoiced= Validated=Validated Opened=Open New=New @@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account AccountCurrency=Account Currency ViewPrivateNote=View notes XMoreLines=%s line(s) hidden +ShowMoreLines=Show more lines PublicUrl=Public URL AddBox=Add box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Gender Genderman=Man diff --git a/htdocs/langs/lo_LA/modulebuilder.lang b/htdocs/langs/lo_LA/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/lo_LA/modulebuilder.lang +++ b/htdocs/langs/lo_LA/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/lo_LA/orders.lang b/htdocs/langs/lo_LA/orders.lang index 331e3b49d3e..0c59b4f4ada 100644 --- a/htdocs/langs/lo_LA/orders.lang +++ b/htdocs/langs/lo_LA/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area OrderCard=Order card OrderId=Order Id Order=Order +PdfOrderTitle=Order Orders=Orders OrderLine=Order line OrderDate=Order date diff --git a/htdocs/langs/lo_LA/other.lang b/htdocs/langs/lo_LA/other.lang index 2463c4d436c..6f6c5c8f764 100644 --- a/htdocs/langs/lo_LA/other.lang +++ b/htdocs/langs/lo_LA/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/lo_LA/propal.lang b/htdocs/langs/lo_LA/propal.lang index 3fdb379c5a2..271fb44ac40 100644 --- a/htdocs/langs/lo_LA/propal.lang +++ b/htdocs/langs/lo_LA/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal +PdfCommercialProposalTitle=Commercial proposal ProposalCard=Proposal card NewProp=New commercial proposal NewPropal=New proposal diff --git a/htdocs/langs/lo_LA/salaries.lang b/htdocs/langs/lo_LA/salaries.lang index 522bf0a65d7..7e0c80d3380 100644 --- a/htdocs/langs/lo_LA/salaries.lang +++ b/htdocs/langs/lo_LA/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries diff --git a/htdocs/langs/lo_LA/website.lang b/htdocs/langs/lo_LA/website.lang index b3b05ee6cc9..98577e0de5e 100644 --- a/htdocs/langs/lo_LA/website.lang +++ b/htdocs/langs/lo_LA/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/lo_LA/workflow.lang b/htdocs/langs/lo_LA/workflow.lang index 54246856e9b..8021fb9b198 100644 --- a/htdocs/langs/lo_LA/workflow.lang +++ b/htdocs/langs/lo_LA/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Workflow module setup WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/lt_LT/accountancy.lang b/htdocs/langs/lt_LT/accountancy.lang index 470d34a045e..f96909c6f48 100644 --- a/htdocs/langs/lt_LT/accountancy.lang +++ b/htdocs/langs/lt_LT/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=Apskaitos sąskaitų sąrašas +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Sąskaitų klasė Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Kodas Nature=Prigimtis AccountingJournalType1=Various operation AccountingJournalType2=Pardavimai @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Eksportas -Export=Eksportas ExportDraftJournal=Export draft journal Modelcsv=Eksporto modelis OptionsDeactivatedForThisExportModel=Šiam eksporto modeliui opcijos išjungtos diff --git a/htdocs/langs/lt_LT/admin.lang b/htdocs/langs/lt_LT/admin.lang index 3b9efdaa0fb..6e0b41cff93 100644 --- a/htdocs/langs/lt_LT/admin.lang +++ b/htdocs/langs/lt_LT/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Sistemos įrankių sritis SystemToolsAreaDesc=Ši sritis suteikia administravimo funkcijas. Naudokite meniu pasirinkti funkciją jūs ieškote. Purge=Išvalyti PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Ištrinti visus failus kataloge %s. Laikinieji failai, taip pat duomenų bazės sen backup-ai, pridėti failai (trečios šalys, sąskaitos...) ir įkelti į ECM moduliai bus ištrinti. PurgeRunNow=Išvalyti dabar PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s failai ar katalogai ištrinti +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Išvalyti visus saugumo įvykius ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Sukurti atsarginę kopiją (backup) @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr dabartinė versija CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Tiekėjo komercinis pasiūlymas Module1120Desc=Prašyti tiekėjo komercinio pasiūlymo ir kainų Module1200Name=Mantis Module1200Desc=Mančio integracija -Module1400Name=Apskaita -Module1400Desc=Accounting management (double entries) Module1520Name=Dokumento generavimas Module1520Desc=Masinis pašto dokumentų generavimas Module1780Name=Žymės / Kategorijos @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=PayPal Module50200Desc=Modulis siūlo internetinio mokėjimo kreditine kortele per PayPal puslapį Module50400Name=Apskaita (Išankstinė) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Skaityti nuolaidas Permission402=Sukurti/keisti nuolaidas Permission403=Patvirtinti nuolaidas Permission404=Ištrinti nuolaidas -Permission510=Skaityti atlyginimus -Permission512=Sukurti / redaguoti atlyginimus +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Ištrinti atlyginimus Permission517=Eksportuoti atlyginimus Permission520=Skaityti Paskolas @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL duomenų importas ForcedToByAModule= Ši taisyklė yra priverstinė %s pagal aktyvuotą modulį -PreviousDumpFiles=Yra duomenų bazės atsarginės kopijos failai +PreviousDumpFiles=Generated database backup files WeekStartOnDay=Pirma savaitės diena RunningUpdateProcessMayBeRequired=Reikalingas programos atnaujinimas (Programos versija %s skiriasi nuo duomenų bazės versijos %s) YouMustRunCommandFromCommandLineAfterLoginToUser=Jūs turite paleisti šią komandą iš komandinės eilutės po vartotojo %s prisijungimo prie apvalkalo arba turite pridėti -W opciją komandinės eilutės pabaigoje slaptažodžio %s pateikimui. diff --git a/htdocs/langs/lt_LT/banks.lang b/htdocs/langs/lt_LT/banks.lang index 7c59dc96619..8bab27f623f 100644 --- a/htdocs/langs/lt_LT/banks.lang +++ b/htdocs/langs/lt_LT/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Čekis grąžintas ir sąskaita iš naujo atida BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/lt_LT/bills.lang b/htdocs/langs/lt_LT/bills.lang index 3755569a0fb..02415c77ca5 100644 --- a/htdocs/langs/lt_LT/bills.lang +++ b/htdocs/langs/lt_LT/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Sąskaitos-faktūros kortelė PredefinedInvoices=Iš anksto apibrėžtos sąskaitos-faktūros Invoice=Sąskaita-faktūra +PdfInvoiceTitle=Sąskaita-faktūra Invoices=Sąskaitos-faktūros InvoiceLine=Sąskaitos-faktūros linija InvoiceCustomer=Kliento sąskaita-faktūra diff --git a/htdocs/langs/lt_LT/compta.lang b/htdocs/langs/lt_LT/compta.lang index 4467e9e42af..45c193a5060 100644 --- a/htdocs/langs/lt_LT/compta.lang +++ b/htdocs/langs/lt_LT/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/lt_LT/errors.lang b/htdocs/langs/lt_LT/errors.lang index d2297ca32e5..ba312f99362 100644 --- a/htdocs/langs/lt_LT/errors.lang +++ b/htdocs/langs/lt_LT/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/lt_LT/install.lang b/htdocs/langs/lt_LT/install.lang index 179207609b6..e68ba094e5c 100644 --- a/htdocs/langs/lt_LT/install.lang +++ b/htdocs/langs/lt_LT/install.lang @@ -53,10 +53,10 @@ AdminLogin=Prisijungimas Dolibarr duomenų bazės savininkui. PasswordAgain=Pakartokite slaptažodį antrą kartą AdminPassword=Slaptažodis Dolibarr duomenų bazės savininkui. CreateDatabase=Sukurti duomenų bazę -CreateUser=Sukurti savininką +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Duomenų bazės serveris - Superuser prieiga CheckToCreateDatabase=Žymėti langelį, jei duomenų bazės nėra ir ji turi būti sukurta.
    Tokiu atveju, turite užpildyti prisijungimo/slaptažodį superuser sąskaitai šio puslapio apačioje. -CheckToCreateUser=Žymėti langelį, jei duomenų bazės savininko nėra ir jis turi būti sukurtas.
    Šiuo atveju, jūs turite pasirinkti jo prisijungimo vardą ir slaptažodį ir užpildyti prisijungimo/slaptažodžio superuser sąskaitai šio puslapio apačioje. Jei šis langelis nepažymėtas, savininko duomenų bazė ir jos slaptažodis jau egzistuoja. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Prisijungimas vartotojui leidžia kurti naujas duomenų bazes arba naujus vartotojus. Tai privaloma, jei Jūsų duomenų bazė ar jos savininkas dar neegzistuoja. KeepEmptyIfNoPassword=Palikite tuščią, jei vartotojas neturi slaptažodžio (praleisti) SaveConfigurationFile=Išsaugoti reikšmes diff --git a/htdocs/langs/lt_LT/main.lang b/htdocs/langs/lt_LT/main.lang index fee452d039b..e57367741a5 100644 --- a/htdocs/langs/lt_LT/main.lang +++ b/htdocs/langs/lt_LT/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=Failas buvo sėkmingai įkeltas -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=Failas prikabinimui pasirinktas, bet dar nebuvo įkeltas. Paspauskite tam "Pridėti failą". NbOfEntries=Įrašų skaičius GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parametras Parameters=Parametrai Value=Reikšmė PersonalValue=Asmeninė reikšmė +NewObject=New %s NewValue=Nauja reikšmė CurrentValue=Dabartinė reikšmė Code=Kodas @@ -441,6 +443,7 @@ Reporting=Ataskaitos Reportings=Ataskaitos Draft=Projektas Drafts=Projektai +StatusInterInvoiced= Validated=Pripažinti galiojančiais Opened=Atidaryta New=Naujas @@ -727,6 +730,7 @@ SetBankAccount=Nustatykite banko sąskaitą AccountCurrency=Sąskaitos valiuta ViewPrivateNote=Peržiūrėti pastabas XMoreLines=%s paslėptos eilutės +ShowMoreLines=Show more lines PublicUrl=Viešas URL AddBox=Pridėti langelį SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Eiti į Pradžia - Nustatymai - Bendrovė, kad pakeisti logotipą arba eikite į Pradžia - Nustatymai - Ekranas, kad paslėpti. Deny=Atmesti Denied=Atmestas +ListOf=List of %s ListOfTemplates=Šablonų sąrašas Gender=Gender Genderman=Vyras diff --git a/htdocs/langs/lt_LT/modulebuilder.lang b/htdocs/langs/lt_LT/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/lt_LT/modulebuilder.lang +++ b/htdocs/langs/lt_LT/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/lt_LT/orders.lang b/htdocs/langs/lt_LT/orders.lang index cfd2fc3e47a..00de7b02b7e 100644 --- a/htdocs/langs/lt_LT/orders.lang +++ b/htdocs/langs/lt_LT/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Tiekėjų užsakymų sritis OrderCard=Užsakyti kortelę OrderId=Užsakymo ID Order=Užsakymas +PdfOrderTitle=Užsakymas Orders=Užsakymai OrderLine=Užsakymo eilutė OrderDate=Užsakymo data diff --git a/htdocs/langs/lt_LT/other.lang b/htdocs/langs/lt_LT/other.lang index 1646697e34c..af555b37827 100644 --- a/htdocs/langs/lt_LT/other.lang +++ b/htdocs/langs/lt_LT/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/lt_LT/propal.lang b/htdocs/langs/lt_LT/propal.lang index d9ee04805d0..b6405cfee9d 100644 --- a/htdocs/langs/lt_LT/propal.lang +++ b/htdocs/langs/lt_LT/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Komercinių pasiūlymų projektai ProposalsOpened=Open commercial proposals Prop=Komerciniai pasiūlymai CommercialProposal=Komercinis pasiūlymas +PdfCommercialProposalTitle=Komercinis pasiūlymas ProposalCard=Pasiūlymo kortelė NewProp=Naujas komercinis pasiūlymas NewPropal=Naujas pasiūlymas diff --git a/htdocs/langs/lt_LT/salaries.lang b/htdocs/langs/lt_LT/salaries.lang index 23c736cc4e7..4062dd49cea 100644 --- a/htdocs/langs/lt_LT/salaries.lang +++ b/htdocs/langs/lt_LT/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Atlyginimas Salaries=Atlyginimai diff --git a/htdocs/langs/lt_LT/website.lang b/htdocs/langs/lt_LT/website.lang index 82e2a0f4b54..9d081727860 100644 --- a/htdocs/langs/lt_LT/website.lang +++ b/htdocs/langs/lt_LT/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/lt_LT/workflow.lang b/htdocs/langs/lt_LT/workflow.lang index e6f33e13a60..15fac83fab1 100644 --- a/htdocs/langs/lt_LT/workflow.lang +++ b/htdocs/langs/lt_LT/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Workflow modulio nustatymas WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Priskirti susijusį šaltinio pasiūlymą prie apmokestintų, kai kliento užsakymas nustatomas kaip apmokėtas -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Priskirti susijusį šaltinio kliento užsakymą (-us) prie apmokestinamų, kai kliento sąskaita-faktūra yra nustatoma kaip jau apmokėta -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Priskirti susijusį šaltinio kliento užsakymą (-us) prie apmokestinamų, kai kliento sąskaita-faktūra yra patvirtinama -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/lv_LV/accountancy.lang b/htdocs/langs/lv_LV/accountancy.lang index 8d1e501c208..67abbf6236b 100644 --- a/htdocs/langs/lv_LV/accountancy.lang +++ b/htdocs/langs/lv_LV/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Cita informācija DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Konta bilance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=Trešo personu kontu saraksts DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Kods Nature=Daba AccountingJournalType1=Dažādas darbības AccountingJournalType2=Pārdošanas @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Eksports -Export=Eksportēt ExportDraftJournal=Export draft journal Modelcsv=Eksporta modulis OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/lv_LV/admin.lang b/htdocs/langs/lv_LV/admin.lang index 382280d4ebf..182df597376 100644 --- a/htdocs/langs/lv_LV/admin.lang +++ b/htdocs/langs/lv_LV/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Sistēmas rīku iestatīšana SystemToolsAreaDesc=Šī sadaļa piedāvā administrēšanas funkcijas. Lietojiet izvēlni, lai izvēlētos funkciju kuru Jūs meklējat. Purge=Tīrīt PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Dzēst pagaidu failus PurgeDeleteAllFilesInDocumentsDir=Dzēst visus failus direktorijā %s. Pagaidu failus un arī datu bāzes rezerves dumpus, pievienotie faili pievienoti elementiem (trešās personas, rēķini, ...) un augšupielādēta ECM modulī tiks dzēsti. PurgeRunNow=Tīrīt tagad PurgeNothingToDelete=Nav mapes vai failu, kurus jādzēš. PurgeNDirectoriesDeleted=%s faili vai direktorijas dzēsti. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Tīrīt visus drošības ierakstus ConfirmPurgeAuditEvents=Vai jūs tiešām vēlaties, lai iztīrīt visus drošības notikumus? Visi drošības žurnāli tiks dzēsti, nekādi citi dati netiks dzēsti. GenerateBackup=Izveidot rezerves kopiju @@ -298,7 +299,7 @@ SetupIsReadyForUse=Moduļa izvietošana ir pabeigta. Tomēr jums ir jāiespējo NotExistsDirect=Alternatīva saknes direktorijs nav definēta.
    InfDirAlt=Kopš 3 versijas, ir iespējams noteikt alternatīvu sakne directory.Tas ļauj jums saglabāt, tajā pašā vietā, papildinājumus un pielāgotas veidnes.
    Jums tikai jāizveido direktoriju Dolibarr saknē (piemēram: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr pašreizējā versija CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Jaunākā stabilā versija @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Dievlūdzējs Module1200Desc=Mantis integrācija -Module1400Name=Grāmatvedība -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Modulis piedāvā tiešsaistes maksājumu lapā ar kredītkarti ar Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Aptauja vai balsojums @@ -751,8 +750,10 @@ Permission401=Lasīt atlaides Permission402=Izveidot/mainīt atlaides Permission403=Apstiprināt atlaides Permission404=Dzēst atlaides -Permission510=Apskatīt algas -Permission512=Izveidot/labot algas +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Dzēst algas Permission517=Eksportēt algas Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Atjaunot dokumentu direktorijas arhīva failu (piemēram zip fails) RestoreDesc3=Atjaunot datus no rezerves kopijas faila, datu bāzē jaunā Dolibarr instalācijā vai datu bāzē pašreizējajai instalācijai (%s). Brīdinājums, kad atjaunošana ir pabeigta, jums ir jāizmanto lietotāja vārds / parole, kas bija tad, kad tika veikta rezerves kopija, lai pieslēgtos atkal. Lai atjaunotu rezerves kopiju datubāzei esošajā instalācijā, jūs varat sekot šim palīgam. RestoreMySQL=MySQL imports ForcedToByAModule= Šis noteikums ir spiests %s ar aktivēto modulis -PreviousDumpFiles=Pieejamās datu bāzes rezerves kopijas faili +PreviousDumpFiles=Generated database backup files WeekStartOnDay=Pirmā nedēļas diena RunningUpdateProcessMayBeRequired=Running jaunināšanas procesu, šķiet, ir nepieciešams (Programmas versija %s atšķiras no bāzes versijas %s) YouMustRunCommandFromCommandLineAfterLoginToUser=Jums ir palaist šo komandu no komandrindas pēc pieteikšanās uz apvalks ar lietotāju %s, vai jums ir pievienot-W iespēju beigās komandrindas, lai sniegtu %s paroli. diff --git a/htdocs/langs/lv_LV/banks.lang b/htdocs/langs/lv_LV/banks.lang index ec4d9158cdf..063ba6225ed 100644 --- a/htdocs/langs/lv_LV/banks.lang +++ b/htdocs/langs/lv_LV/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/lv_LV/bills.lang b/htdocs/langs/lv_LV/bills.lang index 1b272e8dc40..61eeda6a7d4 100644 --- a/htdocs/langs/lv_LV/bills.lang +++ b/htdocs/langs/lv_LV/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Rēķina kartiņa PredefinedInvoices=Iepriekš definēti rēķini Invoice=Rēķins +PdfInvoiceTitle=Rēķins Invoices=Rēķini InvoiceLine=Rēķina līnija InvoiceCustomer=Klienta rēķins diff --git a/htdocs/langs/lv_LV/compta.lang b/htdocs/langs/lv_LV/compta.lang index d5cab732627..db41f4feb49 100644 --- a/htdocs/langs/lv_LV/compta.lang +++ b/htdocs/langs/lv_LV/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Klonēt nākošam mēnesim diff --git a/htdocs/langs/lv_LV/errors.lang b/htdocs/langs/lv_LV/errors.lang index d37684bde85..990dd96d5e7 100644 --- a/htdocs/langs/lv_LV/errors.lang +++ b/htdocs/langs/lv_LV/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/lv_LV/install.lang b/htdocs/langs/lv_LV/install.lang index dd9baea4794..fe1232c86ef 100644 --- a/htdocs/langs/lv_LV/install.lang +++ b/htdocs/langs/lv_LV/install.lang @@ -53,10 +53,10 @@ AdminLogin=Dolibarr datu bāzes īpašnieka lietotājvārds PasswordAgain=Atkārtot paroli otrreiz AdminPassword=Parole Dolibarr datu bāzes īpašniekam. CreateDatabase=Izveidot datubāzi -CreateUser=Izveidot īpašnieku +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Datu bāzes serveris - superlietotājs piekļuve CheckToCreateDatabase=Ieķeksējiet, ja datu bāze neeksistē, un tā ir jāizveido.
    Tādā gadījumā, jums ir jāaizpilda pieteikšanās / paroli SuperUser kontā šīs lapas apakšā. -CheckToCreateUser=Ieķeksējiet, ja datu bāzes īpašnieks neeksistē, un ir jāizveidots.
    Tādā gadījumā, jums ir jāizvēlas savu lietotājvārdu un paroli, kā arī aizpildīt pieteikšanās / paroli superlietotājs kontā šīs lapas apakšā. Ja šī rūtiņa ir neieķeksēta , datubāzes īpašniekam un parolei jau ir jābūt. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Lietotāja vārds, kas var izveidot datubāzes vai jaunos lietotājus. Obligāti jāaizpilda, ja datubāze vai tās īpašnieks jau neeksistē. KeepEmptyIfNoPassword=Atstājiet tukšu, ja lietotājam nav vajadzīga parole (izvairieties no bezparoles lietotāja vārda) SaveConfigurationFile=Saglabā vērtības diff --git a/htdocs/langs/lv_LV/main.lang b/htdocs/langs/lv_LV/main.lang index 1e469c4c447..e251df84142 100644 --- a/htdocs/langs/lv_LV/main.lang +++ b/htdocs/langs/lv_LV/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=The file was successfully uploaded -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=Fails ir izvēlēts pielikumam, bet vēl nav augšupielādēti. Noklikšķiniet uz "Pievienot failu", lai to pievienotu. NbOfEntries=Ierakstu sk GoToWikiHelpPage=Lasīt tiešsaistes palīdzību (nepieciešams interneta piekļuve) @@ -196,6 +197,7 @@ Parameter=Parametrs Parameters=Parametri Value=Vērtība PersonalValue=Personīgā vērtība +NewObject=New %s NewValue=Jaunā vērtība CurrentValue=Pašreizējā vērtība Code=Kods @@ -441,6 +443,7 @@ Reporting=Pārskata Reportings=Pārskati Draft=Melnraksts Drafts=Melnraksti +StatusInterInvoiced= Validated=Apstiprināts Opened=Atvērts New=Jauns @@ -727,6 +730,7 @@ SetBankAccount=Definēt bankas kontu AccountCurrency=Konta valūta ViewPrivateNote=Apskatīt piezīmes XMoreLines=%s līnija(as) slēptas +ShowMoreLines=Show more lines PublicUrl=Publiskā saite AddBox=Pievienot info logu SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Dzimums Genderman=Vīrietis diff --git a/htdocs/langs/lv_LV/modulebuilder.lang b/htdocs/langs/lv_LV/modulebuilder.lang index dafba2e6298..8d9ec89569e 100644 --- a/htdocs/langs/lv_LV/modulebuilder.lang +++ b/htdocs/langs/lv_LV/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=Jauns modulis @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Modulis inicializēts -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Bīstamā zona BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Apraksts EditorName=Redaktora vārds @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/lv_LV/multicurrency.lang b/htdocs/langs/lv_LV/multicurrency.lang index 72288839de0..d39506af324 100644 --- a/htdocs/langs/lv_LV/multicurrency.lang +++ b/htdocs/langs/lv_LV/multicurrency.lang @@ -4,7 +4,8 @@ ErrorAddRateFail=Pievienotās likmes kļūda ErrorAddCurrencyFail=Pievienotajā valūtā radusies kļūda ErrorDeleteCurrencyFail=Kļūda dzēšot multicurrency_syncronize_error=Sinhronizācijas kļūda: %s -multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate) CurrencyLayerAccount=CurrencyLayer API CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
    Get your API key
    If you use a free account you can't change the currency source (USD by default)
    But if your main currency isn't USD you can use the alternate currency source to force you main currency

    You are limited at 1000 synchronizations per month multicurrency_appId=API atslēga diff --git a/htdocs/langs/lv_LV/orders.lang b/htdocs/langs/lv_LV/orders.lang index 3ba7a5616d1..5aff83c3c76 100644 --- a/htdocs/langs/lv_LV/orders.lang +++ b/htdocs/langs/lv_LV/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Piegādātāji pasūtījumi platība OrderCard=Pasūtījumu kartiņa OrderId=Pasūtījuma ID Order=Rīkojums +PdfOrderTitle=Pasūtījums Orders=Pasūtījumi OrderLine=Lai līnija OrderDate=Pasūtīt datumu diff --git a/htdocs/langs/lv_LV/other.lang b/htdocs/langs/lv_LV/other.lang index 87fc0b60778..d4d3662e709 100644 --- a/htdocs/langs/lv_LV/other.lang +++ b/htdocs/langs/lv_LV/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Rēķina datums PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/lv_LV/products.lang b/htdocs/langs/lv_LV/products.lang index 1fcb9a2ed6c..565096643d9 100644 --- a/htdocs/langs/lv_LV/products.lang +++ b/htdocs/langs/lv_LV/products.lang @@ -218,7 +218,7 @@ PrintsheetForOneBarCode=Drukāt vairākas svītrkoda uzlīmes BuildPageToPrint=Ģenerēt lapu drukāšanai FillBarCodeTypeAndValueManually=Aizpildīt svītrukodu veidu un vērtību manuāli. FillBarCodeTypeAndValueFromProduct=Fill barcode type and value from barcode of a product. -FillBarCodeTypeAndValueFromThirdParty=Fill barcode type and value from barcode of a third party. +FillBarCodeTypeAndValueFromThirdParty=Aizpildīt svītrkodu veidu un vērtību no trešo pušu svītrkoda. DefinitionOfBarCodeForProductNotComplete=Definition of type or value of bar code not complete for product %s. DefinitionOfBarCodeForThirdpartyNotComplete=Definition of type or value of bar code non complete for third party %s. BarCodeDataForProduct=Svītrkoda produkta informācija %s : diff --git a/htdocs/langs/lv_LV/propal.lang b/htdocs/langs/lv_LV/propal.lang index fc34a8593e0..5d5d62e6802 100644 --- a/htdocs/langs/lv_LV/propal.lang +++ b/htdocs/langs/lv_LV/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Sagatave komerciālajiem priekšlikumiem ProposalsOpened=Open commercial proposals Prop=Komerciālie priekšlikumi CommercialProposal=Komerciālais priekšlikums +PdfCommercialProposalTitle=Komerciālais priekšlikums ProposalCard=Priekšlikuma kartiņa NewProp=Jaunais komerciālais priekšlikums NewPropal=Jaunais priekšlikums @@ -14,9 +15,9 @@ DeleteProp=Dzēst komerciālo priekšlikumu ValidateProp=Apstiprināt komerciālo priekšlikumu AddProp=Izveidot piedāvājumu 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? +ConfirmValidateProp=Vai jūs tiešām vēlaties apstiprinātu šo komerciālo priekšlikumu saskaņā ar nosaukumu %s ? LastPropals=Pēdējie %s priekšlikumi -LastModifiedProposals=Latest %s modified proposals +LastModifiedProposals=Pēdējie %s labotie priekšlikumi AllPropals=Visi priekšlikumi SearchAProposal=Meklēt priekšlikumu NoProposal=No proposal @@ -28,7 +29,7 @@ ShowPropal=Rādīt priekšlikumu PropalsDraft=Sagatave PropalsOpened=Atvērts PropalStatusDraft=Projekts (ir jāapstiprina) -PropalStatusValidated=Validated (proposal is opened) +PropalStatusValidated=Apstiprināts (priekšlikums ir atvērts) PropalStatusSigned=Parakstīts (vajadzības rēķinu) PropalStatusNotSigned=Nav parakstīts (slēgta) PropalStatusBilled=Jāmaksā diff --git a/htdocs/langs/lv_LV/salaries.lang b/htdocs/langs/lv_LV/salaries.lang index 1b67a696f56..e8a29f994c2 100644 --- a/htdocs/langs/lv_LV/salaries.lang +++ b/htdocs/langs/lv_LV/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Alga Salaries=Algas diff --git a/htdocs/langs/lv_LV/website.lang b/htdocs/langs/lv_LV/website.lang index ce462832cae..06edcea1406 100644 --- a/htdocs/langs/lv_LV/website.lang +++ b/htdocs/langs/lv_LV/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Dzēst mājaslapu ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Labot izvēlni EditPageMeta=Edit Meta EditPageContent=Labot saturu Website=Mājas lapa -Webpage=Mājas lapa -AddPage=Pievienot lapu +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Lapa '%s' pievienota +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/lv_LV/workflow.lang b/htdocs/langs/lv_LV/workflow.lang index 46365804464..9779a90b2c4 100644 --- a/htdocs/langs/lv_LV/workflow.lang +++ b/htdocs/langs/lv_LV/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Darbplūsmu moduļa iestatīšana WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automātiski izveidot klienta rēķinu pēc līguma apstiprināšanas -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Klasificēt saistīta avota priekšlikumu Jāmaksā, ja klientu rīkojumu ir iestatīts uz apmaksātu -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Klasificēt saistīts avots klienta pasūtījumu (s) Jāmaksā, ja klients rēķins ir iestatīts uz apmaksātu -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Klasificēt saistīta avota klienta pasūtījumu (s) Jāmaksā, ja klients rēķins ir apstiprināts -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automātiskā klasifikācija diff --git a/htdocs/langs/mk_MK/accountancy.lang b/htdocs/langs/mk_MK/accountancy.lang index d239f259a94..a7176d2e55f 100644 --- a/htdocs/langs/mk_MK/accountancy.lang +++ b/htdocs/langs/mk_MK/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Code Nature=Nature AccountingJournalType1=Various operation AccountingJournalType2=Sales @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/mk_MK/admin.lang b/htdocs/langs/mk_MK/admin.lang index 85d4503b8ae..927096c47ca 100644 --- a/htdocs/langs/mk_MK/admin.lang +++ b/htdocs/langs/mk_MK/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=System tools area SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. Purge=Purge PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. PurgeRunNow=Purge now PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s files or directories deleted. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Purge all security events ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Generate backup @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Read discounts Permission402=Create/modify discounts Permission403=Validate discounts Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files +PreviousDumpFiles=Generated database backup files WeekStartOnDay=First day of week RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. diff --git a/htdocs/langs/mk_MK/banks.lang b/htdocs/langs/mk_MK/banks.lang index ba42f9a4c83..9bce7b9e29a 100644 --- a/htdocs/langs/mk_MK/banks.lang +++ b/htdocs/langs/mk_MK/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/mk_MK/bills.lang b/htdocs/langs/mk_MK/bills.lang index 1e83ba9b2d1..6bcd2464c1c 100644 --- a/htdocs/langs/mk_MK/bills.lang +++ b/htdocs/langs/mk_MK/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Invoice card PredefinedInvoices=Predefined Invoices Invoice=Invoice +PdfInvoiceTitle=Invoice Invoices=Invoices InvoiceLine=Invoice line InvoiceCustomer=Customer invoice diff --git a/htdocs/langs/mk_MK/compta.lang b/htdocs/langs/mk_MK/compta.lang index 94a3bd671ef..f8b5b683cb8 100644 --- a/htdocs/langs/mk_MK/compta.lang +++ b/htdocs/langs/mk_MK/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/mk_MK/errors.lang b/htdocs/langs/mk_MK/errors.lang index feada2d1b5a..853a34b4bb4 100644 --- a/htdocs/langs/mk_MK/errors.lang +++ b/htdocs/langs/mk_MK/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/mk_MK/install.lang b/htdocs/langs/mk_MK/install.lang index a3533a31277..5b6ba06e78a 100644 --- a/htdocs/langs/mk_MK/install.lang +++ b/htdocs/langs/mk_MK/install.lang @@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner. PasswordAgain=Retype password a second time AdminPassword=Password for Dolibarr database owner. CreateDatabase=Create database -CreateUser=Create owner +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Database server - Superuser access CheckToCreateDatabase=Check box if database does not exist and must be created.
    In this case, you must fill the login/password for superuser account at the bottom of this page. -CheckToCreateUser=Check box if database owner does not exist and must be created.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists. KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this) SaveConfigurationFile=Save values diff --git a/htdocs/langs/mk_MK/main.lang b/htdocs/langs/mk_MK/main.lang index a923ae109a4..fdbbc9d6bc9 100644 --- a/htdocs/langs/mk_MK/main.lang +++ b/htdocs/langs/mk_MK/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=The file was successfully uploaded -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parameter Parameters=Parameters Value=Value PersonalValue=Personal value +NewObject=New %s NewValue=New value CurrentValue=Current value Code=Code @@ -441,6 +443,7 @@ Reporting=Reporting Reportings=Reporting Draft=Draft Drafts=Drafts +StatusInterInvoiced= Validated=Validated Opened=Open New=New @@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account AccountCurrency=Account Currency ViewPrivateNote=View notes XMoreLines=%s line(s) hidden +ShowMoreLines=Show more lines PublicUrl=Public URL AddBox=Add box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Gender Genderman=Man diff --git a/htdocs/langs/mk_MK/modulebuilder.lang b/htdocs/langs/mk_MK/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/mk_MK/modulebuilder.lang +++ b/htdocs/langs/mk_MK/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/mk_MK/orders.lang b/htdocs/langs/mk_MK/orders.lang index 331e3b49d3e..0c59b4f4ada 100644 --- a/htdocs/langs/mk_MK/orders.lang +++ b/htdocs/langs/mk_MK/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area OrderCard=Order card OrderId=Order Id Order=Order +PdfOrderTitle=Order Orders=Orders OrderLine=Order line OrderDate=Order date diff --git a/htdocs/langs/mk_MK/other.lang b/htdocs/langs/mk_MK/other.lang index e15d490c0f2..e519f7af405 100644 --- a/htdocs/langs/mk_MK/other.lang +++ b/htdocs/langs/mk_MK/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/mk_MK/propal.lang b/htdocs/langs/mk_MK/propal.lang index 3fdb379c5a2..271fb44ac40 100644 --- a/htdocs/langs/mk_MK/propal.lang +++ b/htdocs/langs/mk_MK/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal +PdfCommercialProposalTitle=Commercial proposal ProposalCard=Proposal card NewProp=New commercial proposal NewPropal=New proposal diff --git a/htdocs/langs/mk_MK/salaries.lang b/htdocs/langs/mk_MK/salaries.lang index 08fd2c5a451..ed296e3905f 100644 --- a/htdocs/langs/mk_MK/salaries.lang +++ b/htdocs/langs/mk_MK/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge Salary=Salary Salaries=Salaries diff --git a/htdocs/langs/mk_MK/website.lang b/htdocs/langs/mk_MK/website.lang index b3b05ee6cc9..98577e0de5e 100644 --- a/htdocs/langs/mk_MK/website.lang +++ b/htdocs/langs/mk_MK/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/mk_MK/workflow.lang b/htdocs/langs/mk_MK/workflow.lang index 54246856e9b..8021fb9b198 100644 --- a/htdocs/langs/mk_MK/workflow.lang +++ b/htdocs/langs/mk_MK/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Workflow module setup WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/mn_MN/accountancy.lang b/htdocs/langs/mn_MN/accountancy.lang index d239f259a94..a7176d2e55f 100644 --- a/htdocs/langs/mn_MN/accountancy.lang +++ b/htdocs/langs/mn_MN/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Code Nature=Nature AccountingJournalType1=Various operation AccountingJournalType2=Sales @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/mn_MN/admin.lang b/htdocs/langs/mn_MN/admin.lang index a443d04f35d..8dba7af0e0b 100644 --- a/htdocs/langs/mn_MN/admin.lang +++ b/htdocs/langs/mn_MN/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=System tools area SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. Purge=Purge PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. PurgeRunNow=Purge now PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s files or directories deleted. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Purge all security events ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Generate backup @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Read discounts Permission402=Create/modify discounts Permission403=Validate discounts Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files +PreviousDumpFiles=Generated database backup files WeekStartOnDay=First day of week RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. diff --git a/htdocs/langs/mn_MN/banks.lang b/htdocs/langs/mn_MN/banks.lang index ba42f9a4c83..9bce7b9e29a 100644 --- a/htdocs/langs/mn_MN/banks.lang +++ b/htdocs/langs/mn_MN/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/mn_MN/bills.lang b/htdocs/langs/mn_MN/bills.lang index 1e83ba9b2d1..6bcd2464c1c 100644 --- a/htdocs/langs/mn_MN/bills.lang +++ b/htdocs/langs/mn_MN/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Invoice card PredefinedInvoices=Predefined Invoices Invoice=Invoice +PdfInvoiceTitle=Invoice Invoices=Invoices InvoiceLine=Invoice line InvoiceCustomer=Customer invoice diff --git a/htdocs/langs/mn_MN/compta.lang b/htdocs/langs/mn_MN/compta.lang index 94a3bd671ef..f8b5b683cb8 100644 --- a/htdocs/langs/mn_MN/compta.lang +++ b/htdocs/langs/mn_MN/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/mn_MN/errors.lang b/htdocs/langs/mn_MN/errors.lang index feada2d1b5a..853a34b4bb4 100644 --- a/htdocs/langs/mn_MN/errors.lang +++ b/htdocs/langs/mn_MN/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/mn_MN/install.lang b/htdocs/langs/mn_MN/install.lang index a3533a31277..5b6ba06e78a 100644 --- a/htdocs/langs/mn_MN/install.lang +++ b/htdocs/langs/mn_MN/install.lang @@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner. PasswordAgain=Retype password a second time AdminPassword=Password for Dolibarr database owner. CreateDatabase=Create database -CreateUser=Create owner +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Database server - Superuser access CheckToCreateDatabase=Check box if database does not exist and must be created.
    In this case, you must fill the login/password for superuser account at the bottom of this page. -CheckToCreateUser=Check box if database owner does not exist and must be created.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists. KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this) SaveConfigurationFile=Save values diff --git a/htdocs/langs/mn_MN/main.lang b/htdocs/langs/mn_MN/main.lang index 751e9d530c6..3e9d1c35294 100644 --- a/htdocs/langs/mn_MN/main.lang +++ b/htdocs/langs/mn_MN/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=The file was successfully uploaded -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parameter Parameters=Parameters Value=Value PersonalValue=Personal value +NewObject=New %s NewValue=New value CurrentValue=Current value Code=Code @@ -441,6 +443,7 @@ Reporting=Reporting Reportings=Reporting Draft=Draft Drafts=Drafts +StatusInterInvoiced= Validated=Validated Opened=Open New=New @@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account AccountCurrency=Account Currency ViewPrivateNote=View notes XMoreLines=%s line(s) hidden +ShowMoreLines=Show more lines PublicUrl=Public URL AddBox=Add box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Gender Genderman=Man diff --git a/htdocs/langs/mn_MN/modulebuilder.lang b/htdocs/langs/mn_MN/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/mn_MN/modulebuilder.lang +++ b/htdocs/langs/mn_MN/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/mn_MN/orders.lang b/htdocs/langs/mn_MN/orders.lang index 331e3b49d3e..0c59b4f4ada 100644 --- a/htdocs/langs/mn_MN/orders.lang +++ b/htdocs/langs/mn_MN/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area OrderCard=Order card OrderId=Order Id Order=Order +PdfOrderTitle=Order Orders=Orders OrderLine=Order line OrderDate=Order date diff --git a/htdocs/langs/mn_MN/other.lang b/htdocs/langs/mn_MN/other.lang index e15d490c0f2..e519f7af405 100644 --- a/htdocs/langs/mn_MN/other.lang +++ b/htdocs/langs/mn_MN/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/mn_MN/propal.lang b/htdocs/langs/mn_MN/propal.lang index 3fdb379c5a2..271fb44ac40 100644 --- a/htdocs/langs/mn_MN/propal.lang +++ b/htdocs/langs/mn_MN/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal +PdfCommercialProposalTitle=Commercial proposal ProposalCard=Proposal card NewProp=New commercial proposal NewPropal=New proposal diff --git a/htdocs/langs/mn_MN/salaries.lang b/htdocs/langs/mn_MN/salaries.lang index 522bf0a65d7..7e0c80d3380 100644 --- a/htdocs/langs/mn_MN/salaries.lang +++ b/htdocs/langs/mn_MN/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries diff --git a/htdocs/langs/mn_MN/website.lang b/htdocs/langs/mn_MN/website.lang index b3b05ee6cc9..98577e0de5e 100644 --- a/htdocs/langs/mn_MN/website.lang +++ b/htdocs/langs/mn_MN/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/mn_MN/workflow.lang b/htdocs/langs/mn_MN/workflow.lang index 54246856e9b..8021fb9b198 100644 --- a/htdocs/langs/mn_MN/workflow.lang +++ b/htdocs/langs/mn_MN/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Workflow module setup WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/nb_NO/accountancy.lang b/htdocs/langs/nb_NO/accountancy.lang index bca435a960d..1fcdeb05f8b 100644 --- a/htdocs/langs/nb_NO/accountancy.lang +++ b/htdocs/langs/nb_NO/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Oversikt over antall linjer som allerede er bundet OtherInfo=Annen informasjon DeleteCptCategory=Fjern regnskapskonto fra gruppe ConfirmDeleteCptCategory=Er du sikker på at du vil fjerne denne regnskapskontoen fra gruppen? +JournalizationInLedgerStatus=Status for journalisering AlreadyInGeneralLedger=Allerede journalført i hovedbøker +NotYetInGeneralLedger=Ikke ennå journalisert i ledgers + +MainAccountForCustomersNotDefined=Hoved regnskapskonto for kunder som ikke er definert i oppsettet +MainAccountForSuppliersNotDefined=Hoved regnskapskonto for leverandører som ikke er definert i oppsettet +MainAccountForUsersNotDefined=Hoved regnskapskonto for brukere som ikke er definert i oppsettet +MainAccountForVatPaymentNotDefined=Hoved regnskapskonto for MVA-betaling ikke definert i oppsettet AccountancyArea=Område for regnskap AccountancyAreaDescIntro=Bruk av regnskapsmodulen er gjort i flere skritt: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=TRINN %s: Definer standard regnskapskontoer for AccountancyAreaDescSal=TRINN %s: Definer standard regnskapskonto for betaling av lønn. Bruk menyoppføring %s. AccountancyAreaDescContrib=TRINN %s: Definer standard regnskapskonto for spesialutgifter (diverse avgifter). Bruk menyoppføringen %s. AccountancyAreaDescDonation=TRINN %s: Definer standard regnskapskonto for donasjoner. Bruk menyoppføringen %s. -AccountancyAreaDescMisc=TRINN %s: Definer standard regnskapskontoer for diverse transaksjoner. Bruk menyoppføringen %s. +AccountancyAreaDescMisc=TRINN %s: Definer obligatorisk standardkonto og standard regnskapskontoer for diverse transaksjoner. Bruk menyoppføringen %s. AccountancyAreaDescLoan=TRINN %s: Definer standard regnskapskonto for lån. Bruk menyoppføringen %s. AccountancyAreaDescBank=TRINN %s: Definer regnskapskontoer for hver bank- og finanskonto. Gå til kortet for hver finansiell konto for å gjøre dette. Du kan starte fra side %s. AccountancyAreaDescProd=TRINN %s: Definer regnskapskontoer for dine varer/tjenester. Bruk menyoppføringen %s. @@ -79,11 +86,11 @@ SuppliersVentilation=Binding av leverandørfakturaer ExpenseReportsVentilation=Utgiftsrapport-binding CreateMvts=Opprett ny transaksjon UpdateMvts=Endre en transaksjon -ValidTransaction=Validate transaction +ValidTransaction=Valider transaksjonen WriteBookKeeping=Før transaksjoner inn i hovedboken Bookkeeping=Hovedbok AccountBalance=Kontobalanse - +ObjectsRef=Kildeobjekt ref CAHTF=Totalt leverandørkjøp eks. MVA TotalExpenseReport=Total utgiftsrapport InvoiceLines=Binding av fakturalinjer @@ -154,7 +161,7 @@ DelBookKeeping=Slett post fra hovedboken FinanceJournal=Finansjournal ExpenseReportsJournal=Journal for utgiftsrapporter DescFinanceJournal=Finansjournal med alle typer betalinger etter bankkonto -DescJournalOnlyBindedVisible=Dette er en oversikt over posten som er bundet til varer-/tjenester-regnskapskontoen og kan registreres i regnskapsboken. +DescJournalOnlyBindedVisible=Dette er en oversikt over postene som er bundet til regnskapskonto og kan registreres i hovedboken. VATAccountNotDefined=MVA-konto er ikke definert ThirdpartyAccountNotDefined=Konto for tredjepart er ikke definert ProductAccountNotDefined=Konto for vare er ikke definert @@ -170,6 +177,8 @@ AddCompteFromBK=Legg til regnskapskontoer til gruppen ReportThirdParty=List tredjepartskonto DescThirdPartyReport=Liste over kunder og leverandører og deres regnskapskontoer ListAccounts=Liste over regnskapskontoer +UnknownAccountForThirdparty=Ukjent tredjepartskonto. Vi vil bruke %s +UnknownAccountForThirdpartyBlocking=Ukjent tredjepartskonto. Blokkeringsfeil Pcgtype=Kontoklasse Pcgsubtype=Subklasse av konto @@ -194,7 +203,7 @@ ValidateHistory=Bind automatisk AutomaticBindingDone=Automatisk binding utført ErrorAccountancyCodeIsAlreadyUse=Feil, du kan ikke slette denne regnskapskontoen fordi den er i bruk -MvtNotCorrectlyBalanced=Bevegelse er ikke korrekt balansert. Kredit=%s. Debet=%s +MvtNotCorrectlyBalanced=Bevegelsen er ikke riktig balansert. Kreditt = %s. Debet = %s FicheVentilation=Binding-kort GeneralLedgerIsWritten=Transaksjoner blir skrevet inn i hovedboken GeneralLedgerSomeRecordWasNotRecorded=Noen av transaksjonene kunne ikke sendes. Hvis det ikke er noen annen feilmelding, er dette trolig fordi de allerede var sendt. @@ -210,7 +219,6 @@ AccountingJournals=Regnskapsjournaler AccountingJournal=Regnskapsjournal NewAccountingJournal=Ny regnskapsjourna ShowAccoutingJournal=Vis regnskapsjournal -Code=Kode Nature=Natur AccountingJournalType1=Ulike operasjoner AccountingJournalType2=Salg @@ -221,8 +229,6 @@ AccountingJournalType9=Har nye ErrorAccountingJournalIsAlreadyUse=Denne journalen er allerede i bruk ## Export -Exports=Eksporter -Export=Eksport ExportDraftJournal=Eksporter utkastjournal Modelcsv=Eksportmodell OptionsDeactivatedForThisExportModel=For denne eksportmodellen er opsjoner deaktivert diff --git a/htdocs/langs/nb_NO/admin.lang b/htdocs/langs/nb_NO/admin.lang index 484e41f90b7..6e99694db92 100644 --- a/htdocs/langs/nb_NO/admin.lang +++ b/htdocs/langs/nb_NO/admin.lang @@ -28,7 +28,7 @@ SessionId=Økt-ID SessionSaveHandler=Håndterer for å lagre sesjoner SessionSavePath=Sted for lagring av økt PurgeSessions=Utrenskning av øktene -ConfirmPurgeSessions=Har du virkelig ønsker å rense alle økter? Dette vil frakoble alle brukere (bortsett fra deg selv). +ConfirmPurgeSessions=Vil du virkelig rense alle økter? Dette vil frakoble alle brukere (bortsett fra deg selv). NoSessionListWithThisHandler=Øktlagrings-behandleren i PHP tillater ikke å vise alle kjørende økter. LockNewSessions=Lås nye tilkoblinger ConfirmLockNewSessions=Er du sikker på at du vil begrense eventuelle nye Dolibarr tilkoblinger til deg selv?. Bare brukeren %s vil kunne koble til etter det. @@ -140,13 +140,14 @@ SystemToolsArea=Område for systemverktøy SystemToolsAreaDesc=Dette området gir tilgang til administrasjonsfunksjonene. Bruk menyen for å velge funksjonen du ønsker. Purge=Utrenskning PurgeAreaDesc=Denne siden lar deg slette alle filer generert eller lagret av Dolibarr (midlertidige filer eller alle filene i %s katalogen). Det er ikke nødvendig å bruke denne funksjonen. Den er gitt som en midlertidig løsning for brukere som har Dolibarr hos en leverandør som ikke har tilgang til å slette filer generert av webserveren. -PurgeDeleteLogFile=Slett loggfil %s definert for Syslog-modulen (det er ingen risiko for å miste data) +PurgeDeleteLogFile=Slett loggfiler, inkludert %s definert for Syslog-modulen (ingen risiko for å miste data) PurgeDeleteTemporaryFiles=Slett alle temporære filer (du mister ingen data) PurgeDeleteTemporaryFilesShort=Slett temporære filer PurgeDeleteAllFilesInDocumentsDir=Slett alle filer i mappen %s. Dette vil slette midlertidige filer, database sikkerhetskopier og filer som er lastet opp som vedlegg til elementer (tredjeparter, fakturaer osv. ). Alle filer lastet opp i ECM-modulen vil bli slettet. PurgeRunNow=Start utrenskning PurgeNothingToDelete=Ingen mapper eller filer å slette. PurgeNDirectoriesDeleted=%s filer eller mapper slettet. +PurgeNDirectoriesFailed=Kunne ikke slette %s filer eller kataloger. PurgeAuditEvents=Fjern alle sikkerhetshendelser ConfirmPurgeAuditEvents=Er du sikker på at du vil rense alle sikkerhetshendelser? Alle sikkerhetslogger vil bli slettet, ingen andre data vil bli fjernet. GenerateBackup=Opprett sikkerhetskopi @@ -298,7 +299,7 @@ SetupIsReadyForUse=Moduldistribusjon er ferdig. Du må imidlertid aktivere og se NotExistsDirect=Alternativ rotkatalog er ikke definert til en eksisterende katalog.
    InfDirAlt=Fra versjon 3 er det mulig å definere en alternativ rotkatalog. Dette gjør det mulig å lagre plug-ins og egendefinerte maler.
    Opprett en katalog i roten til Dolibarr (f.eks min katalog).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    Hvis disse linjene er markert med "#", er de deaktivert. For å aktivere dem er det bare å fjerne "#". -YouCanSubmitFile=I dette trinnet kan du sende pakken med dette verktøyet: Velg modulfil +YouCanSubmitFile=For dette trinnet kan du sende inn pakkefilen din her: CurrentVersion=Gjeldende versjon av Dolibarr CallUpdatePage=Gå til siden som oppdaterer data og databasestruktur: %s. LastStableVersion=Siste stabile versjon @@ -535,8 +536,6 @@ Module1120Name=Leverandørtilbud Module1120Desc=Forespør leverandørtilbud og tilbud Module1200Name=Mantis Module1200Desc=Mantisintegrasjon -Module1400Name=Regnskap -Module1400Desc=Regnskapsstyring (dobbeltoppføringer) Module1520Name=Dokumentgenerering Module1520Desc=Masse-epost dokumentgenerering Module1780Name=Merker/kategorier @@ -585,7 +584,7 @@ Module50100Desc=Salgssted-modul (POS). Module50200Name=Paypal Module50200Desc=Modul for å tilby onlinebetaling Paypal Module50400Name=Regnskap (avansert) -Module50400Desc=Regnskapsstyring (dobbeltoppføringer) +Module50400Desc=Regnskapsadministrasjon (dobbeltoppføringer, generell støtte og hjelpeledger) Module54000Name=PrintIPP Module54000Desc=Direkteutskrift (uten å åpne dokumentet)ved hjelp av CUPS IPP inteface (Skriveren må være synlig for serveren, og CUPS må være installert på serveren) Module55000Name=Meningsmåling, undersøkelse eller avstemming @@ -751,8 +750,10 @@ Permission401=Vis rabatter Permission402=Opprett/endre rabatter Permission403=Valider rabatter Permission404=Slett rabatter -Permission510=Les Lønn -Permission512=Opprett/endre lønn +Permission501=Les arbeidskontrakter/lønn +Permission502=Opprett/endre arbeidskontrakter/lønn +Permission511=Les lønnsutbetalinger +Permission512=Opprett/endre betaling av lønn Permission514=Slett lønn Permission517=Eksporter lønn Permission520=Les lån @@ -1057,7 +1058,7 @@ RestoreDesc2=Gjenopprett arkivfil (zip-fil for eksempel) av dokumentmappe for å RestoreDesc3=Gjenopprett data fra en backup-fil til databasen i den nye Dolibarr-installasjon eller til databasen av gjeldende installasjon (%s). Advarsel! Når gjenopprettingen er ferdig, må du bruke et brukernavn/passord, som fantes da sikkerhetskopien ble laget, for å koble til igjen. For å gjenopprette en sikkerhetskopiert database til gjeldende installasjon, kan du følge denne assistenten: RestoreMySQL=MySQL import ForcedToByAModule= Denne regelen er tvunget til å %s av en aktivert modul -PreviousDumpFiles=Tilgjengelige databasebackup dumpfiler +PreviousDumpFiles=Genererte database backup-filer WeekStartOnDay=Første dag i uken RunningUpdateProcessMayBeRequired=Kjøring av oppgraderingen ser ut til å være nødvendig (Programversjon %s er forskjellig fra databaseversjon %s) YouMustRunCommandFromCommandLineAfterLoginToUser=Du må kjøre denne kommandoen fra kommandolinjen etter innlogging til et skall med brukeren %s. diff --git a/htdocs/langs/nb_NO/banks.lang b/htdocs/langs/nb_NO/banks.lang index 2caee4fc8b8..f56febfa55a 100644 --- a/htdocs/langs/nb_NO/banks.lang +++ b/htdocs/langs/nb_NO/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Returnert sjekk og faktura gjenåpnet BankAccountModelModule=Dokumentmaler for bankkontoer DocumentModelSepaMandate=Mal for SEPA-mandat. Gjelder kun EU. DocumentModelBan=Mal for å skrive ut en side med BAN-informasjon -NewVariousPayment=Ny varierende betaling -VariousPayment=Varierende betaling -VariousPayments=Varierende betalinger -ShowVariousPayment=Vis varierende betaling +NewVariousPayment=Nye diverse betaling +VariousPayment=Diverse utbetalinger +VariousPayments=Diverse utbetalinger +ShowVariousPayment=Vis diverse betalinger diff --git a/htdocs/langs/nb_NO/bills.lang b/htdocs/langs/nb_NO/bills.lang index 6f6766ee038..78392ac541e 100644 --- a/htdocs/langs/nb_NO/bills.lang +++ b/htdocs/langs/nb_NO/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Var kilde til en eller flere kreditnotaer CardBill=Fakturakort PredefinedInvoices=Forhåndsdefinerte fakturaer Invoice=Faktura +PdfInvoiceTitle=Faktura Invoices=Fakturaer InvoiceLine=Fakturalinje InvoiceCustomer=Kundefaktura diff --git a/htdocs/langs/nb_NO/compta.lang b/htdocs/langs/nb_NO/compta.lang index 888cfd798cd..50a44941544 100644 --- a/htdocs/langs/nb_NO/compta.lang +++ b/htdocs/langs/nb_NO/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Standard regnskapskonto for å utgående MVA - MVA p ACCOUNTING_VAT_BUY_ACCOUNT=Standard regnskapskonto for å inngående MVA - MVA på kjøp (brukes hvis ikke definert i oppsett av MVA-ordboken) ACCOUNTING_VAT_PAY_ACCOUNT=Standard regnskapskonto for MVA.betaling ACCOUNTING_ACCOUNT_CUSTOMER=Regnskapskonto brukt til kunde-tredjepart -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedikert regnskapskonto definert på tredjepartskort som vil bli brukt til regnskapsføring i sub-hovedbok, denne er for hovedboken eller som standardverdi av sub-hovedboksregnskap hvis dedikert kunde-regnskapskonto på tredjepart ikke er definert +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Den dedikerte regnskapskontoen som er definert på tredjepartskort, vil kun bli brukt til subledger. Denne vil bli brukt til hovedboken og som standardverdi av Subledger-regnskap hvis dedikert kundekonto på tredjepart ikke er definert. ACCOUNTING_ACCOUNT_SUPPLIER=Regnskapskonto brukt til leverandør-tredjepart -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedikert regnskapskonto definert på tredjepartskort som vil bli brukt til regnskapsføring i sub-hovedbok, denne er for hovedboken eller som standardverdi av sub-hovedboksregnskap hvis dedikert leverandør-regnskapskonto på tredjepart ikke er definert +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Den dedikerte regnskapskonto som er definert på tredjepartskort, vil kun bli brukt til subledger. Denne vil bli brukt til hovedboken og som standardverdi for Subledger-regnskap hvis dedikert leverandørkonto på tredjepart ikke er definert. CloneTax=Klon skatt/avgift ConfirmCloneTax=Bekreft kloning av skatt/avgiftsbetaling CloneTaxForNextMonth=Klon for neste måned diff --git a/htdocs/langs/nb_NO/errors.lang b/htdocs/langs/nb_NO/errors.lang index 3a9bd9b18f9..27e7552a9dd 100644 --- a/htdocs/langs/nb_NO/errors.lang +++ b/htdocs/langs/nb_NO/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Feil, duplikat utløsernavn %s. Allerede lastet fra %s. ErrorNoWarehouseDefined=Feil, ingen lagre definert. ErrorBadLinkSourceSetButBadValueForRef=Lenken du bruker er ikke gyldig. En 'kilde' for betaling er definert, men verdien for 'ref' er ikke gyldig. ErrorTooManyErrorsProcessStopped=For mange feil. Prosessen ble stoppet. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Massvalidering er ikke mulig når alternativet for å øke/redusere lager er satt til denne handlingen (du må validere en etter en slik at du kan definere varehuset for å øke/redusere) +ErrorObjectMustHaveStatusDraftToBeValidated=Objekt %s må ha status 'Kladd' for å kunne valideres. +ErrorObjectMustHaveLinesToBeValidated=Objekt %s må ha linjer for å kunne valideres. # Warnings WarningPasswordSetWithNoAccount=Et passord ble satt for dette medlemmet, men ingen brukerkonto ble opprettet. Det fører til at passordet ikke kan benyttes for å logge inn på Dolibarr. Det kan brukes av en ekstern modul/grensesnitt, men hvis du ikke trenger å definere noen innlogging eller passord for et medlem, kan du deaktivere alternativet "opprett en pålogging for hvert medlem" fra medlemsmodul-oppsettet. Hvis du trenger å administrere en pålogging, men ikke trenger noe passord, kan du holde dette feltet tomt for å unngå denne advarselen. Merk: E-post kan også brukes som en pålogging dersom medlemmet er knyttet til en bruker. diff --git a/htdocs/langs/nb_NO/install.lang b/htdocs/langs/nb_NO/install.lang index 3fa40e57b51..27385ed7722 100644 --- a/htdocs/langs/nb_NO/install.lang +++ b/htdocs/langs/nb_NO/install.lang @@ -53,10 +53,10 @@ AdminLogin=Logginn for Dolibarr databaseeier. PasswordAgain=Skriv inn passordet en gang AdminPassword=Passord for Dolibarr databaseeier. CreateDatabase=Opprett database -CreateUser=Lag eier +CreateUser=Opprett eier eller gi ham tillatelse på databasen DatabaseSuperUserAccess=Databaseserver - Superbruker tilgang CheckToCreateDatabase=Kryss av i boksen hvis databasen ikke finnes og må opprettes.
    I dette tilfellet må du fylle brukernavn/passord for superbrukerkontoen nederst på denne siden. -CheckToCreateUser=Kryss av i boksen hvis databaseeier ikke eksisterer og må opprettes.
    I dette tilfellet må du velge brukernavn og passord, og også fylle brukernavn/passord for superbrukerkontoen nederst på denne siden. Hvis denne boksen er avkrysset, må databaseeier og passord finnes. +CheckToCreateUser=Kryssrute hvis databaseeier ikke eksisterer og må opprettes, eller hvis den eksisterer, men databasen ikke, og tillatelser må gis.
    I dette tilfellet må du velge innlogging og passord og også fylle innloggingen/passordet for Superbrukerkontoen nederst på denne siden. Hvis denne boksen ikke er merket, må eierdatabasen og passordene eksistere. DatabaseRootLoginDescription=Pålogging til bruker med tillatelse til å opprette nye databaser eller nye brukere, obligatorisk hvis databasen eller dens eier ikke allerede eksisterer. KeepEmptyIfNoPassword=La være tomt hvis bruker ikke har passord (unngå dette) SaveConfigurationFile=Lagre verdier diff --git a/htdocs/langs/nb_NO/main.lang b/htdocs/langs/nb_NO/main.lang index c408291cbbd..5459e285537 100644 --- a/htdocs/langs/nb_NO/main.lang +++ b/htdocs/langs/nb_NO/main.lang @@ -73,9 +73,10 @@ Apply=Legg til BackgroundColorByDefault=Standard bakgrunnsfarge FileRenamed=Filen har fått nytt navn FileGenerated=Filen ble opprettet -FileSaved=The file was successfully saved +FileSaved=Filen ble lagret FileUploaded=Opplastningen var vellykket -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=Fil(er) ble lastet opp +FilesDeleted=Fil(er) slettet FileWasNotUploaded=En fil er valgt som vedlegg, men er ennå ikke lastet opp. Klikk på "Legg ved fil" for dette. NbOfEntries=Antall oppføringer GoToWikiHelpPage=Les online-hjelp (Du må være tilknyttet internett) @@ -196,6 +197,7 @@ Parameter=Parameter Parameters=Parametre Value=Verdi PersonalValue=Personlig verdi +NewObject=Ny %s NewValue=Ny verdi CurrentValue=Gjeldende verdi Code=Kode @@ -441,6 +443,7 @@ Reporting=Rapportering Reportings=Rapportering Draft=Kladd Drafts=Kladder +StatusInterInvoiced= Validated=Validert Opened=Åpent New=Ny @@ -727,6 +730,7 @@ SetBankAccount=Definer Bankkonto AccountCurrency=Konto Valuta ViewPrivateNote=Vis notater XMoreLines=%s linje(r) skjult +ShowMoreLines=Vis flere linjer PublicUrl=Offentlig URL AddBox=Legg til boks SelectElementAndClick=Velg et element og klikk %s @@ -735,6 +739,7 @@ ShowTransaction=Vis oppføring på bankkonto GoIntoSetupToChangeLogo=Gå til Hjem - Oppsett - Firma for å skifte logo eller Hjem - Oppsett - Display for å skjule. Deny=Avvis Denied=Avvist +ListOf=Liste over %s ListOfTemplates=Liste over maler Gender=Kjønn Genderman=Mann diff --git a/htdocs/langs/nb_NO/modulebuilder.lang b/htdocs/langs/nb_NO/modulebuilder.lang index bb45721bb24..6c12a34f3cb 100644 --- a/htdocs/langs/nb_NO/modulebuilder.lang +++ b/htdocs/langs/nb_NO/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=Disse verktøyene må kun brukes av erfarne brukere eller utviklere. Det gir deg et verktøy til å bygge eller redigere din egen modul (Dokumentasjon for alternativ manuell utvikling er her ). EnterNameOfModuleDesc=Skriv inn navnet på modulen/applikasjonen du vil opprette, uten mellomrom. Bruk stor bokstav til å skille ord (For eksempel: MyModule, EcommerceForShop, SyncWithMySystem ...) -EnterNameOfObjectDesc=Skriv inn navnet på objektet som skal opprettes, uten å bruke mellomrom. Bruk store bokstaver til å skille ord (For eksempel: MittObjeKt, Student, Lærer ...) +EnterNameOfObjectDesc=Skriv inn navnet på objektet som skal opprettes, uten mellomrom. Bruk stor bokstav til å skille ord (For eksempel: MyObject, Student, Lærer ...). CRUD-klassefilen, men også API-filen, sider for å liste/legge til/redigere/slette objekt og SQL-filer blir generert . ModuleBuilderDesc2=Sti hvor moduler genereres/redigeres (første alternative katalog definert i %s): %s ModuleBuilderDesc3=Genererte / redigerbare moduler funnet: %s (de oppdages som redigerbare når filen %s eksisterer i roten av modulkatalogen). NewModule=Ny modul @@ -9,13 +9,14 @@ NewObject=Nytt objekt ModuleKey=Modulnøkkel ObjectKey=Objektnøkkel ModuleInitialized=Modul initialisert -FilesForObjectInitialized=Filer for nytt objekt initialisert +FilesForObjectInitialized=Filer for nytt objekt '%s' initialisert +FilesForObjectUpdated=Filer for objektet '%s' oppdatert (.sql-filer og .class.php-fil) ModuleBuilderDescdescription=Her skriver du inn all generell informasjon som beskriver modulen din -ModuleBuilderDescspecifications=Du kan skrive inn en lang tekst for å beskrive spesifikasjonene til modulen din, som ikke allerede er strukturert i andre faner. Da har du plass til utviklingsregler. Også dette tekstinnholdet vil bli inkludert i den genererte dokumentasjonen (se siste faneblad). -ModuleBuilderDescobjects=Definer de objektene du vil administrere med modulen din her. En sql-fil, en side for å liste dem, en for å opprette/redigere/vise et kort og en API, vil bli generert. +ModuleBuilderDescspecifications=Du kan skrive inn en lang tekst for å beskrive spesifikasjonene til modulen din, som ikke allerede er strukturert i andre faner. Du har alle reglene som skal utvikles innen rekkevidde. Også dette tekstinnholdet vil bli inkludert i den genererte dokumentasjonen (se siste faneblad). Du kan bruke Markdown-format, men det anbefales at du bruker Asciidoc-formatet (Sammenligning mellom .md og .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Her defineres de objektene du vil administrere med modulen din. En CRUD DAO-klasse, SQL-filer, en side med en oversikt over objekter, å opprette/redigere/vise en post og en API vil bli generert. ModuleBuilderDescmenus=Denne fanen er dedikert for å definere menyoppføringer som tilbys av modulen din. ModuleBuilderDescpermissions=Denne fanener dedikert til å definere de nye tillatelsene du vil gi med modulen din. -ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDesctriggers=Dette er visningen av utløsere som tilbys av modulen din. Hvis du vil inkludere kode kjøres når en utløst forretningsaktivitet er startet, må du redigere denne filen. ModuleBuilderDeschooks=Denne fanen er til kroker. ModuleBuilderDescwidgets=Denne fanen er for å administrere/bygge widgeter. ModuleBuilderDescbuildpackage=Her kan du generere en "klar til å distribuere" pakkefil (en normalisert .zip-fil) av modulen din og en "klar til å distribuere" dokumentasjonsfil. Klikk på knappen for å bygge pakken eller dokumentasjonsfilen. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=Du kan slette et objekt. ADVARSEL: Alle filer rela DangerZone=Faresone BuildPackage=Bygg pakke/dokumentasjon BuildDocumentation=Bygg dokumentasjon -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=Denne modulen er ikke aktivert enda. Gå til %s for å aktivere eller klikk her: ModuleIsLive=Denne modulen er blitt aktivert. Enhver endring på den kan ødelegge en gjeldende aktiv funksjon. DescriptionLong=Lang beskrivelse EditorName=Navn på editor @@ -38,3 +39,18 @@ PathToModulePackage=Sti til zip-fil av modul/applikasjonspakke PathToModuleDocumentation=Sti til fil med modul/applikasjonsdokumentasjon SpaceOrSpecialCharAreNotAllowed=Mellomrom eller spesialtegn er ikke tillatt. FileNotYetGenerated=Filen er ikke generert ennå +SpecificationFile=Fil med forretningsregler +ConfirmDeleteProperty=Er du sikker på at du vil slette egenskapen %s? Dette vil endre kode i PHP klassen, og fjerne kolonne fra tabelldefinisjon av objekt. +NotNull=Ikke NULL +SearchAll=Brukt for 'søk alle' +DatabaseIndex=Database indeks +FileAlreadyExists=Filen %s eksisterer allerede +TriggersFile=Fil for trigger-koder +HooksFile=Fil for hooks-koder +WidgetFile=Widget-fil +ReadmeFile=Readme-fil +ChangeLog=ChangeLog-fil +SqlFile=Sql-fil +SqlFileKey=Sql-fil for nøkler +AnObjectAlreadyExistWithThisNameAndDiffCase=Et objekt eksisterer allerede med dette navnet +UseAsciiDocFormat=Du kan bruke Markdown-format, men det anbefales at du bruker Asciidoc-formatet (Sammenligning mellom .md og .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/nb_NO/multicurrency.lang b/htdocs/langs/nb_NO/multicurrency.lang index 9f3fc646c57..c9ef198f1cb 100644 --- a/htdocs/langs/nb_NO/multicurrency.lang +++ b/htdocs/langs/nb_NO/multicurrency.lang @@ -4,7 +4,8 @@ ErrorAddRateFail=Feil i ny rate ErrorAddCurrencyFail=Feil i ny valuta ErrorDeleteCurrencyFail=Feil, sletting mislykkes multicurrency_syncronize_error=Synkroniseringsfeil: %s -multicurrency_useOriginTx=Når et objekt er opprettet fra et annet, behold den opprinnelige raten til kildeobjektet (ellers bruk den nye kjente rate) +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Bruk dokumentdato for å finne valutakurs, i stedet for å bruke sist kjente kurs +multicurrency_useOriginTx=Når et objekt opprettes fra et annet, behold den opprinnelige kursen til kildeobjektet (ellers bruk den siste kjente kursen) CurrencyLayerAccount=CurrencyLayer API CurrencyLayerAccount_help_to_synchronize=Du må opprette en konto på deres nettside for å bruke denne funksjonaliteten.
    Få din API-nøkkel
    Hvis du bruker en gratis konto, kan du ikke endre valutakilden (USD som standard)
    Men hvis hovedvalutaen din ikke er USD, kan du bruke alternativ valutakilde for å tvinge annen hovedvaluta

    Du er begrenset til 1000 synkroniseringer per måned multicurrency_appId=API-nøkkel diff --git a/htdocs/langs/nb_NO/orders.lang b/htdocs/langs/nb_NO/orders.lang index c22da7525b1..e66608da805 100644 --- a/htdocs/langs/nb_NO/orders.lang +++ b/htdocs/langs/nb_NO/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Område for leverandørordre OrderCard=Ordrekort OrderId=Ordre-ID Order=Ordre +PdfOrderTitle=Ordre Orders=Ordre OrderLine=Ordrelinje OrderDate=Ordredato diff --git a/htdocs/langs/nb_NO/other.lang b/htdocs/langs/nb_NO/other.lang index 69f73268e4e..1c50951ff74 100644 --- a/htdocs/langs/nb_NO/other.lang +++ b/htdocs/langs/nb_NO/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Forrige måned (tekst) av fakturadato NextMonthOfInvoice=Følgende måned (nummer 1-12) på fakturadato TextNextMonthOfInvoice=Følgende måned (tekst) på fakturadato ZipFileGeneratedInto=Zip-fil generert til %s. +DocFileGeneratedInto=Doc-fil generert til %s. YearOfInvoice=År av fakturadato PreviousYearOfInvoice=Forrige års fakturadato @@ -172,7 +173,7 @@ NumberOfSupplierInvoices=Antall leverandørfakturaer NumberOfUnitsProposals=Antall enheter i tilbud NumberOfUnitsCustomerOrders=Antall enheter i kundeordre NumberOfUnitsCustomerInvoices=Antall enheter i kundefakturaer -NumberOfUnitsSupplierProposals=Antall enheter på leverandørtilbud +NumberOfUnitsSupplierProposals=Antall enheter i leverandørtilbud NumberOfUnitsSupplierOrders=Antall enheter på leverandørordre NumberOfUnitsSupplierInvoices=Antall enheter i leverandørfakturaer EMailTextInterventionAddedContact=En ny intervensjon %s er blitt tildelt deg. diff --git a/htdocs/langs/nb_NO/propal.lang b/htdocs/langs/nb_NO/propal.lang index 7d25b39d51d..709fa94e737 100644 --- a/htdocs/langs/nb_NO/propal.lang +++ b/htdocs/langs/nb_NO/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Tilbudskladder ProposalsOpened=Åpne tilbud Prop=Tilbud CommercialProposal=Tilbud +PdfCommercialProposalTitle=Tilbud ProposalCard=Tilbudskort NewProp=Nytt tilbud NewPropal=Nytt tilbud diff --git a/htdocs/langs/nb_NO/salaries.lang b/htdocs/langs/nb_NO/salaries.lang index 1d30a89950f..5a017357ac4 100644 --- a/htdocs/langs/nb_NO/salaries.lang +++ b/htdocs/langs/nb_NO/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Regnskapskonto brukt til tredjepartsbrukere -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedikert regnskapskonto definert på brukerkort vil bli brukt til Subledger-regnskap, dette for hovedboken eller som standardverdi for Subledger-regnskap hvis dedikert bruker-regnskapskonto på bruker ikke er definert +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Regnskapskontoen som er definert på brukerkort, vil kun bli brukt til bruk av Subledger regnskap. Denne vil bli brukt til hovedboken og som standardverdi for Subledger-regnskap hvis dedikert bruker-regnskapskonto ikke er definert. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Standard regnskapskonto for personalutgifter Salary=Lønn Salaries=Lønn diff --git a/htdocs/langs/nb_NO/website.lang b/htdocs/langs/nb_NO/website.lang index 09df8e16e1d..842e12d5eb2 100644 --- a/htdocs/langs/nb_NO/website.lang +++ b/htdocs/langs/nb_NO/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Sett inn antall ulike websider du ønsker. Deretter kan du redi DeleteWebsite=Slett wedside ConfirmDeleteWebsite=Er du sikker på at du vil slette denne websiden? Alle sider og innhold vil bli slettet. WEBSITE_PAGENAME=Sidenavn/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL til ekstern CSS-fil WEBSITE_CSS_INLINE=CSS-innhold -PageNameAliasHelp=Navn eller alias på siden.
    Dette aliaset brukes også til å smi en SEO-URL når nettstedet leses fra en virtuell vert for en webserver (som Apacke, Nginx, ...). Bruk knappen " %s " for å redigere dette aliaset. +PageNameAliasHelp=Navn eller alias på siden.
    Dette aliaset brukes også til å lage en SEO-URL når nettsiden blir kjørt fra en virtuell vert til en webserver (som Apacke, Nginx, ...). Bruk knappen "%s" for å redigere dette aliaset. MediaFiles=Mediabibliotek -EditCss=Endre stil/CSS +EditCss=Rediger stil/CSS eller HTML-header EditMenu=Rediger meny EditPageMeta=Rediger Metadata EditPageContent=Rediger innhold Website=Webside -Webpage=Webside -AddPage=Legg til side +Webpage=Nettsted/container +AddPage=Legg til side/container HomePage=Hjemmeside PreviewOfSiteNotYetAvailable=Forhåndsvisning av websiden din %s er ikke tilgjengelig enda. Du må først legge til en side. RequestedPageHasNoContentYet=Forespurt side med id %s har ikke noe innhold enda, eller cachefilen .tpl.php ble fjernet. Rediger innhold på siden for å løse dette. -PageDeleted=Siden '%s' på webside %s slettet -PageAdded=Side '%s' lagt til +PageContent=Side/Container +PageDeleted=Side/Container '%s' på nettstedet %s slettet +PageAdded=Side/Container '%s' lagt til ViewSiteInNewTab=Vis webside i ny fane ViewPageInNewTab=Vis side i ny fane SetAsHomePage=Sett som startside @@ -28,4 +30,9 @@ ViewWebsiteInProduction=Vis webside ved hjelp av hjemme-URL SetHereVirtualHost=Hvis du kan opprette, på din webserver (Apache, Nginx, ...), en dedikert Virtual Host med PHP aktivert og en Root-katalog på %s
    og skriv deretter inn det virtuelle vertsnavnet du har opprettet, slik at forhåndsvisningen kan gjøres også ved hjelp av denne direkte webservertilgangen, og ikke bare ved hjelp av Dolibarr-serveren. PreviewSiteServedByWebServer=Forhåndsvis %s i en ny fane.

    %s vil bli kjørt på en ekstern webserver (som Apache, Nginx, IIS). Du må installere og sette opp denne serveren før du peker på katalogen:
    %s
    URL til ekstern server:
    %s PreviewSiteServedByDolibarr=Forhåndsvis%s i en ny fane.

    %s vil bli servet av Dolibarr-serveren, slik at det ikke trengs noen ekstra webserver (som Apache, Nginx, IIS) som skal installeres.
    Nettadressene til sidene er ikke brukervennlige og starter med banen til Dolibarr.
    URL servet av Dolibarr:
    %s

    For å bruke din egen eksterne webserver til å betjene denne websiden , opprett en virtuell vert på webserveren din som peker på katalogen
    %s
    og skriv deretter inn navnet på denne virtuelle serveren og klikk på den andre forhåndsvisningsknappen. +VirtualHostUrlNotDefined=URL til ekstern webserver ikke definert NoPageYet=Ingen sider ennå +SyntaxHelp=Hjelp med kodesyntax +YouCanEditHtmlSource=Du kan redigere HTML-kildekode ved hjelp av "Kilde" -knappen i redigeringsprogrammet. Du kan også inkludere PHP-kode i denne kilden ved hjelp av tagger <?php?>. Følgende globale variabler er tilgjengelige: $conf, $langs, $db, $mysoc, $user, $website.

    Du kan også inkludere innhold fra en annen side/container med følgende syntaks: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    Hvis du vil inkludere en lenke for å laste ned en fil som er lagret i document/medias katalogen, bruk syntaks:
    <a href="/document.php?modulepart=media&file=filnavn.ext">. +ClonePage=Klon side/container +CloneSite=Klon side diff --git a/htdocs/langs/nb_NO/workflow.lang b/htdocs/langs/nb_NO/workflow.lang index 5ee55a81c2c..837d5d2a07a 100644 --- a/htdocs/langs/nb_NO/workflow.lang +++ b/htdocs/langs/nb_NO/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Oppsett av Arbeidsflyt-modulen WorkflowDesc=Denne modulen er laget for å sette opp automatiske hendelser i programmet. Som standard er arbeidsflyt-modulen åpen (du kan gjøre ting i de rekkefølgen du ønsker). Du kan aktivere de automatiske hendelsene du vil. ThereIsNoWorkflowToModify=Det er ingen arbeidsflyt-modifikasjoner tilgjengelig med aktiverte moduler. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatisk opprettelse av kundeordre etter at et tilbud er signert -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Opprett automatisk en kundefaktura når et tilbud er signert +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Opprett en kundeordre automatisk etter at et tilbud er signert (ny ordre vil ha samme beløp som tilbud) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Opprett en kundefaktura automatisk etter at et tilbud er signert (ny faktura vil ha samme beløp som tilbud) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Opprett automatisk en kundefaktura når en kontrakt er validert -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Opprett automatisk en kundefaktura når en kundeordre er lukket -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Klassifiser tilbud som fakturert når kundeordre er satt til betalt -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Klassifiser kundeordre(r) som fakturert når faktura er satt til betalt -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Klassifiser kundeordre(r) som fakturert når faktura er satt til validert -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Klassifiser lenket kildetilbud som fakturert når kundefaktura blir validert -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Klassifiser lenket kildeordre til levert når en forsendelse er validert og sendt kvantitet er det samme som i ordre +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Opprett en kundefaktura automatisk etter at en kundeordre er stengt (ny faktura vil ha samme beløp som ordre) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Klassifiser tilknyttede kildetilbud til fakturert(e) når kundeordren er satt til fakturert (og hvis beløpet av bestillingen er det samme som totalbeløpet av signerte koblede tilbud) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Klassifiser koblede kilde-tilbud som fakturert(t) når faktura er validert (og hvis fakturabeløpet er det samme som totalbeløpet av signerte tilbud) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Klassifiser koblede kilde-kundeordre som fakturert(t) når faktura er validert (og hvis fakturabeløpet er det samme som totalbeløpet av koblede ordrer) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Klassifiser koblede kilde-kundeordre som fakturert(t) når faktura er satt til betalt (og hvis fakturabeløpet er det samme som totalbeløpet av koblede ordrer) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Klassifiser koblet kildeordre som sendt når en forsendelse er validert (og hvis kvantitet som sendes i alle forsendelser, er det samme som i bestillingen som skal oppdateres) AutomaticCreation=Automatisk opprettelse AutomaticClassification=Automatisk klassifisering diff --git a/htdocs/langs/nl_BE/website.lang b/htdocs/langs/nl_BE/website.lang index e5a6d431895..d74b98e3517 100644 --- a/htdocs/langs/nl_BE/website.lang +++ b/htdocs/langs/nl_BE/website.lang @@ -5,16 +5,11 @@ WEBSITE_PAGENAME=Paginanaam/alias WEBSITE_CSS_URL=URL van extern CSS bestand WEBSITE_CSS_INLINE=CSS inhoud MediaFiles=Mediabibliotheek -EditCss=Bewerk Stijl/CSS EditMenu=Bewerk menu EditPageMeta=Meta bewerken EditPageContent=Inhoud aanpassen Website=Website -Webpage=Webpagina -AddPage=Pagina toevoegen PreviewOfSiteNotYetAvailable=De voorvertoning van uw website %s is nog niet beschikbaar. U moet eerst een pagina toevoegen. -PageDeleted=Pagina '%s' van website %s werd verwijderd -PageAdded=Pagina '%s' werd toegevoegd ViewSiteInNewTab=Bekijk de site in een nieuwe tab ViewPageInNewTab=Bekijk de pagina in een nieuwe tab SetAsHomePage=Zet als Homepagina diff --git a/htdocs/langs/nl_BE/workflow.lang b/htdocs/langs/nl_BE/workflow.lang index 073abe6e3d2..c8f4db30713 100644 --- a/htdocs/langs/nl_BE/workflow.lang +++ b/htdocs/langs/nl_BE/workflow.lang @@ -1,8 +1,4 @@ # Dolibarr language file - Source file is en_US - workflow -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Maak automatisch een klantenfactuur na tekenen van een offerte descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Maak automatisch een klantenfactuur na validatie van een contract -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Maak automatisch een klantenfactuur na sluiten van een klantenbestelling -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classificeer de gekoppelde offerte als gefactureerd wanneer de klantenfactuur gevalideerd werd -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classificeer de gekoppelde bestelling als verzonden bij validatie van een verzending waarbij de verzonden hoeveelheid gelijk is aan de hoeveelheid van de bestelling AutomaticCreation=Automatische aanmaak AutomaticClassification=Automatische classificatie diff --git a/htdocs/langs/nl_NL/accountancy.lang b/htdocs/langs/nl_NL/accountancy.lang index 3470cc232f5..1e0fcb1582d 100644 --- a/htdocs/langs/nl_NL/accountancy.lang +++ b/htdocs/langs/nl_NL/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Code Nature=Natuur AccountingJournalType1=Various operation AccountingJournalType2=Verkopen @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Export model OptionsDeactivatedForThisExportModel=Voor dit export model zijn de opties uitgezet diff --git a/htdocs/langs/nl_NL/admin.lang b/htdocs/langs/nl_NL/admin.lang index a791cac6924..26b651f029b 100644 --- a/htdocs/langs/nl_NL/admin.lang +++ b/htdocs/langs/nl_NL/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Systeemwerksetoverzicht SystemToolsAreaDesc=Dit gedeelte biedt administratieve functionaliteit. Gebruik het menu om de functionaliteit in te stellen die u nodig heeft. Purge=Leegmaken PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Verwijder alle bestanden in de map %s.. Tijdelijke bestanden, maar ook databasebackupbestanden, bijlagen van elementen (derde partijen, facturen, etc) en bestanden geüpload naar de ECM-module zullen verwijderd worden. PurgeRunNow=Nu opschonen PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s bestanden of mappen verwijderd. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Verwijder alle gebeurtenisen ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Genereer backup @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=Voor deze stap, kan je het pakket versturen gebruikmakend van dit hulpmiddel: Selecteer module bestand +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Huidige versie van Dolibarr CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Leverancier commerciële voorstel Module1120Desc=Leverancier verzoek commerciële voorstel en prijzen Module1200Name=Mantis Module1200Desc=Mantis integratie -Module1400Name=Boekhouden -Module1400Desc=Accounting management (double entries) Module1520Name=Documenten genereren Module1520Desc=Massa mail document generen Module1780Name=Labels/Categorien @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module om een ​​online betaling pagina te bieden per credit card met Paypal Module50400Name=Boekhouding -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (zonder het openen van de documenten) met behulp van Cups IPP-interface (Printer moet zichtbaar zijn vanaf de server zijn, en CUPS moet geinstalleerd zijn op de server). Module55000Name=Poll, Onderzoek of Stemmen @@ -751,8 +750,10 @@ Permission401=Bekijk kortingen Permission402=Creëren / wijzigen kortingen Permission403=Kortingen valideren Permission404=Kortingen verwijderen -Permission510=Lees Salarissen -Permission512=Maak / wijzig salarissen +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Verwijder salarissen Permission517=Export salarissen Permission520=Lees Leningen @@ -1057,7 +1058,7 @@ RestoreDesc2=- Herstel archiefbestand (zip bestand bijvoorbeeld) van de oude doc RestoreDesc3=- Herstel de gegevens van een backup dumpbestand, in de database van de nieuwe Dolibarr installatie of in de database van de huidige installatie. Waarschuwing, zodra een herstel is gedaan, zult u de gebruikersnaam en wachtwoord die bestonden toen de backup werd gemaakt, moeten gebruiken. Om een backupdatabase in de huidige installatie te herstellen, kunt u de assistent (wizard) volgen. RestoreMySQL=MySQL import ForcedToByAModule= Geforceerd tot %s door een geactiveerde module -PreviousDumpFiles=Beschikbare databasebackupdumpbestanden +PreviousDumpFiles=Generated database backup files WeekStartOnDay=Eerste dag van de week RunningUpdateProcessMayBeRequired=Update lijkt vereist (Programma versie %s verschilt met de database versie %s) YouMustRunCommandFromCommandLineAfterLoginToUser=U dient dit commando vanaf de opdrachtregel uit te voeren, na ingelogd te zijn als gebruiker %s. Of u dient het commando uit te breiden door de -W optie mee te geven zodat u het wachtwoord kunt opgeven. diff --git a/htdocs/langs/nl_NL/banks.lang b/htdocs/langs/nl_NL/banks.lang index fbd4a48cece..23ef1961987 100644 --- a/htdocs/langs/nl_NL/banks.lang +++ b/htdocs/langs/nl_NL/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Cheque teruggekeerd en facturen heropend BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/nl_NL/bills.lang b/htdocs/langs/nl_NL/bills.lang index c645c34eea9..ec307ac19e7 100644 --- a/htdocs/langs/nl_NL/bills.lang +++ b/htdocs/langs/nl_NL/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Is een factuur van een of meerdere kredietnota's. CardBill=Factuurdetails PredefinedInvoices=Voorgedefinieerde Facturen Invoice=Factuur +PdfInvoiceTitle=Factuur Invoices=Facturen InvoiceLine=Factuur online InvoiceCustomer=Afnemersfactuur diff --git a/htdocs/langs/nl_NL/compta.lang b/htdocs/langs/nl_NL/compta.lang index e0ac09c805b..520aac8fd62 100644 --- a/htdocs/langs/nl_NL/compta.lang +++ b/htdocs/langs/nl_NL/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Kloon het voor volgende maand diff --git a/htdocs/langs/nl_NL/errors.lang b/htdocs/langs/nl_NL/errors.lang index eef726cce6f..d04443e88d1 100644 --- a/htdocs/langs/nl_NL/errors.lang +++ b/htdocs/langs/nl_NL/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/nl_NL/install.lang b/htdocs/langs/nl_NL/install.lang index 8bc5d4c5533..0049ac78e57 100644 --- a/htdocs/langs/nl_NL/install.lang +++ b/htdocs/langs/nl_NL/install.lang @@ -53,10 +53,10 @@ AdminLogin=Gebruikersnaam voor Dolibarr database eigenaar. PasswordAgain=Geef uw wachtwoord opnieuw AdminPassword=Wachtwoord voor de database eigenaar. CreateDatabase=Creëer database -CreateUser=Creëer gebruiker +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Databaseserver - Superuser toegang (root toegang) CheckToCreateDatabase=Vink deze optie aan wanneer de database nog niet bestaat en gecreëerd moet worden.
    In dit geval, moet u de velden gebruikersnaam en wachtwoord voor het superuser (root) account onderaan deze pagina ook invullen. -CheckToCreateUser=Vink deze optie aan wanneer de databasegebruiker nog niet bestaat en gecreëerd moet worden.
    In dit geval, moet u de velden gebruikersnaam en wachtwoord voor het superuser (root) account onderaan deze pagina ook invullen. Wanneer deze optie niet aangevinkt wordt, moeten de gebruikersnaam, het wachtwoord en de database van de eigenaar bestaan. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Gebruikersnaam van de gebruiker die gemachtigd is om nieuwe databases of gebruikers aan te maken, nutteloos wanneer uw database en gebruiker al bestaan (zoals het geval wanneer u een webhosting provider gebruikt). KeepEmptyIfNoPassword=Laat dit veld leeg wanneer de gebruiker geen wachtwoord heeft (vermijd dit) SaveConfigurationFile=Waarden opslaan diff --git a/htdocs/langs/nl_NL/main.lang b/htdocs/langs/nl_NL/main.lang index d305994114c..54a9a9a45f9 100644 --- a/htdocs/langs/nl_NL/main.lang +++ b/htdocs/langs/nl_NL/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=Het bestand is succesvol aangemaakt FileSaved=The file was successfully saved FileUploaded=Het bestand is geüpload -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=Een bestand is geselecteerd als bijlage, maar is nog niet geüploadet. Klik hiervoor op "Bevestig dit bestand". NbOfEntries=Aantal invoeringen GoToWikiHelpPage=Lees de online hulptekst (internettoegang vereist) @@ -196,6 +197,7 @@ Parameter=Instelling Parameters=Instellingen Value=Waarde PersonalValue=Persoonlijke waarde +NewObject=New %s NewValue=Nieuwe waarde CurrentValue=Huidige waarde Code=Code @@ -441,6 +443,7 @@ Reporting=Rapportage Reportings=Rapportage Draft=Concept Drafts=Concepten +StatusInterInvoiced= Validated=Gevalideerd Opened=Open New=Nieuw @@ -727,6 +730,7 @@ SetBankAccount=Definieer Bank Rekening AccountCurrency=Rekening Valuta ViewPrivateNote=Notities bekijken XMoreLines=%s regel(s) verborgen +ShowMoreLines=Show more lines PublicUrl=Openbare URL AddBox=Box toevoegen SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Ga naar Home - Setup - Bedrijf om logo te wijzigen of ga naar Home - Instellingen - Scherm om te verbergen. Deny=Wijgeren Denied=Gewijgerd +ListOf=List of %s ListOfTemplates=Lijst van templates Gender=Geslacht Genderman=Man diff --git a/htdocs/langs/nl_NL/modulebuilder.lang b/htdocs/langs/nl_NL/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/nl_NL/modulebuilder.lang +++ b/htdocs/langs/nl_NL/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/nl_NL/orders.lang b/htdocs/langs/nl_NL/orders.lang index aa1a2e8f997..3bc5fc9fe82 100644 --- a/htdocs/langs/nl_NL/orders.lang +++ b/htdocs/langs/nl_NL/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Leverancierorders overzicht OrderCard=Opdrachtenkaart OrderId=Ordernr Order=Order +PdfOrderTitle=Order Orders=Orders OrderLine=Orderregel OrderDate=Opdrachtdatum diff --git a/htdocs/langs/nl_NL/other.lang b/htdocs/langs/nl_NL/other.lang index 41a57243a4b..3742a22c18c 100644 --- a/htdocs/langs/nl_NL/other.lang +++ b/htdocs/langs/nl_NL/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/nl_NL/propal.lang b/htdocs/langs/nl_NL/propal.lang index 50bdf38cfbc..6149791a01e 100644 --- a/htdocs/langs/nl_NL/propal.lang +++ b/htdocs/langs/nl_NL/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Conceptofferte ProposalsOpened=Geen open commerciële voorstellen Prop=Offertes CommercialProposal=Offerte +PdfCommercialProposalTitle=Offerte ProposalCard=Offertedetailkaart NewProp=Nieuwe offerte NewPropal=Nieuwe offerte diff --git a/htdocs/langs/nl_NL/salaries.lang b/htdocs/langs/nl_NL/salaries.lang index c5d0831b07c..f5d73961361 100644 --- a/htdocs/langs/nl_NL/salaries.lang +++ b/htdocs/langs/nl_NL/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salaris Salaries=Salarissen diff --git a/htdocs/langs/nl_NL/website.lang b/htdocs/langs/nl_NL/website.lang index b3b05ee6cc9..98577e0de5e 100644 --- a/htdocs/langs/nl_NL/website.lang +++ b/htdocs/langs/nl_NL/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/nl_NL/workflow.lang b/htdocs/langs/nl_NL/workflow.lang index 6405711430a..b69cb326f05 100644 --- a/htdocs/langs/nl_NL/workflow.lang +++ b/htdocs/langs/nl_NL/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Workflow module setup WorkflowDesc=Deze module is ontworpen om het gedrag van automatische acties aan te passen. Standaard is de workflow open (u kunt dingen doen in de volgorde die u wilt). U kunt automatische acties activeren indien u wenst. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classificeer gekoppelde bron offerte om gefactureerd te worden wanneer bestelling van de klant is ingesteld op betaald -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classificeer gekoppelde bron klant bestelling(en) gefactureerd wanneer de klant factuur is ingesteld op betaald -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classificeer gekoppelde bron klantbestelling(en) gefactureerd wanneer de klantfactuur wordt gevalideerd -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/pl_PL/accountancy.lang b/htdocs/langs/pl_PL/accountancy.lang index c533b579080..06eb11795f9 100644 --- a/htdocs/langs/pl_PL/accountancy.lang +++ b/htdocs/langs/pl_PL/accountancy.lang @@ -8,11 +8,11 @@ ACCOUNTING_EXPORT_AMOUNT=Eksportuj kwoty ACCOUNTING_EXPORT_DEVISE=Eksportuj waluty Selectformat=Wybierz format dla pliku ACCOUNTING_EXPORT_PREFIX_SPEC=Przedrostek w nazwie pliku -ThisService=This service -ThisProduct=This product -DefaultForService=Default for service -DefaultForProduct=Default for product -CantSuggest=Can't suggest +ThisService=Ta usługa +ThisProduct=Ten produkt +DefaultForService=Domyślny dla usługi +DefaultForProduct=Domyślny dla produktu +CantSuggest=Nie można zaproponować AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Konfiguracja modułu eksperta księgowego Journalization=Journalization @@ -22,13 +22,20 @@ BackToChartofaccounts=Powrót planu kont Chartofaccounts=Plan kont CurrentDedicatedAccountingAccount=Current dedicated account AssignDedicatedAccountingAccount=Nowe konto do przypisania -InvoiceLabel=Invoice label +InvoiceLabel=Etykieta faktury OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account -OtherInfo=Other information +OtherInfo=Inne informacje DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Obszar księgowości AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -57,33 +64,33 @@ AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and genera AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. MenuAccountancy=Księgowość -Selectchartofaccounts=Select active chart of accounts -ChangeAndLoad=Change and load +Selectchartofaccounts=Wybierz aktywny wykres kont +ChangeAndLoad=Zmień i załaduj Addanaccount=Dodaj konto księgowe AccountAccounting=Konto księgowe AccountAccountingShort=Konto SubledgerAccount=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal -AccountAccountingSuggest=Accounting account suggested +AccountAccountingSuggest=Zalecane konto rachunkowe MenuDefaultAccounts=Default accounts -MenuVatAccounts=Vat accounts -MenuTaxAccounts=Tax accounts +MenuVatAccounts=Konta VAT +MenuTaxAccounts=Konta podatkowe MenuExpenseReportAccounts=Expense report accounts -MenuLoanAccounts=Loan accounts +MenuLoanAccounts=Konta kredytu MenuProductsAccounts=Product accounts ProductsBinding=Konta produktów -Ventilation=Binding to accounts +Ventilation=Powiązanie z kontami CustomersVentilation=Powiązania do faktury klienta SuppliersVentilation=Powiązania do faktury dostawcy ExpenseReportsVentilation=Expense report binding CreateMvts=Utwórz nową transakcję -UpdateMvts=Modification of a transaction -ValidTransaction=Validate transaction -WriteBookKeeping=Journalize transactions in Ledger +UpdateMvts=Modyfikacja transakcji +ValidTransaction=Potwierdź transakcję +WriteBookKeeping=Zaksięguj transakcje Bookkeeping=Ledger AccountBalance=Bilans konta - +ObjectsRef=Source object ref CAHTF=Total sprzedaży dostawcy przed opodatkowaniem TotalExpenseReport=Total expense report InvoiceLines=Pozycje faktury do powiązania @@ -96,14 +103,14 @@ IntoAccount=Bind line with the accounting account Ventilate=Powiąż LineId=Id line Processing=Przetwarzanie -EndProcessing=Process terminated. +EndProcessing=Proces zakończony. SelectedLines=Wybrane linie Lineofinvoice=Pozycja faktury LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Liczba elementów do powiązania na stronie (rekomendowana maksymalna ilość: 50) @@ -140,7 +147,7 @@ Labelcompte=Etykieta konta Sens=Sens Codejournal=Dziennik NumPiece=ilość sztuk -TransactionNumShort=Num. transaction +TransactionNumShort=Numer transakcji AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account ByAccounts=By accounts @@ -154,22 +161,24 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Dziennik finansów ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Dziennik finansów zawiera wszystkie typy płatności wykonane przez konto bankowe -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Konto dla niezdefiniowanego VATu ThirdpartyAccountNotDefined=Konto dla niezdefiniowanego kontrahenta -ProductAccountNotDefined=Account for product not defined +ProductAccountNotDefined=Konto produktów nie zdefiniowane FeeAccountNotDefined=Account for fee not defined -BankAccountNotDefined=Account for bank not defined +BankAccountNotDefined=Konto bankowe nie zdefiniowane CustomerInvoicePayment=Zapłata faktury klienta ThirdPartyAccount=Konto kontrahenta NewAccountingMvt=Nowa transakcja -NumMvts=Numero of transaction +NumMvts=Ilość transakcji ListeMvts=Lista ruchów ErrorDebitCredit=Debetowych i kredytowych nie może mieć wartość w tym samym czasie AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=Lista kont kontrahentów DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=Lista kont księgowych +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Klasa konta Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Błąd, nie można usunąc tego konta księgowego, ponieważ jest w użyciu -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,20 +219,17 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Kod Nature=Natura AccountingJournalType1=Various operation AccountingJournalType2=Sprzedaż AccountingJournalType3=Zakupy AccountingJournalType4=Bank -AccountingJournalType5=Expenses report +AccountingJournalType5=Raport wydatków AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Eksporty -Export=Eksport -ExportDraftJournal=Export draft journal +ExportDraftJournal=Export dziennika projektu Modelcsv=Model eksportu OptionsDeactivatedForThisExportModel=Dla tego modelu eksportu opcje są wyłączone Selectmodelcsv=Wybierz model eksportu @@ -257,7 +263,7 @@ ValueNotIntoChartOfAccount=This value of accounting account does not exist into ## Dictionary Range=Range of accounting account Calculated=Calculated -Formula=Formula +Formula=Formuła ## Error SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them diff --git a/htdocs/langs/pl_PL/admin.lang b/htdocs/langs/pl_PL/admin.lang index 9f85b9ae8be..16f0625b86e 100644 --- a/htdocs/langs/pl_PL/admin.lang +++ b/htdocs/langs/pl_PL/admin.lang @@ -104,7 +104,7 @@ MenuIdParent=ID Rodzica menu DetailMenuIdParent=ID menu rodzica (pusty dla górnego menu) DetailPosition=Sortuj numer do zdefiniowania pozycji menu AllMenus=Wszyscy -NotConfigured=Module/Application not configured +NotConfigured=Moduły/Aplikacje nie skonfigurowane Active=Aktywne SetupShort=Konfiguracja OtherOptions=Inne opcje @@ -140,13 +140,14 @@ SystemToolsArea=Obszar narzędzi systemowych SystemToolsAreaDesc=Obszar ten udostępnia funkcje administracyjne. Użyj menu, aby wybrać tę funkcję, której szukasz. Purge=Czyszczenie PurgeAreaDesc=Ta strona pozwala Ci na usunięcie wszystkich plików wygenerowanych lub zapisanych przesz Dolibarr (tymczasowe pliki lub wszystkie pliki w folderze %s). Używanie tej opcji nie jest konieczne. Opcja ta jest dostarczana jako obejście dla użytkowników, których Dolibarr jest obsługiwany przez operatora, który nie oferuje możliwości usuwania plików generowanych przez serwer WWW. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Usuń wszystkie pliki tymczasowe (nie utracisz danych) PurgeDeleteTemporaryFilesShort=Usuń pliki tymczasowe PurgeDeleteAllFilesInDocumentsDir=Usuń wszystkie pliki w katalogu %s. Pliki tymczasowe, jak również kopie zapasowe baz danych oraz pliki dołączone do elementów (kontrahencji, faktury ...) i przesłane do modułu ECM zostaną usunięte. PurgeRunNow=Czyść teraz PurgeNothingToDelete=Brak katalogu lub plików do usunięcia. PurgeNDirectoriesDeleted= %s pliki lub katalogi usunięte. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Czyść wszystkie wydarzenia ConfirmPurgeAuditEvents=Czy jesteś pewien, że chcesz usunąć wszystkie zdarzenia związane z bezpieczeństwem? Wszystkie logo związane z bezpieczeństwem zostaną usunięte. Inne dane nie zostaną usunięte. GenerateBackup=Generowanie kopii zapasowej @@ -190,7 +191,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Uprawnienia BoxesDesc=Widgety są komponentami pokazującymi pewne informacje, które możesz dodać w celu spersonalizowania niektórych stron. Możesz wybrać pomiędzy pokazaniem wigetu lub nie poprzez wybranie docelowej strony i kliknięcie "Aktywacja", lub poprzez kliknięcie na kosz w celu wyłączenia go. OnlyActiveElementsAreShown=Tylko elementy z aktywnych modułów są widoczne. -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. +ModulesDesc=Moduły Dolibarr definiują, która aplikacja / funkcja jest włączona w oprogramowaniu. Niektóre aplikacje / moduły wymagają uprawnień, które musisz przyznać użytkownikom po ich aktywacji. Kliknij przycisk ON/OFF, aby włączyć moduł / aplikację. ModulesMarketPlaceDesc=Możesz znaleźć więcej modułów do pobrania na zewnętrznych stronach internetowych... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Znajdź dodatkowe moduły... @@ -200,7 +201,7 @@ DoliPartnersDesc=List of companies providing custom developed modules or feature WebSiteDesc=Powiązane strony z modułami... URL=Łącze BoxesAvailable=Dostępne widgety -BoxesActivated=Widgets activated +BoxesActivated=Widgety aktywowane ActivateOn=Uaktywnij ActiveOn=Aktywowany SourceFile=Plik źródłowy @@ -214,7 +215,7 @@ MainDbPasswordFileConfEncrypted=Hasło bazy danych zakodowane w conf.php InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
    $dolibarr_main_db_pass="...";
    by
    $dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
    $dolibarr_main_db_pass="crypted:...";
    by
    $dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Ochrona generowanych plików PDF (Aktywowany nie jest zalecany, przerwa masowe generowanie plików pdf) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. +ProtectAndEncryptPdfFilesDesc=Ochrona dokumentu PDF umożliwia jego odczyt i druk w dowolnej przeglądarce PDF. Jednak edytowanie i kopiowanie nie jest już możliwe. Zauważ, że korzystanie z tej funkcji sprawia, że tworzenie globalnie połączonych plików PDF nie działa. Feature=Funkcja DolibarrLicense=Licencja Developpers=Programiści / Współpracownicy @@ -240,7 +241,7 @@ PaperSize=Paper type Orientation=Orientation SpaceX=Space X SpaceY=Space Y -FontSize=Font size +FontSize=Wielkość czcionki Content=Content NoticePeriod=Okres wypowiedzenia NewByMonth=New by month @@ -264,13 +265,13 @@ MAIN_DISABLE_ALL_SMS=Wyłącz wysyłanie wszystkich SMS (do celów badawczych lu MAIN_SMS_SENDMODE=Metoda służy do wysyłania wiadomości SMS MAIN_MAIL_SMS_FROM=Nadawca domyślny numer telefonu wysyłaniu SMS-ów MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email +UserEmail=Adres email użytkownika +CompanyEmail=Adres email firmy FeatureNotAvailableOnLinux=Cechy te nie są dostępne w systemach Unix, takich jak. Przetestuj swój program sendmail lokalnie. SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Moduł konfiguracji -ModulesSetup=Modules/Application setup +ModulesSetup=Ustawienia Modułów/Aplikacji ModuleFamilyBase=System ModuleFamilyCrm=Zarządzanie relacjami z klientem (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -287,18 +288,18 @@ ModuleFamilyInterface=Współpraca z systemami zewnętrznymi MenuHandlers=Menu obsługi MenuAdmin=Edytor menu DoNotUseInProduction=Nie używaj w produkcji -ThisIsProcessToFollow=This is steps to process: +ThisIsProcessToFollow=To jest krok do procesu: ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: StepNb=Krok %s FindPackageFromWebSite=Odnajdź pakiet, który zapewnia wybraną przez Ciebię funkcję (np. na oficjalnej stronie internetowej %s). DownloadPackageFromWebSite=Download package (for example from official web site %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s +UnpackPackageInDolibarrRoot=Rozpakuj spakowane pliki do katalogu serwera poświęconego Dolibarr:%s UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
    +SetupIsReadyForUse=Wdrażanie modułu zostało zakończone. Musisz jednak włączyć i skonfigurować moduł w aplikacji, przechodząc na stronę do konfiguracji modułów: %s. +NotExistsDirect=Alternatywny katalog główny nie jest zdefiniowany w istniejącym katalogu.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Aktualna wersja Dolibarr CallUpdatePage=Przejdź na stronę, która pomoże w zaktualizować strukturę bazy danych i dane: %s. LastStableVersion=Ostatnia stabilna wersja @@ -313,7 +314,7 @@ GenericMaskCodes3=Wszystkie inne znaki w masce pozostaną nienaruszone.
    Spa GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
    GenericMaskCodes4b=Przykład kontrahenta utworzonego w dniu 2007-03-01:
    GenericMaskCodes4c=Przykład produktu utworzony 2007-03-01:
    -GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
    {0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
    IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' +GenericMaskCodes5=ABC{yy}{mm}-{000000} wyświetli jako ABC0701-000099
    {0000+100@1}-ZZZ/{dd}/XXX wyświetli jako 0199-ZZZ/31/XXX
    IN{yy}{mm}-{0000}-{t} wyświetli jako IN0701-0099-A jeśli rodzaj firmy to 'spółka Z O.O.' z kodem dla typu 'A_RI' GenericNumRefModelDesc=Zwraca numer wysyłki zgodnie z zdefiniowaną maską ServerAvailableOnIPOrPort=Serwer dostępny jest pod adresem %s na porcie %s ServerNotAvailableOnIPOrPort=Serwer nie jest dostępna pod adresem %s na porcie %s @@ -379,7 +380,7 @@ Boolean=Boolean (one checkbox) ExtrafieldPhone = Telefon ExtrafieldPrice = Cena ExtrafieldMail = Adres e-mail -ExtrafieldUrl = Url +ExtrafieldUrl = Link ExtrafieldSelect = Wybierz listę ExtrafieldSelectList = Wybierz z tabeli ExtrafieldSeparator=Separator (not a field) @@ -535,8 +536,6 @@ Module1120Name=Dostawca propozycja handlowa Module1120Desc=Dostawca komercyjnych i wniosek propozycja ceny Module1200Name=Mantis Module1200Desc=Integracja Mantis -Module1400Name=Księgowość -Module1400Desc=Accounting management (double entries) Module1520Name=Generowanie dokumentu Module1520Desc=Dokument poczty masowej generacji Module1780Name=Tagi / Kategorie @@ -585,7 +584,7 @@ Module50100Desc=Punkty sprzedaży (POS) Module50200Name=Paypal Module50200Desc=Moduł oferujący płatność online za pomocą karty kredytowej z Paypal Module50400Name=Rachunkowość (zaawansowane) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Druk bezpośredni (bez otwierania dokumentów) za pomocą interfejsu Puchary IPP (drukarki muszą być widoczne z serwera, a CUPS musi być installé na serwerze). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Odczytaj zniżki Permission402=Tworzenie / modyfikacja zniżek Permission403=Walidacja zniżek Permission404=Usuwanie zniżek -Permission510=Czytaj Wynagrodzenia -Permission512=Tworzenie / modyfikacja pensje +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Usuń pensje Permission517=Wynagrodzenia eksport Permission520=Czytaj Kredyty @@ -872,7 +873,7 @@ DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Szablony wiadomości e-mail DictionaryUnits=Units DictionaryProspectStatus=Status możliwości -DictionaryHolidayTypes=Types of leaves +DictionaryHolidayTypes=Rodzaje urlopów DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Konfiguracja zapisana SetupNotSaved=Setup not saved @@ -947,7 +948,7 @@ Host=Serwer DriverType=Typ sterownika SummarySystem=Podsumowanie informacji systemowych SummaryConst=Lista wszystkich parametrów konfiguracji Dolibarr -MenuCompanySetup=Company/Organisation +MenuCompanySetup=Firma/Fundacja DefaultMenuManager= Menedżer standardowego menu DefaultMenuSmartphoneManager=Menedżer menu Smartphona Skin=Skórka @@ -958,12 +959,12 @@ DefaultMaxSizeShortList=Domyślna maksymalna długość dla krótkiej listy (prz MessageOfDay=Wiadomość dnia MessageLogin=Wiadomość strona logowania LoginPage=Login page -BackgroundImageLogin=Background image +BackgroundImageLogin=Obrazek tła PermanentLeftSearchForm=Stały formularz wyszukiwania w lewym menu DefaultLanguage=Domyślny język do użytku (kod języka) EnableMultilangInterface=Włącz wielojęzyczny interfejs EnableShowLogo=Pokaż logo w menu po lewej stronie -CompanyInfo=Company/organisation information +CompanyInfo=Informacje Firmy/Fundacji CompanyIds=Company/organisation identities CompanyName=Nazwa firmy CompanyAddress=Adres @@ -1019,7 +1020,7 @@ AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System informacji jest różne informacje techniczne można uzyskać w trybie tylko do odczytu i widoczne tylko dla administratorów. SystemAreaForAdminOnly=Obszar ten jest dostępny tylko dla użytkowników na prawach administratora. Żadne z uprawnień Dolibarr nie zniesie tego ograniczenia. CompanyFundationDesc=Edytuj na tej stronie wszystkie znane Ci informacje na temat firmy lub fundacji (Aby to zrobić, kliknij na przycisk "Modyfikuj" lub "Zapisz" na dole strony) -DisplayDesc=Możesz wybrać każdego z parametrów związanych z wyglądem i Dolibarr tutaj +DisplayDesc=Tutaj możesz ustawić każdy z parametrów związanych z wyglądem i zachowaniem Dolibarr AvailableModules=Dostępne moduły ToActivateModule=Aby uaktywnić modules, przejdź na konfigurację Powierzchnia. SessionTimeOut=Limit czasu dla sesji @@ -1031,8 +1032,8 @@ TriggerDisabledAsModuleDisabled=Wyzwalacze w tym pliku są wyłączone jako m TriggerAlwaysActive=Wyzwalacze w tym pliku są zawsze aktywne, niezależnie są aktywowane Dolibarr modułów. TriggerActiveAsModuleActive=Wyzwalacze w tym pliku są aktywne jako modułu %s jest aktywny. GeneratedPasswordDesc=Określ tutaj reguły, które chcesz użyć do wygenerowania nowego hasła, jeśli zapyta się automatycznie wygenerowane hasło -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. +DictionaryDesc=Wprowadź wszystkie potrzebne dane. Wartości można dodać do ustawień domyślnych. +ConstDesc=Ta strona pozwoli ci na edycję wszystkich innych parametrów nie dostępnych w poprzednich stronach. Są to głównie parametry zastrzeżone dla programistów lub zaawansowanych użytkowników. Aby uzyskać listę opcji kliknij tutaj. MiscellaneousDesc=Inne powiązane parametry bezpieczeństwa są zdefiniowane tutaj LimitsSetup=Ograniczenia / Precision konfiguracji LimitsDesc=Można określić limity, doprecyzowanie i optymalizacje stosowane przez Dolibarr tutaj @@ -1057,7 +1058,7 @@ RestoreDesc2=Przywróć pliki archiwalny (np. ZIP) katalogu dokumentów, aby wyo RestoreDesc3=Przywróć dane z pliku kopii zapasowej, do bazy danych nowej instalacji Dolibarr lub do bazy danych tej bieżącej instalacji (%s). Uwaga, gdy przywracanie zostanie zakończone, należy użyć loginu i hasła, które istniały, gdy kopia zapasowa została utworzona, aby połączyć się ponownie. Aby przywrócić kopię zapasową bazy danych do bieżącej instalacji, można użyć tego asystenta. RestoreMySQL=Import MySQL ForcedToByAModule= Ta zasada jest zmuszona do %s przez aktywowany modułu -PreviousDumpFiles=Dump bazy danych dostępne pliki kopii zapasowej +PreviousDumpFiles=Generated database backup files WeekStartOnDay=Pierwszy dzień tygodnia RunningUpdateProcessMayBeRequired=Uruchomiony proces aktualizacji wydaje się konieczne (programy różni się od wersji %s %s wersja bazy danych) YouMustRunCommandFromCommandLineAfterLoginToUser=Należy uruchomić to polecenie z wiersza polecenia po zalogowaniu się do powłoki z %s użytkownika. @@ -1333,7 +1334,7 @@ LDAPFieldCompanyExample=Przykład: o LDAPFieldSid=SID LDAPFieldSidExample=Przykład: objectSid LDAPFieldEndLastSubscription=Data zakończenia subskrypcji -LDAPFieldTitle=Job position +LDAPFieldTitle=Posada LDAPFieldTitleExample=Przykład: tytuł LDAPSetupNotComplete=LDAP konfiguracji nie są kompletne (przejdź na innych kartach) LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Brak administratora lub hasła. Dostęp do LDAP będzie jedynie anonimowy i tylko w trybie do odczytu. @@ -1629,11 +1630,11 @@ PressF5AfterChangingThis=Naciśnij CTRL+F5 na klawiaturze aby wyczyścić cache NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Kolor tła TopMenuBackgroundColor=Kolor tła górnego menu -TopMenuDisableImages=Hide images in Top menu +TopMenuDisableImages=Ukryj obrazki górnego menu LeftMenuBackgroundColor=Kolor tła bocznego menu BackgroundTableTitleColor=Kolor tła nagłówka tabeli -BackgroundTableLineOddColor=Background color for odd table lines -BackgroundTableLineEvenColor=Background color for even table lines +BackgroundTableLineOddColor=Kolor tła pozostałych lini tabeli +BackgroundTableLineEvenColor=Kolor tła dla równomiernych lini tabeli MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. @@ -1682,8 +1683,8 @@ AddHooks=Add hooks AddTriggers=Add triggers AddMenus=Add menus AddPermissions=Dodaj uprawnienia -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles +AddExportProfiles=Dodaj eksportowane profile +AddImportProfiles=Dodaj importowane profile AddOtherPagesOrServices=Add other pages or services AddModels=Add document or numbering templates AddSubstitutions=Add keys substitutions diff --git a/htdocs/langs/pl_PL/banks.lang b/htdocs/langs/pl_PL/banks.lang index c236438363b..fe6a3cb9ffd 100644 --- a/htdocs/langs/pl_PL/banks.lang +++ b/htdocs/langs/pl_PL/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Czek zwrócony i faktura ponownie otwarta BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/pl_PL/bills.lang b/htdocs/langs/pl_PL/bills.lang index f4ba9b429fa..6ebf1c8d054 100644 --- a/htdocs/langs/pl_PL/bills.lang +++ b/htdocs/langs/pl_PL/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Karta faktury PredefinedInvoices=Predefiniowane Faktury Invoice=Faktura +PdfInvoiceTitle=Faktura Invoices=Faktury InvoiceLine=Pole faktury InvoiceCustomer=Faktura klienta diff --git a/htdocs/langs/pl_PL/boxes.lang b/htdocs/langs/pl_PL/boxes.lang index ed177a428a8..cadca6616d0 100644 --- a/htdocs/langs/pl_PL/boxes.lang +++ b/htdocs/langs/pl_PL/boxes.lang @@ -1,9 +1,9 @@ # Dolibarr language file - Source file is en_US - boxes -BoxLoginInformation=Login information +BoxLoginInformation=Dane logowania BoxLastRssInfos=Informacje Rss BoxLastProducts=Ostatnie %s produktów/usług BoxProductsAlertStock=Alarm zapasu dla artykułów -BoxLastProductsInContract=Latest %s contracted products/services +BoxLastProductsInContract=Ostatnie %s zlecone produkty/usługi BoxLastSupplierBills=Ostatnie faktury dostawców BoxLastCustomerBills=Ostatnie faktury klientów BoxOldestUnpaidCustomerBills=Najstarsze niezapłacone faktury klientów @@ -22,7 +22,7 @@ BoxCurrentAccounts=Otwórz bilans konta BoxTitleLastRssInfos=Ostatnie %s wiadomości z %s BoxTitleLastProducts=Ostatnich %s modyfikowanych produktów/usług BoxTitleProductsAlertStock=Produkty w alercie magazynowym -BoxTitleLastSuppliers=Latest %s recorded suppliers +BoxTitleLastSuppliers=Ostani %s zapisani dostawcy BoxTitleLastModifiedSuppliers=Ostatnie %s modyfikowanych dostawców BoxTitleLastModifiedCustomers=Ostatnie %s modyfikowanych klientów BoxTitleLastCustomersOrProspects=Ostatnich %s klientów lub potencjalnych klientów @@ -30,7 +30,7 @@ BoxTitleLastCustomerBills=Ostatnie %s faktur klienta BoxTitleLastSupplierBills=Ostatnie %s faktur dostawcy BoxTitleLastModifiedProspects=Ostatnich %s zmodyfikowanych perspektyw BoxTitleLastModifiedMembers=Ostatnich %s członków -BoxTitleLastFicheInter=Latest %s modified interventions +BoxTitleLastFicheInter=Ostatnie %s zmodyfikowane interwencje BoxTitleOldestUnpaidCustomerBills=Najstarszych %s niezapłaconych faktur klienta BoxTitleOldestUnpaidSupplierBills=Najstarszych %s niezapłaconych faktur dostawcy BoxTitleCurrentAccounts=Bilans otwartych kont @@ -43,8 +43,8 @@ BoxTitleLastContracts=Ostatnich %s zmodyfikowanych kontaktów BoxTitleLastModifiedDonations=Ostatnich %s zmodyfikowanych dotacji BoxTitleLastModifiedExpenses=Ostatnich %s zmodyfikowanych raportów kosztów BoxGlobalActivity=Globalna aktywność (faktury, wnioski, zamówienia) -BoxGoodCustomers=Good customers -BoxTitleGoodCustomers=%s Good customers +BoxGoodCustomers=Dobrzy klienci +BoxTitleGoodCustomers=%s dobrych klientów FailedToRefreshDataInfoNotUpToDate=Nie udało się odświeżyć kanału RSS. Data ostatniego udanego odświeżenia: %s LastRefreshDate=Data ostatniego odświeżenia NoRecordedBookmarks=Brak zdefiniowanych zakładek @@ -52,12 +52,12 @@ ClickToAdd=Kliknij tutaj, aby dodać. NoRecordedCustomers=Brak zarejestrowanych klientów NoRecordedContacts=Brak zapisanych kontaktów NoActionsToDo=Brak działań do wykonania -NoRecordedOrders=No recorded customer orders +NoRecordedOrders=Brak zarejestrowanych zamówień klienta NoRecordedProposals=Brak zarejestrowanych wniosków -NoRecordedInvoices=No recorded customer invoices +NoRecordedInvoices=Brak zarejestrowanych rachunków klienta NoUnpaidCustomerBills=Brak niezapłaconych faktur klientów NoUnpaidSupplierBills=Brak niezapłaconych faktur dostawców -NoModifiedSupplierBills=No recorded supplier invoices +NoModifiedSupplierBills=Brak zarejestrowanych faktur dostawców NoRecordedProducts=Brak zarejestrowanych produktów / usług NoRecordedProspects=Brak potencjalnyc klientów NoContractedProducts=Brak produktów/usług zakontraktowanych @@ -77,10 +77,10 @@ BoxTitleLastModifiedSupplierBills=Ostatnie %s zmodyfikowanych rachunków dostawc BoxTitleLatestModifiedSupplierOrders=Ostatnie %s zmodyfikowanych zamówień dostawców BoxTitleLastModifiedCustomerBills=Ostatnie %s zmodyfikowanych rachunków klientów BoxTitleLastModifiedCustomerOrders=Ostatnich %s modyfikowanych zamówień klientów -BoxTitleLastModifiedPropals=Latest %s modified propals +BoxTitleLastModifiedPropals=Ostatnie %s zmodyfikowane oferty ForCustomersInvoices=Faktury Klientów ForCustomersOrders=Zamówienia klientów ForProposals=Oferty -LastXMonthRolling=The latest %s month rolling +LastXMonthRolling=Ostatni %s miesiąc ChooseBoxToAdd=Dodaj widget do swojej tablicy... -BoxAdded=Widget was added in your dashboard +BoxAdded=Widget został dodany do twojej tablicy diff --git a/htdocs/langs/pl_PL/categories.lang b/htdocs/langs/pl_PL/categories.lang index 043287426b8..b1c7e4abe40 100644 --- a/htdocs/langs/pl_PL/categories.lang +++ b/htdocs/langs/pl_PL/categories.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag / Kategoria Rubriques=Tagi / Kategorie -RubriquesTransactions=Tags/Categories of transactions +RubriquesTransactions=Tagi / kategorie transakcji categories=tagi/kategorie NoCategoryYet=Dla tego typu nie utworzono tagu/kategorii In=W @@ -14,8 +14,8 @@ SuppliersCategoriesArea=Dostawcy tagi / obszar kategorie CustomersCategoriesArea=Klienci tagi / obszar kategorie MembersCategoriesArea=Użytkownicy tagi / obszar kategorie ContactsCategoriesArea=Kontakt tagi / obszar kategorie -AccountsCategoriesArea=Accounts tags/categories area -ProjectsCategoriesArea=Projects tags/categories area +AccountsCategoriesArea=Obsza tagów / kategorii kont +ProjectsCategoriesArea=Obszar tagów / kategorii projektów SubCats=Podkategorie CatList=Lista tagów / kategorii NewCategory=Nowy tag / kategoria @@ -26,7 +26,7 @@ CreateThisCat=Utwórz ten tag/kategorię NoSubCat=Brak podkategorii. SubCatOf=Podkategoria FoundCats=Znaleziono tagów / kategorie -ImpossibleAddCat=Impossible to add the tag/category %s +ImpossibleAddCat=Nie możliwe jest dodanie tagu/kategorii %s WasAddedSuccessfully= %s został dodany pomyślnie. ObjectAlreadyLinkedToCategory=Element jest już powiązany z tym tagiem/kategorią. ProductIsInCategories=Produkt/usuługa odnosi się do następujących tagów/kategorii @@ -35,10 +35,10 @@ CompanyIsInSuppliersCategories=Ten kontahent jest skojarzony z następującymi t MemberIsInCategories=Ten członek jest skojarzony z następującymi tagami/kategoriami członków ContactIsInCategories=Ten kontakt odnosi się do następujących tagów/kategorii kontaktów ProductHasNoCategory=Ten produkt/usługa nie jest w żadnym tagu/kategorii -CompanyHasNoCategory=This third party is not in any tags/categories +CompanyHasNoCategory=Ten kontrahent nie należy do żadnego tagu/kategorii MemberHasNoCategory=Ten członek nie jest w żadnym tagu/kategorii ContactHasNoCategory=Ten kontakt nie jest w żadnym z tagów / kategorii -ProjectHasNoCategory=This project is not in any tags/categories +ProjectHasNoCategory=Ten projekt nie należy do żadnego tagu / kategorii ClassifyInCategory=Dodaj do tagu/kategorii NotCategorized=Bez znaczników / kategorii CategoryExistsAtSameLevel=Ta kategoria już istnieje w tym samym miejscu @@ -53,20 +53,20 @@ ProductsCategoryShort=Tag/kategoria produktu MembersCategoryShort=Tag/kategoria członków SuppliersCategoriesShort=Tagi/kategorie dostawców CustomersCategoriesShort=Tagi/kategorie klientów -ProspectsCategoriesShort=Prospects tags/categories +ProspectsCategoriesShort=Tagi / kategorie potencjalnych klientów CustomersProspectsCategoriesShort=Kat. klient/poten. klient. ProductsCategoriesShort=Tagi/kategorie produktów MembersCategoriesShort=Użytkownicy tagów / kategorii ContactCategoriesShort=Kontakt tagów / kategorii -AccountsCategoriesShort=Accounts tags/categories -ProjectsCategoriesShort=Projects tags/categories +AccountsCategoriesShort=Tagi / kategorie kont +ProjectsCategoriesShort=Tagi / kategorie projektów ThisCategoryHasNoProduct=Ta kategoria nie zawiera żadnych produktów. ThisCategoryHasNoSupplier=Ta kategoria nie zawiera żadnego dostawcy. ThisCategoryHasNoCustomer=Ta kategoria nie zawiera żadnych klientów. ThisCategoryHasNoMember=Ta kategoria nie zawiera żadnych członków. ThisCategoryHasNoContact=Ta kategoria nie zawiera żadnego kontaktu. -ThisCategoryHasNoAccount=This category does not contain any account. -ThisCategoryHasNoProject=This category does not contain any project. +ThisCategoryHasNoAccount=Ta kategoria nie zawiera żadnego konta. +ThisCategoryHasNoProject=Ta kategoria nie zawiera żadnych projektów. CategId=Tag / ID kategorii CatSupList=Lista tagów/kategorii dostawcy CatCusList=Lista klientów / perspektywa tagów / kategorii @@ -76,7 +76,7 @@ CatContactList=Lista tagów/kategorii kontaktu CatSupLinks=Powiązania między dostawcami i tagami/kategoriami CatCusLinks=Powiązania między klientami / perspektyw i tagów / kategorii CatProdLinks=Powiązania między produktami/usługami i tagami/kategoriami -CatProJectLinks=Links between projects and tags/categories +CatProJectLinks=Połączenia pomiędzy projektami a tagami / kategoriami DeleteFromCat=Usuń z tagów/kategorii ExtraFieldsCategories=Atrybuty uzupełniające CategoriesSetup=Tagi / kategorie Konfiguracja diff --git a/htdocs/langs/pl_PL/commercial.lang b/htdocs/langs/pl_PL/commercial.lang index f73738a08e4..3d7f2e83a7e 100644 --- a/htdocs/langs/pl_PL/commercial.lang +++ b/htdocs/langs/pl_PL/commercial.lang @@ -18,8 +18,8 @@ TaskRDVWith=Spotkanie z %s ShowTask=Pokaż zadanie ShowAction=Pokaż działania ActionsReport=Działania raport -ThirdPartiesOfSaleRepresentative=Third parties with sales representative -SaleRepresentativesOfThirdParty=Sales representatives of third party +ThirdPartiesOfSaleRepresentative=Kontrahenci z przedstawicielami handlowymi +SaleRepresentativesOfThirdParty=Przedstawiciele handlowi kontrahentów SalesRepresentative=Przedstawiciel handlowy SalesRepresentatives=Przedstawiciele handlowi SalesRepresentativeFollowUp=Przedstawiciel handlowy (kontynuacja) diff --git a/htdocs/langs/pl_PL/companies.lang b/htdocs/langs/pl_PL/companies.lang index 642af48f182..b8cbaebed7e 100644 --- a/htdocs/langs/pl_PL/companies.lang +++ b/htdocs/langs/pl_PL/companies.lang @@ -48,7 +48,7 @@ CivilityCode=Zwrot grzecznościowy RegisteredOffice=Siedziba Lastname=Nazwisko Firstname=Imię -PostOrFunction=Job position +PostOrFunction=Posada UserTitle=Tytuł Address=Adres State=Województwo @@ -74,7 +74,7 @@ Poste= Stanowisko DefaultLang=Domyślny język VATIsUsed=Jest płatnikiem VAT VATIsNotUsed=Nie jest płatnikiem VAT -CopyAddressFromSoc=Fill address with third party address +CopyAddressFromSoc=Uzupełnij adres danymi kontrahenta ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Konto bankowe dla płatności OverAllProposals=Propozycje @@ -356,7 +356,7 @@ TE_PRIVATE=Osoba prywatna TE_OTHER=Inny StatusProspect-1=Nie kontaktować się StatusProspect0=Kontak nie podjęty -StatusProspect1=To be contacted +StatusProspect1=Do połączenia StatusProspect2=W trakcie kontaktu StatusProspect3=Skontaktowano ChangeDoNotContact=Zmień status na "Nie kontaktować się" diff --git a/htdocs/langs/pl_PL/compta.lang b/htdocs/langs/pl_PL/compta.lang index 3b84c67a289..7cc9c3e13b0 100644 --- a/htdocs/langs/pl_PL/compta.lang +++ b/htdocs/langs/pl_PL/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Powiel opłatę za ZUS/podatek ConfirmCloneTax=Potwierdź powielenie płatności za ZUS/podatek CloneTaxForNextMonth=Powiel to na następny miesiąc diff --git a/htdocs/langs/pl_PL/errors.lang b/htdocs/langs/pl_PL/errors.lang index e116dcdc611..eb29a521f2d 100644 --- a/htdocs/langs/pl_PL/errors.lang +++ b/htdocs/langs/pl_PL/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings WarningPasswordSetWithNoAccount=Hasło zostało ustawione dla tego użytkownika. Jednakże nie Konto użytkownika zostało utworzone. Więc to hasło jest przechowywane, ale nie mogą być używane do logowania do Dolibarr. Może być stosowany przez zewnętrzny moduł / interfejsu, ale jeśli nie trzeba definiować dowolną logowania ani hasła do członka, można wyłączyć opcję "Zarządzaj login dla każdego członka" od konfiguracji modułu użytkownika. Jeśli potrzebujesz zarządzać logowanie, ale nie wymagają hasła, możesz zachować to pole puste, aby uniknąć tego ostrzeżenia. Uwaga: E może być również stosowany jako login, jeśli element jest połączony do użytkownika. diff --git a/htdocs/langs/pl_PL/help.lang b/htdocs/langs/pl_PL/help.lang index 0c4f164a0f7..0a06de00ae5 100644 --- a/htdocs/langs/pl_PL/help.lang +++ b/htdocs/langs/pl_PL/help.lang @@ -11,7 +11,7 @@ TypeOfSupport=Źródła wsparcia TypeSupportCommunauty=Wspólnoty (bezpłatny) TypeSupportCommercial=Komercyjny TypeOfHelp=Typ -NeedHelpCenter=Need help or support? +NeedHelpCenter=Potrzebujesz pomocy lub wsparcia? Efficiency=Efektywność TypeHelpOnly=Tylko pomoc TypeHelpDev=Pomoc+Rozwoj diff --git a/htdocs/langs/pl_PL/holiday.lang b/htdocs/langs/pl_PL/holiday.lang index 938cc92e965..edf691bb181 100644 --- a/htdocs/langs/pl_PL/holiday.lang +++ b/htdocs/langs/pl_PL/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Odwołany RefuseCP=Odmówił ValidatorCP=Approbator ListeCP=Lista urlopów -ReviewedByCP=Will be approved by +ReviewedByCP=Będzie zatwierdzone przez DescCP=Opis SendRequestCP=Tworzenie wniosku urlopowego DelayToRequestCP=Zostawić wnioski muszą być wykonane co ​​najmniej% s dzień (dni) przed nimi. @@ -76,13 +76,13 @@ BoxTitleLastLeaveRequests=Ostatnie %s modyfikowanych wniosków urlopowych HolidaysMonthlyUpdate=Miesięczna aktualizacja ManualUpdate=Ręczna aktualizacja HolidaysCancelation=Anulowanie wniosku urlopowego -EmployeeLastname=Employee last name -EmployeeFirstname=Employee first name -TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed +EmployeeLastname=Nazwisko pracownika +EmployeeFirstname=Imię pracownika +TypeWasDisabledOrRemoved=Typ urlopu (id %s) zostało wyłączone lub usunięte ## Configuration du Module ## -LastUpdateCP=Latest automatic update of leaves allocation -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation +LastUpdateCP=Ostatnia automatyczna aktualizacja alokacji urlopów +MonthOfLastMonthlyUpdate=Miesiąc ostatniej automatycznej aktualizacji alokacji urlopów UpdateConfCPOK=Zaktualizowane. Module27130Name= Zarządzanie wnioskami urlopowymi Module27130Desc= Zarządzanie wnioskami urlopowymi @@ -99,6 +99,6 @@ HolidaysRefused=Zapytanie zaprzeczył HolidaysRefusedBody=Twoje zapytanie urlopu dla% s do% s została odrzucona z następującego powodu: HolidaysCanceled=Anulowane wniosku urlopowego HolidaysCanceledBody=Twój wniosek urlopowy od %s do %s został anulowany. -FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.
    0: Not followed by a counter. -NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter +FollowedByACounter=1: Ten typ urlopu musi być prześledzony przez licznik. Licznik jest zwiększany ręcznie lub automatycznie, a po zwolnieniu żądania urlopu, licznik jest zmniejszany.
    0: Nie śłedzone przez licznik. +NoLeaveWithCounterDefined=Nie ma żadnych zdefiniowanych typów urlopu które muszą być prześledzone przez licznik GoIntoDictionaryHolidayTypes=Idź do Home - Ustawienia - Słowniki - Rodzaj urlopów w celu stworzenia różnych typów urlopów. diff --git a/htdocs/langs/pl_PL/install.lang b/htdocs/langs/pl_PL/install.lang index 3c4d9236bf1..f249e8c148e 100644 --- a/htdocs/langs/pl_PL/install.lang +++ b/htdocs/langs/pl_PL/install.lang @@ -11,14 +11,14 @@ PHPSupportSessions=PHP obsługuje sesje. PHPSupportPOSTGETOk=PHP obsługuje zmienne POST i GET. PHPSupportPOSTGETKo=Możliwe, że PHP nie obsługuje zmiennych POST i/lub GET. Sprawdź parametr variables_order w php.ini. PHPSupportGD=PHP obsługuje graficzne funkcje GD. -PHPSupportCurl=This PHP support Curl. +PHPSupportCurl=To wsparcie PHP Curl. PHPSupportUTF8=Ta wersja PHP oferuje wsparcie funkcji UTF8. PHPMemoryOK=Maksymalna ilość pamięci sesji PHP ustawiona jest na %s. Powinno wystarczyć. PHPMemoryTooLow=Maksymalna ilość pamięci sesji PHP %s bajtów. To może nie wystarczyć. Zmień w php.ini parametr memory_limit na przynajmniej %s bajtów. Recheck=Potwierdź w celu dokładniejszego testu ErrorPHPDoesNotSupportSessions=Instalacja PHP nie obsługuje sesji. Taka funkcjonalność jest wymagana do działania Dolibarra. Sprawdź swoje ustawienia PHP. ErrorPHPDoesNotSupportGD=Twoja instalacji PHP nie obsługuje funkcji graficznych GD. wykresy nie będą dostępne. -ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl. +ErrorPHPDoesNotSupportCurl=Twoja instalacja PHP nie wspiera Curl. ErrorPHPDoesNotSupportUTF8=Twoja instalacji PHP nie obsługuje funkcji UTF8. Dolibarr może nie działać poprawnie. Rozwiązać ten problem przed instalacją Dolibarr'a. ErrorDirDoesNotExists=Katalog %s nie istnieje. ErrorGoBackAndCorrectParameters=Cofnij się i popraw złe parametry. @@ -53,10 +53,10 @@ AdminLogin=Login do administratora bazy danych PasswordAgain=Powtórz hasło AdminPassword=Hasło do bazy danych CreateDatabase=Utwórz bazę danych -CreateUser=Utwórz użytkownika +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Baza danych z dostępem na prawach superużytkownika CheckToCreateDatabase=Zaznacz jeśli baza danych nie istnieje i musi zostać utworzona.
    W przypadku takim na dole tej strony musisz podać użytkownika/hasło do konta superużytkownika. -CheckToCreateUser=Zaznacz jeśli użytkownik nie istnieje i musi zostać utworzony.
    W przypadku takim na dole tej strony musisz podać użytkownika/hasło do konta superużytkownika. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Login użytkownika mogącego tworzyć nowe bazy lub nowych użytkowników, wymagane jeśli baza danych oraz jej właściciel nie istnieją. KeepEmptyIfNoPassword=Zostaw puste jeśli użytkownik nie posiada hasła (unikaj takiej sytuacji) SaveConfigurationFile=Zapis wartości @@ -77,7 +77,7 @@ SetupEnd=Koniec ustawień SystemIsInstalled=Instalacja zakończona. SystemIsUpgraded=Dolibarr został zaktualizowany pomyślnie. YouNeedToPersonalizeSetup=Teraz należy ustawić Dolibarra tak by spełniał Twoje wymagania (wygląd, możliwości, ...). Kliknij w poniższy link by przejść do ustawień: -AdminLoginCreatedSuccessfuly=Dolibarr administrator login '%s' created successfully. +AdminLoginCreatedSuccessfuly=Login administratora Dolibarr '%s' utworzony pomyślnie. GoToDolibarr=Idź do Dolibarr'a GoToSetupArea=Przejdź do ustawień Dolibarra MigrationNotFinished=Wersja bazy danych nie jest w pełni aktualna. Musisz uruchomić proces aktualizacji ponownie. @@ -87,7 +87,7 @@ DirectoryRecommendation=Zalecane jest by umieścić ten katalog poza katalogiem LoginAlreadyExists=Już istnieje DolibarrAdminLogin=Użytkownik administracyjny Dolibarra AdminLoginAlreadyExists=Konto administracyjne Dolibarra '%s' już istnieje. Cofnij się jeśli chcesz utworzyć kolejne. -FailedToCreateAdminLogin=Failed to create Dolibarr administrator account. +FailedToCreateAdminLogin=Utworzenie konta administratora Dolibarr nie powiodło się. WarningRemoveInstallDir=Ostrzeżenie: ze względów bezpieczeństwa by zapobiec nieuprawnionemu użyciu po instalacji lub aktualizacji powinno się usunąć katalog install lub zmienić jego nazwę na install.lock. FunctionNotAvailableInThisPHP=Niedostępne w tej wersji PHP ChoosedMigrateScript=Wybierz skrypt migracyjny @@ -132,13 +132,13 @@ MigrationFinished=Migracja zakończona LastStepDesc=Ostatni krok: Zdefiniuj tutaj nazwę i hasło, które masz zamiar użyć do połączenia z oprogramowaniem. Zapamiętaj je, ponieważ jest to konto do administrowania wszystkimi innymi ustawieniami. ActivateModule=Aktywuj moduł %s ShowEditTechnicalParameters=Kliknij tutaj, aby pokazać / edytować zaawansowane parametry (tryb ekspert) -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process... +WarningUpgrade=Uwaga:\nUtworzyłeś najpierw kopię zapasową bazy danych?\nTo jest bardzo rekomendowane: dla przykładu, przez niektóre błędy w bazach danych systemu (np. mysql wersja 5.5.40/41/42/43), niektóre informacje lub tabele mogą zostać utracone podczas tego procesu, więc posiadanie kopii zapasowej bazy danych przed przystąpieniem do procesu migracji jest bardzo rekomendowane.\n\nKliknij OK aby zacząć proces migracji... ErrorDatabaseVersionForbiddenForMigration=Twoja wersja bazy danych to %s. Ma krytyczną lukę utraty danych jeśli się zmieni struktury na bazie danych, tak jak jest to wymagane podczas procesu migracji. Z tego powodu migracje nie zostaną dopuszczone dopóki nie ulepszysz bazy danych do wyższej wersji (lista znanych wersji z lukami: %s) KeepDefaultValuesWamp=Używasz kreatora instalacji, więc zaproponowane wartości są zoptymalizowane. Zmieniaj je tylko jeśli wiesz co robisz. KeepDefaultValuesDeb=Używasz kreatora instalacji Dolibarr z pakietu Linux (Ubutu, Debian, Fedora..), więc zaproponowane wartości są zoptymalizowane. Musisz stworzyć tylko hasło dla właściciela bazy danych. Inne parametry zmieniaj tylko jeśli wiesz co robisz. KeepDefaultValuesMamp=Używasz kreatora instalacji, więc zaproponowane wartości są zoptymalizowane. Zmieniaj je tylko jeśli wiesz co robisz. KeepDefaultValuesProxmox=Możesz skorzystać z kreatora konfiguracji Dolibarr z urządzeniem wirtualnym Proxmox, więc wartości zaproponowane tutaj są już zoptymalizowane. Zmieniaj je tylko jeśli wiesz co robisz. -UpgradeExternalModule=Run dedicated upgrade process of external modules +UpgradeExternalModule=Uruchom dedykowany proces uaktualniania modułów zewnętrznych ######### # upgrade @@ -148,7 +148,7 @@ MigrationSupplierOrder=Migracja danych zamówień dostawców MigrationProposal=Migracja danych dla ofert handlowych MigrationInvoice=Migracja dla danych faktur odbiorców MigrationContract=Migracja danych kontraktów -MigrationSuccessfullUpdate=Upgrade successfull +MigrationSuccessfullUpdate=Aktualizacja zakoczona pomyślnie MigrationUpdateFailed=Aktualizacja nie powiodła się MigrationRelationshipTables=Migracja dla danych propozycji handlowych (%s) MigrationPaymentsUpdate=Korekta danych płatności @@ -162,7 +162,7 @@ MigrationContractsLineCreation=Utwórz linię kontraktową dla kontraktu %s MigrationContractsNothingToUpdate=Nic więcej do zrobienia MigrationContractsFieldDontExist=Pole fk_facture już nie istnieje. Nic więcej do zrobienia. MigrationContractsEmptyDatesUpdate=Korekta pustych dat kontraktów -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully +MigrationContractsEmptyDatesUpdateSuccess=Poprawa pustej daty kontraktu przeprowadzona pomyślnie MigrationContractsEmptyDatesNothingToUpdate=Brak pustych dat kontraktów do korekty MigrationContractsEmptyCreationDatesNothingToUpdate=Brak dat utworzenia kontraktów do korekty MigrationContractsInvalidDatesUpdate=Nieprawidłowa wartość przy korekcie daty kontraktu @@ -170,13 +170,13 @@ MigrationContractsInvalidDateFix=Korekta kontraktu %s (Data kontraktu=%s, Minima MigrationContractsInvalidDatesNumber=%s kontraktów zmodyfikowano MigrationContractsInvalidDatesNothingToUpdate=Brak dat z nieprawidłową wartością do korekty MigrationContractsIncoherentCreationDateUpdate=Nieprawidłowa wartość daty początkowej kontraktu do korekty -MigrationContractsIncoherentCreationDateUpdateSuccess=Bad value contract creation date correction done successfully +MigrationContractsIncoherentCreationDateUpdateSuccess=Poprawa złej wartości w tworzeniu kontraktu przeprowadzona pomyślnie MigrationContractsIncoherentCreationDateNothingToUpdate=Brak nieprawidłowych wartości początkowej daty kontraktu do korekty MigrationReopeningContracts=Otwarte kontrakty zamknięte z przyczyny błędu MigrationReopenThisContract=Ponownie otwórz kontrakt %s MigrationReopenedContractsNumber=%s kontraktów zmodyfikowanych MigrationReopeningContractsNothingToUpdate=Brak zamkniętych kontraktów do otwarcia -MigrationBankTransfertsUpdate=Update links between bank entry and a bank transfer +MigrationBankTransfertsUpdate=Zaktualizuj linki pomiędzy wpisem banku a przelewem bankowym MigrationBankTransfertsNothingToUpdate=Wszystkie połączenia są aktualne MigrationShipmentOrderMatching=Aktualizacja rachunków za wysyłki MigrationDeliveryOrderMatching=Aktualizacja rachunków za dostawy @@ -191,9 +191,9 @@ MigrationActioncommElement=Aktualizacja danych na temat działań MigrationPaymentMode=Migracji danych w trybie płatności MigrationCategorieAssociation=Migracja kategorii MigrationEvents=Przenieś wydarzenie by dodać nowego właściciela do przypisanej tabeli. -MigrationRemiseEntity=Update entity field value of llx_societe_remise -MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except +MigrationRemiseEntity=Zaktualizuj wartość pola podmiotu llx_societe_remise +MigrationRemiseExceptEntity=Zaktualizuj wartość pola podmiotu llx_societe_remise_except MigrationReloadModule=Odśwież moduł %s ShowNotAvailableOptions=Pokaż niedostępne opcje. HideNotAvailableOptions=Ukryj niedostępne opcje. -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can click here, but application or some features may not work correctly until fixed. +ErrorFoundDuringMigration=Wystąpiły błędy podczas procesu migracji więc następny krok jest nie dostępny. Żeby zignorować błędy, możesz kliknąć tutaj, ale aplikacja bądź jakieś jej funkcje mogą działać niepoprawnie do póki nie zostaną naprawione. diff --git a/htdocs/langs/pl_PL/interventions.lang b/htdocs/langs/pl_PL/interventions.lang index 8bff320d9d6..0584cd5c10f 100644 --- a/htdocs/langs/pl_PL/interventions.lang +++ b/htdocs/langs/pl_PL/interventions.lang @@ -6,7 +6,7 @@ NewIntervention=Nowa interwencja AddIntervention=Tworzenie interwencji ListOfInterventions=Wykaz interwencji ActionsOnFicheInter=Działania w zakresie interwencji -LastInterventions=Latest %s interventions +LastInterventions=Ostatnie %s interwencje AllInterventions=Wszystkie interwencje CreateDraftIntervention=Tworzenie projektu InterventionContact=Interwencja kontakt @@ -14,19 +14,19 @@ DeleteIntervention=Usuń interwencję ValidateIntervention=Zatwierdź interwencję ModifyIntervention=Modyfikuj interwencję DeleteInterventionLine=Usuń linię interwencji -CloneIntervention=Clone intervention -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? +CloneIntervention=Zduplikuj interwencję +ConfirmDeleteIntervention=Jesteś pewien, że chcesz usunąć tę interwencję? +ConfirmValidateIntervention=Jesteś pewien, że chcesz potwierdzić tę interwencję pod nazwą %s? +ConfirmModifyIntervention=Jesteś pewien, że chcesz zmodyfikować tę interwencję? +ConfirmDeleteInterventionLine=Jesteś pewien, że chcesz usunąć tę linię interwencji? +ConfirmCloneIntervention=Jesteś pewien, że chcesz zduplikować tę interwencję? NameAndSignatureOfInternalContact=Nazwisko i podpis interwencji: NameAndSignatureOfExternalContact=Nazwisko i podpis klienta: DocumentModelStandard=Standardowy model dokumentu dla interwencji InterventionCardsAndInterventionLines=Interwencje i kierunki interwencji InterventionClassifyBilled=Sklasyfikować "Rozlicz" InterventionClassifyUnBilled=Sklasyfikować "Unbilled" -InterventionClassifyDone=Classify "Done" +InterventionClassifyDone=Sklasyfikuj "Gotowe" StatusInterInvoiced=Zapowiadane ShowIntervention=Pokaż interwencję SendInterventionRef=Złożenie interwencyjnego% s @@ -40,17 +40,17 @@ InterventionSentByEMail=Interwencja %s wysłana emailem InterventionDeletedInDolibarr=Interwencja %s usunięta InterventionsArea=Obszar interwencji DraftFichinter=Szkic interwencji -LastModifiedInterventions=Latest %s modified interventions -FichinterToProcess=Interventions to process +LastModifiedInterventions=Ostatnie %s zmodyfikowane interwencje +FichinterToProcess=Interwencje do przetworzenia ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=W ślad za kontakt z klientem # Modele numérotation -PrintProductsOnFichinter=Print also lines of type "product" (not only services) on intervention card +PrintProductsOnFichinter=Wydrukuj również linie typu "produkt" (nie tylko usługi) na karcie interwencji PrintProductsOnFichinterDetails=Interwencje generowane z zamówień -UseServicesDurationOnFichinter=Use services duration for interventions generated from orders -InterventionStatistics=Statistics of interventions -NbOfinterventions=Nb of intervention cards -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation) +UseServicesDurationOnFichinter=Użyj czasu trwania usług dla interwencji generowanych przez zamówienia +InterventionStatistics=Statystyki interwencji +NbOfinterventions=Liczba kart interwencji +NumberOfInterventionsByMonth=Liczba kart interwencji w miesiącu (data potwierdzenia) ##### Exports ##### InterId=ID interwencji InterRef=Numer referencyjny interwencji diff --git a/htdocs/langs/pl_PL/ldap.lang b/htdocs/langs/pl_PL/ldap.lang index 3d91e15b691..b146f60c4b1 100644 --- a/htdocs/langs/pl_PL/ldap.lang +++ b/htdocs/langs/pl_PL/ldap.lang @@ -14,7 +14,7 @@ LDAPFieldStatus=Stan LDAPFieldFirstSubscriptionDate=Pierwsze subskrypcji daty LDAPFieldFirstSubscriptionAmount=Pierwsza subskrypcja kwoty LDAPFieldLastSubscriptionDate=Data ostatniej subskrypcji -LDAPFieldLastSubscriptionAmount=Latest subscription amount +LDAPFieldLastSubscriptionAmount=Ostatnia ilość subskrypcji LDAPFieldSkype=ID Skype LDAPFieldSkypeExample=Przykład: nazwaSkype UserSynchronized=Użytkownik zsynchronizowany diff --git a/htdocs/langs/pl_PL/main.lang b/htdocs/langs/pl_PL/main.lang index 59ab6f9a956..9cd98d6e2cd 100644 --- a/htdocs/langs/pl_PL/main.lang +++ b/htdocs/langs/pl_PL/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=Plik został wygenerowany pomyślnie FileSaved=The file was successfully saved FileUploaded=Plik został pomyślnie przesłany -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=Wybrano pliku do zamontowaia, ale jeszcze nie wysłano. W tym celu wybierz opcję "dołącz plik". NbOfEntries=Liczba wejść GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parametr Parameters=Parametry Value=Wartość PersonalValue=Osobiste wartości +NewObject=New %s NewValue=Nowa wartość CurrentValue=Aktualna wartość Code=Kod @@ -394,7 +396,7 @@ ActionRunningNotStarted=By rozpocząć ActionRunningShort=In progress ActionDoneShort=Zakończone ActionUncomplete=Niekompletne -CompanyFoundation=Company/Organisation +CompanyFoundation=Firma/Organizacja ContactsForCompany=Kontakty dla tego zamówienia ContactsAddressesForCompany=Kontakt/adres dla tej części/zamówienia/ AddressesForCompany=Adressy dla części trzeciej @@ -441,6 +443,7 @@ Reporting=Raportowanie Reportings=Raportowanie Draft=Szkic Drafts=Robocze +StatusInterInvoiced= Validated=Zatwierdzona Opened=Otwarte New=Nowy @@ -727,6 +730,7 @@ SetBankAccount=Przypisz konto bankowe AccountCurrency=Waluta konta ViewPrivateNote=Wyświetl notatki XMoreLines=%s lini(e) ukryte +ShowMoreLines=Show more lines PublicUrl=Publiczny URL AddBox=Dodaj skrzynke SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Pokaż wpisy na koncie bankowym GoIntoSetupToChangeLogo=Wejdź w Strona główna - Ustawienia- Firma by zmienić logo lub przejdź do Strona główna- Ustawienia - Wyświetl do ukrycia. Deny=Zabraniać Denied=Zabroniony +ListOf=List of %s ListOfTemplates=Lista szablonów Gender=Płeć Genderman=Mężczyzna diff --git a/htdocs/langs/pl_PL/margins.lang b/htdocs/langs/pl_PL/margins.lang index b8e47920189..64b350fbcdf 100644 --- a/htdocs/langs/pl_PL/margins.lang +++ b/htdocs/langs/pl_PL/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Stawka musi być wartością liczbową markRateShouldBeLesserThan100=Stopa znak powinien być niższy niż 100 ShowMarginInfos=Pokaż informacje o marżę CheckMargins=Szczegóły marż -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties 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=Raport marży na użytkownika wykorzystuje powiązanie między kontrahentami a przedstawicielami handlowymi w celu obliczenia marży każdego przedstawiciela handlowego. Ze względu na to, że niektórzy kontrahenci mogą nie posiadać przedstawiciela handlowego, a niektórzy mogą być powiązani z kilkoma, niektóre kwoty mogą nie zostać uwzględnione w tym raporcie (jeśli nie ma przedstawiciela sprzedaży), a niektóre mogą pojawić się w różnych wierszach (dla każdego przedstawiciela sprzedaży). diff --git a/htdocs/langs/pl_PL/members.lang b/htdocs/langs/pl_PL/members.lang index c0829646949..1c3e96f2e5e 100644 --- a/htdocs/langs/pl_PL/members.lang +++ b/htdocs/langs/pl_PL/members.lang @@ -138,7 +138,7 @@ DocForOneMemberCards=Generowanie wizytówki dla danego użytkownika (Format wyj DocForLabels=Generowanie arkuszy adres (Format wyjściowy rzeczywiście setup: %s) SubscriptionPayment=Zaplanowana płatność LastSubscriptionDate=Data ostatniej subskrypcji -LastSubscriptionAmount=Latest subscription amount +LastSubscriptionAmount=Ostatnia ilość subskrypcji MembersStatisticsByCountries=Użytkownicy statystyki według kraju MembersStatisticsByState=Użytkownicy statystyki na State / Province MembersStatisticsByTown=Użytkownicy statystyki na miasto diff --git a/htdocs/langs/pl_PL/modulebuilder.lang b/htdocs/langs/pl_PL/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/pl_PL/modulebuilder.lang +++ b/htdocs/langs/pl_PL/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/pl_PL/multicurrency.lang b/htdocs/langs/pl_PL/multicurrency.lang index e8112c3d680..b3ccbb1110c 100644 --- a/htdocs/langs/pl_PL/multicurrency.lang +++ b/htdocs/langs/pl_PL/multicurrency.lang @@ -4,7 +4,8 @@ ErrorAddRateFail=Error in added rate ErrorAddCurrencyFail=Error in added currency ErrorDeleteCurrencyFail=Error delete fail multicurrency_syncronize_error=Synchronisation error: %s -multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate) CurrencyLayerAccount=CurrencyLayer API CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
    Get your API key
    If you use a free account you can't change the currency source (USD by default)
    But if your main currency isn't USD you can use the alternate currency source to force you main currency

    You are limited at 1000 synchronizations per month multicurrency_appId=API key diff --git a/htdocs/langs/pl_PL/opensurvey.lang b/htdocs/langs/pl_PL/opensurvey.lang index 1fc27d98057..f69a94c9ed0 100644 --- a/htdocs/langs/pl_PL/opensurvey.lang +++ b/htdocs/langs/pl_PL/opensurvey.lang @@ -55,5 +55,5 @@ ErrorOpenSurveyFillFirstSection=Nie zapełnione pierwszą część tworzenia ank ErrorOpenSurveyOneChoice=Wprowadź co najmniej jeden wybór ErrorInsertingComment=Wystąpił błąd podczas wstawiania komentarz MoreChoices=Wprowadź więcej możliwości dla głosujących -SurveyExpiredInfo=The poll has been closed or voting delay has expired. +SurveyExpiredInfo=Ankieta została zamknięta lub upłynął termin ważności oddawania głosów. EmailSomeoneVoted=% S napełnił linię. Możesz znaleźć ankietę na link:% s diff --git a/htdocs/langs/pl_PL/orders.lang b/htdocs/langs/pl_PL/orders.lang index 6ce53415cc6..7fcc1c012c6 100644 --- a/htdocs/langs/pl_PL/orders.lang +++ b/htdocs/langs/pl_PL/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Obszar zamówień od dostawców OrderCard=Karta zamówienia OrderId=ID zamówienia Order=Zamówienie +PdfOrderTitle=Zamówienie Orders=Zamówienia OrderLine=Pozycja w zamówieniu OrderDate=Data zamówienia diff --git a/htdocs/langs/pl_PL/other.lang b/htdocs/langs/pl_PL/other.lang index 21250e9b65e..831f236dfce 100644 --- a/htdocs/langs/pl_PL/other.lang +++ b/htdocs/langs/pl_PL/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/pl_PL/printing.lang b/htdocs/langs/pl_PL/printing.lang index 76dd6a3581a..f4db6781638 100644 --- a/htdocs/langs/pl_PL/printing.lang +++ b/htdocs/langs/pl_PL/printing.lang @@ -46,6 +46,6 @@ IPP_Media=Nośnik drukarki IPP_Supported=Typ nośnika DirectPrintingJobsDesc=Ta strona pokazuje listę zadań wydruku dla dostępnych drukarek. GoogleAuthNotConfigured=Ustawienia Google OAuth nie skończone. Włącz moduł OAuth i ustawić Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. +GoogleAuthConfigured=Google OAuth credentials zostały znalezione w ustawieniach modułu OAuth. PrintingDriverDescprintgcp=Zmienne konfiguracyjne dla sterownika drukowania Google Cloud Print. PrintTestDescprintgcp=Lista drukarek dla Google Cloud Print. diff --git a/htdocs/langs/pl_PL/propal.lang b/htdocs/langs/pl_PL/propal.lang index 68c5625c49d..52ca30b6b98 100644 --- a/htdocs/langs/pl_PL/propal.lang +++ b/htdocs/langs/pl_PL/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Szkic ofert handlowych ProposalsOpened=Otwarte oferty handlowe Prop=Oferty handlowe CommercialProposal=Oferta handlowa +PdfCommercialProposalTitle=Oferta handlowa ProposalCard=Karta oferty NewProp=Nowa oferta handlowa NewPropal=Nowa oferta diff --git a/htdocs/langs/pl_PL/salaries.lang b/htdocs/langs/pl_PL/salaries.lang index bc93a2efe44..524b72b172d 100644 --- a/htdocs/langs/pl_PL/salaries.lang +++ b/htdocs/langs/pl_PL/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Wypłata Salaries=Wypłaty diff --git a/htdocs/langs/pl_PL/website.lang b/htdocs/langs/pl_PL/website.lang index 45c4d486172..2acb883afdf 100644 --- a/htdocs/langs/pl_PL/website.lang +++ b/htdocs/langs/pl_PL/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Stwórz tyle stron ile potrzebujesz. Następnie przejść do me DeleteWebsite=Skasuj stronę ConfirmDeleteWebsite=Jesteś pewny że chcesz skasować stronę? Całą jej zawartość zostanie usunięta. WEBSITE_PAGENAME=Nazwa strony +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL zewnętrznego pliku CSS WEBSITE_CSS_INLINE=Zawartość CSS -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Biblioteka mediów -EditCss=Edytuj Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edytuj Menu EditPageMeta=Edytuj koniec EditPageContent=Edytuj zawartość Website=Strona WWW -Webpage=Strona internetowa -AddPage=Dodaj stronę +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Podgląd twojej strony %s nie jest jeszcze dostępny. Musisz najpierw dodać stronę. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Strona %s portalu %s usunięta -PageAdded=Strona '%s' dodana +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=Zobacz stronę w nowej zakładce ViewPageInNewTab=Zobacz stronę w nowej zakładce SetAsHomePage=Ustaw jako stronę domową @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/pl_PL/workflow.lang b/htdocs/langs/pl_PL/workflow.lang index 118ebdd0068..7a6292ab454 100644 --- a/htdocs/langs/pl_PL/workflow.lang +++ b/htdocs/langs/pl_PL/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Konfiguracja modułu przepływu pracy WorkflowDesc=Moduł ten jest przeznaczony do zmiany zachowania automatycznych działań na język aplikacji. Domyślnie pracy jest otwarty (można robić rzeczy w określonej kolejności). Możesz włączyć automatyczne czynności, które są zainteresowane. ThereIsNoWorkflowToModify=Nie ma zmiany workflow dostępne z aktywnych modułów. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatycznie twórz zamówienie klienta po podpisaniu oferty handlowej -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatycznie twórz fakturę dla klienta po podpisaniu oferty handlowej +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatycznie stwórz fakturę dla klienta po zatwierdzeniu kontraktu -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatycznie twórz fakturę dla klienta po zamknięciu zamówienia od klienta -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Klasyfikowania związany propozycję źródłowego zapowiadane gdy zamówienie klienta jest ustawiony na płatne -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Klasyfikowania związane Źródło (-a), gdy klienta do faktury klienta naliczana jest ustawiony wypłacane -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Klasyfikowania związany zamówienie klienta źródłowego (s) do grubodzioby, gdy faktura klient jest weryfikowany -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/pt_BR/accountancy.lang b/htdocs/langs/pt_BR/accountancy.lang index a4765b0f22d..9db6a42667e 100644 --- a/htdocs/langs/pt_BR/accountancy.lang +++ b/htdocs/langs/pt_BR/accountancy.lang @@ -39,7 +39,6 @@ EndProcessing=Processo foi finalizado. NoAccountSelected=Nenhuma conta da Contabilidade selecionada VentilatedinAccount=Vinculado a conta contábil com sucesso NotVentilatedinAccount=Não vinculado a conta contábil -XLineSuccessfullyBinded=%s produtos/serviços vinculados com sucesso a uma conta da Contabilidade XLineFailedToBeBinded=%s produtos/serviços não estão vinculados a qualquer conta da Contabilidade ACCOUNTING_LIMIT_LIST_VENTILATION=Numero de elementos para vincular, mostrado por página (máximo recomendado: 50) ACCOUNTING_LIST_SORT_VENTILATION_TODO=Iniciar a página "Vinculações a fazer" ordenando pelos elementos mais recentes @@ -82,7 +81,6 @@ DescVentilDoneSupplier=Consulte aqui a lista das linhas de faturas de fornecedor ValidateHistory=Vincular Automaticamente AutomaticBindingDone=Vinculação automática realizada ErrorAccountancyCodeIsAlreadyUse=Erro, você não pode excluir esta conta contábil, pois ela esta em uso -MvtNotCorrectlyBalanced=Movimento sem o equilíbrio correto. Crédito = %s. Débito = %s ListOfProductsWithoutAccountingAccount=Lista de produtos não vinculados a qualquer conta da Contabilidade ChangeBinding=Alterar a vinculação AccountingJournalType2=De vendas diff --git a/htdocs/langs/pt_BR/admin.lang b/htdocs/langs/pt_BR/admin.lang index 20a0659c631..ebb30ae8c96 100644 --- a/htdocs/langs/pt_BR/admin.lang +++ b/htdocs/langs/pt_BR/admin.lang @@ -107,7 +107,6 @@ SystemToolsArea=Área de Ferramentas do sistema SystemToolsAreaDesc=Essa área dispõe de funções administrativas. Use esse menu para escolher as funções que você está procurando. Purge=Purgar (apagar tudo) PurgeAreaDesc=Esta página te permite deletar todos os arquivos gerador e armazenados pelo Dolibarr (arquivos temporários ou todos os arquivos no diretório %s). Este recusro é fornecido como uma solução alteranativa aos usuários cujo a instalação esteja hospedado num servidor que impeça o acesso as pastas onde os arquivos gerados pelo Dolibarr são armazenados, para excluí-los. -PurgeDeleteLogFile=Excluir arquivo de log %s definido pelo módulo Syslog (sem risco de perca de dados) PurgeDeleteTemporaryFiles=Excluir todos os arquivos temporários (sem risco de perca de dados) PurgeDeleteTemporaryFilesShort=Excluir arquivos temporários PurgeDeleteAllFilesInDocumentsDir=Eliminar todos os arquivos do diretório %s. Arquivos temporários, backups, arquivos anexados (terceiros, faturas, etc.) e arquivos anexados dentro dos módulos ECM serão deletados. @@ -230,7 +229,6 @@ SetupIsReadyForUse=A implantação do módulo está concluída. No entanto, voc NotExistsDirect=O diretório root alternativo não está definido para um diretório existente.
    InfDirAlt=Desde a versão 3, é possível definir um diretório-root alternativo. Isso permite que você armazene, em um diretório dedicado, plug-ins e modelos personalizados.
    Basta criar um diretório na raiz de Dolibarr (por exemplo:custom).
    InfDirExample=
    Em seguida, declará-lo no arquivo conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    Se essas linhas forem comentadas com "#", para habilitá-las, basta descomentar removendo o caractere "#". -YouCanSubmitFile=Selecione o módulo: CallUpdatePage=Vá para a página que atualiza a estrutura de banco de dados e os dados:% s. UpdateServerOffline=Atualização de servidor off-line GenericMaskCodes=Você pode criar suas próprias mascaras para gerar as referências automáticas.
    Como exemplo inicial a mascara 'CLI{000}' vai gerar a ref. CLI001,CLI002,... as mascaras são:
    Mascara de contagem {0000}, essa mascara vai contar para cada nova ref. ex:0001,0002,0003,...
    Mascara de número inicial ex:{000+100} -> 101,102,103,... ex2:{0000+123} -> 0124,0125,...
    Mascara da data {dd} dias (01 a 31), {mm} mês (01 a 12), {yy} {yyyy} para anos ex:{dd}/{mm}/{yy} -> 28/07/15
    @@ -588,8 +586,6 @@ Permission401=Ler Descontos Permission402=Criar/Modificar Descontos Permission403=Validar Descontos Permission404=Excluir Descontos -Permission510=Leia Salários -Permission512=Criar / modificar salários Permission514=Excluir salários Permission517=Salários de exportação Permission520=Leia Empréstimos @@ -841,7 +837,6 @@ RestoreDesc2=* Restaurar o arquivo de backup (zipado) no diretório dos document RestoreDesc3=* Restaurar os dados de backup do arquivo de despejo, para dentro do banco de dados da nova instalação do Dolibarr ou para dentro da atual instalação. Aviso, uma vez a restauração completa, você deve usar o login/senha, que existia quando o backup foi feito, para conectar denovo. Para restaurar o backup do banco de dados para dentro da atual instalação, você pode seguir esse assistente. RestoreMySQL=Importar MySQL ForcedToByAModule=Essa Regra é forçada para %s by um módulo ativado -PreviousDumpFiles=Disponível banco de dados de backup dos arquivos de despejo RunningUpdateProcessMayBeRequired=Rodando o processo de upgrade parece ser requerido (Versão dos programas %s é diferente da versão do banco de dados %s) YouMustRunCommandFromCommandLineAfterLoginToUser=Você deve rodar esse comando na linha de comando (CLI) depois de logar no shell com o usuário %s ou você deve adicionar a opção -W no final da linha de comando para fornecer a senha %s. YourPHPDoesNotHaveSSLSupport=Função SSL functions não está disponível no seu PHP diff --git a/htdocs/langs/pt_BR/banks.lang b/htdocs/langs/pt_BR/banks.lang index 99cc33f8ca1..5675ffd28f2 100644 --- a/htdocs/langs/pt_BR/banks.lang +++ b/htdocs/langs/pt_BR/banks.lang @@ -121,7 +121,3 @@ CheckRejectedAndInvoicesReopened=Cheque devolvido e faturas reabertas BankAccountModelModule=Temas de documentos para as contas bancárias. DocumentModelSepaMandate=Tema do mandato SEPA. Útil somente para os países europeus na Comunidade Europeia. DocumentModelBan=Tema para imprimir a página com a informação BAN. -NewVariousPayment=Novo pagamento variado -VariousPayment=Vários pagamentos -VariousPayments=Vários pagamentos -ShowVariousPayment=Mostrar vários pagamentos diff --git a/htdocs/langs/pt_BR/companies.lang b/htdocs/langs/pt_BR/companies.lang index a1f7459ea0c..43bedf4b3a0 100644 --- a/htdocs/langs/pt_BR/companies.lang +++ b/htdocs/langs/pt_BR/companies.lang @@ -230,5 +230,6 @@ MergeOriginThirdparty=Duplicar terceiros (terceiros que deseja excluir) MergeThirdparties=Mesclar terceiros ThirdpartiesMergeSuccess=Terceiros foram mesclados SaleRepresentativeLogin=Login para o representante de vendas +SaleRepresentativeLastname=Sobrenome do representante de vendas ErrorThirdpartiesMerge=Houve um erro ao excluir os terceiros. Por favor, verifique o log. As alterações foram revertidas. NewCustomerSupplierCodeProposed=Código sugerido para o novo cliente ou fornecedor está duplicado diff --git a/htdocs/langs/pt_BR/install.lang b/htdocs/langs/pt_BR/install.lang index cda864bb22a..f20f11d8118 100644 --- a/htdocs/langs/pt_BR/install.lang +++ b/htdocs/langs/pt_BR/install.lang @@ -46,7 +46,6 @@ AdminPassword=Password para o administrador da base de dados Dolibarr. Deixar em CreateDatabase=Criar uma base de dados DatabaseSuperUserAccess=Base de dados - Acesso Superuser CheckToCreateDatabase=Verifique se o banco de dados não existe e deve ser criado.
    Neste caso, você deve preencher o login / senha para a conta de superuser, na parte inferior desta página. -CheckToCreateUser=Marque esta opção se o dono do banco de dados não existe e deve ser criado.
    Neste caso, você deve preencher o login / senha para o superusuário em conta, na parte inferior desta página. DatabaseRootLoginDescription=Login do usuário que possui permissão para criar novas bases de dados ou de novos usuários em banco de dados, inútil se o seu banco de dados e seu banco de dados já existe login (como quando você está hospedado por um provedor de hospedagem da web). KeepEmptyIfNoPassword=Deixar em branco se o usuário não tiver password SaveConfigurationFile=Gravar configuração diff --git a/htdocs/langs/pt_BR/website.lang b/htdocs/langs/pt_BR/website.lang index 7d24c29d493..ba589121f3b 100644 --- a/htdocs/langs/pt_BR/website.lang +++ b/htdocs/langs/pt_BR/website.lang @@ -6,12 +6,9 @@ WEBSITE_PAGENAME=Nome da Página/Apelido WEBSITE_CSS_URL=URL do arquivo CSS externo. WEBSITE_CSS_INLINE=Conteúdo CSS MediaFiles=Biblioteca de mídias -EditCss=Editar Estilos/CSS EditPageMeta=Editar Meta Website=Web Site -Webpage=Página na web PreviewOfSiteNotYetAvailable=A Pré-visualização do seu website %s ainda não está disponível. Primeiro você deverá adicionar uma página. -PageDeleted=Página '%s' do website %s foi deletada ViewSiteInNewTab=Visualizar site numa nova aba ViewPageInNewTab=Visualizar página numa nova aba SetAsHomePage=Definir com Página Inicial diff --git a/htdocs/langs/pt_BR/workflow.lang b/htdocs/langs/pt_BR/workflow.lang index 6082a00813b..539d2368b49 100644 --- a/htdocs/langs/pt_BR/workflow.lang +++ b/htdocs/langs/pt_BR/workflow.lang @@ -1,11 +1,4 @@ # Dolibarr language file - Source file is en_US - workflow WorkflowDesc=Este módulo é concebido para modificar o comportamento das ações automáticas para aplicação. Por padrão, o fluxo de trabalho está aberto (você pode fazer as coisas na ordem que você quiser). Você pode ativar as ações automáticas que você está interessado. ThereIsNoWorkflowToModify=Não há alterações do fluxo de trabalho disponíveis com os módulos ativados. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Criar automaticamente uma ordem de cliente depois de uma proposta comercial é assinado -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Criar automaticamente uma fatura de cliente depois que uma proposta comercial é assinada descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Criar automaticamente uma fatura de cliente depois que um contrato é validado -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Criar automaticamente uma fatura de cliente depois que uma ordem do cliente é fechada -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classificar proposta fonte ligada ao bico quando a ordem do cliente é definido como pago -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classifique os pedido do cliente vinculado as fonte(s) das faturas quando a fatura do cliente ainda não foi paga -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classifique os pedidos do cliente vinculado as fonte(s) das faturas quando a fatura do cliente for paga. -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classificar proposta fonte ligada a construir quando fatura do cliente é validado diff --git a/htdocs/langs/pt_PT/accountancy.lang b/htdocs/langs/pt_PT/accountancy.lang index 6c15becac1f..8e7bc280e36 100644 --- a/htdocs/langs/pt_PT/accountancy.lang +++ b/htdocs/langs/pt_PT/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Visão geral da quantidade de linhas já vinculadas OtherInfo=Outra informação DeleteCptCategory=Remover conta contabilistica do grupo ConfirmDeleteCptCategory=Tem a certeza que deseja remover esta conta contabilística deste grupo? -AlreadyInGeneralLedger=Already journalized in ledgers +JournalizationInLedgerStatus=Status of journalization +AlreadyInGeneralLedger=Já foi registado nos diários contabilísticos +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Área de contabilidade AccountancyAreaDescIntro=O uso do módulo de contabilidade é feito em várias etapas: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=PASSO %s: Defina a conta contabilística para o AccountancyAreaDescSal=PASSO %s: Defina a conta contabilística para o pagamento de salários. Para tal pode usar a entrada do menu %s. AccountancyAreaDescContrib=PASSO %s: Defina a conta contabilística para despesas especiais (outros impostos). Para tal pode usar a entrada do menu %s. AccountancyAreaDescDonation=PASSO %s: Defina a conta contabilística para donativos. Para tal pode usar a entrada do menu %s. -AccountancyAreaDescMisc=PASSO %s: Defina a conta contabilística para transações diversas. Para tal pode usar a entrada %s do menu. +AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. AccountancyAreaDescLoan=PASSO %s: Defina a conta contabilística para empréstimos. Para tal pode usar a entrada do menu %s. AccountancyAreaDescBank=PASSO %s: Defina a conta contabilística para cada conta bancária e financeira. Para tal vá à ficha de cada conta bancária ou financeira. Comece na página %s. AccountancyAreaDescProd=PASSO %s: Defina a contas contabilística para os seus produtos. Para tal pode usar a entrada %s do menu. @@ -79,11 +86,11 @@ SuppliersVentilation=Fornecedor de ligação factura ExpenseReportsVentilation=Vinculação do relatório de despesas CreateMvts=Criar nova transação UpdateMvts=Modificação de uma transação -ValidTransaction=Validate transaction +ValidTransaction=Validar transação WriteBookKeeping=Registar transações no Livro Razão Bookkeeping=Livro Razão AccountBalance=Saldo da conta - +ObjectsRef=Source object ref CAHTF=Total de compras em fornecedores sem impostos TotalExpenseReport=Relatório da despesa total InvoiceLines=Linhas de facturas a vincular @@ -103,7 +110,7 @@ LineOfExpenseReport=Linha de relatório de despesas NoAccountSelected=Nenhuma conta contabilística selecionada VentilatedinAccount=Vinculado com sucesso a conta de contabilística NotVentilatedinAccount=Não vinculado à conta contabilística -XLineSuccessfullyBinded=%s produtos/serviços vinculados com sucesso a uma conta contabilística +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s produtos/serviços não foram vinculados a uma conta contabilística ACCOUNTING_LIMIT_LIST_VENTILATION=Número de elementos para vincular, mostrado por página (máximo recomendado: 50) @@ -143,7 +150,7 @@ NumPiece=Número da peça TransactionNumShort=Núm. de transação AccountingCategory=Grupos de contas contabilísticas GroupByAccountAccounting=Agrupar por conta contabilística -ByAccounts=By accounts +ByAccounts=Por contas NotMatch=Não configurado DeleteMvt=Eliminar as linhas do Livro Razão DelYear=Ano a apagar @@ -154,7 +161,7 @@ DelBookKeeping=Eliminar entrada do Livro Razão FinanceJournal=Diário financeiro ExpenseReportsJournal=Diário de relatórios de despesas DescFinanceJournal=Diário financeiro incluindo todos os tipos de pagamentos por conta bancária -DescJournalOnlyBindedVisible=Esta é uma visão de registos que estão vinculados a um conta de contabilidade de produtos/serviços e pode ser registada no Livro Razão. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Conta para efeitos de IVA não definido ThirdpartyAccountNotDefined=Conta para terceiros não definido ProductAccountNotDefined=Conta para o produto não definido @@ -170,6 +177,8 @@ AddCompteFromBK=Adicionar contas contabilisticas ao grupo ReportThirdParty=Lista de contas de terceiros DescThirdPartyReport=Consulte aqui a lista de clientes e fornecedores e as suas contas contabilísticas ListAccounts=Lista de contas contabilísticas +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Classe de conta Pcgsubtype=Sub-classe de conta @@ -194,7 +203,7 @@ ValidateHistory=Vincular automaticamente AutomaticBindingDone=Vinculação automática efetuada ErrorAccountancyCodeIsAlreadyUse=Erro, não pode apagar esta conta contabilística porque está a ser utilizada -MvtNotCorrectlyBalanced=O movimento não foi balanceado corretamente. Crédito = %s. Débito = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Cartão de vinculação GeneralLedgerIsWritten=As transações são escritas no Livro Razão GeneralLedgerSomeRecordWasNotRecorded=Algumas das transações não puderam ser gravadas. Se não existir outra mensagem de erro, então é provável que as transações já tenham sido gravadas. @@ -210,20 +219,17 @@ AccountingJournals=Diários contabilisticos AccountingJournal=Diário contabilistico NewAccountingJournal=Novo diário contabilistico ShowAccoutingJournal=Mostrar diário contabilistico -Code=Código Nature=Natureza AccountingJournalType1=Várias operações AccountingJournalType2=Vendas AccountingJournalType3=Compras AccountingJournalType4=Banco -AccountingJournalType5=Expenses report +AccountingJournalType5=Relatório de despesas AccountingJournalType9=Contém novo ErrorAccountingJournalIsAlreadyUse=Este diário já está a ser utilizado ## Export -Exports=Exportados -Export=Exportar -ExportDraftJournal=Export draft journal +ExportDraftJournal=Exportar o diário rascunho Modelcsv=Modelo de exportação OptionsDeactivatedForThisExportModel=Para este modelo de exportação, as opções estão desativadas Selectmodelcsv=Selecione um modelo de exportação diff --git a/htdocs/langs/pt_PT/admin.lang b/htdocs/langs/pt_PT/admin.lang index 94cf0df051f..c711a6cb4d7 100644 --- a/htdocs/langs/pt_PT/admin.lang +++ b/htdocs/langs/pt_PT/admin.lang @@ -10,11 +10,11 @@ VersionUnknown=Desconhecida VersionRecommanded=Recomendada FileCheck=Verificador da integridade dos ficheiros FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=A integridade dos ficheiros é ajusta-se rigorosamente conforme a referência. +FileIntegrityIsStrictlyConformedWithReference=A integridade dos ficheiros é ajustada rigorosamente conforme a referência. FileIntegrityIsOkButFilesWereAdded=A verificação da integridade dos arquivos passou, no entanto, alguns arquivos novos foram adicionados. FileIntegritySomeFilesWereRemovedOrModified=A verificação da integridade dos ficheiros falhou. Alguns ficheiros foram modificados, removidos ou adicionados. GlobalChecksum=Checksum global -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from +MakeIntegrityAnalysisFrom=Fazer a análise de integridade dos ficheiros de aplicativos a partir de LocalSignature=Assinatura local embutida (menos segura) RemoteSignature=Assinatura remota (mais segura) FilesMissing=Ficheiros em falta @@ -140,13 +140,14 @@ SystemToolsArea=Área de ferramentas do sistema SystemToolsAreaDesc=Esta área oferece funcionalidades de administração. Utilize o menu para escolher a funcionalidade que está à procura. Purge=Limpar\n PurgeAreaDesc=Esta página permite-lhe eliminar todos os ficheiros gerados ou armazenados pelo Dolibarr (ficheiros temporários ou todos os ficheiros na diretoria %s). Não é necessário utilizar esta funcionalidade. Esta é fornecida como uma alternativa para os utilizadores que têm o Dolibarr alojado num provedor que não oferece permissões para eliminar os ficheiros gerados pelo servidor da Web. -PurgeDeleteLogFile=Eliminar o ficheiro de registo %s definido para o módulo Syslog (sem risco de perda de dados) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Eliminar todos os ficheiros temporários (sem risco de perder os dados) PurgeDeleteTemporaryFilesShort=Eliminar ficheiros temporários PurgeDeleteAllFilesInDocumentsDir=Eliminar todos os ficheiros na diretoria %s. Não só os ficheiros temporários mas também as cópias de segurança da base de dados, ficheiros anexados aos elementos (como faturas, terceiros, ...) e enviados para o módulo GCE serão eliminados. PurgeRunNow=Limpar agora PurgeNothingToDelete=Nenhuma diretoria ou ficheiros para eliminar. PurgeNDirectoriesDeleted=%s ficheiros ou diretorias eliminadas. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Limpar todos os eventos de segurança ConfirmPurgeAuditEvents=tem a certeza que deseja limpar todos os eventos de segurança? Serão eliminados todos os registos de segurança, e não serão serão removidos outros dados. GenerateBackup=Gerar cópia de segurança @@ -226,8 +227,8 @@ OfficialMarketPlace=Mercado externo oficial para os módulos/addons OfficialWebHostingService=Serviços web hosting referenciados (hospedagem na nuvem) ReferencedPreferredPartners=Parceiros preferidos OtherResources=Outros recursos -ExternalResources=External resources -SocialNetworks=Social Networks +ExternalResources=Recursos externos +SocialNetworks=Redes sociais ForDocumentationSeeWiki=Para a documentação de utilizador, programador ou Perguntas Frequentes (FAQ), consulte o wiki do Dolibarr
    %s ForAnswersSeeForum=Para outras questões, como efectuar as consultas, pode utilizar o forum do Dolibarr:
    %s HelpCenterDesc1=Esta área permite ajudá-lo a obter um serviço de suporte para o Dolibarr. @@ -298,7 +299,7 @@ SetupIsReadyForUse=A instalação do módulo terminou. No entanto você deve ati NotExistsDirect=O diretório raiz alternativo não está definido para um diretório existente.
    InfDirAlt=Desde a versão 3 do Dolibarr que é possível definir um diretório raiz alternativo. Isto permite que você consiga armazenar plug-ins e templates, num diretório dedicado.
    Para tal basta criar um dirétorio na raiz do Dolibarr (ex: dedicado).
    InfDirExample=
    Depois declare-o no ficheiro conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    Se estas linhas estiverem comentadas com um "#", descomente-as removendo o "#". -YouCanSubmitFile=Para este passo, pode enviar o pacote utilizando esta ferramenta: Selecione o ficheiro do módulo +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Versão atual do Dolibarr CallUpdatePage=Vá à página que atualiza a estrutura e dados da base de dados: %s. LastStableVersion=Última versão estável @@ -431,7 +432,7 @@ UseDoubleApproval=Utilizar uma aprovação de 3 etapas quando o valor (sem impos WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
    If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Clique para mostrar a descrição DependsOn=Este módulo depende do(s) módulo(s) -RequiredBy=This module is required by module(s) +RequiredBy=Este módulo é necessário para o(s) módulo(s) TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: PageUrlForDefaultValuesCreate=
    For form to create a new thirdparty, it is %s @@ -535,8 +536,6 @@ Module1120Name=Orçamentos de fornecedores Module1120Desc=Pedir orçamentos e preços de fornecedores Module1200Name=Mantis Module1200Desc=Integração com Mantis -Module1400Name=Contabilidade -Module1400Desc=Accounting management (double entries) Module1520Name=Criação de documentos Module1520Desc=Produção do documento da emails em massa Module1780Name=Etiquetas/Categorias @@ -585,7 +584,7 @@ Module50100Desc=Modúlo de ponto de vendas (POS). Module50200Name=Paypal Module50200Desc=Módulo que disponibiliza uma página de pagamento online por cartão de crédito com Paypal Module50400Name=Contabilidade (avançada) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=impressão direta (sem abrir os documentos) usando a interface Cups IPP (A impressora deve ser visível a partir do servidor, e o CUPS deve estar instalado no servidor). Module55000Name=Votação ou Questionário @@ -751,8 +750,10 @@ Permission401=Consultar descontos Permission402=Criar/modificar descontos Permission403=Validar descontos Permission404=Eliminar descontos -Permission510=Consultar salários -Permission512=Criar/modificar salários +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Apagar salários Permission517=Exportar salários Permission520=Consultar empréstimos @@ -957,8 +958,8 @@ DefaultMaxSizeList=Tamanho máximo predefinido para listas DefaultMaxSizeShortList=Tamanho máximo predefinido para listas curtas (por exemplo, listas na ficha de cliente) MessageOfDay=Mensagem do día MessageLogin=Mensagem da página de inicio de sessão -LoginPage=Login page -BackgroundImageLogin=Background image +LoginPage=Página de inicio de sessão +BackgroundImageLogin=Imagem de fundo PermanentLeftSearchForm=Zona de pesquisa permanente no menu esquerdo DefaultLanguage=Idioma por defeito a utilizar (código idioma) EnableMultilangInterface=Ativar interface multi-idioma @@ -1057,7 +1058,7 @@ RestoreDesc2=Restaurar o ficheiro de arquivo (ficheiro .zip por exemplo) do dire RestoreDesc3=Restaurar os dados, a partir de um ficheiro dump backup, na base de dados da nova instalação Dolibarr ou na base de dados da instalação atual (%s). Aviso: uma vez que a restauração esteja concluída, você deve usar um login/palavra passe, que existia quando o backup foi feito, para iniciar a sessão novamente. Para restaurar um backup da base de dados para a instalação atual, pode seguir este assistente. RestoreMySQL=Importação MySQL ForcedToByAModule= Esta regra é forçada a a %s, por um módulo ativo -PreviousDumpFiles=Ficheiros de cópias de segurança de base de dados disponíveis +PreviousDumpFiles=Generated database backup files WeekStartOnDay=Primeiro dia da semana RunningUpdateProcessMayBeRequired=Parece ser necessário executar o processo de atualização (a versão do programa %s difere da versão da base de dados %s) YouMustRunCommandFromCommandLineAfterLoginToUser=Deve executar este comando a partir de uma linha de comandos depois de iniciar a sessão, na linha de comandos, com o utilizador %s ou deve adicionar a opção -W no fim da linha de comando para indicar a palavra-passe %s. @@ -1158,7 +1159,7 @@ CompanyIdProfChecker=Regras sobre IDs profissionais MustBeUnique=Deve ser único? MustBeMandatory=Obrigatório para criar terceiros? MustBeInvoiceMandatory=Obrigatório para validar faturas? -TechnicalServicesProvided=Technical services provided +TechnicalServicesProvided=Serviços técnicos fornecidos ##### Webcal setup ##### WebCalUrlForVCalExport=Uma hiperligação de exportação para o formato %s está disponivel na seguinte hiperligação: %s ##### Invoices ##### @@ -1364,8 +1365,8 @@ CompressionOfResources=Compressão das respostas HTTP CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=A detecção automática não é possível com os navegadores atuais DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. -DefaultCreateForm=Default values for new objects -DefaultSearchFilters=Default search filters +DefaultCreateForm=Valores predefinidos para novos objetos +DefaultSearchFilters=Filtros de pesquisa predefinidos DefaultSortOrder=Default sort orders DefaultFocus=Campos de foco predefinidos ##### Products ##### @@ -1697,9 +1698,9 @@ SamePriceAlsoForSharedCompanies=Se utiliza a opção multi-empresa, com a escolh ModuleEnabledAdminMustCheckRights=O módulo foi ativado. As permissões para o(s) módulo(s) ativado(s) foram adicionadas apenas aos utilizadores administradores. Talvez seja necessário conceder permissões para outros utilizadores ou grupos manualmente. UserHasNoPermissions=Este utilizador não tem permissões definidas TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
    Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
    Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") -BaseCurrency=Reference currency of the company (go into setup of company to change this) -WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +BaseCurrency=Moeda de referência da empresa (vá à configuração da empresa para alterar) +WarningNoteModuleInvoiceForFrenchLaw=Este módulo %s está de acordo com as leis francesas (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=Este módulo %s está de acordo com as leis francesas (Loi Finance 2016) porque o módulo Registos Não Reversíveis é ativado automaticamente. WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuração do módulo Recursos diff --git a/htdocs/langs/pt_PT/agenda.lang b/htdocs/langs/pt_PT/agenda.lang index ca806a2a61e..0281f782c57 100644 --- a/htdocs/langs/pt_PT/agenda.lang +++ b/htdocs/langs/pt_PT/agenda.lang @@ -75,17 +75,17 @@ InterventionSentByEMail=Intervenção %s, enviada por email ProposalDeleted=Orçamento eliminado OrderDeleted=Encomenda eliminada InvoiceDeleted=Fatura eliminada -PRODUCT_CREATEInDolibarr=Product %s created -PRODUCT_MODIFYInDolibarr=Product %s modified -PRODUCT_DELETEInDolibarr=Product %s deleted +PRODUCT_CREATEInDolibarr=O produto %s foi criado +PRODUCT_MODIFYInDolibarr=O produto %s foi modificado +PRODUCT_DELETEInDolibarr=O produto %s foi eliminado ##### End agenda events ##### AgendaModelModule=Modelos de documento para o evento DateActionStart=Data de início DateActionEnd=Data de fim AgendaUrlOptions1=Também pode adicionar os seguintes parâmetros de filtro de saída: AgendaUrlOptions3=logina=%s para restringir a produção para as acções criadas pelo utilizador %s. -AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. -AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). +AgendaUrlOptionsNotAdmin=logina =!%s para restringir a saída às ações que não pertencem ao utilizador %s. +AgendaUrlOptions4=logint =%s para restringir a saída às ações atribuídas ao utilizador %s (proprietário e outros). AgendaUrlOptionsProject=project=PROJECT_ID para restringir a produção para as acções associadas ao projeto PROJECT_ID. AgendaShowBirthdayEvents=Mostrar aniversários dos contactos AgendaHideBirthdayEvents=Ocultar aniversários dos contactos diff --git a/htdocs/langs/pt_PT/banks.lang b/htdocs/langs/pt_PT/banks.lang index 7aeaa4c56df..427ba280fdf 100644 --- a/htdocs/langs/pt_PT/banks.lang +++ b/htdocs/langs/pt_PT/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/pt_PT/bills.lang b/htdocs/langs/pt_PT/bills.lang index 77cb4e12570..5c970f195eb 100644 --- a/htdocs/langs/pt_PT/bills.lang +++ b/htdocs/langs/pt_PT/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Ficha da Fatura PredefinedInvoices=Factura Predefinida Invoice=Factura +PdfInvoiceTitle=Fatura Invoices=Facturas InvoiceLine=Linha de Factura InvoiceCustomer=Fatura de Cliente diff --git a/htdocs/langs/pt_PT/compta.lang b/htdocs/langs/pt_PT/compta.lang index 48bb4322512..fd9fa33ebeb 100644 --- a/htdocs/langs/pt_PT/compta.lang +++ b/htdocs/langs/pt_PT/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Cloná-la para o mês seguinte diff --git a/htdocs/langs/pt_PT/errors.lang b/htdocs/langs/pt_PT/errors.lang index 43c7c31bda7..826c11669b6 100644 --- a/htdocs/langs/pt_PT/errors.lang +++ b/htdocs/langs/pt_PT/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/pt_PT/install.lang b/htdocs/langs/pt_PT/install.lang index f21444ba3b9..cf0823ff670 100644 --- a/htdocs/langs/pt_PT/install.lang +++ b/htdocs/langs/pt_PT/install.lang @@ -53,10 +53,10 @@ AdminLogin=Início de sessão para o administrador da base de dados Dolibarr. De PasswordAgain=Contrassenha AdminPassword=A senha para o utilizador da base de dados Dolibarr. CreateDatabase=Criar base de dados -CreateUser=Criar administrador +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Servidor da Base de Dados - Acesso de Administrador CheckToCreateDatabase=Marque a caixa se a base de dados não existir e se deverá ser criada.
    Neste caso, deve preencher o nome/senha para a conta de administrador, no fim desta página. -CheckToCreateUser=Marque a caixa se o administrador da base de dados não existir e se deverá ser criado.
    Neste caso, deve escolher o seu nome/senha e preencher também os dados da conta de administrador no fim desta página. Se esta caixa estiver desmarcada, o administrador da base de dados e a sua senha já deverão existir. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Início de sessão do utilizador autorizado para criar as novas bases de dados ou novos utilizadores, obrigatório se a sua base de dados ou o administrador já existirem. KeepEmptyIfNoPassword=Deixar em branco se o utilizador não tiver uma senha (evitar isto) SaveConfigurationFile=Guardar valores diff --git a/htdocs/langs/pt_PT/main.lang b/htdocs/langs/pt_PT/main.lang index b83a36f0fa2..24b4ccce216 100644 --- a/htdocs/langs/pt_PT/main.lang +++ b/htdocs/langs/pt_PT/main.lang @@ -75,7 +75,8 @@ FileRenamed=O ficheiro foi renomeado com sucesso FileGenerated=O ficheiro foi gerado com sucesso FileSaved=The file was successfully saved FileUploaded=O ficheiro foi enviado com sucesso -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=Um ficheiro foi seleccionada para ser anexado, mas ainda não foi carregado. Clique em 'Adicionar este Ficheiro' para anexar. NbOfEntries=Nº de entradas GoToWikiHelpPage=Consultar ajuda online (necessita de acesso à Internet) @@ -196,6 +197,7 @@ Parameter=Parâmetro Parameters=Parâmetros Value=Valor PersonalValue=Valor pessoal +NewObject=New %s NewValue=Novo valor CurrentValue=Valor actual Code=Código @@ -441,6 +443,7 @@ Reporting=Relatório Reportings=Relatórios Draft=Rascunho Drafts=Rascunhos +StatusInterInvoiced= Validated=Validado Opened=Abrir New=Novo @@ -727,6 +730,7 @@ SetBankAccount=Definir Conta Bancária AccountCurrency=Moeda da conta ViewPrivateNote=Ver notas XMoreLines=%s linhas(s) ocultas +ShowMoreLines=Show more lines PublicUrl=URL público AddBox=Adicionar Caixa SelectElementAndClick=Selecione um elemento e clique em %s @@ -735,6 +739,7 @@ ShowTransaction=Mostrar transação GoIntoSetupToChangeLogo=Vá Início - Configurar - Empresa para alterar o logótipo ou vá a Início - Configurar - Exibir para ocultar. Deny=Negar Denied=Negada +ListOf=List of %s ListOfTemplates=Lista de modelos Gender=Género Genderman=Homem diff --git a/htdocs/langs/pt_PT/modulebuilder.lang b/htdocs/langs/pt_PT/modulebuilder.lang index d13b09b2001..7e2d9b0a3f3 100644 --- a/htdocs/langs/pt_PT/modulebuilder.lang +++ b/htdocs/langs/pt_PT/modulebuilder.lang @@ -1,40 +1,56 @@ # Dolibarr language file - Source file is en_US - loan -ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). -EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) -ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc=Esta ferramenta deve ser utilizada por utilizadores mais experientes ou desenvolvedores. Esta oferece os utilitários necessários para criar ou editar o seu próprio módulo (A documentação para criar manualmente um novo módulo encontra-se aqui). +EnterNameOfModuleDesc=Introduza o nome do módulo/aplicação a criar, sem espaços. Use maiúsculas para separar palavras (Por exemplo: MyModule, EcommerceForShop, SyncWithMySystem ...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. +ModuleBuilderDesc2=Caminho onde são gerados/editados os módulos (primeira diretoria alternativa definida em %s): %s ModuleBuilderDesc3=Módulos gerados/editáveis ​​encontrados: %s (são detectados como editáveis ​​quando o ficheiro %s existe na diretoria raiz do módulo). NewModule=Novo módulo -NewObject=New object -ModuleKey=Module key -ObjectKey=Object key +NewObject=Novo objeto +ModuleKey=Chave do módulo +ObjectKey=Chave do objeto ModuleInitialized=Módulo inicializado -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Introduza aqui todas as informações gerais que descrevem o seu módulo -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=Este separador é dedicado para definir entradas de menu fornecidas pelo seu módulo. ModuleBuilderDescpermissions=Este separador é dedicado para definir as novas permissões que deseja fornecer com o seu módulo. -ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDesctriggers=Esta é a vista dos acionadores fornecidos pelo seu módulo. Para incluir o código executado quando um evento comercial acionado é iniciado, basta editar este ficheiro. ModuleBuilderDeschooks=Este separador é dedicado para hooks. ModuleBuilderDescwidgets=Este separador é dedicado para gerir/criar widgets. -ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. -EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! -EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +ModuleBuilderDescbuildpackage=Você pode gerar aqui um ficheiro pacote "pronto para distribuir" (um ficheiro .zip normalizado) do seu módulo e um ficheiro de documentação "pronto para distribuir". Basta clicar no botão para criar o ficheiro pacote do módulo e o ficheiro de documentação. +EnterNameOfModuleToDeleteDesc=Você pode eliminar o seu módulo. AVISO: Todos os ficheiros associados ao módulo, dados estruturados e documentação serão apagados definitivamente! +EnterNameOfObjectToDeleteDesc=Você pode eliminar um objeto. AVISO: Todos os arquivos relacionados com o objeto serão apagados definitivamente! DangerZone=Zona de perigo -BuildPackage=Build package/documentation -BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +BuildPackage=Criar pacote/documentação +BuildDocumentation=Criar documentação +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=Este módulo foi ativado. Qualquer alteração pode causar problemas numa característica ativa atual. DescriptionLong=Descrição longa EditorName=Nome do editor EditorUrl=URL do editor -DescriptorFile=Descriptor file of module -ClassFile=File for PHP class -ApiClassFile=File for PHP API class -PageForList=PHP page for list of record -PageForCreateEditView=PHP page to create/edit/view a record -PathToModulePackage=Path to zip of module/application package -PathToModuleDocumentation=Path to file of module/application documentation -SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. -FileNotYetGenerated=File not yet generated +DescriptorFile=Ficheiro descritor do módulo +ClassFile=Ficheiro para a classe PHP +ApiClassFile=Ficheiro para a classe API PHP +PageForList=Página PHP para a lista de registos +PageForCreateEditView=Página PHP para criar/editar/visualizar um registo +PathToModulePackage=Caminho para o ficheiro pacote .zip do módulo/aplicação +PathToModuleDocumentation=Caminho para o ficheiro de documentação do módulo/aplicação +SpaceOrSpecialCharAreNotAllowed=Espaços ou caracteres especiais não são permitidos. +FileNotYetGenerated=O ficheiro ainda não foi gerado +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/pt_PT/multicurrency.lang b/htdocs/langs/pt_PT/multicurrency.lang index 61993d2ca36..0f0375d8476 100644 --- a/htdocs/langs/pt_PT/multicurrency.lang +++ b/htdocs/langs/pt_PT/multicurrency.lang @@ -4,7 +4,8 @@ ErrorAddRateFail=Erro na taxa adicionada ErrorAddCurrencyFail=Erro na moeda adicionada ErrorDeleteCurrencyFail=Erro na eliminação multicurrency_syncronize_error=Erro de sincronização: %s -multicurrency_useOriginTx=Quando um objeto é criado a partir de outro, mantenha a taxa original do objeto de origem (caso contrário use a nova taxa conhecida) +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate) CurrencyLayerAccount=CurrencyLayer API CurrencyLayerAccount_help_to_synchronize=Você deve criar uma conta no site para usar esta funcionalidade
    Obtenha sua chave da API
    Se você usar uma conta gratuita, não pode alterar a fonte de moeda (USD por defeito)
    Mas se a sua moeda principal não for o USD, você pode usar uma fonte de moeda alternativa para forçar sua moeda principal

    Você está limitado a 1000 sincronizações por mês multicurrency_appId=Chave da API diff --git a/htdocs/langs/pt_PT/orders.lang b/htdocs/langs/pt_PT/orders.lang index c255f5f6df2..dcf00a4af6f 100644 --- a/htdocs/langs/pt_PT/orders.lang +++ b/htdocs/langs/pt_PT/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Área de encomendas a fornecedores OrderCard=Ficha da encomenda OrderId=Id da encomenda Order=Encomenda +PdfOrderTitle=Encomenda Orders=Encomendas OrderLine=Linha da encomenda OrderDate=Data da encomenda diff --git a/htdocs/langs/pt_PT/other.lang b/htdocs/langs/pt_PT/other.lang index d853565d140..30e1d0f29bf 100644 --- a/htdocs/langs/pt_PT/other.lang +++ b/htdocs/langs/pt_PT/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/pt_PT/propal.lang b/htdocs/langs/pt_PT/propal.lang index 44f573f7712..db446d8f552 100644 --- a/htdocs/langs/pt_PT/propal.lang +++ b/htdocs/langs/pt_PT/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Orçamentos Rascunho ProposalsOpened=Orçamentos a clientes abertos Prop=Orçamentos CommercialProposal=Orçamento +PdfCommercialProposalTitle=Orçamento ProposalCard=Ficha do orçamento NewProp=Novo Orçamento NewPropal=Novo Orçamento diff --git a/htdocs/langs/pt_PT/salaries.lang b/htdocs/langs/pt_PT/salaries.lang index 9ab76143e37..41f71aebb5f 100644 --- a/htdocs/langs/pt_PT/salaries.lang +++ b/htdocs/langs/pt_PT/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Conta contabilística usada por defeito para despesas de pessoal Salary=Salário Salaries=Salários diff --git a/htdocs/langs/pt_PT/website.lang b/htdocs/langs/pt_PT/website.lang index 8cfea3ca740..f9fe97790f9 100644 --- a/htdocs/langs/pt_PT/website.lang +++ b/htdocs/langs/pt_PT/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Crie aqui as entradas e o número de diferentes sites da Web qu DeleteWebsite=Eliminar site da Web ConfirmDeleteWebsite=Tem a certeza que deseja eliminar este site da Web. Também irão ser removidos todas as suas páginas e conteúdo. WEBSITE_PAGENAME=Nome/pseudonimo da página +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL do ficheiro CSS externo WEBSITE_CSS_INLINE=Conteúdo de CSS -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Bliblioteca de Multimedia -EditCss=Editar Estilo/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Editar Menu EditPageMeta=Editar Metadados EditPageContent=Editar Conteúdo Website=Site da Web -Webpage=Página Web -AddPage=Adicionar página +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=A pré-visualização do seu site da Web %s ainda mão está disponível. Deve adicionar primeiro uma página. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Página '%s' do site da Web %s eliminada -PageAdded=Página '%s' adicionada +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=Ver site no novo separador ViewPageInNewTab=Ver página no novo separador SetAsHomePage=Definir como página Inicial @@ -28,4 +30,9 @@ ViewWebsiteInProduction=Ver site no utilizando URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Pré-visualizar %s num separador novo.

    O %s será servido por um servidor web externo (como Apache, Nginx, IIS). Você deve instalar e configurar este servidor antes para apontar para a diretoria:
    %s
    URL servido por servidor externo:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/pt_PT/workflow.lang b/htdocs/langs/pt_PT/workflow.lang index 9e8879670c5..6c199f3eb50 100644 --- a/htdocs/langs/pt_PT/workflow.lang +++ b/htdocs/langs/pt_PT/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Configuração do módulo de Fluxo de Trabalho WorkflowDesc=Este módulo foi projetado para modificar o comportamento das ações automáticas na aplicação. Por defeito, o fluxo de trabalho é aberto (você pode fazer as coisas na ordem que deseja). Você pode ativar as ações automáticas do seu interesse. ThereIsNoWorkflowToModify=Não há modificações de fluxo de trabalho disponíveis para os módulos ativados. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Criar automaticamente uma encomenda para o cliente após a assinatura de um orçamento de cliente -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Criar automaticamente uma fatura de cliente após a assinatura de um orçamento de cliente +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Criar automaticamente uma fatura de cliente após a validação de um contrato -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Criar automaticamente uma fatura de cliente após o encerramento de uma encomenda de cliente -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classifique a fonte ligada como proposta a cobrança quando a ordem do cliente for definida como paga -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classifique a fonte ligada como cobrado quando a ordem(s) do cliente for definida como paga -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classifique a fonte ligada a ordem(s) de clientes quando a fatura de cliente for validada -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classificar o orçamento fonte associado como faturado quando a fatura de cliente é validada -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classificar a encomenda fonte associada como enviada quando uma expedição é validada e a quantidade enviada é a mesma que está estipulada na encomenda fonte +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Criação automática AutomaticClassification=Classificação automática diff --git a/htdocs/langs/ro_RO/accountancy.lang b/htdocs/langs/ro_RO/accountancy.lang index 0a3c0a8f276..3e5844e9939 100644 --- a/htdocs/langs/ro_RO/accountancy.lang +++ b/htdocs/langs/ro_RO/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Prezentare generală a valorii liniilor deja asocia OtherInfo=Alte informații DeleteCptCategory=Eliminați contul contabil din grup ConfirmDeleteCptCategory=Sigur doriți să eliminați acest cont contabil din grupul de cont contabil? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Contabilitate AccountancyAreaDescIntro=Utilizarea modulului de contabilitate se face în mai multe etape: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=PASUL %s: Definiți conturile contabile implici AccountancyAreaDescSal=PASUL %s: Definirea conturilor contabile implicite pentru plata salariilor. Pentru aceasta, utilizați intrarea din meniu %s. AccountancyAreaDescContrib=PASUL %s: Definiți conturile implicite de contabilitate pentru cheltuieli speciale (taxe diverse). Pentru aceasta, utilizați intrarea din meniu %s. AccountancyAreaDescDonation=PASUL %s: Definirea conturilor contabile implicite pentru donații. Pentru aceasta, utilizați intrarea din meniu %s. -AccountancyAreaDescMisc=PASUL %s: Definirea conturilor contabile implicite pentru diverse tranzacții. Pentru aceasta, utilizați intrarea din meniu %s. +AccountancyAreaDescMisc=STEP %s: Define mandatory default account and default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. AccountancyAreaDescLoan=PASUL %s: Definiți conturile contabile implicite pentru împrumuturi. Pentru aceasta, utilizați intrarea din meniu %s. AccountancyAreaDescBank=PASUL %s: Definirea conturilor contabile pentru fiecare bancă și conturi financiare. Pentru aceasta, mergeți pe cardul fiecărui cont financiar. Puteți începe de la pagina %s. AccountancyAreaDescProd=STEP %s: Definirea conturilor contabile pentru produsele / serviciile dvs. Pentru aceasta, utilizați intrarea din meniu %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Introducerea tranzactiilor in Jurnalul Cartea mare Bookkeeping=Cartea mare AccountBalance=Sold cont - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Raportul total al cheltuielilor InvoiceLines=Linii de facturi de asociat @@ -103,7 +110,7 @@ LineOfExpenseReport=Linia de raport de cheltuieli NoAccountSelected=Nu a fost selectat niciun cont contabil VentilatedinAccount=Asociat cu succes la contul de contabilitate NotVentilatedinAccount=Nu este asociat cu contul contabil -XLineSuccessfullyBinded=%s produse / servicii asociate cu succes unui cont contabil +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=Produsele / serviciile %s nu au fost asociate niciunui cont contabil ACCOUNTING_LIMIT_LIST_VENTILATION=Numărul de elemente de asociat afișate pe pagină (maxim recomandat: 50) @@ -154,7 +161,7 @@ DelBookKeeping=Ștergeți înregistrarea Cărții Mari FinanceJournal=Jurnal Bancă ExpenseReportsJournal=Jurnalul rapoartelor de cheltuieli DescFinanceJournal=Jurnal de finanțe, care include toate tipurile de plăți prin cont bancar -DescJournalOnlyBindedVisible=Aceasta este o vizualizare a înregistrării care este asociata contului contabil de produse / servicii și poate fi înregistrată în Cartea Mare. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Contul de TVA nu a fost definit ThirdpartyAccountNotDefined=Contul pentru o terță parte nu este definit ProductAccountNotDefined=Contul pentru produs nu este definit @@ -170,6 +177,8 @@ AddCompteFromBK=Adăugați conturi contabile grupului ReportThirdParty=Listează contul terță parte DescThirdPartyReport=Consultați aici lista clienților și furnizorilor terță parte și a conturile lor contabile ListAccounts=Lista conturilor contabile +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Clasa contului Pcgsubtype=Subclasa contului @@ -194,7 +203,7 @@ ValidateHistory=Asociază automat AutomaticBindingDone=Asociere automată făcută ErrorAccountancyCodeIsAlreadyUse=Eroare, nu puteți șterge acest cont contabil, deoarece este folosit -MvtNotCorrectlyBalanced=Miscare incorect efectuata . Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Card asociat GeneralLedgerIsWritten=Tranzacțiile sunt scrise în Cartea Mare GeneralLedgerSomeRecordWasNotRecorded=Unele tranzacții nu au putut fi expediate. Dacă nu există niciun alt mesaj de eroare, probabil că acestea au fost expediate. @@ -210,7 +219,6 @@ AccountingJournals=Jurnalele contabile AccountingJournal=Jurnalul contabil NewAccountingJournal=Jurnal contabil nou ShowAccoutingJournal=Arătați jurnalul contabil -Code=Cod Nature=Personalitate juridică AccountingJournalType1=Diverse operațiuni AccountingJournalType2=Vânzări @@ -221,8 +229,6 @@ AccountingJournalType9=Are nou ErrorAccountingJournalIsAlreadyUse=Acest jurnal este deja folosit ## Export -Exports=Exporturi -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model export OptionsDeactivatedForThisExportModel=Pentru acest model de export, optiunile sunt dezactivate diff --git a/htdocs/langs/ro_RO/admin.lang b/htdocs/langs/ro_RO/admin.lang index cd1e45a44ed..6c2398a8dcd 100644 --- a/htdocs/langs/ro_RO/admin.lang +++ b/htdocs/langs/ro_RO/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Instrumente Sistem SystemToolsAreaDesc=Această zonă oferă funcţionalităţi de administrare. Folositi meniul pentru a alege funcţionalitatea pe care o căutaţi. Purge=Curăţenie PurgeAreaDesc=Această pagină vă permite să ștergeți toate fișierele generate sau stocate de Dolibarr (fișiere temporare sau toate fișierele din directorul %s ). Utilizarea acestei funcții nu este necesară. Este oferit ca soluție pentru utilizatorii al căror Dolibarr este găzduit de un furnizor care nu oferă permisiuni de ștergere a fișierelor generate de serverul web. -PurgeDeleteLogFile=Ștergeți fișierul de jurnal %s definit pentru modulul Syslog (fără riscul pierderii datelor) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Ştergere toate fişierele temporare (fără riscul de a pierde date) PurgeDeleteTemporaryFilesShort=Sterge fisiere temporare PurgeDeleteAllFilesInDocumentsDir=Ştergeţi toate fişierele în directorul %s. Fisiere temporare, dar de asemenea, fişierele ataşate la elemente (terţe părţi, facturi, ...) şi a trimis în modul ECM vor fi şterse. PurgeRunNow=Elimină acum PurgeNothingToDelete=Nici un director sau fișier de șters. PurgeNDirectoriesDeleted= %s fişiere sau directoare şterse. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Elimină toate evenimentele de securitate ConfirmPurgeAuditEvents=Sigur doriți să eliminați toate evenimentele de securitate? Toate jurnalele de securitate vor fi șterse, nu vor fi eliminate alte date. GenerateBackup=Generează backup @@ -298,7 +299,7 @@ SetupIsReadyForUse=Implementarea modulului a fost terminată. Cu toate acestea, NotExistsDirect=Directorul rădăcină alternativ nu este atribuit unui director existent.
    InfDirAlt=De la versiunea 3, este posibil să se definească un director rădăcină alternativ. Acest lucru vă permite să stocați, într-un director dedicat, plug-in-uri și șabloane personalizate.
    Doar creați un director in rădăcina Dolibarr (de exemplu: personalizat).
    InfDirExample=
    Apoi declarați în fișierul conf.php
    $dolibarr_main_url_root_alt='http://myserver/personalizat'
    \n$dolibarr_main_document_root_alt'/path/of/ dolibarr/htdocs/personalizat'
    Dacă aceste linii sunt comentate cu"#", pentru a le activa, trebuie doar să scoateti comentariul prin eliminarea caracterului "# ". -YouCanSubmitFile=La acest pas, puteți trimite pachetul utilizand acest instrument: Selectați modulul fișier +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr versiunea curentă CallUpdatePage=Accesați pagina care actualizează structura și datele bazei de date: %s. LastStableVersion=Ultima versiune stabilă @@ -535,8 +536,6 @@ Module1120Name=Ofertă Comercială Furnizor Module1120Desc=Cereti oferta comerciala si preturile furnizorului Module1200Name=Mantis Module1200Desc=Mantis integrare -Module1400Name=Contabilitate -Module1400Desc=Accounting management (double entries) Module1520Name=Generare Document Module1520Desc=Generarea de documente de poștă electronică in masa Module1780Name=Tag-uri / Categorii @@ -585,7 +584,7 @@ Module50100Desc=Modulul Punct de vânzări (POS) Module50200Name=PayPal Module50200Desc=Modul de a oferi o pagina de plata online prin card de credit cu Paypal Module50400Name=Contabilitate (avansat) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=Print lP IPrinter Module54000Desc=Imprimare directă (fără a deschide documentele) folosind interfața CUPS IPP (imprimanta trebuie să fie vizibilă de pe server și CUPS trebuie să fie instalat pe server). Module55000Name=Sondaj, supraveghere sau vot @@ -751,8 +750,10 @@ Permission401=Citiţi cu reduceri Permission402=Creare / Modificare reduceri Permission403=Validate reduceri Permission404=Ştergere reduceri -Permission510=Citeşte salarii -Permission512=Creare / Modificare salarii +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Şterge salarii Permission517=Export salarii Permission520=Citeşte credite @@ -1057,7 +1058,7 @@ RestoreDesc2=Restaurați fișierul arhivă (de exemplu fișierul zip) din direct RestoreDesc3=Restaurați datele, dintr-un fișier de memorie de rezervă, în baza de date a noii instalări Dolibarr sau în baza de date a instalării curente ( %s). Avertisment, odată ce restaurarea este terminată, trebuie să utilizați o autentificare/parolă, care a existat atunci când a fost efectuată copia de rezervă, pentru a vă conecta din nou. Pentru a restaura o bază de date de rezervă în această instalare curentă, puteți urmari acest asistent. RestoreMySQL=MySQL import ForcedToByAModule= Această regulă este obligat la %s către un activat modulul -PreviousDumpFiles=Disponibil dump de rezervă fişiere de baze de date +PreviousDumpFiles=Generated database backup files WeekStartOnDay=Prima zi din saptamana RunningUpdateProcessMayBeRequired=Rularea procesului de upgrade pare să fie necesară (Programe versiunea %s diferă de %s versiunea bazei de date) YouMustRunCommandFromCommandLineAfterLoginToUser=Trebuie să rulaţi această comandă de la linia de comandă, după login la un raft cu %s utilizator. diff --git a/htdocs/langs/ro_RO/banks.lang b/htdocs/langs/ro_RO/banks.lang index c773d87f386..fb59104b1a4 100644 --- a/htdocs/langs/ro_RO/banks.lang +++ b/htdocs/langs/ro_RO/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Cec returnat si facturi redeschise BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/ro_RO/bills.lang b/htdocs/langs/ro_RO/bills.lang index e87b23754bf..c6fbe43ff5f 100644 --- a/htdocs/langs/ro_RO/bills.lang +++ b/htdocs/langs/ro_RO/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Fişă Factură PredefinedInvoices=Facturi Predefinite Invoice=Factură +PdfInvoiceTitle=Factură Invoices=Facturi InvoiceLine=Linie Factură InvoiceCustomer=Factură Client diff --git a/htdocs/langs/ro_RO/compta.lang b/htdocs/langs/ro_RO/compta.lang index 607c95b12da..b11d8563d64 100644 --- a/htdocs/langs/ro_RO/compta.lang +++ b/htdocs/langs/ro_RO/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Cloneaza o taxa sociala / fiscala ConfirmCloneTax= Confirmare duplicare plată taxă. CloneTaxForNextMonth=Clonaţi-o pentru luna următoare diff --git a/htdocs/langs/ro_RO/errors.lang b/htdocs/langs/ro_RO/errors.lang index 14acf4124b3..94c1b49d370 100644 --- a/htdocs/langs/ro_RO/errors.lang +++ b/htdocs/langs/ro_RO/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings WarningPasswordSetWithNoAccount= O parolă a fost trimisă către acest membru. Cu toate acestea, nu a fost creat nici un cont de utilizator. Astfel, această parolă este stocată, dar nu poate fi utilizată pentru autentificare. Poate fi utilizată de către un modul / interfată externă, dar dacă nu aveți nevoie să definiți un utilizator sau o parolă pentru un membru, puteți dezactiva opțiunea "Gestionați o conectare pentru fiecare membru" din modul de configurare membri. În cazul în care aveți nevoie să gestionați un utilizator, dar nu este nevoie de parolă, aveți posibilitatea să păstrați acest câmp gol pentru a evita acest avertisment. Notă: Adresa de e-mail poate fi utilizată ca utilizator la autentificare, în cazul în care membrul este legat de un utilizator. diff --git a/htdocs/langs/ro_RO/install.lang b/htdocs/langs/ro_RO/install.lang index c41ed97922b..c1239f035ba 100644 --- a/htdocs/langs/ro_RO/install.lang +++ b/htdocs/langs/ro_RO/install.lang @@ -53,10 +53,10 @@ AdminLogin=Autentifica-te pentru proprietarul bazei de date Dolibarr. PasswordAgain=Rescrie parola pentru a doua oară AdminPassword=Parola pentru proprietarul bazei de date Dolibarr. CreateDatabase=Crearea bazei de date -CreateUser=Crearea proprietar +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Serverul de baze de date - superuser de acces CheckToCreateDatabase=Verificaţi dacă în cutia în cazul în care baza de date nu există şi trebuie să fie creat.
    În acest caz, trebuie să completaţi datele de conectare / parola pentru contul de superuser, la partea de jos a acestei pagini. -CheckToCreateUser=Verificaţi dacă în cutia în cazul în care proprietarul bazei de date nu există şi trebuie să fie creat.
    În acest caz, trebuie să alegeţi de conectare şi parola şi umple, de asemenea, conectare / parola pentru contul de superuser, la partea de jos a acestei pagini. Dacă această casetă este debifată bază de date, proprietarul şi parolele sale trebuie să există. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Login utilizatorului posibilitatea de a crea baze de date noi sau de noi utilizatori, inutil în cazul în care baza de date si login-ul bazei de date există deja (ca atunci cand sunt găzduite de către un furnizor de web hosting). KeepEmptyIfNoPassword=Lasă un gol în cazul în care utilizatorul nu are nici o parola (a evita acest lucru) SaveConfigurationFile=Salvaţi valorile diff --git a/htdocs/langs/ro_RO/main.lang b/htdocs/langs/ro_RO/main.lang index 663251bb5e9..816e83f5d26 100644 --- a/htdocs/langs/ro_RO/main.lang +++ b/htdocs/langs/ro_RO/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=Fişierul a fost încărcat cu succes -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=Un fișier este selectat pentru atașament, dar nu a fost încă încărcat. Clic pe "Ataşează fișier" pentru aceasta. NbOfEntries=Nr intrări GoToWikiHelpPage=Citeşte ajutorul online (Acces la Internet necesar) @@ -196,6 +197,7 @@ Parameter=Parametru Parameters=Parametri Value=Valoare PersonalValue=Valoare Personală +NewObject=New %s NewValue=Valoare nouă CurrentValue=Valoarea curentă Code=Cod @@ -441,6 +443,7 @@ Reporting=Raportare Reportings=Rapoarte Draft=Schiţă Drafts=Schiţe +StatusInterInvoiced= Validated=Validat Opened=Deschis New=Nou @@ -727,6 +730,7 @@ SetBankAccount=Defineste Cont bancar AccountCurrency=Moneda Contabilitate ViewPrivateNote=Vezi notițe XMoreLines=%s linii(e) ascunse +ShowMoreLines=Show more lines PublicUrl=URL Public AddBox=Adauga box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Mergi la Home - Setup - Company pentru a schimba logo - ul sau mergi la Home - Setup - Display pentru a ascunde. Deny=Respinge Denied=Respins +ListOf=List of %s ListOfTemplates=Listă template-uri Gender=Gen Genderman=Barbat diff --git a/htdocs/langs/ro_RO/modulebuilder.lang b/htdocs/langs/ro_RO/modulebuilder.lang index ae8f074fbe1..fca46cd7886 100644 --- a/htdocs/langs/ro_RO/modulebuilder.lang +++ b/htdocs/langs/ro_RO/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Modele generate / modificate găsite: %s (acestea sunt detectate ca fiind editabile atunci când fișierul %s există în directorul modulului). NewModule=Modul nou @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Modulul a fost inițializat -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Introduceți aici toate informațiile generale care descriu modulul dvs. -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=Această filă este dedicată definirii intrărilor de meniuri furnizate de modulul dvs. ModuleBuilderDescpermissions=Această filă este dedicată definirii noilor permisiuni pe care doriți să le furnizați împreună cu modulul. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=Acest modul a fost activat. Orice modificare asupra lui poate denatura o caracteristică activă curentă. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/ro_RO/orders.lang b/htdocs/langs/ro_RO/orders.lang index 55e7dacadc1..6bbc18bfa91 100644 --- a/htdocs/langs/ro_RO/orders.lang +++ b/htdocs/langs/ro_RO/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Comenzi Furnizori OrderCard=Fişă Comandă OrderId=ID Comandă Order=Comandă +PdfOrderTitle=Comanda Orders=Comenzi OrderLine=Linie Comandă OrderDate=Dată Comandă diff --git a/htdocs/langs/ro_RO/other.lang b/htdocs/langs/ro_RO/other.lang index cebad68e770..90daede5657 100644 --- a/htdocs/langs/ro_RO/other.lang +++ b/htdocs/langs/ro_RO/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/ro_RO/propal.lang b/htdocs/langs/ro_RO/propal.lang index 37549fd5589..e022f8d2239 100644 --- a/htdocs/langs/ro_RO/propal.lang +++ b/htdocs/langs/ro_RO/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Oferte Comerciale schiţă ProposalsOpened=Open commercial proposals Prop=Oferte Comerciale CommercialProposal=Ofertă Comercială +PdfCommercialProposalTitle=Ofertă Comercială ProposalCard=Fişă Ofertă NewProp=Ofertă Comercială Nouă NewPropal=Ofertă Nouă diff --git a/htdocs/langs/ro_RO/salaries.lang b/htdocs/langs/ro_RO/salaries.lang index 677fe77b39a..9fdfff09105 100644 --- a/htdocs/langs/ro_RO/salaries.lang +++ b/htdocs/langs/ro_RO/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salariu Salaries=Salarii diff --git a/htdocs/langs/ro_RO/website.lang b/htdocs/langs/ro_RO/website.lang index d7d1b8ec9bf..9740afc709f 100644 --- a/htdocs/langs/ro_RO/website.lang +++ b/htdocs/langs/ro_RO/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Şterge website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Pagina nume/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=Conţinutul CSS -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit meniu EditPageMeta=Edit Meta EditPageContent=Editare continut Website=Web site -Webpage=Web page -AddPage=Add pagina +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Pagina '%s' adaugata +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Seteaza ca pagina Home @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/ro_RO/workflow.lang b/htdocs/langs/ro_RO/workflow.lang index 42f524b8ca1..f1b7b6715d7 100644 --- a/htdocs/langs/ro_RO/workflow.lang +++ b/htdocs/langs/ro_RO/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Configurare Modul Flux de Lucru WorkflowDesc=Acest modul este proiectat pentru modificarea comportamentului acțiunilor automate în aplicaţie. În mod implicit, fluxul de lucru este deschis (puteţi face ce doriţi în ordinea dorită). Puteți activa acțiunile automate de care sunteti interesat ThereIsNoWorkflowToModify=Nu există nicio modificare workflow diponibila pentru modulele activate. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Crează o comandă client automat, după ce o ofertă comercială este semnată -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Crează o factură client automat, după ce o ofertă comercială este semnată +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Crează o factură client automat, după ce un contract este validat -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Crează o factură client automat, după ce o comandă client este închisă -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Clasează propunere comercială legată ca facturată când comanda client este setată ca plătită -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Clasează comenzi(le) client sursă legate ca facturate, atunci când factura clientului este setată ca plătită -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Clasează comenzi(le) client sursă legate ca facturate, atunci când factura clientului este validată -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/ru_RU/accountancy.lang b/htdocs/langs/ru_RU/accountancy.lang index 92ef9dd4cfb..aab8c179aac 100644 --- a/htdocs/langs/ru_RU/accountancy.lang +++ b/htdocs/langs/ru_RU/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=Список бухгалтерских счетов +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Класс бухгалтерского счёта Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Код Nature=Природа AccountingJournalType1=Various operation AccountingJournalType2=Продажи @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Экспорт -Export=Экспорт ExportDraftJournal=Export draft journal Modelcsv=Модель экспорта OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/ru_RU/admin.lang b/htdocs/langs/ru_RU/admin.lang index eb17529dffd..698d11244df 100644 --- a/htdocs/langs/ru_RU/admin.lang +++ b/htdocs/langs/ru_RU/admin.lang @@ -74,7 +74,7 @@ JavascriptDisabled=JavaScript отключен UsePreviewTabs=Использовать вкладки предпросмотра ShowPreview=Предварительный просмотр PreviewNotAvailable=Предварительный просмотр не доступен -ThemeCurrentlyActive=Активная тема +ThemeCurrentlyActive=Текущая тема CurrentTimeZone=Текущий часовой пояс в настройках PHP MySQLTimeZone=Часовой пояс БД (MySQL) TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). @@ -104,7 +104,7 @@ MenuIdParent=ID родительского меню DetailMenuIdParent=ID родительского меню (EMPTY для верхнего меню) DetailPosition=Порядковый номер меню для определения позиции меню AllMenus=Все -NotConfigured=Module/Application not configured +NotConfigured=Модуль/Приложение не настроен Active=Активная SetupShort=Настройка OtherOptions=Другие опции @@ -120,7 +120,7 @@ ClientTZ=Часовой пояс пользователя ClientHour=Время клиента (пользователя) OSTZ=Часовой пояс сервера PHPTZ=Часовой пояс PHP сервера -DaylingSavingTime=Летнее время (пользователь) +DaylingSavingTime=Летнее время CurrentHour=Время PHP (на PHP-сервере) CurrentSessionTimeOut=Тайм-аут текущей сессии YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" @@ -140,13 +140,14 @@ SystemToolsArea=Раздел системных настроек SystemToolsAreaDesc=Этот раздел предоставляет административные функции. Используйте меню для выбора необходимой функции. Purge=Очистить PurgeAreaDesc=Эта страница позволяет вам удалить все файлы созданные или хранящиеся в Dolibarr (временные файлы или все файлы в папке %s). Использование этой возможности не является обязательным. Она полезна при размещении Dolibarr на серверах не позволяющих удалять файлы созданные веб-сервером. -PurgeDeleteLogFile=Удалить файл с логами %s являющегося системным журналом Dolibarr (без риска потери данных) +PurgeDeleteLogFile=Удаление файлов журналов, включая %s определенный для модуля Syslog (без риска потери данных) PurgeDeleteTemporaryFiles=Удалить все временные файлы (без риска потери данных) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Удалить все файлы в директории %s. Временные файлы, резервные копии базы данных, а также файлы, прикрепленные к элементам (контрагенты, счета-фактуры, ...) и загруженные в модуль электронного документооборота ECM будут удалены. PurgeRunNow=Очистить сейчас PurgeNothingToDelete=Нет директории или файла для удаления. PurgeNDirectoriesDeleted=Удалено %s файлов или каталогов. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Очистить все события безопасности ConfirmPurgeAuditEvents=Вы хотите очистить все события связанные с безопасностью? Все журналы безопасности будут удалены, другие данные не будут удалены. GenerateBackup=Создать резервную копию @@ -161,7 +162,7 @@ ExportMethod=Метод Экспорта ImportMethod=Метод импорта ToBuildBackupFileClickHere=Для создания файла резервной копии нажмите здесь. ImportMySqlDesc=Для импорта файла архивной копии, вы должны использовать команду mysql из командной строки: -ImportPostgreSqlDesc=Для импорта файла резервной копии, вы должны использовать pg_restore команду из командной строки: +ImportPostgreSqlDesc=Для импорта файла резервной копии, вы должны использовать команду pg_restore из командной строки: ImportMySqlCommand=%s %s < mybackupfile.sql ImportPostgreSqlCommand=%s %s mybackupfile.sql FileNameToGenerate=Имя для создаваемого файла @@ -298,7 +299,7 @@ SetupIsReadyForUse=Развертывание модуля завершено. NotExistsDirect=Альтернативная корневая директория не задана.
    InfDirAlt=Начиная с 3-ей версии, можно определить альтернативный корневой каталог. Это позволяет вам хранить в специальном каталоге, плагины и настраиваемые шаблоны.
    Просто создайте каталог в корне Dolibarr (например: custom).
    InfDirExample=
    Затем укажите его в файле conf.php
    \n$ dolibarr_main_url_root_alt = 'http://myserver/custom'
    $ dolibarr_main_document_root_alt = '/путь/к/dolibarr/htdocs/Custom'
    Если эти строки закомментированы с помощью «#», раскомментируйте их, удалив символ «#» чтобы включить их. -YouCanSubmitFile=На этом шаге вы можете отправить пакет используя этот инструмент: Выберите файл модуля +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Текущая версия Dolibarr CallUpdatePage=Перейдите на страницу, где вы сможете обновить структуру базы данных и данные: %s. LastStableVersion=Последняя стабильная версия @@ -535,8 +536,6 @@ Module1120Name=Коммерческое предложение поставщи Module1120Desc=Запросить у поставщика коммерческое предложение и цены Module1200Name=Mantis Module1200Desc=Интеграция с Mantis -Module1400Name=Бухгалтерия -Module1400Desc=Accounting management (double entries) Module1520Name=Создание документов Module1520Desc=Mass mail document generation Module1780Name=Теги/Категории @@ -585,7 +584,7 @@ Module50100Desc=Модуль точки продаж (POS). Module50200Name=Paypal Module50200Desc=Модуль предлагает страницу онлайн-оплаты кредитной картой с помощью Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=Модуль PrintIPP Module54000Desc=Прямая печать (без открытия документа) использует интерфейс Cups IPP (Принтер должен быть доступен с сервера, и система печати CUPS должна быть установлена на сервере). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Читать скидки Permission402=Создать / изменить скидки Permission403=Проверить скидки Permission404=Удалить скидки -Permission510=Открыть Зарплаты -Permission512=Создать/изменить зарплаты +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Удалить зарплаты Permission517=Экспорт зарплат Permission520=Открыть ссуды @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=Иvпорт MySQL ForcedToByAModule= Это правило вынуждены %s на активированный модуль -PreviousDumpFiles=Наличие резервной копии базы данных дамп файлы +PreviousDumpFiles=Generated database backup files WeekStartOnDay=Первый день недели RunningUpdateProcessMayBeRequired=Запуск процесса обновления, как представляется, требуется (версия программы отличается от %s %s версия базы данных) YouMustRunCommandFromCommandLineAfterLoginToUser=Вы должны запустить эту команду из командной строки после Войти в оболочку с пользователем %s. diff --git a/htdocs/langs/ru_RU/banks.lang b/htdocs/langs/ru_RU/banks.lang index b247839b57d..c9348e14e2e 100644 --- a/htdocs/langs/ru_RU/banks.lang +++ b/htdocs/langs/ru_RU/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/ru_RU/bills.lang b/htdocs/langs/ru_RU/bills.lang index dfd4ef1c77b..1b35ef196d1 100644 --- a/htdocs/langs/ru_RU/bills.lang +++ b/htdocs/langs/ru_RU/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Карточка счета-фактуры PredefinedInvoices=Предопределенные Счета-фактуры Invoice=Счёт +PdfInvoiceTitle=Счёт Invoices=Счета-фактуры InvoiceLine=Строка счета-фактуры InvoiceCustomer=Счёт клиента diff --git a/htdocs/langs/ru_RU/compta.lang b/htdocs/langs/ru_RU/compta.lang index f0d4cb004ea..aa8fae8e615 100644 --- a/htdocs/langs/ru_RU/compta.lang +++ b/htdocs/langs/ru_RU/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Клонировать для следующего месяца diff --git a/htdocs/langs/ru_RU/errors.lang b/htdocs/langs/ru_RU/errors.lang index 2e549a57b68..7084f71231c 100644 --- a/htdocs/langs/ru_RU/errors.lang +++ b/htdocs/langs/ru_RU/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/ru_RU/install.lang b/htdocs/langs/ru_RU/install.lang index 0b4676019e7..f32ccc53804 100644 --- a/htdocs/langs/ru_RU/install.lang +++ b/htdocs/langs/ru_RU/install.lang @@ -53,10 +53,10 @@ AdminLogin=Логин Dolibarr для администратора базы да PasswordAgain=Введите пароль еще раз AdminPassword=Пароль Dolibarr для администратора базы данных. Держите пустым, если вы подключаетесь в анонимном CreateDatabase=Создание базы данных -CreateUser=Создать пользователя +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=База данных - Superuser доступа CheckToCreateDatabase=Флажок, если база данных не существует, и должен быть создан.
    В этом случае, вы должны заполнить логин и пароль для учетной записи суперпользователя в нижней части этой страницы. -CheckToCreateUser=Флажок, если логин не существует и должна быть создана.
    В этом случае, вы должны заполнить логин и пароль для учетной записи суперпользователя в нижней части этой страницы. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Войти на пользователя разрешается создавать новые базы данных и новых пользователей, бесполезны, если ваша база данных, и ваша база данных логин уже существует (например, когда вы Хостинг провайдер веб-хостинга). KeepEmptyIfNoPassword=Оставьте пустым, если пользователь не имеет пароля (избежать этого) SaveConfigurationFile=Сохранить значения diff --git a/htdocs/langs/ru_RU/main.lang b/htdocs/langs/ru_RU/main.lang index 42ea246c7d2..4878b1a1be1 100644 --- a/htdocs/langs/ru_RU/main.lang +++ b/htdocs/langs/ru_RU/main.lang @@ -20,7 +20,7 @@ FormatHourShortDuration=%H:%M FormatDateTextShort=%d %b %Y FormatDateText=%d %B %Y FormatDateHourShort=%d.%m.%Y %H:%M -FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p +FormatDateHourSecShort=%d.%m.%Y %I:%M:%S %p FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M DatabaseConnection=Подключение к базе данных @@ -73,9 +73,10 @@ Apply=Применить BackgroundColorByDefault=Цвет фона по умолчанию FileRenamed=Файл успешно переименован FileGenerated=Файл успешно создан -FileSaved=The file was successfully saved +FileSaved=Файл сохранен FileUploaded=Файл успешно загружен -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=Файл(ы) успешно загружены +FilesDeleted=Файл(ы) успешно удалены FileWasNotUploaded=Файл выбран как вложение, но пока не загружен. Для этого нажмите "Вложить файл". NbOfEntries=Кол-во записей GoToWikiHelpPage=Читать интернет-справку (необходим доступ к Интернету) @@ -196,6 +197,7 @@ Parameter=Параметр Parameters=Параметры Value=Значение PersonalValue=Личное значение +NewObject=Новый %s NewValue=Новое значение CurrentValue=Текущее значение Code=Код @@ -360,7 +362,7 @@ TotalLT1ES=Всего RE TotalLT2ES=Всего IRPF HT=Без налога TTC=Вкл-я налог -INCT=Inc. all taxes +INCT=включая все налоги VAT=НДС VATs=Торговые сборы LT1ES=RE @@ -369,8 +371,8 @@ VATRate=Ставка НДС Average=Среднее Sum=Сумма Delta=Разница -Module=Module/Application -Modules=Modules/Applications +Module=Модуль/Приложение +Modules=Модули/Приложения Option=Опция List=Список FullList=Полный список @@ -441,6 +443,7 @@ Reporting=Отчет Reportings=Отчеты Draft=Черновик Drafts=Черновики +StatusInterInvoiced= Validated=Подтверждено Opened=Открытые New=Новый @@ -614,8 +617,8 @@ PartialWoman=Частичное TotalWoman=Всего NeverReceived=Никогда не получено Canceled=Отменено -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries -YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s +YouCanChangeValuesForThisListFromDictionarySetup=Можно изменить содержание этого списка в Главная - Настройка - Словари +YouCanChangeValuesForThisListFrom=Можно изменить значения этого списка из меню %s YouCanSetDefaultValueInModuleSetup=Вы можете настроить значение по-умолчанию используемое при создании новой записи в модуле Настройка Color=Цвет Documents=Связанные файлы @@ -651,7 +654,7 @@ FreeLineOfType=Свободная запись типа CloneMainAttributes=Клонирование объекта с его основными атрибутами PDFMerge=Слияние PDF Merge=Слияние -DocumentModelStandardPDF=Standard PDF template +DocumentModelStandardPDF=Стандартные PDF-шаблоны PrintContentArea=Показать страницу для печати области основного содержимого MenuManager=Менеджер меню WarningYouAreInMaintenanceMode=Внимание, вы находитесь в режиме обслуживания, так что только пользователю %s разрешено использовать приложение в данный момент. @@ -718,7 +721,7 @@ from=от toward=к Access=Доступ SelectAction=Выбор действия -SelectTargetUser=Select target user/employee +SelectTargetUser=Выберите конечного пользователя/сотрудника HelpCopyToClipboard=Для копировани в буфер обмена используйте Ctrl+C SaveUploadedFileWithMask=Сохранить файл на сервер под именем "%s" (иначе "%s") OriginFileName=Изначальное имя файла @@ -727,14 +730,16 @@ SetBankAccount=Задать счёт в банке AccountCurrency=Валюта счёта ViewPrivateNote=Посмотреть заметки XMoreLines=%s строк(и) скрыто +ShowMoreLines=Показать больше строк PublicUrl=Публичная ссылка AddBox=Добавить бокс -SelectElementAndClick=Select an element and click %s +SelectElementAndClick=Выберите элемент и нажмите %s PrintFile=Печать файл %s ShowTransaction=Показать транзакцию на банковском счете GoIntoSetupToChangeLogo=Используйте Главная-Настройки-Компании для изменения логотипа или Главная-Настройки-Отображение для того, чтобы его скрыть. Deny=Запретить Denied=Запрещено +ListOf=Список %s ListOfTemplates=Список шаблонов Gender=Пол Genderman=Мужчина @@ -745,8 +750,8 @@ Hello=Здравствуйте Sincerely=С уважением, DeleteLine=Удалить строки ConfirmDeleteLine=Вы точно хотите удалить эту строку? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. +NoPDFAvailableForDocGenAmongChecked=PDF не доступен для документов созданных из выбранных записей +TooManyRecordForMassAction=Выбранно слишком много записей для группового действия. Это действие запрещено для списка состоящего из %s записей. NoRecordSelected=Нет выделенных записей MassFilesArea=Пространство для массовых действий с файлами ShowTempMassFilesArea=Показать область для массовых действий с файлами @@ -766,20 +771,20 @@ Calendar=Календарь GroupBy=Группировка по... ViewFlatList=Вид плоским списком RemoveString=Удалить строку '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Переводы на некоторые языки могут быть выполнены частично или с ошибками. Если вы обнаружите ошибки в переводе, вы можете исправить файлы переводов зарегистрировавшись по ссылке https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Прямая ссылка для загрузки Download=Загрузка ActualizeCurrency=Обновить текущий курс Fiscalyear=Финансовый год ModuleBuilder=Создатель Модуля -SetMultiCurrencyCode=Set currency +SetMultiCurrencyCode=Настройка валюты BulkActions=Массовые действия -ClickToShowHelp=Click to show tooltip help -HR=HR -HRAndBank=HR and Bank -AutomaticallyCalculated=Automatically calculated -TitleSetToDraft=Go back to draft -ConfirmSetToDraft=Are you sure you want to go back to Draft status ? +ClickToShowHelp=Нажмите для отображения подсказок +HR=Кадры +HRAndBank=Кадры и Банк +AutomaticallyCalculated=Автоматический подсчет +TitleSetToDraft=Вернуться к черновику +ConfirmSetToDraft=Вы уверены что хотите вернуть статус Черновик? # Week day Monday=Понедельник Tuesday=Вторник diff --git a/htdocs/langs/ru_RU/modulebuilder.lang b/htdocs/langs/ru_RU/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/ru_RU/modulebuilder.lang +++ b/htdocs/langs/ru_RU/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/ru_RU/multicurrency.lang b/htdocs/langs/ru_RU/multicurrency.lang index 925764f5e37..2c874380908 100644 --- a/htdocs/langs/ru_RU/multicurrency.lang +++ b/htdocs/langs/ru_RU/multicurrency.lang @@ -4,7 +4,8 @@ ErrorAddRateFail=Error in added rate ErrorAddCurrencyFail=Error in added currency ErrorDeleteCurrencyFail=Error delete fail multicurrency_syncronize_error=Synchronisation error: %s -multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate) CurrencyLayerAccount=CurrencyLayer API CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
    Get your API key
    If you use a free account you can't change the currency source (USD by default)
    But if your main currency isn't USD you can use the alternate currency source to force you main currency

    You are limited at 1000 synchronizations per month multicurrency_appId=API key diff --git a/htdocs/langs/ru_RU/orders.lang b/htdocs/langs/ru_RU/orders.lang index 1c62640e54f..a98b3aab15c 100644 --- a/htdocs/langs/ru_RU/orders.lang +++ b/htdocs/langs/ru_RU/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Раздел заказов поставщиков OrderCard=Карточка заказа OrderId=Идентификатор заказа Order=Заказ +PdfOrderTitle=Заказ Orders=Заказы OrderLine=Линия заказа OrderDate=Дата заказа diff --git a/htdocs/langs/ru_RU/other.lang b/htdocs/langs/ru_RU/other.lang index cdbcdd1d9e3..ff2121b3173 100644 --- a/htdocs/langs/ru_RU/other.lang +++ b/htdocs/langs/ru_RU/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/ru_RU/propal.lang b/htdocs/langs/ru_RU/propal.lang index 8dffcce465d..fc913a559fb 100644 --- a/htdocs/langs/ru_RU/propal.lang +++ b/htdocs/langs/ru_RU/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Проект коммерческого предложения ProposalsOpened=Открытые коммерческие предложения Prop=Коммерческие предложения CommercialProposal=Коммерческое предложение +PdfCommercialProposalTitle=Коммерческое предложение ProposalCard=Карточка предложения NewProp=Новое коммерческое предложение NewPropal=Новое предложение diff --git a/htdocs/langs/ru_RU/salaries.lang b/htdocs/langs/ru_RU/salaries.lang index ccfdece0180..2bf334f2ae4 100644 --- a/htdocs/langs/ru_RU/salaries.lang +++ b/htdocs/langs/ru_RU/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Зарплата Salaries=Зарплаты diff --git a/htdocs/langs/ru_RU/website.lang b/htdocs/langs/ru_RU/website.lang index 12f66a3cee3..4cda94f5d7f 100644 --- a/htdocs/langs/ru_RU/website.lang +++ b/htdocs/langs/ru_RU/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/ru_RU/workflow.lang b/htdocs/langs/ru_RU/workflow.lang index bad0679e8eb..fb1fdfe5f7f 100644 --- a/htdocs/langs/ru_RU/workflow.lang +++ b/htdocs/langs/ru_RU/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Установка модуля Рабочих процессов WorkflowDesc=Данный модуль предназначен для изменения поведения автоматических действий в приложении. По умолчанию рабочий процесс открыт (вы можете делать вещи в произвольном порядке). Вы можете включить автоматические действия, которые вам необходимы. ThereIsNoWorkflowToModify=Для активированных модулей нет доступных изменений рабочего процесса. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Автоматически создавать заказ клиента после подписания коммерческого предложения -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Автоматически создавать счет клиента после подписания коммерческого предложения +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Автоматически создавать счет клиента после проверки договора -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Автоматически создавать счет клиента после закрытия заказа клиента -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Классифицировать связанные коммерческие предложения оплаченными, когда заказ клиента обозначен, как оплаченный -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Классифицировать связанные заказы клиента оплаченными, когда счёт клиента оплачен. -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Классифицировать связанные заказы клиента оплаченными, когда счёт клиента подтверждён. -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/sk_SK/accountancy.lang b/htdocs/langs/sk_SK/accountancy.lang index 28b30b5cdb7..fd4570b5720 100644 --- a/htdocs/langs/sk_SK/accountancy.lang +++ b/htdocs/langs/sk_SK/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Stav účtu - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Riadky faktúry na priradenie @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Úspešne priradené k účtovnému účtu NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Počet na priradenie zobrazený na stránku ( maximálne odporúčané : 50 ) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Priradzovať automaticky AutomaticBindingDone=Automatické priradenie dokončené ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Pohyby nie sú vyvážené. Kredit = %S Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Kód Nature=Príroda AccountingJournalType1=Various operation AccountingJournalType2=Predaje @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/sk_SK/admin.lang b/htdocs/langs/sk_SK/admin.lang index bfdb0d8d480..dd5ebc8cb18 100644 --- a/htdocs/langs/sk_SK/admin.lang +++ b/htdocs/langs/sk_SK/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Priestor pre systémové nástroje SystemToolsAreaDesc=Táto oblasť poskytuje správu funkcií. V menu vyberte funkciu, ktorú hľadáte. Purge=Očistiť PurgeAreaDesc=Táto stránka vám umožní zmazať všetky súbory vytvorené alebo uložené Dolibarrom (dočasné súbory alebo všetko v priečinku %s) Použitie tejto voľby nie je nutné. Voľba je určená akoobchádzka pre použiváteľov ktorým poskztovateľ hostingu neumožnuje zmazať súbory generované web servrom -PurgeDeleteLogFile=Zmaztať log file %s definovaný pre Syslog modul ( bez risku straty dát) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Zmazať všetky dočasné súbory (bez risku straty dát) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Odstráňte všetky súbory v adresári %s. Dočasné súbory, ale aj zálohovanie databázy skládky, súbory pripojené k prvkom (tretie strany, faktúry, ...) a vkladajú do modulu ECM, budú vymazané. PurgeRunNow=Vyčistiť teraz PurgeNothingToDelete=Žiadne súbory alebo priečinky na zmazanie PurgeNDirectoriesDeleted=%s súbory alebo adresáre odstránené. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Vyčistiť všetky bezpečnostné udalosti ConfirmPurgeAuditEvents=Určite chcete vyčistiť bezpečnostné udalosti ? Iba bezpečnostné logy budú zmazané GenerateBackup=Vytvoriť zálohu @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=V tomto kroku, môžete poslať balíček použitím tohto nástroja: Vybrať modul +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr aktuálna verzia CallUpdatePage=Choďte na stránku úpravý databázobej štruktúry a dát. %s LastStableVersion= Najnovšia stabilná verzia @@ -535,8 +536,6 @@ Module1120Name=Dodávateľský obchodný návrh Module1120Desc=Vyžiadať dodávateľskú obchodnú ponuku a ceny Module1200Name=Mantis Module1200Desc=Mantis integrácia -Module1400Name=Účtovníctvo -Module1400Desc=Accounting management (double entries) Module1520Name=Generovanie dokumentov Module1520Desc=Masové emailové generovanie dokumentov Module1780Name=Štítky / Kategórie @@ -585,7 +584,7 @@ Module50100Desc=Modul predajné miesta ( POS ) Module50200Name=Paypal Module50200Desc=Modul ponúknuť on-line platby kreditnou kartou stránku s Paypal Module50400Name=Učtovníctvo (pokročilé) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Anketa, Dotazník, Hlasovanie @@ -751,8 +750,10 @@ Permission401=Prečítajte zľavy Permission402=Vytvoriť / upraviť zľavy Permission403=Overiť zľavy Permission404=Odstrániť zľavy -Permission510=Čítať mzdy -Permission512=Vytvoriť/Upraviť mzdy +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Zmazať platy Permission517=Exportovať platy Permission520=Čítať pôžičky @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= Toto pravidlo je nútený %s aktivovaným modulom -PreviousDumpFiles=Dostupné databázové súbory zálohovanie výpisu +PreviousDumpFiles=Generated database backup files WeekStartOnDay=Prvý deň v týždni RunningUpdateProcessMayBeRequired=Spustenie procesu upgradu sa zdá byť potrebná (programy %s verzia sa líši od verzie databázy %s) YouMustRunCommandFromCommandLineAfterLoginToUser=Je nutné spustiť tento príkaz z príkazového riadka po prihlásení do shellu s užívateľskými %s alebo musíte pridať parameter-w na konci príkazového riadku, aby %s heslo. diff --git a/htdocs/langs/sk_SK/banks.lang b/htdocs/langs/sk_SK/banks.lang index 18a122998b9..04d12c06878 100644 --- a/htdocs/langs/sk_SK/banks.lang +++ b/htdocs/langs/sk_SK/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Šek vrátený a faktúra znova otvorená BankAccountModelModule=Šablóny dokumentov pre bankové účty DocumentModelSepaMandate=Šablóny SEPA. Užitočné iba pre krajiny v EEC DocumentModelBan=Šablóna pre tlač strany s BAN informáciami -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/sk_SK/bills.lang b/htdocs/langs/sk_SK/bills.lang index 3c50d388a96..671545e3055 100644 --- a/htdocs/langs/sk_SK/bills.lang +++ b/htdocs/langs/sk_SK/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Faktúra karty PredefinedInvoices=Preddefinované Faktúry Invoice=Faktúra +PdfInvoiceTitle=Faktúra Invoices=Faktúry InvoiceLine=Faktúra linka InvoiceCustomer=Zákazník faktúra diff --git a/htdocs/langs/sk_SK/compta.lang b/htdocs/langs/sk_SK/compta.lang index 91c96839bd6..5977f70ba4c 100644 --- a/htdocs/langs/sk_SK/compta.lang +++ b/htdocs/langs/sk_SK/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/sk_SK/errors.lang b/htdocs/langs/sk_SK/errors.lang index ff9dadd7021..4ed47c88fa3 100644 --- a/htdocs/langs/sk_SK/errors.lang +++ b/htdocs/langs/sk_SK/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/sk_SK/install.lang b/htdocs/langs/sk_SK/install.lang index 18f6746d025..07e1ce5eefa 100644 --- a/htdocs/langs/sk_SK/install.lang +++ b/htdocs/langs/sk_SK/install.lang @@ -53,10 +53,10 @@ AdminLogin=Prihlásenie pre vlastníka databázy Dolibarr. PasswordAgain=Zadajte heslo ešte raz AdminPassword=Heslo pre vlastníka databázy Dolibarr. CreateDatabase=Vytvoriť databázu -CreateUser=Vytvoriť majiteľa +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Databázový server - prístup Superuser CheckToCreateDatabase=Zaškrtnite, ak databáza neexistuje a musí byť vytvorená.
    V tom prípade musíte zadať prihlasovacie meno / heslo pre administrátora v dolnej časti tejto stránky. -CheckToCreateUser=Zaškrtnite, ak vlastník databázy neexistuje a musí byť vytvorený.
    V tomto prípade je nutné zvoliť si prihlasovacie meno a heslo a tiež vyplniť login / heslo administrátora v dolnej časti tejto stránky. Ak toto políčko nie je začiarknuté, vlastník databázy a jeho heslá musia existovať. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Prihlásenie užívateľa oprávneného vytvárať nové databázy alebo nových užívateľov - povinné, ak vaša databáza alebo jej majiteľ ešte neexistuje. KeepEmptyIfNoPassword=Ponechajte prázdne, ak užívateľ nemá heslo (neodporúčané) SaveConfigurationFile=Uložiť hodnoty diff --git a/htdocs/langs/sk_SK/main.lang b/htdocs/langs/sk_SK/main.lang index d5ae6bd5a1e..7df00a49af9 100644 --- a/htdocs/langs/sk_SK/main.lang +++ b/htdocs/langs/sk_SK/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=Súbor sa úspešne nahral -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=Súbor vybraný pre pripojenie, ale ešte nebol nahraný. Kliknite na "Priložiť súbor" za to. NbOfEntries=Nb záznamov GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parameter Parameters=Parametre Value=Hodnota PersonalValue=Osobné hodnota +NewObject=New %s NewValue=Nová hodnota CurrentValue=Súčasná hodnota Code=Kód @@ -441,6 +443,7 @@ Reporting=Hlásenie Reportings=Hlásenie Draft=Návrh Drafts=Dáma +StatusInterInvoiced= Validated=Overené Opened=Otvorení New=Nový @@ -727,6 +730,7 @@ SetBankAccount=Definovať bankový účet AccountCurrency=Mena účtu ViewPrivateNote=Zobraziť poznámky XMoreLines=%s riadk(y/ov) skrytých +ShowMoreLines=Show more lines PublicUrl=Verejné URL AddBox=Pridať box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Choďte na Domov - Nastavenie - Spoločnosť pre zmenu loga, alebo na Domov - Nastavenie - Zobrazenie pre skrytie loga. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Gender Genderman=Man diff --git a/htdocs/langs/sk_SK/modulebuilder.lang b/htdocs/langs/sk_SK/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/sk_SK/modulebuilder.lang +++ b/htdocs/langs/sk_SK/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/sk_SK/orders.lang b/htdocs/langs/sk_SK/orders.lang index 7602a984ec0..ba0bccde91e 100644 --- a/htdocs/langs/sk_SK/orders.lang +++ b/htdocs/langs/sk_SK/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Dodávateľské objednávky OrderCard=Karta objednávky OrderId=ID objednávky Order=Objednávka +PdfOrderTitle=Objednávka Orders=Objednávky OrderLine=Objednať linka OrderDate=Dátum objednávky diff --git a/htdocs/langs/sk_SK/other.lang b/htdocs/langs/sk_SK/other.lang index 9c989b9df04..aeb4ac2ad4a 100644 --- a/htdocs/langs/sk_SK/other.lang +++ b/htdocs/langs/sk_SK/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/sk_SK/propal.lang b/htdocs/langs/sk_SK/propal.lang index 7270e5c3e26..4dae4d9430f 100644 --- a/htdocs/langs/sk_SK/propal.lang +++ b/htdocs/langs/sk_SK/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Navrhnúť obchodné návrhy ProposalsOpened=Otvoriť komerčnú ponuku Prop=Komerčné návrhy CommercialProposal=Komerčné návrh +PdfCommercialProposalTitle=Komerčné návrh ProposalCard=Návrh karty NewProp=Nový obchodný návrh NewPropal=Nový návrh diff --git a/htdocs/langs/sk_SK/salaries.lang b/htdocs/langs/sk_SK/salaries.lang index ed207112a4a..698984051b4 100644 --- a/htdocs/langs/sk_SK/salaries.lang +++ b/htdocs/langs/sk_SK/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Základný účtovný účet pre osobný rozvoj Salary=Mzda Salaries=Mzdy diff --git a/htdocs/langs/sk_SK/website.lang b/htdocs/langs/sk_SK/website.lang index 0a4272f5da0..39a0b48a5cd 100644 --- a/htdocs/langs/sk_SK/website.lang +++ b/htdocs/langs/sk_SK/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Tu vytvorte toľko riadkov kolko rôzných webstránok potrebuj DeleteWebsite=Zmazať webstránku ConfirmDeleteWebsite=Určite chcete zmazať túto web stránku. Všetky podstránka a obsah budú zmazané tiež. WEBSITE_PAGENAME=Meno stránky +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL alebo externý CSS dokument WEBSITE_CSS_INLINE=Obsah CSS -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Knižnica médií -EditCss=Upraviť štýl/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Upraviť menu EditPageMeta=Upraviť Meta EditPageContent=Upraviť obsah Website=Web stránka -Webpage=Web stránka -AddPage=Pridať stránku +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Náhľad webstránky %s nie je dostupný. Najprv musíte pridať stránk. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Stránka '%s' web stránky %s zmazaná -PageAdded=Stránka '%s' pridaná +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=Zobraziť web stránku na novej karte ViewPageInNewTab=Zobraziť stránku na novej karte SetAsHomePage=Nastaviť ako domovskú stránku @@ -28,4 +30,9 @@ ViewWebsiteInProduction=Zobraziť web stránku použitím domovskej URL SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/sk_SK/workflow.lang b/htdocs/langs/sk_SK/workflow.lang index 17fcf817dfa..558dfdac548 100644 --- a/htdocs/langs/sk_SK/workflow.lang +++ b/htdocs/langs/sk_SK/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Workflow modul nastavenia WorkflowDesc=Tento modul vám pomôže nastaviť fingovanie automatických akcií v aplikácií. V základe je postup otvorený ( možete robiť úlohy v poradí v akom chcete) Môžete aktivovať automatické akcie aké chcete. ThereIsNoWorkflowToModify=Úprava postupu nie je možná pri aktivovanom module. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automaticky vytvoriť zákaznícku objednávku po podpísaní obchodného návrhu -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automaticky vytvoriť zákaznícku faktúru po podpísaní obchodného návrhu +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automaticky vytvoriť zákaznícku faktúru po overení zmluvy -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automaticky vytvoriť zákaznícku faktúru po uzavretí zákazníckej objednávky -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Triediť prepojené zdrojový návrh účtoval keď je objednávka zákazníka nastavený na platenú -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Triediť spojené zdroj objednávka zákazníka (y) účtoval, keď je zákazník faktúry nastavený na platené -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Triediť prepojený zdroj objednávky zákazníka (y) účtoval keď je overený zákazníkmi faktúra -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Označiť zdroj ako vyfakturovaný po overení zákazníckej faktúry -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/sl_SI/accountancy.lang b/htdocs/langs/sl_SI/accountancy.lang index 25fbdf7bb69..16a9b068702 100644 --- a/htdocs/langs/sl_SI/accountancy.lang +++ b/htdocs/langs/sl_SI/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=Seznam računovodskih računov +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Razred račun Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Napaka, ne morete izbrisati to računovodsko račun, ker se uporablja -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Koda Nature=Narava AccountingJournalType1=Various operation AccountingJournalType2=Prodaja @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Izvoz -Export=Izvoz ExportDraftJournal=Export draft journal Modelcsv=Model izvoza OptionsDeactivatedForThisExportModel=Za ta izvozni model so opcije deaktivirane diff --git a/htdocs/langs/sl_SI/admin.lang b/htdocs/langs/sl_SI/admin.lang index d237c070f90..11130cd0f88 100644 --- a/htdocs/langs/sl_SI/admin.lang +++ b/htdocs/langs/sl_SI/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Področje sistemskih orodij SystemToolsAreaDesc=To področje omogoča administrativne funkcije. Preko menija izberite funkcijo, ki jo iščete. Purge=Počisti PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Izbris vseh datotek v mapi %s. Začasne datoteke, kot tudi datoteke, ki so pripete elementom (partnerji, fakture, ...) in naložene v modul ECM, se bodo izbrisale. PurgeRunNow=Počisti zdaj PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=Izbrisane mape ali datoteke %s. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Počisti vse dogodke ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Generiraj varnostno kopijo @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=V tem koraku lahko pošljete paket s pomočjo tega orodja: Izberite datoteko modula +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Trenutna različica Dolibarr CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Komercialna ponudba dobavitelja Module1120Desc=Zahteva za komercialno ponudbo in cene dobavitelja Module1200Name=Mantis Module1200Desc=Mantis integracija -Module1400Name=Računovodstvo -Module1400Desc=Accounting management (double entries) Module1520Name=Generiranje dokumenta Module1520Desc=Generiranje dokumenta za masovno pošto Module1780Name=Značke/kategorije @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Modul za omogočanje strani za spletno plačevanje s kreditno kartico - Paypal Module50400Name=Računovodstvo (napredno) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=Tiskanje IPP Module54000Desc=Direktno tiskanje (brez odpiranja dokumenta) z uporabo Cups IPP vmesnika (tiskalnik mora biti viden na strežniku in nameščen mora biti CUPS ). Module55000Name=Izberi, oceni ali glasuj @@ -751,8 +750,10 @@ Permission401=Branje popustov Permission402=Kreiranje/spreminjanje popustov Permission403=Potrjevanje popustov Permission404=Brisanje popustov -Permission510=Branje plač -Permission512=Ustvari/spremeni plače +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Izbris plač Permission517=Izvoz plač Permission520=Branje posojil @@ -1057,7 +1058,7 @@ RestoreDesc2=Arhivsko datoteko mape z dokumenti (na primer zip datoteko) razpaki RestoreDesc3=Obnovite podatke iz arhivske dump datoteke v bazo podatkov nove Dolibarr instalacije ali v bazo podatkov trenutne instalacije (%s). Pozor, ko je obnova končana, morate za ponovno prijavo uporabiti uporabniško ime/geslo, kakršno je veljalo v trenutku izdelave varnostne kopije. Za obnovitev varnostne kopije baze v trenutno instalacijo, lahko sledite tem napotkom. RestoreMySQL=Uvoz MySQL ForcedToByAModule= To pravilo je postavljeno v %s z aktivnim modulom -PreviousDumpFiles=Datoteke z varnostnimi kopijami podatkovnih baz, ki so na voljo. +PreviousDumpFiles=Generated database backup files WeekStartOnDay=Prvi dan v tednu RunningUpdateProcessMayBeRequired=Kaže, da bo potrebno pognati postopek nadgradnje (Različica programa %s je drugačna, kot različica baze podatkov %s) YouMustRunCommandFromCommandLineAfterLoginToUser=Ta ukaz morate pognati iz ukazne vrstice po prijavi v sistem kot uporabnik %s. diff --git a/htdocs/langs/sl_SI/banks.lang b/htdocs/langs/sl_SI/banks.lang index a010eb3befb..71272bb6c9f 100644 --- a/htdocs/langs/sl_SI/banks.lang +++ b/htdocs/langs/sl_SI/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Vrnjen ček in ponovno odprti računi BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/sl_SI/bills.lang b/htdocs/langs/sl_SI/bills.lang index 97f147e4da1..cee8a633c17 100644 --- a/htdocs/langs/sl_SI/bills.lang +++ b/htdocs/langs/sl_SI/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Kartica računa PredefinedInvoices=Vnaprej določeni računi Invoice=Račun +PdfInvoiceTitle=Račun Invoices=Računi InvoiceLine=Vrstica računa InvoiceCustomer=Račun za kupca diff --git a/htdocs/langs/sl_SI/compta.lang b/htdocs/langs/sl_SI/compta.lang index 58cc2377639..c8da6efd0df 100644 --- a/htdocs/langs/sl_SI/compta.lang +++ b/htdocs/langs/sl_SI/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/sl_SI/errors.lang b/htdocs/langs/sl_SI/errors.lang index af30bdb6101..6303290c348 100644 --- a/htdocs/langs/sl_SI/errors.lang +++ b/htdocs/langs/sl_SI/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/sl_SI/install.lang b/htdocs/langs/sl_SI/install.lang index 9787eb98bf6..0e1e73701e3 100644 --- a/htdocs/langs/sl_SI/install.lang +++ b/htdocs/langs/sl_SI/install.lang @@ -53,10 +53,10 @@ AdminLogin=Uporabniško ime za lastnika Dolibarr baze podatkov. PasswordAgain=Ponoven vnos gesla AdminPassword=Geslo za lastnika Dolibarr baze podatkov. CreateDatabase=Ustvari bazo podatkov -CreateUser=Ustvari uporabnika +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Strežnik za bazo podatkov – »Super uporabnik« dostop CheckToCreateDatabase=Označite kvadratek, če baza podatkov ne obstaja in jo je potrebno ustvariti.
    V tem primeru morate vnesti uporabniško ime/geslo za račun »Super uporabnik« na dnu te strani. -CheckToCreateUser=Označite kvadratek, če lastnik ne obstaja in ga je potrebno ustvariti.
    V tem primeru morate izbrati njegovo uporabniško ime in geslo in vnesti tudi uporabniško ime/geslo za račun »Super uporabnik« na dnu te strani. Če ta kvadratek ni označen, morata obstajati lastnikova baza podatkov in njegovo geslo. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Uporabniško ime uporabnika omogoča kreiranje nove baze podatkov ali novega uporabnika, razen če vaša baza podatkov in vaše uporabniško ime že obstajata (na primer če gostujete pri spletnem ponudniku). KeepEmptyIfNoPassword=Pustite prazno, če uporabnik nima gesla (temu se izogibajte) SaveConfigurationFile=Shrani vrednosti diff --git a/htdocs/langs/sl_SI/main.lang b/htdocs/langs/sl_SI/main.lang index ac156270f24..90042fdb753 100644 --- a/htdocs/langs/sl_SI/main.lang +++ b/htdocs/langs/sl_SI/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=Datoteka je bila uspešno naložena -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=Izbrana je bila datoteka za prilogo, vendar še ni dodana. Kliknite na "Pripni datoteko". NbOfEntries=Število vpisov GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parameter Parameters=Parametri Value=Vrednost PersonalValue=Osebna vrednost +NewObject=New %s NewValue=Nova vrednost CurrentValue=Trenutna vrednost Code=Koda @@ -441,6 +443,7 @@ Reporting=Poročilo Reportings=Poročila Draft=Osnutek Drafts=Osnutki +StatusInterInvoiced= Validated=Potrjen Opened=Odprt New=Nov @@ -727,6 +730,7 @@ SetBankAccount=Določi bančni račun AccountCurrency=Valuta računa ViewPrivateNote=Glej opombe XMoreLines=%s zasenčena(ih) vrstic +ShowMoreLines=Show more lines PublicUrl=Javni URL AddBox=Dodaj okvir SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Pojdite na Domov - Nastavitve - Podjetje za spremembo logotipa oz. na Domov - Nastavitve - Prikaz za njegovo skritje. Deny=Zavrni Denied=Zavrnjen +ListOf=List of %s ListOfTemplates=Seznam predlog Gender=Spol Genderman=Moški diff --git a/htdocs/langs/sl_SI/modulebuilder.lang b/htdocs/langs/sl_SI/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/sl_SI/modulebuilder.lang +++ b/htdocs/langs/sl_SI/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/sl_SI/orders.lang b/htdocs/langs/sl_SI/orders.lang index 9855d34cb9d..a4a2f8ee754 100644 --- a/htdocs/langs/sl_SI/orders.lang +++ b/htdocs/langs/sl_SI/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Področje naročil pri dobaviteljih OrderCard=Kartica naročila OrderId=ID naročila Order=Naročilo +PdfOrderTitle=Naročilo Orders=Naročila OrderLine=Vrstica naročila OrderDate=Datum naročila diff --git a/htdocs/langs/sl_SI/other.lang b/htdocs/langs/sl_SI/other.lang index 75294be8f09..dca606a9648 100644 --- a/htdocs/langs/sl_SI/other.lang +++ b/htdocs/langs/sl_SI/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/sl_SI/propal.lang b/htdocs/langs/sl_SI/propal.lang index 4c39e9216aa..739977cc097 100644 --- a/htdocs/langs/sl_SI/propal.lang +++ b/htdocs/langs/sl_SI/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Osnutek komercialnih ponudb ProposalsOpened=Odprte komercialne ponudbe Prop=Komercialne ponudbe CommercialProposal=Komercialna ponudba +PdfCommercialProposalTitle=Komercialna ponudba ProposalCard=Kartica ponudbe NewProp=Nova komercialna ponudba NewPropal=Nova ponudba diff --git a/htdocs/langs/sl_SI/salaries.lang b/htdocs/langs/sl_SI/salaries.lang index f706435cd09..b376b9e755f 100644 --- a/htdocs/langs/sl_SI/salaries.lang +++ b/htdocs/langs/sl_SI/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Plača Salaries=Plače diff --git a/htdocs/langs/sl_SI/website.lang b/htdocs/langs/sl_SI/website.lang index b44e52d459e..f7ab9737ed5 100644 --- a/htdocs/langs/sl_SI/website.lang +++ b/htdocs/langs/sl_SI/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Vnesite toliko zapisov, kot želite imeti spletnih strani. Za DeleteWebsite=Izbriši spletno stran ConfirmDeleteWebsite=Ali ste prepričani, da želite izbrisati to spletno starn. Vse strani in vsebina bodo pobrisani. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/sl_SI/workflow.lang b/htdocs/langs/sl_SI/workflow.lang index 52363a5ae0a..c3cadeb50ab 100644 --- a/htdocs/langs/sl_SI/workflow.lang +++ b/htdocs/langs/sl_SI/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Nastavitev modula poteka dela WorkflowDesc=Ta modul je namenjen prilagajanju nastavitev samodejnih akcij. Privzeto je, da je modul odprt, kar pomeni, da lahko izvajate akcije v poljubnem vrstnem redu. Z nastavitvami delovnih tokov lahko določate zaporedje aktivnosti. ThereIsNoWorkflowToModify=Prilagajanje poteka dela za aktivirane module ni na voljo. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Po potrditvi komercialne ponudbe samodejno ustvari naročilo kupca. -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Samodejno ustvari račun za kupca, po potrditvi komercialne ponudbe . +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Samodejno ustvari račun za kupca, po validaciji pogodbe. -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Samodejno ustvari račun za kupca, ko naročilo kupca dobi status "zaprto". -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Označi povezano izvorno ponudbo kot "zaračunano", ko naročilo kupca dobi status "plačano" -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Označi povezano izvorno naročilo (ali več naročil) kupca kot "zaračunano", ko račun za kupca dobi status "plačano" -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Označi povezano izvorno naročilo (ali več naročil) kupca kot "zaračunano", ko naročilo kupca dobi status "potrjeno" -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Označi povezane ponudbe kot "zaračunano", ko je naročilo kupca "potrjeno". -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Označi povezana naročila kot "odpremljena", ko je odprema potrjena in ko je odpremljena količina enaka naročilu. +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Samodejno generiranje AutomaticClassification=Samodejno spreminjanje statusa diff --git a/htdocs/langs/sq_AL/accountancy.lang b/htdocs/langs/sq_AL/accountancy.lang index 1e586283ee1..a066395fef5 100644 --- a/htdocs/langs/sq_AL/accountancy.lang +++ b/htdocs/langs/sq_AL/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Code Nature=Nature AccountingJournalType1=Various operation AccountingJournalType2=Sales @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/sq_AL/admin.lang b/htdocs/langs/sq_AL/admin.lang index a30a9ce25f2..89596b2474e 100644 --- a/htdocs/langs/sq_AL/admin.lang +++ b/htdocs/langs/sq_AL/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=System tools area SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. Purge=Purge PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. PurgeRunNow=Purge now PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s files or directories deleted. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Purge all security events ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Generate backup @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Read discounts Permission402=Create/modify discounts Permission403=Validate discounts Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files +PreviousDumpFiles=Generated database backup files WeekStartOnDay=First day of week RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. diff --git a/htdocs/langs/sq_AL/banks.lang b/htdocs/langs/sq_AL/banks.lang index 92881fba45a..9e2f7a94d82 100644 --- a/htdocs/langs/sq_AL/banks.lang +++ b/htdocs/langs/sq_AL/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/sq_AL/bills.lang b/htdocs/langs/sq_AL/bills.lang index 810686d3c7d..ee793f4c5cf 100644 --- a/htdocs/langs/sq_AL/bills.lang +++ b/htdocs/langs/sq_AL/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Invoice card PredefinedInvoices=Predefined Invoices Invoice=Faturë +PdfInvoiceTitle=Faturë Invoices=Faturat InvoiceLine=Invoice line InvoiceCustomer=Customer invoice diff --git a/htdocs/langs/sq_AL/compta.lang b/htdocs/langs/sq_AL/compta.lang index 94a3bd671ef..f8b5b683cb8 100644 --- a/htdocs/langs/sq_AL/compta.lang +++ b/htdocs/langs/sq_AL/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/sq_AL/errors.lang b/htdocs/langs/sq_AL/errors.lang index feada2d1b5a..853a34b4bb4 100644 --- a/htdocs/langs/sq_AL/errors.lang +++ b/htdocs/langs/sq_AL/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/sq_AL/install.lang b/htdocs/langs/sq_AL/install.lang index a3533a31277..5b6ba06e78a 100644 --- a/htdocs/langs/sq_AL/install.lang +++ b/htdocs/langs/sq_AL/install.lang @@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner. PasswordAgain=Retype password a second time AdminPassword=Password for Dolibarr database owner. CreateDatabase=Create database -CreateUser=Create owner +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Database server - Superuser access CheckToCreateDatabase=Check box if database does not exist and must be created.
    In this case, you must fill the login/password for superuser account at the bottom of this page. -CheckToCreateUser=Check box if database owner does not exist and must be created.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists. KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this) SaveConfigurationFile=Save values diff --git a/htdocs/langs/sq_AL/main.lang b/htdocs/langs/sq_AL/main.lang index 5e4a47c8902..81f3eb5fd1d 100644 --- a/htdocs/langs/sq_AL/main.lang +++ b/htdocs/langs/sq_AL/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=The file was successfully uploaded -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parameter Parameters=Parameters Value=Value PersonalValue=Personal value +NewObject=New %s NewValue=New value CurrentValue=Current value Code=Code @@ -441,6 +443,7 @@ Reporting=Reporting Reportings=Reporting Draft=Draft Drafts=Drafts +StatusInterInvoiced= Validated=Validated Opened=Hapur New=New @@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account AccountCurrency=Account Currency ViewPrivateNote=View notes XMoreLines=%s line(s) hidden +ShowMoreLines=Show more lines PublicUrl=Public URL AddBox=Add box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Gjinia Genderman=Man diff --git a/htdocs/langs/sq_AL/modulebuilder.lang b/htdocs/langs/sq_AL/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/sq_AL/modulebuilder.lang +++ b/htdocs/langs/sq_AL/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/sq_AL/orders.lang b/htdocs/langs/sq_AL/orders.lang index 851613e7959..f1d1a54f369 100644 --- a/htdocs/langs/sq_AL/orders.lang +++ b/htdocs/langs/sq_AL/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area OrderCard=Order card OrderId=Order Id Order=Order +PdfOrderTitle=Order Orders=Orders OrderLine=Order line OrderDate=Order date diff --git a/htdocs/langs/sq_AL/other.lang b/htdocs/langs/sq_AL/other.lang index 1b0b6a5894b..ea7d6761c39 100644 --- a/htdocs/langs/sq_AL/other.lang +++ b/htdocs/langs/sq_AL/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/sq_AL/propal.lang b/htdocs/langs/sq_AL/propal.lang index 0e3dbc1fb23..4ef5664a40d 100644 --- a/htdocs/langs/sq_AL/propal.lang +++ b/htdocs/langs/sq_AL/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal +PdfCommercialProposalTitle=Commercial proposal ProposalCard=Proposal card NewProp=New commercial proposal NewPropal=New proposal diff --git a/htdocs/langs/sq_AL/salaries.lang b/htdocs/langs/sq_AL/salaries.lang index 522bf0a65d7..7e0c80d3380 100644 --- a/htdocs/langs/sq_AL/salaries.lang +++ b/htdocs/langs/sq_AL/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries diff --git a/htdocs/langs/sq_AL/website.lang b/htdocs/langs/sq_AL/website.lang index b3b05ee6cc9..98577e0de5e 100644 --- a/htdocs/langs/sq_AL/website.lang +++ b/htdocs/langs/sq_AL/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/sq_AL/workflow.lang b/htdocs/langs/sq_AL/workflow.lang index 54246856e9b..8021fb9b198 100644 --- a/htdocs/langs/sq_AL/workflow.lang +++ b/htdocs/langs/sq_AL/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Workflow module setup WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/sr_RS/accountancy.lang b/htdocs/langs/sr_RS/accountancy.lang index 412d0307859..286cca795ab 100644 --- a/htdocs/langs/sr_RS/accountancy.lang +++ b/htdocs/langs/sr_RS/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Stanje računa - +ObjectsRef=Source object ref CAHTF=Ukupna nabavka bez PDV-a TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finansijski izveštaji ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finansijski izveštaji uključujući sve vrste uplata preko bankovnog računa -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=Lista računovodstvenih naloga +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Klasa računa Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Greška, ne možete opbrisati ovaj računovodstveni nalog, jer je u upotrebi -MvtNotCorrectlyBalanced=Transakcija nema dobar balans. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Kod Nature=Priroda AccountingJournalType1=Various operation AccountingJournalType2=Prodaje @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Izvozi -Export=Izvoz ExportDraftJournal=Export draft journal Modelcsv=Model izvoza OptionsDeactivatedForThisExportModel=Za ovaj model izvoza, opcije su deaktivirane diff --git a/htdocs/langs/sr_RS/admin.lang b/htdocs/langs/sr_RS/admin.lang index 98d86dc62d9..f7376a979f0 100644 --- a/htdocs/langs/sr_RS/admin.lang +++ b/htdocs/langs/sr_RS/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=System tools area SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. Purge=Purge PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. PurgeRunNow=Purge now PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s files or directories deleted. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Purge all security events ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Generate backup @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Anketa ili Glasanje @@ -751,8 +750,10 @@ Permission401=Read discounts Permission402=Create/modify discounts Permission403=Validate discounts Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files +PreviousDumpFiles=Generated database backup files WeekStartOnDay=First day of week RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. diff --git a/htdocs/langs/sr_RS/banks.lang b/htdocs/langs/sr_RS/banks.lang index 549c5fa073e..294837d7c2a 100644 --- a/htdocs/langs/sr_RS/banks.lang +++ b/htdocs/langs/sr_RS/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Ček vraćen i faktura ponovo otvorena BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/sr_RS/bills.lang b/htdocs/langs/sr_RS/bills.lang index 347f5de446c..8c093340004 100644 --- a/htdocs/langs/sr_RS/bills.lang +++ b/htdocs/langs/sr_RS/bills.lang @@ -5,13 +5,13 @@ BillsCustomers=Fakture klijenata BillsCustomer=Račun kupca BillsSuppliers=Fakture dobavljača BillsCustomersUnpaid=Neplaćene fakture klijenta -BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s +BillsCustomersUnpaidForCompany=Neplaćene fakture klijenta za %s BillsSuppliersUnpaid=Neplaćene fakture dobavljača -BillsSuppliersUnpaidForCompany=Unpaid supplier invoices for %s +BillsSuppliersUnpaidForCompany=Neplaćene fakture dobavljača %s BillsLate=Zakasnele uplate BillsStatistics=Statistika računa kupaca BillsStatisticsSuppliers=Statistika računa dobavljača -DisabledBecauseNotErasable=Disabled because cannot be erased +DisabledBecauseNotErasable=Onemogućeno jer ne može biti izbrisano InvoiceStandard=Standardni račun InvoiceStandardAsk=Standardni račun InvoiceStandardDesc=Ovaj tip računa je uobičajen @@ -38,13 +38,14 @@ CorrectInvoice=Ispravan račun %s CorrectionInvoice=Ispravka računa UsedByInvoice=Koristi se za plaćanje računa %s ConsumedBy=Potrošač -NotConsumed=Ne potrošeno +NotConsumed=Nije potrošeno NoReplacableInvoice=Nema računa koji se mogu zameniti NoInvoiceToCorrect=Nema računa za korekciju InvoiceHasAvoir=Was source of one or several credit notes CardBill=Kartica računa PredefinedInvoices=Predefinisani računi Invoice=Račun +PdfInvoiceTitle=Račun Invoices=Računi InvoiceLine=Linija na računu InvoiceCustomer=Račun kupca @@ -62,7 +63,7 @@ PaymentsBack=Refundiranja paymentInInvoiceCurrency=in invoices currency PaidBack=Refundirano DeletePayment=Obriši plaćanje -ConfirmDeletePayment=Are you sure you want to delete this payment? +ConfirmDeletePayment=Da li ste sigurni da želite da obrišete ovu uplatu? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
    The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Plaćanja dobavljačima ReceivedPayments=Primljene uplate @@ -103,7 +104,7 @@ SearchACustomerInvoice=Traži račun kupca SearchASupplierInvoice=Traži račun dobavljača CancelBill=Otkaži račun SendRemindByMail=Pošalji podsetnik Emailom -DoPayment=Enter payment +DoPayment=Unesite uplatu DoPaymentBack=Enter refund ConvertToReduc=Konvertuj u budući popust ConvertExcessReceivedToReduc=Convert excess received into future discount @@ -112,27 +113,27 @@ EnterPaymentDueToCustomer=Uplatiti zbog kupca DisabledBecauseRemainderToPayIsZero=Onemogući jer je preostali iznos nula PriceBase=Osnovna cena BillStatus=Status računa -StatusOfGeneratedInvoices=Status of generated invoices +StatusOfGeneratedInvoices=Status generisanih računa BillStatusDraft=Nacrt (treba da se potvrdi) BillStatusPaid=Plaćeno -BillStatusPaidBackOrConverted=Credit note refund or converted into discount +BillStatusPaidBackOrConverted=Knjižno odobrenje refundirano ili konvertovano u popust BillStatusConverted=Plaćeno (spremno za konačni račun) BillStatusCanceled=Napušteno BillStatusValidated=Potvrdjeno (potrebno izvršiti plaćanje) BillStatusStarted=Započeto BillStatusNotPaid=Nije plaćeno -BillStatusNotRefunded=Not refunded +BillStatusNotRefunded=Nije refundirano BillStatusClosedUnpaid=Zatvoreno (neplaćeno) BillStatusClosedPaidPartially=Plaćeno (delimično) BillShortStatusDraft=Nacrt BillShortStatusPaid=Plaćeno -BillShortStatusPaidBackOrConverted=Refund or converted +BillShortStatusPaidBackOrConverted=Refundirano ili konvertovano BillShortStatusConverted=Plaćeno BillShortStatusCanceled=Napušteno BillShortStatusValidated=Potvrdjeno BillShortStatusStarted=Započeto BillShortStatusNotPaid=Nije plaeno -BillShortStatusNotRefunded=Not refunded +BillShortStatusNotRefunded=Nije refundirano BillShortStatusClosedUnpaid=Zatvoreno BillShortStatusClosedPaidPartially=Plaćeno (delimično) PaymentStatusToValidShort=Za potvrdu @@ -153,8 +154,8 @@ NoQualifiedRecurringInvoiceTemplateFound=No recurring template invoice qualified FoundXQualifiedRecurringInvoiceTemplate=Found %s recurring template invoice(s) qualified for generation. NotARecurringInvoiceTemplate=Not a recurring template invoice NewBill=Novi račun -LastBills=Latest %s invoices -LastCustomersBills=Latest %s customer invoices +LastBills=Najnoviji %s računi +LastCustomersBills=Najnoviji %s računi klijenta LastSuppliersBills=Latest %s supplier invoices AllBills=Svi računi OtherBills=Drugi računi @@ -162,14 +163,14 @@ DraftBills=Računi u statusu "nacrt" CustomersDraftInvoices=Customer draft invoices SuppliersDraftInvoices=Supplier draft invoices Unpaid=Neplaćeno -ConfirmDeleteBill=Are you sure you want to delete this invoice? -ConfirmValidateBill=Are you sure you want to validate this invoice with reference %s? +ConfirmDeleteBill=Da li ste sigurni da želite da obrišete ovaj račun? +ConfirmValidateBill=Da li ste sigurni da želite da potvrdite ovaj račun sa brojem %s? ConfirmUnvalidateBill=Are you sure you want to change invoice %s to draft status? -ConfirmClassifyPaidBill=Are you sure you want to change invoice %s to status paid? -ConfirmCancelBill=Are you sure you want to cancel invoice %s? -ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'? -ConfirmClassifyPaidPartially=Are you sure you want to change invoice %s to status paid? -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice? +ConfirmClassifyPaidBill=Da li ste sigurni da želite da promeni status računa %s u status plaćen? +ConfirmCancelBill=Da li ste sigurni da želite da otkažete račun %s? +ConfirmCancelBillQuestion=Zašto želite da klasifikujete ovaj račun kao 'napušten'? +ConfirmClassifyPaidPartially=Da li ste sigurni da želite da promeni status računa %s u status plaćen? +ConfirmClassifyPaidPartiallyQuestion=Ovaj račun nije plaćen u celosti. Iz kojih razloga želite da zatvorite ovaj račun? ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid (%s %s) is a discount granted because payment was made before term. I regularise the VAT with a credit note. ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid (%s %s) is a discount granted because payment was made before term. I accept to lose the VAT on this discount. ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid (%s %s) is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note. @@ -186,7 +187,7 @@ ConfirmClassifyAbandonReasonOther=Other ConfirmClassifyAbandonReasonOtherDesc=This choice will be used in all other cases. For example because you plan to create a replacing invoice. ConfirmCustomerPayment=Do you confirm this payment input for %s %s? ConfirmSupplierPayment=Do you confirm this payment input for %s %s? -ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated. +ConfirmValidatePayment=Da li ste sigurni da želite da potvrdite ovu uplatu? Kada je uplata potvrdjena, promene nisu moguće. ValidateBill=Validate invoice UnvalidateBill=Unvalidate invoice NumberOfBills=Nb of invoices @@ -207,7 +208,7 @@ AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down p Abandoned=Abandoned RemainderToPay=Remaining unpaid RemainderToTake=Remaining amount to take -RemainderToPayBack=Remaining amount to refund +RemainderToPayBack=Preostali iznos za refundiranje Rest=Pending AmountExpected=Amount claimed ExcessReceived=Excess received @@ -282,8 +283,8 @@ NewRelativeDiscount=New relative discount NoteReason=Note/Reason ReasonDiscount=Reason DiscountOfferedBy=Granted by -DiscountStillRemaining=Discounts available -DiscountAlreadyCounted=Discounts already consumed +DiscountStillRemaining=Dostupni popusti +DiscountAlreadyCounted=Popusti su već iskorišćeni BillAddress=Bill address HelpEscompte=This discount is a discount granted to customer because its payment was made before term. HelpAbandonBadCustomer=This amount has been abandoned (customer said to be a bad customer) and is considered as an exceptional loose. @@ -302,7 +303,7 @@ RemoveDiscount=Remove discount WatermarkOnDraftBill=Watermark on draft invoices (nothing if empty) InvoiceNotChecked=No invoice selected CloneInvoice=Clone invoice -ConfirmCloneInvoice=Are you sure you want to clone this invoice %s? +ConfirmCloneInvoice=Da li ste sigurni da želite da napravite kopiju ovog računa %s? DisabledBecauseReplacedInvoice=Action disabled because invoice has been replaced DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here. NbOfPayments=Nb of payments @@ -310,7 +311,7 @@ SplitDiscount=Split discount in two ConfirmSplitDiscount=Are you sure you want to split this discount of %s %s into 2 lower discounts? TypeAmountOfEachNewDiscount=Input amount for each of two parts : TotalOfTwoDiscountMustEqualsOriginal=Total of two new discount must be equal to original discount amount. -ConfirmRemoveDiscount=Are you sure you want to remove this discount? +ConfirmRemoveDiscount=Da li ste sigurni da želite da uklonite ovaj popust? RelatedBill=Related invoice RelatedBills=Related invoices RelatedCustomerInvoices=Related customer invoices @@ -323,47 +324,47 @@ PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but PaymentNote=Payment note ListOfPreviousSituationInvoices=List of previous situation invoices ListOfNextSituationInvoices=List of next situation invoices -FrequencyPer_d=Every %s days -FrequencyPer_m=Every %s months -FrequencyPer_y=Every %s years +FrequencyPer_d=Svakih %s dana +FrequencyPer_m=Svakih %s meseci +FrequencyPer_y=Svakih %s godina toolTipFrequency=Examples:
    Set 7, Day: give a new invoice every 7 days
    Set 3, Month: give a new invoice every 3 month -NextDateToExecution=Date for next invoice generation -DateLastGeneration=Date of latest generation -MaxPeriodNumber=Max nb of invoice generation -NbOfGenerationDone=Nb of invoice generation already done +NextDateToExecution=Datum generisanja sledećeg računa +DateLastGeneration=Datum najskorijeg generisanja +MaxPeriodNumber=Max br računa za generisanje +NbOfGenerationDone=Br već generisanih računa MaxGenerationReached=Maximum nb of generations reached -InvoiceAutoValidate=Validate invoices automatically +InvoiceAutoValidate=Potvrdi račune automatski GeneratedFromRecurringInvoice=Generated from template recurring invoice %s -DateIsNotEnough=Date not reached yet +DateIsNotEnough=Datum još nije dospeo InvoiceGeneratedFromTemplate=Invoice %s generated from recurring template invoice %s WarningInvoiceDateInFuture=Warning, the invoice date is higher than current date WarningInvoiceDateTooFarInFuture=Warning, the invoice date is too far from current date # PaymentConditions Statut=Status -PaymentConditionShortRECEP=Due Upon Receipt -PaymentConditionRECEP=Due Upon Receipt +PaymentConditionShortRECEP=Dospeva na plaćanje po prijemu računa +PaymentConditionRECEP=Dospeva na plaćanje po prijemu računa PaymentConditionShort30D=30 days PaymentCondition30D=30 days -PaymentConditionShort30DENDMONTH=30 days of month-end -PaymentCondition30DENDMONTH=Within 30 days following the end of the month +PaymentConditionShort30DENDMONTH=30 dana od kraja tekućeg meseca +PaymentCondition30DENDMONTH=U roku od 30 dana od poslednjeg dana u tekućem mesecu PaymentConditionShort60D=60 days PaymentCondition60D=60 days -PaymentConditionShort60DENDMONTH=60 days of month-end -PaymentCondition60DENDMONTH=Within 60 days following the end of the month +PaymentConditionShort60DENDMONTH=60 dana od kraja tekućeg meseca +PaymentCondition60DENDMONTH=U roku od 60 dana od poslednjeg dana u tekućem mesecu PaymentConditionShortPT_DELIVERY=Delivery PaymentConditionPT_DELIVERY=On delivery PaymentConditionShortPT_ORDER=Narudžbina PaymentConditionPT_ORDER=On order PaymentConditionShortPT_5050=50-50 PaymentConditionPT_5050=50%% in advance, 50%% on delivery -PaymentConditionShort10D=10 days -PaymentCondition10D=10 days -PaymentConditionShort10DENDMONTH=10 days of month-end -PaymentCondition10DENDMONTH=Within 10 days following the end of the month -PaymentConditionShort14D=14 days -PaymentCondition14D=14 days -PaymentConditionShort14DENDMONTH=14 days of month-end -PaymentCondition14DENDMONTH=Within 14 days following the end of the month +PaymentConditionShort10D=10 dana +PaymentCondition10D=10 dana +PaymentConditionShort10DENDMONTH=10 dana od kraja meseca +PaymentCondition10DENDMONTH=U roku od 10 dana od poslednjeg dana u tekućem mesecu +PaymentConditionShort14D=14 dana +PaymentCondition14D=14 dana +PaymentConditionShort14DENDMONTH=14 dana od kraja meseca +PaymentCondition14DENDMONTH=U roku od 14 dana od poslednjeg dana u tekućem mesecu FixAmount=Fix amount VarAmount=Variable amount (%% tot.) # PaymentType @@ -399,7 +400,7 @@ ExtraInfos=Extra infos RegulatedOn=Regulated on ChequeNumber=Check N° ChequeOrTransferNumber=Check/Transfer N° -ChequeBordereau=Check schedule +ChequeBordereau=Proveri raspored ChequeMaker=Izdavač čeka/transfera ChequeBank=Bank of Check CheckBank=Check @@ -433,13 +434,13 @@ ChequeDeposits=Checks deposits Cheques=Checks DepositId=ID depozita NbCheque=Broj čekova -CreditNoteConvertedIntoDiscount=This %s has been converted into %s +CreditNoteConvertedIntoDiscount=Ovo %s je konvertovano u %s UsBillingContactAsIncoiveRecipientIfExist=Use customer billing contact address instead of third party address as recipient for invoices ShowUnpaidAll=Show all unpaid invoices ShowUnpaidLateOnly=Show late unpaid invoices only PaymentInvoiceRef=Payment invoice %s ValidateInvoice=Validate invoice -ValidateInvoices=Validate invoices +ValidateInvoices=Potvrdi račune Cash=Cash Reported=Delayed DisabledBecausePayments=Not possible since there are some payments @@ -503,4 +504,4 @@ ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated au DeleteRepeatableInvoice=Delete template invoice ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice? CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order) -BillCreated=%s bill(s) created +BillCreated=%s račun(a) kreirano diff --git a/htdocs/langs/sr_RS/boxes.lang b/htdocs/langs/sr_RS/boxes.lang index b8ab942f07f..8dfdf2dc0b8 100644 --- a/htdocs/langs/sr_RS/boxes.lang +++ b/htdocs/langs/sr_RS/boxes.lang @@ -26,7 +26,7 @@ BoxTitleLastSuppliers=Latest %s recorded suppliers BoxTitleLastModifiedSuppliers=Latest %s modified suppliers BoxTitleLastModifiedCustomers=Latest %s modified customers BoxTitleLastCustomersOrProspects=Latest %s customers or prospects -BoxTitleLastCustomerBills=Latest %s customer invoices +BoxTitleLastCustomerBills=Najnoviji %s računi klijenta BoxTitleLastSupplierBills=Latest %s supplier invoices BoxTitleLastModifiedProspects=Latest %s modified prospects BoxTitleLastModifiedMembers=Latest %s members diff --git a/htdocs/langs/sr_RS/cashdesk.lang b/htdocs/langs/sr_RS/cashdesk.lang index 183c3c07852..f26d33c3074 100644 --- a/htdocs/langs/sr_RS/cashdesk.lang +++ b/htdocs/langs/sr_RS/cashdesk.lang @@ -14,7 +14,7 @@ ShoppingCart=Korpa za kupovinu NewSell=Nova prodaja AddThisArticle=Dodaj ovaj artikal RestartSelling=Vrati se nazad na prodaju -SellFinished=Sale complete +SellFinished=Prodaja završena PrintTicket=Štampaj kartu NoProductFound=Artikal nije pronađen ProductFound=proizvod pronađen @@ -25,7 +25,7 @@ Difference=Razlika TotalTicket=Ukupna karta NoVAT=Nema PIB za ovu prodaju Change=VIšak primljen -BankToPay=Account for payment +BankToPay=Račun za plaćanje ShowCompany=Prikaži firmu ShowStock=Prikaži magacin DeleteArticle=Kliknite da uklonite ovaj atikal diff --git a/htdocs/langs/sr_RS/commercial.lang b/htdocs/langs/sr_RS/commercial.lang index 7aadda1f61d..5142c8d1edf 100644 --- a/htdocs/langs/sr_RS/commercial.lang +++ b/htdocs/langs/sr_RS/commercial.lang @@ -10,16 +10,16 @@ NewAction=Novi događaj AddAction=Kreiraj događaj AddAnAction=Kreiraj događaj AddActionRendezVous=Kreiraj sastanak -ConfirmDeleteAction=Are you sure you want to delete this event? +ConfirmDeleteAction=Da li ste sigurni da želite da obrišete ovaj dogadjaj? CardAction=Kartica događaja -ActionOnCompany=Related company -ActionOnContact=Related contact +ActionOnCompany=Povezana kompanija +ActionOnContact=Povezani kontakt TaskRDVWith=Sastanak sa %s ShowTask=Prikaži zadatak ShowAction=Prikaži događaj ActionsReport=Izveštaj događaja -ThirdPartiesOfSaleRepresentative=Third parties with sales representative -SaleRepresentativesOfThirdParty=Sales representatives of third party +ThirdPartiesOfSaleRepresentative=Treća lica sa predstavnikom prodaje +SaleRepresentativesOfThirdParty=Predstavnici prodaje trećih lica SalesRepresentative=Predstavnik prodaje SalesRepresentatives=Predstavnici prodaje SalesRepresentativeFollowUp=Predstavnik prodaja (kratak opis) @@ -29,8 +29,8 @@ ShowCustomer=Prikaži klijenta ShowProspect=Prikaži prospekta ListOfProspects=Lista prospekta ListOfCustomers=Lista klijenata -LastDoneTasks=Latest %s completed actions -LastActionsToDo=Oldest %s not completed actions +LastDoneTasks=Najnovije %s završene aktivnosti +LastActionsToDo=Najstarije %s nezavršene aktivnosti DoneAndToDoActions=Završeni i događaji na čekanju DoneActions=Završeni događaji ToDoActions=Nezavršeni događaji diff --git a/htdocs/langs/sr_RS/compta.lang b/htdocs/langs/sr_RS/compta.lang index 26887818c87..2f5b348c8c9 100644 --- a/htdocs/langs/sr_RS/compta.lang +++ b/htdocs/langs/sr_RS/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Dupliraj porez/doprinos ConfirmCloneTax=Potvrdi dupliranje uplate poreza/doprinosa CloneTaxForNextMonth=Dupliraj za sledeći mesec diff --git a/htdocs/langs/sr_RS/ecm.lang b/htdocs/langs/sr_RS/ecm.lang index 92e00865c23..b924667b261 100644 --- a/htdocs/langs/sr_RS/ecm.lang +++ b/htdocs/langs/sr_RS/ecm.lang @@ -32,11 +32,11 @@ ECMDocsByProducts=Dokumenti vezani za proizvode ECMDocsByProjects=Dokumenti vezani za projekte ECMDocsByUsers=Dokumenti vezani za korisnike ECMDocsByInterventions=Dokumenti vezani za intervencije -ECMDocsByExpenseReports=Documents linked to expense reports +ECMDocsByExpenseReports=Dokumenta povezana za izveštajem o troškovima ECMNoDirectoryYet=Folder nije kreiran ShowECMSection=Pokaži folder DeleteSection=Obriši folder -ConfirmDeleteSection=Can you confirm you want to delete the directory %s? +ConfirmDeleteSection=Da li potvrđjujete da želite da obrišete direktorijum %s? ECMDirectoryForFiles=Relativni folder za fajlove CannotRemoveDirectoryContainsFiles=Brisanje je nemoguće jer folder sadrži fajlove ECMFileManager=File manager diff --git a/htdocs/langs/sr_RS/errors.lang b/htdocs/langs/sr_RS/errors.lang index bb1752b10b1..a8b188ae77c 100644 --- a/htdocs/langs/sr_RS/errors.lang +++ b/htdocs/langs/sr_RS/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings WarningPasswordSetWithNoAccount=Lozinka je podešena za ovog člana, ali korisnik nije kreiran. To znači da je lozinka sačuvana, ali se član ne može ulogovati na Dolibarr. Informaciju može koristiti neka eksterna komponenta, ali ako nemate potrebe da definišete korisnika/lozinku za članove, možete deaktivirati opciju "Upravljanje lozinkama za svakog člana" u podešavanjima modula Članovi. Ukoliko morate da kreirate login, ali Vam nije potrebna lozinka, ostavite ovo polje prazno da se ovo upozorenje ne bi prikazivalo. Napomena: email može biti korišćen kao login ako je član povezan sa korisnikom. diff --git a/htdocs/langs/sr_RS/help.lang b/htdocs/langs/sr_RS/help.lang index 2ab77f5b9d9..43b8cc1f621 100644 --- a/htdocs/langs/sr_RS/help.lang +++ b/htdocs/langs/sr_RS/help.lang @@ -11,7 +11,7 @@ TypeOfSupport=Izvor podrške TypeSupportCommunauty=Community (besplatno) TypeSupportCommercial=Komercijalna TypeOfHelp=Tip -NeedHelpCenter=Need help or support? +NeedHelpCenter=Potrebna vam je pomoć ili podrška? Efficiency=Efikasnost TypeHelpOnly=Samo pomoć TypeHelpDev=Pomoć+Razvoj diff --git a/htdocs/langs/sr_RS/install.lang b/htdocs/langs/sr_RS/install.lang index 654f6b84a4e..670c2ba0ae5 100644 --- a/htdocs/langs/sr_RS/install.lang +++ b/htdocs/langs/sr_RS/install.lang @@ -53,10 +53,10 @@ AdminLogin=Login za vlasnika Dolibarr baze. PasswordAgain=Ponovo unesite password AdminPassword=Password za vlasnika Dolibarr baze. CreateDatabase=Kreiraj bazu -CreateUser=Kreiraj vlasnika +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Server baze - superuser access CheckToCreateDatabase=Selektirajte ovu opciju ukoliko baza ne postoji i mora biti kreirana.
    U ovom slučaju, morate ispuniti login/lozinku superuser-a na dnu ove strane. -CheckToCreateUser=Selektujte ovu opciju ukoliko baza ne postoji i mora biti kreirana.
    U ovom slučaju, morate ispuniti login/lozinku superuser-a na dnu ove strane. Ako je odčekirano, vlasnik baze i šifra moraju postojati. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Prijava korisnika dozvoljena da kreira novu bazu ili korisnike, obavezno ako Vaša baza nema svog vlasnika ili ne postoji. KeepEmptyIfNoPassword=Ostavite prazno ako user nema password (izbegavajte ovo) SaveConfigurationFile=Sačuvaj vrednosti diff --git a/htdocs/langs/sr_RS/languages.lang b/htdocs/langs/sr_RS/languages.lang index 9bf5a30b443..683f5b2a8f2 100644 --- a/htdocs/langs/sr_RS/languages.lang +++ b/htdocs/langs/sr_RS/languages.lang @@ -12,7 +12,7 @@ Language_de_DE=Nemački Language_de_AT=Nemački (Austrija) Language_de_CH=Nemački (Švajcarska) Language_el_GR=Grčki -Language_el_CY=Greek (Cyprus) +Language_el_CY=Grčki (Kipar) Language_en_AU=Engleski (Australija) Language_en_CA=Engleski (Kanada) Language_en_GB=Engleski (UK) @@ -27,10 +27,10 @@ Language_es_BO=Španski (Bolivija) Language_es_CL=Špnski (Čile) Language_es_CO=Španski (Kolumbija) Language_es_DO=Španski (Dominikanska Republika) -Language_es_EC=Spanish (Ecuador) +Language_es_EC=Španski (Ecuador) Language_es_HN=Španski (Honduras) Language_es_MX=Španski (Meksiko) -Language_es_PA=Spanish (Panama) +Language_es_PA=Španski (Panama) Language_es_PY=Španski (Paragvaj) Language_es_PE=Španski (Peru) Language_es_PR=Španski (Porto Riko) @@ -53,14 +53,14 @@ Language_is_IS=Islanđanski Language_it_IT=Italijanski Language_ja_JP=Japanski Language_ka_GE=Gruzijski -Language_km_KH=Khmer +Language_km_KH=Kmerski Language_kn_IN=Kannada Language_ko_KR=Koreanski Language_lo_LA=Lao Language_lt_LT=Litvanski Language_lv_LV=Litvanski Language_mk_MK=Makedonski -Language_mn_MN=Mongolian +Language_mn_MN=Mongolski Language_nb_NO=Norveški (Bokmal) Language_nl_BE=Holandski (Belgija) Language_nl_NL=Holandski (Holandija) diff --git a/htdocs/langs/sr_RS/ldap.lang b/htdocs/langs/sr_RS/ldap.lang index be096b550f7..03d48a9253a 100644 --- a/htdocs/langs/sr_RS/ldap.lang +++ b/htdocs/langs/sr_RS/ldap.lang @@ -13,10 +13,10 @@ LDAPUsers=Korisnici u LDAP bazi LDAPFieldStatus=Status LDAPFieldFirstSubscriptionDate=Datum prve prijave LDAPFieldFirstSubscriptionAmount=Svota prve prijave -LDAPFieldLastSubscriptionDate=Latest subscription date -LDAPFieldLastSubscriptionAmount=Latest subscription amount +LDAPFieldLastSubscriptionDate=Datum najnovije pretplate +LDAPFieldLastSubscriptionAmount=Iznos najnovije pretplate LDAPFieldSkype=Skype id -LDAPFieldSkypeExample=Example : skypeName +LDAPFieldSkypeExample=Primer : skypeName UserSynchronized=Korisnik sinhronizovan GroupSynchronized=Grupa sinhronizovana MemberSynchronized=Član sinhronizovan diff --git a/htdocs/langs/sr_RS/main.lang b/htdocs/langs/sr_RS/main.lang index bcc5247a078..1ee98fb1764 100644 --- a/htdocs/langs/sr_RS/main.lang +++ b/htdocs/langs/sr_RS/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=Fajl je uspešno uploadovan -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=Fajl je selektiran za prilog, ali još uvek nije uploadovan. Klikni na "Priloži fajl". NbOfEntries=Br linija GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parametar Parameters=Parametri Value=Vrednost PersonalValue=Lična vrednost +NewObject=New %s NewValue=Nova vrednost CurrentValue=Trenutna vrednost Code=Kod @@ -441,6 +443,7 @@ Reporting=Izveštavanje Reportings=Izveštavanje Draft=Draft Drafts=Draft +StatusInterInvoiced= Validated=Validirano Opened=Otvoreno New=Novo @@ -727,6 +730,7 @@ SetBankAccount=Definiši bankovni nalog AccountCurrency=Valuta naloga ViewPrivateNote=Pogledaj beleške XMoreLines=%s linija skrivena(o) +ShowMoreLines=Show more lines PublicUrl=Javni UR AddBox=Dodaj box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Otvori Home - Podešavanja - Kompanija da biste izmenili logo ili Home - Setup - Prikaz da biste ga sakrili. Deny=Odbij Denied=Odbijeno +ListOf=List of %s ListOfTemplates=Lista templejtova Gender=Pol Genderman=Muško diff --git a/htdocs/langs/sr_RS/members.lang b/htdocs/langs/sr_RS/members.lang index b845e769a34..2f84db9ac0b 100644 --- a/htdocs/langs/sr_RS/members.lang +++ b/htdocs/langs/sr_RS/members.lang @@ -137,8 +137,8 @@ DocForAllMembersCards=Generiši vizit karte za sve članove DocForOneMemberCards=Generiši vizit kartu za određenog člana DocForLabels=Generiši karticu adrese SubscriptionPayment=Uplata pretplate -LastSubscriptionDate=Latest subscription date -LastSubscriptionAmount=Latest subscription amount +LastSubscriptionDate=Datum najnovije pretplate +LastSubscriptionAmount=Iznos najnovije pretplate MembersStatisticsByCountries=Statistike članova po zemlji MembersStatisticsByState=Statistike članova po regionu MembersStatisticsByTown=Statistike članova po gradu @@ -151,7 +151,7 @@ MembersByTownDesc=Ovaj ekran pokazuje statistike članova po gradu. MembersStatisticsDesc=Izaberite statistike koje želite da konsultujete... MenuMembersStats=Statistike LastMemberDate=Latest member date -LatestSubscriptionDate=Latest subscription date +LatestSubscriptionDate=Datum najnovije pretplate Nature=Priroda Public=Javne informacije NewMemberbyWeb=Novi član je dodat. Čeka se odobrenje. diff --git a/htdocs/langs/sr_RS/orders.lang b/htdocs/langs/sr_RS/orders.lang index 9b1a9c415d8..b37dba90d80 100644 --- a/htdocs/langs/sr_RS/orders.lang +++ b/htdocs/langs/sr_RS/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Oblast narudžbina dobavljača OrderCard=Kartica narudžbine OrderId=Id narudžbine Order=Narudžbina +PdfOrderTitle=Narudžbina Orders=Narudžbine OrderLine=Linija narudžbine OrderDate=Datum narudžbine diff --git a/htdocs/langs/sr_RS/other.lang b/htdocs/langs/sr_RS/other.lang index 7d618cde2d9..089fe6ac3e3 100644 --- a/htdocs/langs/sr_RS/other.lang +++ b/htdocs/langs/sr_RS/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/sr_RS/propal.lang b/htdocs/langs/sr_RS/propal.lang index a079269e23f..bc7c3ad4c39 100644 --- a/htdocs/langs/sr_RS/propal.lang +++ b/htdocs/langs/sr_RS/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Nacrt komercijalne ponude ProposalsOpened=Otvorene komercijalne ponude Prop=Komercijalne ponude CommercialProposal=Komercijaln ponuda +PdfCommercialProposalTitle=Komercijaln ponuda ProposalCard=Kartica ponude NewProp=Nova komercijalna ponuda NewPropal=Nova ponuda diff --git a/htdocs/langs/sr_RS/resource.lang b/htdocs/langs/sr_RS/resource.lang index a05554eb1b1..364bbe5b1f0 100644 --- a/htdocs/langs/sr_RS/resource.lang +++ b/htdocs/langs/sr_RS/resource.lang @@ -30,7 +30,7 @@ DictionaryResourceType=Tip resursa SelectResource=Izbor resursa -IdResource=Id resource -AssetNumber=Serial number -ResourceTypeCode=Resource type code +IdResource=ID broj resursa +AssetNumber=Serijski broj +ResourceTypeCode=Kod tipa resursa ImportDataset_resource_1=Resursi diff --git a/htdocs/langs/sr_RS/salaries.lang b/htdocs/langs/sr_RS/salaries.lang index d533d1ae429..141655b70ad 100644 --- a/htdocs/langs/sr_RS/salaries.lang +++ b/htdocs/langs/sr_RS/salaries.lang @@ -1,15 +1,15 @@ # 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=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Konto koji se koristi za korisnike trećih lica +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Podrazumevani konto za troškove zaposlenih Salary=Plata Salaries=Plate NewSalaryPayment=Nova isplata zarade SalaryPayment=Isplata zarade SalariesPayments=Isplate zarada ShowSalaryPayment=Prikaži isplatu zarade -THM=Average hourly rate -TJM=Average daily rate +THM=Prosečna cena sata +TJM=Prosečna cena dana CurrentSalary=Trenutna plata THMDescription=Ova vrednost može biti korišćena za procenu cene vremena provedenog na projektu koje su korisnici uneli (ukoliko se koristi modul projekti) TJMDescription=Ova vrednost se trenutno koristi samo informativno i ne uzima se u obzir ni za koji obračun. diff --git a/htdocs/langs/sr_RS/sms.lang b/htdocs/langs/sr_RS/sms.lang index e050ad2e9a8..53fcdfe232c 100644 --- a/htdocs/langs/sr_RS/sms.lang +++ b/htdocs/langs/sr_RS/sms.lang @@ -38,7 +38,7 @@ SmsStatusNotSent=Nije poslat SmsSuccessfulySent=SMS uspešno poslat (od %s do %s) ErrorSmsRecipientIsEmpty=Broj targeta je prazan WarningNoSmsAdded=Nema novih brojeva za dodavanje na listu targeta -ConfirmValidSms=Do you confirm validation of this campain? +ConfirmValidSms=Da li potvrdjujete ispravnost ove kampanje? NbOfUniqueSms=Br. jedinstvenih brojeva telefona NbOfSms=Br. brojeva telefona ThisIsATestMessage=Ovo je test poruka diff --git a/htdocs/langs/sr_RS/workflow.lang b/htdocs/langs/sr_RS/workflow.lang index 57461da3e34..e8b48d5c4ef 100644 --- a/htdocs/langs/sr_RS/workflow.lang +++ b/htdocs/langs/sr_RS/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Podešavanja modula Workflow WorkflowDesc=Ovaj modul je namenjen za izmene automatskih akcija u aplikaciji. Po defaultu, workflow je otvoren (možete vršiti akcije redosledom kojim poželite). Možete aktivirati automatske akcije koje Vas interesuju. ThereIsNoWorkflowToModify=Nema mogućih izmena workflow-a u aktiviranim modulima. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatski kreiraj narudžbinu klijenta nakon potpisivanja komercijalne ponude. -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatski kreiraj fakturu klijenta posle potpisivanja komercijalne ponude +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatski kreiraj fakturu klijenta posle potvrde ugovora -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatski kreiraj fakturu klijenta posle posle zatvaranja narudžbine klijenta -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Označi komercijalnu ponudu kao naplaćenu kada se narudžbina klijenta označi kao plaćena. -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Označi komerijalnu(e) ponudu(e) kao naplaćenu(e) kada je račun klijenta označen kao plaćen. -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Označi komerijalnu(e) ponudu(e) kao naplaćenu(e) kada je račun klijenta označen kao potvrđen. -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order -AutomaticCreation=Automatic creation -AutomaticClassification=Automatic classification +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) +AutomaticCreation=Automatsko kriranje +AutomaticClassification=Automatsko klasifikovanje diff --git a/htdocs/langs/sv_SE/accountancy.lang b/htdocs/langs/sv_SE/accountancy.lang index 75401e85380..4ec3734ce2a 100644 --- a/htdocs/langs/sv_SE/accountancy.lang +++ b/htdocs/langs/sv_SE/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=Förteckning över redovisningskonton +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Klass konto Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Fel, du kan inte ta bort denna redovisningskonto eftersom den används -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Kod Nature=Naturen AccountingJournalType1=Various operation AccountingJournalType2=Försäljning @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Export -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Modell av export OptionsDeactivatedForThisExportModel=För denna exportmodell är tillval inaktiverade diff --git a/htdocs/langs/sv_SE/admin.lang b/htdocs/langs/sv_SE/admin.lang index 290488de7ac..dfa625d1f9a 100644 --- a/htdocs/langs/sv_SE/admin.lang +++ b/htdocs/langs/sv_SE/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Systemverktyg område SystemToolsAreaDesc=Detta område ger förvaltningen funktioner. Använd menyn för att välja den funktion du letar efter. Purge=Rensa PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Ta bort alla filer i katalogen %s. Temporära filer utan även säkerhetskopiering av databaser soptippar, filer som bifogats till element (tredje part, fakturor ...) och in i det ECM-modulen kommer att raderas. PurgeRunNow=Rensa nu PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s filer eller kataloger bort. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Rensa alla evenemang ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Skapa backup @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=För detta steg kan du skicka paket med det här verktyget: Välj modulfil +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr nuvarande version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Leverantör kommersiell förslag Module1120Desc=Begär leverantör kommersiella förslag och priser Module1200Name=Mantis Module1200Desc=Mantis integration -Module1400Name=Bokföring -Module1400Desc=Accounting management (double entries) Module1520Name=Dokument Generation Module1520Desc=Mass post dokumentgenerering Module1780Name=Taggar/Kategorier @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Modul för att erbjuda en online-betalning sidan med kreditkort med Paypal Module50400Name=Redovisning (avancerad) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direktutskrift (utan att öppna dokumenten) använder Cups IPP-gränssnitt (skrivare måste vara synlig från servern, och CUPS måste vara installerad på servern). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Läs rabatter Permission402=Skapa / ändra rabatter Permission403=Validate rabatter Permission404=Ta bort rabatter -Permission510=Läs Löner -Permission512=Skapa / ändra löner +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Radera löner Permission517=Export löner Permission520=Läs Lån @@ -1057,7 +1058,7 @@ RestoreDesc2=Återställa arkivfil (zip-fil till exempel) av dokumentkatalog fö RestoreDesc3=Återställa data från en backup dumpfilen, i databasen av den nya Dolibarr installationen eller i databasen av den nuvarande anläggningen (%s). Varning, när återställningen är klar, måste du använda en användarnamn / lösenord, som fanns när säkerhetskopian gjordes, för att ansluta igen. Om du vill återställa en backup databas i detta aktuella installationen, kan du följa den här assistent. RestoreMySQL=MySQL import ForcedToByAModule= Denna regel tvingas %s av en aktiverad modul -PreviousDumpFiles=Tillgänglig databas backup dumpfiler +PreviousDumpFiles=Generated database backup files WeekStartOnDay=Första dagen i veckan RunningUpdateProcessMayBeRequired=Kör uppgraderingsprocessen verkar krävas (Program version %s skiljer sig från %s databas version) YouMustRunCommandFromCommandLineAfterLoginToUser=Du måste köra det här kommandot från kommandoraden efter login till ett skal med användare %s. diff --git a/htdocs/langs/sv_SE/banks.lang b/htdocs/langs/sv_SE/banks.lang index 301a03b89de..012219909fb 100644 --- a/htdocs/langs/sv_SE/banks.lang +++ b/htdocs/langs/sv_SE/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/sv_SE/bills.lang b/htdocs/langs/sv_SE/bills.lang index 572b13773f6..09ee99133bc 100644 --- a/htdocs/langs/sv_SE/bills.lang +++ b/htdocs/langs/sv_SE/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Faktura kort PredefinedInvoices=Fördefinierade fakturor Invoice=Faktura +PdfInvoiceTitle=Faktura Invoices=Fakturor InvoiceLine=Faktura linje InvoiceCustomer=Kundfaktura diff --git a/htdocs/langs/sv_SE/compta.lang b/htdocs/langs/sv_SE/compta.lang index d06bba823ce..f0f6fe1a2ea 100644 --- a/htdocs/langs/sv_SE/compta.lang +++ b/htdocs/langs/sv_SE/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Klona det för nästa månad diff --git a/htdocs/langs/sv_SE/errors.lang b/htdocs/langs/sv_SE/errors.lang index 530c61834a4..0535a643441 100644 --- a/htdocs/langs/sv_SE/errors.lang +++ b/htdocs/langs/sv_SE/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/sv_SE/install.lang b/htdocs/langs/sv_SE/install.lang index 2f908fa6051..c41807607ea 100644 --- a/htdocs/langs/sv_SE/install.lang +++ b/htdocs/langs/sv_SE/install.lang @@ -53,10 +53,10 @@ AdminLogin=Logga in för Dolibarr databas ägaren. PasswordAgain=Skriv lösenordet en andra gång AdminPassword=Lösenord för Dolibarr databas ägaren. CreateDatabase=Skapa databas -CreateUser=Skapa ägare +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Databasserver - superanvändare tillgång CheckToCreateDatabase=Kryssrutan om databasen inte existerar och måste skapas.
    I så fall måste du fylla i login / lösenord för superanvändare konto längst ner på denna sida. -CheckToCreateUser=Kryssrutan om databas ägaren inte existerar och måste skapas.
    I så fall måste du välja sin inloggning och lösenord och fylla i användarnamn / lösenord för superanvändaren konto längst ner på denna sida. Om denna ruta är markerad, ägare databas och lösenord måste finns. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Logga in på användaren möjlighet att skapa nya databaser eller nya användare, värdelösa om din databas och databasen inloggning redan finns (som när du är värd ett webbhotell leverantör). KeepEmptyIfNoPassword=Lämna tomt om användaren har inget lösenord (undvik detta) SaveConfigurationFile=Spara värden diff --git a/htdocs/langs/sv_SE/main.lang b/htdocs/langs/sv_SE/main.lang index 8b3e5c261ca..3c5fd70c084 100644 --- a/htdocs/langs/sv_SE/main.lang +++ b/htdocs/langs/sv_SE/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=Filen har laddats upp -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=En fil är vald att bifogas, men har ännu inte laddats upp. Klicka på 'Bifoga fil' för detta. NbOfEntries=Antal värden GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parameter Parameters=Parametrar Value=Värde PersonalValue=Personlig värde +NewObject=New %s NewValue=Nytt värde CurrentValue=Aktuellt värde Code=Kod @@ -441,6 +443,7 @@ Reporting=Rapportering Reportings=Rapportering Draft=Utkast Drafts=Utkast +StatusInterInvoiced= Validated=Validerad Opened=Öppen New=Ny @@ -727,6 +730,7 @@ SetBankAccount=Definiera bankkonto AccountCurrency=Konto valuta ViewPrivateNote=Se noter XMoreLines=%s rader osynliga +ShowMoreLines=Show more lines PublicUrl=Offentlig webbadress AddBox=Lägg till låda SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Gender Genderman=Man diff --git a/htdocs/langs/sv_SE/modulebuilder.lang b/htdocs/langs/sv_SE/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/sv_SE/modulebuilder.lang +++ b/htdocs/langs/sv_SE/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/sv_SE/orders.lang b/htdocs/langs/sv_SE/orders.lang index 0ac9d32be48..172224a1ffb 100644 --- a/htdocs/langs/sv_SE/orders.lang +++ b/htdocs/langs/sv_SE/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Leverantörer order område OrderCard=Beställ kort OrderId=Order Id Order=Beställ +PdfOrderTitle=Beställ Orders=Beställningar OrderLine=Orderrad OrderDate=Beställ datum diff --git a/htdocs/langs/sv_SE/other.lang b/htdocs/langs/sv_SE/other.lang index 0f19e535c4a..8ed24e076e7 100644 --- a/htdocs/langs/sv_SE/other.lang +++ b/htdocs/langs/sv_SE/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/sv_SE/propal.lang b/htdocs/langs/sv_SE/propal.lang index c5079a8e914..dcfc26254d0 100644 --- a/htdocs/langs/sv_SE/propal.lang +++ b/htdocs/langs/sv_SE/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Utkast till kommersiella förslag ProposalsOpened=Open commercial proposals Prop=Kommersiella förslag CommercialProposal=Kommersiella förslag +PdfCommercialProposalTitle=Kommersiella förslag ProposalCard=Förslaget kortet NewProp=Nya kommersiella förslag NewPropal=Nytt förslag diff --git a/htdocs/langs/sv_SE/salaries.lang b/htdocs/langs/sv_SE/salaries.lang index bac8110de86..b5bce54de49 100644 --- a/htdocs/langs/sv_SE/salaries.lang +++ b/htdocs/langs/sv_SE/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Lön Salaries=Löner diff --git a/htdocs/langs/sv_SE/website.lang b/htdocs/langs/sv_SE/website.lang index c438cb78f6f..eda58a168a6 100644 --- a/htdocs/langs/sv_SE/website.lang +++ b/htdocs/langs/sv_SE/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/sv_SE/workflow.lang b/htdocs/langs/sv_SE/workflow.lang index c9b56e71b5c..dd26e6969e7 100644 --- a/htdocs/langs/sv_SE/workflow.lang +++ b/htdocs/langs/sv_SE/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Arbetsflöde modul konfiguration WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Klassificera länkad förslag källa att faktureras när kundorder är inställd på betald -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Klassificera länkade källa kundorder (s) för att faktureras när kundfaktura är inställd på betald -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Klassificera länkade källa kundorder (s) för att faktureras när kundfaktura valideras -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/sw_SW/accountancy.lang b/htdocs/langs/sw_SW/accountancy.lang index d239f259a94..a7176d2e55f 100644 --- a/htdocs/langs/sw_SW/accountancy.lang +++ b/htdocs/langs/sw_SW/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Code Nature=Nature AccountingJournalType1=Various operation AccountingJournalType2=Sales @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/sw_SW/admin.lang b/htdocs/langs/sw_SW/admin.lang index a443d04f35d..8dba7af0e0b 100644 --- a/htdocs/langs/sw_SW/admin.lang +++ b/htdocs/langs/sw_SW/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=System tools area SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. Purge=Purge PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. PurgeRunNow=Purge now PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s files or directories deleted. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Purge all security events ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Generate backup @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Read discounts Permission402=Create/modify discounts Permission403=Validate discounts Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files +PreviousDumpFiles=Generated database backup files WeekStartOnDay=First day of week RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. diff --git a/htdocs/langs/sw_SW/banks.lang b/htdocs/langs/sw_SW/banks.lang index ba42f9a4c83..9bce7b9e29a 100644 --- a/htdocs/langs/sw_SW/banks.lang +++ b/htdocs/langs/sw_SW/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/sw_SW/bills.lang b/htdocs/langs/sw_SW/bills.lang index 1e83ba9b2d1..6bcd2464c1c 100644 --- a/htdocs/langs/sw_SW/bills.lang +++ b/htdocs/langs/sw_SW/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Invoice card PredefinedInvoices=Predefined Invoices Invoice=Invoice +PdfInvoiceTitle=Invoice Invoices=Invoices InvoiceLine=Invoice line InvoiceCustomer=Customer invoice diff --git a/htdocs/langs/sw_SW/compta.lang b/htdocs/langs/sw_SW/compta.lang index 94a3bd671ef..f8b5b683cb8 100644 --- a/htdocs/langs/sw_SW/compta.lang +++ b/htdocs/langs/sw_SW/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/sw_SW/errors.lang b/htdocs/langs/sw_SW/errors.lang index feada2d1b5a..853a34b4bb4 100644 --- a/htdocs/langs/sw_SW/errors.lang +++ b/htdocs/langs/sw_SW/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/sw_SW/install.lang b/htdocs/langs/sw_SW/install.lang index a3533a31277..5b6ba06e78a 100644 --- a/htdocs/langs/sw_SW/install.lang +++ b/htdocs/langs/sw_SW/install.lang @@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner. PasswordAgain=Retype password a second time AdminPassword=Password for Dolibarr database owner. CreateDatabase=Create database -CreateUser=Create owner +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Database server - Superuser access CheckToCreateDatabase=Check box if database does not exist and must be created.
    In this case, you must fill the login/password for superuser account at the bottom of this page. -CheckToCreateUser=Check box if database owner does not exist and must be created.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists. KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this) SaveConfigurationFile=Save values diff --git a/htdocs/langs/sw_SW/main.lang b/htdocs/langs/sw_SW/main.lang index 3401829afa2..ec019cbe3bf 100644 --- a/htdocs/langs/sw_SW/main.lang +++ b/htdocs/langs/sw_SW/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=The file was successfully uploaded -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parameter Parameters=Parameters Value=Value PersonalValue=Personal value +NewObject=New %s NewValue=New value CurrentValue=Current value Code=Code @@ -441,6 +443,7 @@ Reporting=Reporting Reportings=Reporting Draft=Draft Drafts=Drafts +StatusInterInvoiced= Validated=Validated Opened=Open New=New @@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account AccountCurrency=Account Currency ViewPrivateNote=View notes XMoreLines=%s line(s) hidden +ShowMoreLines=Show more lines PublicUrl=Public URL AddBox=Add box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Gender Genderman=Man diff --git a/htdocs/langs/sw_SW/orders.lang b/htdocs/langs/sw_SW/orders.lang index 331e3b49d3e..0c59b4f4ada 100644 --- a/htdocs/langs/sw_SW/orders.lang +++ b/htdocs/langs/sw_SW/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area OrderCard=Order card OrderId=Order Id Order=Order +PdfOrderTitle=Order Orders=Orders OrderLine=Order line OrderDate=Order date diff --git a/htdocs/langs/sw_SW/other.lang b/htdocs/langs/sw_SW/other.lang index e15d490c0f2..e519f7af405 100644 --- a/htdocs/langs/sw_SW/other.lang +++ b/htdocs/langs/sw_SW/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/sw_SW/propal.lang b/htdocs/langs/sw_SW/propal.lang index 3fdb379c5a2..271fb44ac40 100644 --- a/htdocs/langs/sw_SW/propal.lang +++ b/htdocs/langs/sw_SW/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal +PdfCommercialProposalTitle=Commercial proposal ProposalCard=Proposal card NewProp=New commercial proposal NewPropal=New proposal diff --git a/htdocs/langs/sw_SW/salaries.lang b/htdocs/langs/sw_SW/salaries.lang index 522bf0a65d7..7e0c80d3380 100644 --- a/htdocs/langs/sw_SW/salaries.lang +++ b/htdocs/langs/sw_SW/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries diff --git a/htdocs/langs/sw_SW/workflow.lang b/htdocs/langs/sw_SW/workflow.lang index 54246856e9b..8021fb9b198 100644 --- a/htdocs/langs/sw_SW/workflow.lang +++ b/htdocs/langs/sw_SW/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Workflow module setup WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/th_TH/accountancy.lang b/htdocs/langs/th_TH/accountancy.lang index 873a6ed9982..bdc3962d4c2 100644 --- a/htdocs/langs/th_TH/accountancy.lang +++ b/htdocs/langs/th_TH/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=รายการบัญชีที่บัญชี +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=ชั้นบัญชี Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=ข้อผิดพลาดที่คุณไม่สามารถลบบัญชีบัญชีนี้เพราะมันถูกนำมาใช้ -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=รหัส Nature=ธรรมชาติ AccountingJournalType1=Various operation AccountingJournalType2=ขาย @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=การส่งออก -Export=ส่งออก ExportDraftJournal=Export draft journal Modelcsv=รูปแบบของการส่งออก OptionsDeactivatedForThisExportModel=สำหรับรูปแบบการส่งออกนี้ตัวเลือกที่จะปิดการใช้งาน diff --git a/htdocs/langs/th_TH/admin.lang b/htdocs/langs/th_TH/admin.lang index 4b9dac420bb..6978ad4abac 100644 --- a/htdocs/langs/th_TH/admin.lang +++ b/htdocs/langs/th_TH/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=พื้นที่เครื่องมือของร SystemToolsAreaDesc=บริเวณนี้มีคุณสมบัติการบริหาร ใช้เมนูเพื่อเลือกคุณลักษณะที่คุณกำลังมองหา Purge=ล้าง PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=ลบไฟล์ทั้งหมดในไดเรกทอรี% s แฟ้มชั่วคราว แต่ยังทิ้งการสำรองฐานข้อมูลไฟล์ที่แนบมากับองค์ประกอบ (บุคคลที่สาม, ใบแจ้งหนี้, ... ) และอัปโหลดลงในโมดูล ECM จะถูกลบออก PurgeRunNow=ล้างในขณะนี้ PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=% ไฟล์หรือไดเรกทอรีลบ +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=ล้างทุกเหตุการณ์การรักษาความปลอดภัย ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=สร้างการสำรองข้อมูล @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=สำหรับขั้นตอนนี้คุณสามารถส่งแพคเกจการใช้เครื่องมือนี้: เลือกไฟล์โมดูล +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=รุ่นปัจจุบัน Dolibarr CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=ข้อเสนอในเชิงพาณิชย์ผ Module1120Desc=ขอข้อเสนอในเชิงพาณิชย์ผู้จัดจำหน่ายและราคา Module1200Name=ตั๊กแตนตำข้าว Module1200Desc=บูรณาการตั๊กแตนตำข้าว -Module1400Name=การบัญชี -Module1400Desc=Accounting management (double entries) Module1520Name=การสร้างเอกสาร Module1520Desc=สร้างเอกสารอีเมล์จำนวนมาก Module1780Name=แท็ก / หมวดหมู่ @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=โมดูลที่จะนำเสนอหน้าการชำระเงินออนไลน์ผ่านบัตรเครดิตกับ Paypal Module50400Name=บัญชี (ขั้นสูง) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=พิมพ์โดยตรง (โดยไม่ต้องเปิดเอกสาร) โดยใช้อินเตอร์เฟซถ้วยไอพีพี (เครื่องพิมพ์จะต้องมองเห็นจากเซิร์ฟเวอร์และ CUPS จะต้อง installe บนเซิร์ฟเวอร์) Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=อ่านส่วนลด Permission402=สร้าง / แก้ไขส่วนลด Permission403=ตรวจสอบส่วนลด Permission404=ลบส่วนลด -Permission510=อ่านเงินเดือน -Permission512=สร้าง / แก้ไขเงินเดือน +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=ลบเงินเดือน Permission517=เงินเดือนส่งออก Permission520=อ่านสินเชื่อ @@ -1057,7 +1058,7 @@ RestoreDesc2=เรียกคืนไฟล์ที่เก็บถาว RestoreDesc3=เรียกคืนข้อมูลจากแฟ้มการถ่ายโอนข้อมูลการสำรองข้อมูลลงในฐานข้อมูลของการติดตั้ง Dolibarr ใหม่หรือลงในฐานข้อมูลของการติดตั้งปัจจุบันนี้ (% s) คำเตือนเมื่อคืนเสร็จแล้วคุณต้องใช้เข้าสู่ระบบ / รหัสผ่านที่มีอยู่เมื่อการสำรองข้อมูลที่ถูกสร้างขึ้นเพื่อเชื่อมต่ออีกครั้ง เพื่อเรียกคืนฐานข้อมูลสำรองลงในนี้ติดตั้งปัจจุบันคุณสามารถทำตามนี้ช่วย RestoreMySQL=นำเข้า MySQL ForcedToByAModule= กฎนี้ถูกบังคับให้% โดยการเปิดใช้งานโมดูล -PreviousDumpFiles=แฟ้มการถ่ายโอนการสำรองฐานข้อมูลที่มีจำหน่าย +PreviousDumpFiles=Generated database backup files WeekStartOnDay=วันแรกของสัปดาห์ RunningUpdateProcessMayBeRequired=ใช้กระบวนการอัพเกรดน่าจะเป็นที่ต้องการ (รุ่น% s โปรแกรมที่แตกต่างจากเวอร์ชั่นฐานข้อมูล%) YouMustRunCommandFromCommandLineAfterLoginToUser=คุณต้องเรียกใช้คำสั่งจากบรรทัดคำสั่งนี้หลังจากที่เข้าสู่ระบบไปยังเปลือกกับผู้ใช้% s หรือคุณต้องเพิ่มตัวเลือก -W ที่ท้ายบรรทัดคำสั่งที่จะให้รหัสผ่าน% s diff --git a/htdocs/langs/th_TH/banks.lang b/htdocs/langs/th_TH/banks.lang index a9cac62a41a..a3aaae9e91a 100644 --- a/htdocs/langs/th_TH/banks.lang +++ b/htdocs/langs/th_TH/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/th_TH/bills.lang b/htdocs/langs/th_TH/bills.lang index 2fbf362d83f..cb2e61d7f4c 100644 --- a/htdocs/langs/th_TH/bills.lang +++ b/htdocs/langs/th_TH/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=การ์ดใบแจ้งหนี้ PredefinedInvoices=ใบแจ้งหนี้ที่กำหนดไว้ล่วงหน้า Invoice=ใบกำกับสินค้า +PdfInvoiceTitle=ใบกำกับสินค้า Invoices=ใบแจ้งหนี้ InvoiceLine=เส้นใบแจ้งหนี้ InvoiceCustomer=ใบแจ้งหนี้ของลูกค้า diff --git a/htdocs/langs/th_TH/compta.lang b/htdocs/langs/th_TH/compta.lang index d25fbd36226..0e39a5ba73e 100644 --- a/htdocs/langs/th_TH/compta.lang +++ b/htdocs/langs/th_TH/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=โคลนสังคม / ภาษีการคลัง ConfirmCloneTax=ยืนยันโคลนของสังคม / ชำระภาษีการคลัง CloneTaxForNextMonth=โคลนมันสำหรับเดือนถัดไป diff --git a/htdocs/langs/th_TH/errors.lang b/htdocs/langs/th_TH/errors.lang index c7b6db36de1..7692715be7c 100644 --- a/htdocs/langs/th_TH/errors.lang +++ b/htdocs/langs/th_TH/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/th_TH/install.lang b/htdocs/langs/th_TH/install.lang index a00733703ff..bc2ed953086 100644 --- a/htdocs/langs/th_TH/install.lang +++ b/htdocs/langs/th_TH/install.lang @@ -53,10 +53,10 @@ AdminLogin=เข้าสู่ระบบฐานข้อมูลสำห PasswordAgain=พิมพ์รหัสผ่านเป็นครั้งที่สอง AdminPassword=รหัสผ่านสำหรับเจ้าของฐานข้อมูล Dolibarr CreateDatabase=สร้างฐานข้อมูล -CreateUser=สร้างเจ้าของ +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=เซิร์ฟเวอร์ฐานข้อมูล - การเข้าถึง Superuser CheckToCreateDatabase=กล่องตรวจสอบว่าฐานข้อมูลไม่ได้อยู่และจะต้องสร้างขึ้น
    ในกรณีนี้คุณต้องกรอกข้อมูลเข้าสู่ระบบ / รหัสผ่านสำหรับบัญชี superuser ที่ด้านล่างของหน้านี้ -CheckToCreateUser=กล่องตรวจสอบว่าเจ้าของฐานข้อมูลไม่ได้อยู่และจะต้องสร้างขึ้น
    ในกรณีนี้คุณต้องเลือกล็อกอินและรหัสผ่านและยังเติมเต็มการเข้าสู่ระบบ / รหัสผ่านสำหรับบัญชี superuser ที่ด้านล่างของหน้านี้ ถ้ากล่องนี้จะไม่ถูกตรวจสอบฐานข้อมูลเจ้าของและรหัสผ่านที่จะต้องมีอยู่ +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=เข้าสู่ระบบของผู้ใช้ที่ได้รับอนุญาตในการสร้างฐานข้อมูลใหม่หรือผู้ใช้ใหม่บังคับถ้าฐานข้อมูลหรือเจ้าของของคุณไม่ได้อยู่แล้ว KeepEmptyIfNoPassword=ปล่อยว่างไว้ถ้าผู้ใช้มีรหัสผ่านไม่ (หลีกเลี่ยงปัญหานี้) SaveConfigurationFile=ประหยัดค่า diff --git a/htdocs/langs/th_TH/main.lang b/htdocs/langs/th_TH/main.lang index 97657f0c292..99aa35f04ae 100644 --- a/htdocs/langs/th_TH/main.lang +++ b/htdocs/langs/th_TH/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=ไฟล์อัพโหลดประสบความสำเร็จ -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=ไฟล์ที่ถูกเลือกสำหรับสิ่งที่แนบมา แต่ยังไม่ได้อัปโหลดยัง คลิกที่ "แนบไฟล์" สำหรับเรื่องนี้ NbOfEntries=nb ของรายการ GoToWikiHelpPage=อ่านความช่วยเหลือออนไลน์ (อินเทอร์เน็ตจำเป็น) @@ -196,6 +197,7 @@ Parameter=พารามิเตอร์ Parameters=พารามิเตอร์ Value=มูลค่า PersonalValue=ค่าส่วนบุคคล +NewObject=New %s NewValue=ค่าใหม่ CurrentValue=มูลค่าปัจจุบัน Code=รหัส @@ -441,6 +443,7 @@ Reporting=การรายงาน Reportings=การรายงาน Draft=ร่าง Drafts=ร่าง +StatusInterInvoiced= Validated=ผ่านการตรวจสอบ Opened=เปิด New=ใหม่ @@ -727,6 +730,7 @@ SetBankAccount=กำหนดบัญชีธนาคาร AccountCurrency=สกุลเงินในบัญชี ViewPrivateNote=ดูบันทึก XMoreLines=% s สาย (s) ซ่อน +ShowMoreLines=Show more lines PublicUrl=URL ที่สาธารณะ AddBox=เพิ่มกล่อง SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=ไปลงในหน้าหลัก - การติดตั้ง - บริษัท ที่จะเปลี่ยนโลโก้หรือไปลงในหน้าแรก - การติดตั้ง - จอแสดงผลที่จะซ่อน Deny=ปฏิเสธ Denied=ปฏิเสธ +ListOf=List of %s ListOfTemplates=รายชื่อของแม่แบบ Gender=Gender Genderman=คน diff --git a/htdocs/langs/th_TH/modulebuilder.lang b/htdocs/langs/th_TH/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/th_TH/modulebuilder.lang +++ b/htdocs/langs/th_TH/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/th_TH/multicurrency.lang b/htdocs/langs/th_TH/multicurrency.lang index b8ed714c199..a529b8b73bb 100644 --- a/htdocs/langs/th_TH/multicurrency.lang +++ b/htdocs/langs/th_TH/multicurrency.lang @@ -4,7 +4,8 @@ ErrorAddRateFail=Error in added rate ErrorAddCurrencyFail=Error in added currency ErrorDeleteCurrencyFail=Error delete fail multicurrency_syncronize_error=Synchronisation error: %s -multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate) CurrencyLayerAccount=CurrencyLayer API CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
    Get your API key
    If you use a free account you can't change the currency source (USD by default)
    But if your main currency isn't USD you can use the alternate currency source to force you main currency

    You are limited at 1000 synchronizations per month multicurrency_appId=API key diff --git a/htdocs/langs/th_TH/orders.lang b/htdocs/langs/th_TH/orders.lang index c26ea4f4a7d..5fc83980b9d 100644 --- a/htdocs/langs/th_TH/orders.lang +++ b/htdocs/langs/th_TH/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=ซัพพลายเออร์ในพื้นที OrderCard=สั่งซื้อบัตร OrderId=รหัสการสั่งซื้อ Order=สั่งซื้อ +PdfOrderTitle=สั่งซื้อ Orders=คำสั่งซื้อ OrderLine=สายการสั่งซื้อ OrderDate=วันที่สั่งซื้อ diff --git a/htdocs/langs/th_TH/other.lang b/htdocs/langs/th_TH/other.lang index 0f68d12f808..92c36d3f7c8 100644 --- a/htdocs/langs/th_TH/other.lang +++ b/htdocs/langs/th_TH/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/th_TH/propal.lang b/htdocs/langs/th_TH/propal.lang index cf796f07b15..4a77a0439a6 100644 --- a/htdocs/langs/th_TH/propal.lang +++ b/htdocs/langs/th_TH/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=ข้อเสนอในเชิงพาณิชย์ร ProposalsOpened=ข้อเสนอในเชิงพาณิชย์เปิด Prop=ข้อเสนอเชิงพาณิชย์ CommercialProposal=ข้อเสนอเชิงพาณิชย์ +PdfCommercialProposalTitle=ข้อเสนอเชิงพาณิชย์ ProposalCard=การ์ดเสนอ NewProp=ข้อเสนอในเชิงพาณิชย์ใหม่ NewPropal=ข้อเสนอใหม่ diff --git a/htdocs/langs/th_TH/salaries.lang b/htdocs/langs/th_TH/salaries.lang index ee4ab455cdf..59f4f029c49 100644 --- a/htdocs/langs/th_TH/salaries.lang +++ b/htdocs/langs/th_TH/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=เงินเดือน Salaries=เงินเดือน diff --git a/htdocs/langs/th_TH/website.lang b/htdocs/langs/th_TH/website.lang index da3d59a2455..75f6e009476 100644 --- a/htdocs/langs/th_TH/website.lang +++ b/htdocs/langs/th_TH/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/th_TH/workflow.lang b/htdocs/langs/th_TH/workflow.lang index 7e8d731eab7..707ec4bc5cd 100644 --- a/htdocs/langs/th_TH/workflow.lang +++ b/htdocs/langs/th_TH/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=เวิร์กโฟลว์การติดตั้งโมดูล WorkflowDesc=โมดูลนี้ถูกออกแบบมาเพื่อปรับเปลี่ยนพฤติกรรมของการกระทำโดยอัตโนมัติลงในใบสมัคร โดยค่าเริ่มต้นขั้นตอนการทำงานจะเปิด (คุณสามารถทำสิ่งที่อยู่ในลำดับที่คุณต้องการ) คุณสามารถเปิดใช้การกระทำโดยอัตโนมัติคุณมีความสนใจใน ThereIsNoWorkflowToModify=ไม่มีการปรับเปลี่ยนขั้นตอนการทำงานที่มีอยู่กับโมดูลเปิดใช้งานคือ -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=โดยอัตโนมัติสร้างคำสั่งของลูกค้าหลังจากที่ข้อเสนอในเชิงพาณิชย์มีการลงนาม -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=จำแนกข้อเสนอแหล่งที่มาเชื่อมโยงกับการเรียกเก็บเงินเมื่อสั่งซื้อของลูกค้ามีการตั้งค่าที่จะจ่ายเงิน -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=จำแนกแหล่งที่มาสั่งซื้อของลูกค้าที่เชื่อมโยง (s) เพื่อเรียกเก็บเงินเมื่อใบแจ้งหนี้ลูกค้าถูกตั้งค่าให้จ่าย -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=จำแนกแหล่งที่มาสั่งซื้อของลูกค้าที่เชื่อมโยง (s) เพื่อเรียกเก็บเงินเมื่อใบแจ้งหนี้ของลูกค้าจะถูกตรวจสอบ -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/tr_TR/accountancy.lang b/htdocs/langs/tr_TR/accountancy.lang index 539c7516b9d..13ed5ef1099 100644 --- a/htdocs/langs/tr_TR/accountancy.lang +++ b/htdocs/langs/tr_TR/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Diğer Bilgiler DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Hesap bakiyesi - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Bağlanacak fatura satırları @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Muhasebe hesabına başarıyla bağlandı NotVentilatedinAccount=Muhasebe hesabına bağlı değil -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Her sayfada gösterilen bağlanacak öğe sayısı (ençok önerilen: 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Gider raporları günlüğü DescFinanceJournal=Banka hesabından yapılan tüm ödeme türlerini içeren finans günlüğü -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=Üçüncü taraf hesabını listele DescThirdPartyReport=Burada üçüncü taraf müşterileri ve tedarikçileri ile onların muhasebe hesaplarının listesine bakın ListAccounts=Muhasebe hesapları listesi +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Hesap sınıfı Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Hata, kullanıldığı için bu muhasebe hesabını silemezsiniz -MvtNotCorrectlyBalanced=Hareket doğru denkleştirilmemiş. Alacak = %s. Borç = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Kod Nature=Niteliği AccountingJournalType1=Various operation AccountingJournalType2=Satışlar @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Dışaaktarımlar -Export=Dışaaktar ExportDraftJournal=Export draft journal Modelcsv=Dışaaktarım modeli OptionsDeactivatedForThisExportModel=Bu dışaaktarma modeli için seçenekler etkinleştirilmemiş diff --git a/htdocs/langs/tr_TR/admin.lang b/htdocs/langs/tr_TR/admin.lang index 88edee8bae9..9cb72f8ac02 100644 --- a/htdocs/langs/tr_TR/admin.lang +++ b/htdocs/langs/tr_TR/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Sistem araçları alanı SystemToolsAreaDesc=Bu alan yönetimsel özellikler sağlar. Aradığınız özelliği seçmek için menüyü kullanın. Purge=Temizleme PurgeAreaDesc=Bu sayfa Dolibarr tarafından oluşturulan ve saklanan tüm dosyaları (geçici dosyalar ya da %s dizinindeki tüm dosyalar) silmenizi sağlar. Bu özelliği kullanmak gereksizdir. Web sunucusu tarafından oluşturulan dosyaları silme izni vermeyen bir sunucu tarafından barındırılan Dolibarr kullanıcıları için geçici bir çözümdür. -PurgeDeleteLogFile=Syslog modülü tarafından tanımlanan %s kütük dosyasını silin (bilgi kaybetme riskiniz yoktur) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Tüm geçici dosyaları sil (bilgi kaybetme riskiniz yoktur) PurgeDeleteTemporaryFilesShort=Geçici dosyaları sil PurgeDeleteAllFilesInDocumentsDir=%s dizinindeki bütün dosyaları sil. Geçici dosyalarla birlikte veritabanı yedek artıkları, belgelere eklenmiş dosyalar (üçüncü partiler, faturalar, v.s.) ECM modülüne yüklenen dosyalar da silinecektir. PurgeRunNow=Şimdi temizle PurgeNothingToDelete=Silinecek dizin ya da dosya yok. PurgeNDirectoriesDeleted=%s dosya veya dizin silindi. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Tüm güvenlik etkinliklerini temizle ConfirmPurgeAuditEvents=Tüm güvenlik etkinliklerini temizlemek istediğinizden emin misiniz? Tüm güvenlik günlükleri silinecek olup, başka veriler silinmeyecektir. GenerateBackup=Yedekleme oluştur @@ -298,7 +299,7 @@ SetupIsReadyForUse=Modül yerleşimi tamamlandı. Bununla birlikte, modül ayarl NotExistsDirect=Alternatif kök dizin varolan bir dizine tanımlanmamış.
    InfDirAlt=Sürüm 3 ten beri bir alternatif kök dizin tanımlanabiliyor. Bu sizin ayrılmış bir dizine, eklentiler ve özel şablonlar depolamanızı sağlar.
    Yalnızca Dolibarr kökünde bir dizin oluşturun (örn. özel).
    InfDirExample=
    Sonra bunu conf.php dosyasında belirtin
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    *Bu satırlar "#" karakteri ile yorumlanır, yorumu kaldırmak için sadece bu karakteri kaldırın. -YouCanSubmitFile=Bu adımda paketi göndermek için kullanacağınız araç: Modül dosyasını seç +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr geçerli sürümü CallUpdatePage=Veritabanı yapısını ve verileri güncelleyen sayfaya git: %s. LastStableVersion=Son kararlı sürüm @@ -535,8 +536,6 @@ Module1120Name=Tedarikçi teklifi Module1120Desc=Tedarikçi teklifi ve fiyatlarını iste Module1200Name=Mantis Module1200Desc=Mantis entegrasyonu -Module1400Name=Muhasebe -Module1400Desc=Accounting management (double entries) Module1520Name=Belge Oluşturma Module1520Desc=Toplu posta belgesi oluşturma Module1780Name=Etiketler/Kategoriler @@ -585,7 +584,7 @@ Module50100Desc=Satış noktası modülü (POS) Module50200Name=Paypal Module50200Desc=Kredi kartı ya da Paypal ile ödeme sağlayan çevrimiçi ödeme sayfası modülü Module50400Name=Muhasebe (gelişmiş) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=IPP Yazdır Module54000Desc=Cups IPP aryüzü kullanılarak doğrudan yazdırma (belgeler açılmadan) (Yazıcı sunucudan görülmeli ve sunucuda CUPS kurulu olmalı) Module55000Name=Anket, Araştırma ya da Oylama @@ -751,8 +750,10 @@ Permission401=İndirim oku Permission402=İndirim oluştur/değiştir Permission403=İndirim doğrula Permission404=İndirim sil -Permission510=Ücretleri oku -Permission512=Ücret oluştur/değiştir +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Ücretleri sil Permission517=Ücretleri çıkart Permission520=Borçları oku @@ -1057,7 +1058,7 @@ RestoreDesc2=Belgeler dizinindeki dosya ağacını ayıklamak için arşiv dosya RestoreDesc3=Veriyi bir yedekleme döküm dosyasından, yeni Dolibarr kurulumu veritabanına ya da geçerli kurulumun veritabanına geri yükleyin (%s). Uyarı, geri yükleme tamamlandıktan sonra yeniden bağlanabilmek için yedekleme yapıldığı sırada varolan bir kullanıcı adı/parolası kullanmalısınız. Bu geçerli kuruluma yedekleme veritabanını geri yüklemek için aşağıdaki yardımcıyı kullanabilirsiniz. RestoreMySQL=MySQL içeaktar ForcedToByAModule= Bu kural bir aktif modül tarafından s ye zorlanır -PreviousDumpFiles=Mevcut veritabanı yedekleme dosyaları dökümü +PreviousDumpFiles=Generated database backup files WeekStartOnDay=Haftanın ilk günü RunningUpdateProcessMayBeRequired=Yükseltme işlemini çalıştırmak gerekli gibi görünüyor (Program sürümü %s veritabanı sürümü %s ten farklı) YouMustRunCommandFromCommandLineAfterLoginToUser=Bu komutu %s kullanıcısı ile bir kabuğa giriş yaptıktan sonra komut satırından çalıştırabilir ya da parolayı %s elde etmek için komut satırının sonuna –W seçeneğini ekleyebilirsiniz. diff --git a/htdocs/langs/tr_TR/banks.lang b/htdocs/langs/tr_TR/banks.lang index fd18dd3d072..e6ee163e6db 100644 --- a/htdocs/langs/tr_TR/banks.lang +++ b/htdocs/langs/tr_TR/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Çek döndü ve fatura yeniden açık yapıldı BankAccountModelModule=Banka hesapları için belge şablonları DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/tr_TR/bills.lang b/htdocs/langs/tr_TR/bills.lang index 3642cdd65cc..e159512916a 100644 --- a/htdocs/langs/tr_TR/bills.lang +++ b/htdocs/langs/tr_TR/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Fatura kartı PredefinedInvoices=Öntanımlı faturalar Invoice=Fatura +PdfInvoiceTitle=Fatura Invoices=Faturalar InvoiceLine=Fatura satırı InvoiceCustomer=Müşteri faturası diff --git a/htdocs/langs/tr_TR/compta.lang b/htdocs/langs/tr_TR/compta.lang index 98813d4b518..b11499d810b 100644 --- a/htdocs/langs/tr_TR/compta.lang +++ b/htdocs/langs/tr_TR/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Sosyal/mali vergi kopyala ConfirmCloneTax=Sosyal/mali vergi ödemesi kopyalamasını onayla CloneTaxForNextMonth=Sonraki aya kopyala diff --git a/htdocs/langs/tr_TR/errors.lang b/htdocs/langs/tr_TR/errors.lang index ba98a1ea218..f790a36344d 100644 --- a/htdocs/langs/tr_TR/errors.lang +++ b/htdocs/langs/tr_TR/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings WarningPasswordSetWithNoAccount=Bu üye için bir parola ayarlıdır. Ancak, hiçbir kullanıcı hesabı oluşturulmamıştır. Yani bu şifre saklanır ama Dolibarr'a giriş için kullanılamaz. Dış bir modül/arayüz tarafından kullanılıyor olabilir, ama bir üye için ne bir kullanıcı adı ne de parola tanımlamanız gerekmiyorsa "Her üye için bir kullanıcı adı yönet" seçeneğini devre dışı bırakabilirsiniz. Bir kullanıcı adı yönetmeniz gerekiyorsa ama herhangi bir parolaya gereksinim duymuyorsanız bu uyarıyı engellemek için bu alanı boş bırakabilirsiniz. Not: Eğer bir üye bir kullanıcıya bağlıysa kullanıcı adı olarak eposta adresi de kullanılabilir. diff --git a/htdocs/langs/tr_TR/install.lang b/htdocs/langs/tr_TR/install.lang index 51c1d02e760..5e2236eb369 100644 --- a/htdocs/langs/tr_TR/install.lang +++ b/htdocs/langs/tr_TR/install.lang @@ -53,10 +53,10 @@ AdminLogin=Dolibarr veritabanı kullanıcı adı. PasswordAgain=Parolayı ikinci kez yeniden yaz AdminPassword=Dolibarr veritabanı sahibi parolası. CreateDatabase=Veritabanı oluştur -CreateUser=Kullanıcı oluştur +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Veritabanı sunucusu - süperkullanıcı erişimi CheckToCreateDatabase=Eğer veritabanı yoksa ve oluşturulması gerekiyorsa kutuyu işaretleyin.
    Bu durumda, bu sayfanın altına süperkullanıcı hesabı için kullanıcı adı/parola girmelisiniz. -CheckToCreateUser=Veritabanı sahibi yoksa ve oluşturulması gerekiyorsa kutuyu işaretleyin.
    Bu durumda, kullanıcı adı ve parola seçmelisiniz ve bu sayfanın altına süperkullanıcı hesabı için kullanıcı adı/parola girmelisiniz. Bu kutu işaretlenmemiş ise, veritabanı sahibi ve parolaları vardır. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Yeni veritabanı ve yeni kullanıcı oluşturabilecek kullanıcı girişi, veritabanınız ve veritabanı girişiniz zaten varsa gereksizdir (sanki bir web sağlayıcı tarafından barındırılıyor gibi). KeepEmptyIfNoPassword=Eğer kullanıcının herhangi bir parolası yoksa boş bırakın (bundan kaçının) SaveConfigurationFile=Değerleri saklayın diff --git a/htdocs/langs/tr_TR/main.lang b/htdocs/langs/tr_TR/main.lang index 7285680f9c9..e2486957d92 100644 --- a/htdocs/langs/tr_TR/main.lang +++ b/htdocs/langs/tr_TR/main.lang @@ -75,7 +75,8 @@ FileRenamed=Dosya adı değiştirilmesi başarılı FileGenerated=Dosya oluşturulması başarılı FileSaved=The file was successfully saved FileUploaded=Dosya yüklemesi başarılı -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=Bu ekleme için bir dosya seçildi ama henüz gönderilmedi. Bunun için “Dosya ekle” ye tıklayın. NbOfEntries=Kayıt sayısı GoToWikiHelpPage=Çevrimiçi yardım oku (Internet erişimi gerekir) @@ -196,6 +197,7 @@ Parameter=Parametre Parameters=Parametreler Value=Değer PersonalValue=Kişisel değer +NewObject=New %s NewValue=Yeni değer CurrentValue=Geçerli değer Code=Kod @@ -441,6 +443,7 @@ Reporting=Raporlama Reportings=Raporlama Draft=Taslak Drafts=Taslaklar +StatusInterInvoiced= Validated=Doğrulanmış Opened=Açık New=Yeni @@ -727,6 +730,7 @@ SetBankAccount=Banka Hesabı Tanımla AccountCurrency=Hesap Para Birimi ViewPrivateNote=Notları izle XMoreLines=%s gizli satır +ShowMoreLines=Show more lines PublicUrl=Genel URL AddBox=Kutu ekle SelectElementAndClick=Bir öğe seçin ve %s tıklayın @@ -735,6 +739,7 @@ ShowTransaction=Girişi banka hesabında göster GoIntoSetupToChangeLogo=Logoyu değiştirmek için Giriş - Ayarlar - Firma menüsüne ya da gizlemek için Giriş - Ayarlar - Ekran menüsüne git. Deny=Ret Denied=Reddedildi +ListOf=List of %s ListOfTemplates=Şablon listesi Gender=Cinsiyet Genderman=Adam diff --git a/htdocs/langs/tr_TR/modulebuilder.lang b/htdocs/langs/tr_TR/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/tr_TR/modulebuilder.lang +++ b/htdocs/langs/tr_TR/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/tr_TR/multicurrency.lang b/htdocs/langs/tr_TR/multicurrency.lang index aee25c329ea..97d030cc601 100644 --- a/htdocs/langs/tr_TR/multicurrency.lang +++ b/htdocs/langs/tr_TR/multicurrency.lang @@ -4,7 +4,8 @@ ErrorAddRateFail=Error in added rate ErrorAddCurrencyFail=Error in added currency ErrorDeleteCurrencyFail=Error delete fail multicurrency_syncronize_error=Synchronisation error: %s -multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate) CurrencyLayerAccount=CurrencyLayer API CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
    Get your API key
    If you use a free account you can't change the currency source (USD by default)
    But if your main currency isn't USD you can use the alternate currency source to force you main currency

    You are limited at 1000 synchronizations per month multicurrency_appId=API key diff --git a/htdocs/langs/tr_TR/orders.lang b/htdocs/langs/tr_TR/orders.lang index bb6170ed5ce..95be258c467 100644 --- a/htdocs/langs/tr_TR/orders.lang +++ b/htdocs/langs/tr_TR/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Tedarikçi siparişleri alanı OrderCard=Sipariş kartı OrderId=Sipariş Kimliği Order=Sipariş +PdfOrderTitle=Sipariş Orders=Siparişler OrderLine=Sipariş kalemi OrderDate=Sipariş Tarihi diff --git a/htdocs/langs/tr_TR/other.lang b/htdocs/langs/tr_TR/other.lang index 54e189e36fd..c62f8245e75 100644 --- a/htdocs/langs/tr_TR/other.lang +++ b/htdocs/langs/tr_TR/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/tr_TR/propal.lang b/htdocs/langs/tr_TR/propal.lang index e0617de22d0..87ee9c4dc76 100644 --- a/htdocs/langs/tr_TR/propal.lang +++ b/htdocs/langs/tr_TR/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Taslak teklifler ProposalsOpened=Açık teklifler Prop=Teklifler CommercialProposal=Teklif +PdfCommercialProposalTitle=Teklif ProposalCard=Teklif kartı NewProp=Yeni teklif NewPropal=Yeni teklif diff --git a/htdocs/langs/tr_TR/salaries.lang b/htdocs/langs/tr_TR/salaries.lang index 9732d459b8b..b5ce9629949 100644 --- a/htdocs/langs/tr_TR/salaries.lang +++ b/htdocs/langs/tr_TR/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Personel giderleri için varsayılan muhasebe hesabı Salary=Ücret Salaries=Ücretler diff --git a/htdocs/langs/tr_TR/website.lang b/htdocs/langs/tr_TR/website.lang index bd5124c2000..858d74800f3 100644 --- a/htdocs/langs/tr_TR/website.lang +++ b/htdocs/langs/tr_TR/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Burada istediğiniz sayıda farklı websitesi oluşturun. Sonra DeleteWebsite=Websitesi sil ConfirmDeleteWebsite=Bu websitesini silmek istediğinizden emin misiniz? Bütün sayfaları ve içeriği silinecektir. WEBSITE_PAGENAME=Sayfa adı/rumuz +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=Dış CSS dosyası URL si WEBSITE_CSS_INLINE=CSS içeriği -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Medya kütüphanesi -EditCss=Stil/CSS düzenle +EditCss=Edit Style/CSS or HTML header EditMenu=Menü düzenle EditPageMeta=Meta Düzenle EditPageContent=İçerik Düzenle Website=Web sitesi -Webpage=Web sayfası -AddPage=Sayfa ekle +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Web sitenizin %s önizlemesi henüz hazır değil. Önce bir sayfa eklemelisiniz. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Silinen sayfa '%s', websitesi %s e ait -PageAdded=Eklenen sayfa %s +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=Siteyi yeni sekmede izle ViewPageInNewTab=Siteyi yeni sekmede izle SetAsHomePage=Giriş Sayfası olarak ayarla @@ -28,4 +30,9 @@ ViewWebsiteInProduction=Web sitesini giriş URL si kullanarak izle SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/tr_TR/workflow.lang b/htdocs/langs/tr_TR/workflow.lang index 4da18ad3533..c13c75f8176 100644 --- a/htdocs/langs/tr_TR/workflow.lang +++ b/htdocs/langs/tr_TR/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=İş Akışı modülü kurulumu WorkflowDesc=Bu modül, uygulamadaki otomatik eylemlerin davranışlarını değiştirilmek için tasarlanmıştır. Varsayılan olarak, iş akışı açıktır (işleri istediğiniz sıraya göre yapabilirsiniz). İlgilendiğiniz otomatik eylemleri etkinleştirebilirsiniz. ThereIsNoWorkflowToModify=Etkin modüllerde hiç iş akışı değişikliği yok. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Bir teklif imzalandıktan sonra kendiliğinden müşteri siparişi oluşturulsun -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Bir teklif imzalandıktan sonra kendiliğinden bir müşteri faturası oluştur +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Bir sözleşme doğrulandıktan sonra kendiliğinden bir müşteri faturası oluştur -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Bir müşteri siparişi kapatıldıktan sonra kendiliğinden bir müşteri faturası oluştur -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Bir müşteri siparişi ödenmiş olarak güncellendiğinde ilgili kaynak teklif faturalandı olarak dosyalansın -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Müşteri faturası ödendi olarak ayarlandığında bağlantılı kaynak sipariş(ler)ini faturalandı olarak sınıflandır -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Müşteri faturası doğrulandığında bağlantılı kaynak sipariş(ler)ini faturalandı olarak sınıflandır -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Müşteri faturası doğrulandığında bağlantılı teklif kaynağını faturalandı olarak sınıflandır -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Bir gönderi doğrulandığında ve sevk edilen miktar siparişteki ile aynı ise bağlantılı kaynak siparişini sevk edilecek şekilde sınıflandır. +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Otomatik oluşturma AutomaticClassification=Otomatik sınıflandırma diff --git a/htdocs/langs/uk_UA/accountancy.lang b/htdocs/langs/uk_UA/accountancy.lang index d239f259a94..a7176d2e55f 100644 --- a/htdocs/langs/uk_UA/accountancy.lang +++ b/htdocs/langs/uk_UA/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Code Nature=Nature AccountingJournalType1=Various operation AccountingJournalType2=Sales @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/uk_UA/admin.lang b/htdocs/langs/uk_UA/admin.lang index 92e19112d8a..cc0b3f3822f 100644 --- a/htdocs/langs/uk_UA/admin.lang +++ b/htdocs/langs/uk_UA/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=System tools area SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. Purge=Purge PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. PurgeRunNow=Purge now PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s files or directories deleted. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Purge all security events ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Generate backup @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Read discounts Permission402=Create/modify discounts Permission403=Validate discounts Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files +PreviousDumpFiles=Generated database backup files WeekStartOnDay=First day of week RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. diff --git a/htdocs/langs/uk_UA/banks.lang b/htdocs/langs/uk_UA/banks.lang index 8f59828e6be..db69677f2f0 100644 --- a/htdocs/langs/uk_UA/banks.lang +++ b/htdocs/langs/uk_UA/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/uk_UA/bills.lang b/htdocs/langs/uk_UA/bills.lang index a9353cf1bc0..7962186f271 100644 --- a/htdocs/langs/uk_UA/bills.lang +++ b/htdocs/langs/uk_UA/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Карта рахунка-фактури PredefinedInvoices=Predefined Invoices Invoice=Рахунок-фактура +PdfInvoiceTitle=Рахунок-фактура Invoices=Рахунки-фактури InvoiceLine=Рядок рахунку-фактури InvoiceCustomer=Рахунок клієнта diff --git a/htdocs/langs/uk_UA/compta.lang b/htdocs/langs/uk_UA/compta.lang index 71427bfd4e7..17fe7cfb471 100644 --- a/htdocs/langs/uk_UA/compta.lang +++ b/htdocs/langs/uk_UA/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/uk_UA/errors.lang b/htdocs/langs/uk_UA/errors.lang index feada2d1b5a..853a34b4bb4 100644 --- a/htdocs/langs/uk_UA/errors.lang +++ b/htdocs/langs/uk_UA/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/uk_UA/install.lang b/htdocs/langs/uk_UA/install.lang index a3533a31277..5b6ba06e78a 100644 --- a/htdocs/langs/uk_UA/install.lang +++ b/htdocs/langs/uk_UA/install.lang @@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner. PasswordAgain=Retype password a second time AdminPassword=Password for Dolibarr database owner. CreateDatabase=Create database -CreateUser=Create owner +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Database server - Superuser access CheckToCreateDatabase=Check box if database does not exist and must be created.
    In this case, you must fill the login/password for superuser account at the bottom of this page. -CheckToCreateUser=Check box if database owner does not exist and must be created.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists. KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this) SaveConfigurationFile=Save values diff --git a/htdocs/langs/uk_UA/main.lang b/htdocs/langs/uk_UA/main.lang index da3a60f39bd..ff38eea8742 100644 --- a/htdocs/langs/uk_UA/main.lang +++ b/htdocs/langs/uk_UA/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=The file was successfully uploaded -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parameter Parameters=Parameters Value=Value PersonalValue=Personal value +NewObject=New %s NewValue=New value CurrentValue=Current value Code=Code @@ -441,6 +443,7 @@ Reporting=Reporting Reportings=Reporting Draft=Проект Drafts=Drafts +StatusInterInvoiced= Validated=Підтверджений Opened=Open New=New @@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account AccountCurrency=Account Currency ViewPrivateNote=View notes XMoreLines=%s line(s) hidden +ShowMoreLines=Show more lines PublicUrl=Public URL AddBox=Add box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Gender Genderman=Man diff --git a/htdocs/langs/uk_UA/modulebuilder.lang b/htdocs/langs/uk_UA/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/uk_UA/modulebuilder.lang +++ b/htdocs/langs/uk_UA/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/uk_UA/orders.lang b/htdocs/langs/uk_UA/orders.lang index 493f097fdf4..d067b208afe 100644 --- a/htdocs/langs/uk_UA/orders.lang +++ b/htdocs/langs/uk_UA/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area OrderCard=Order card OrderId=Order Id Order=Order +PdfOrderTitle=Order Orders=Orders OrderLine=Order line OrderDate=Order date diff --git a/htdocs/langs/uk_UA/other.lang b/htdocs/langs/uk_UA/other.lang index e15d490c0f2..e519f7af405 100644 --- a/htdocs/langs/uk_UA/other.lang +++ b/htdocs/langs/uk_UA/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/uk_UA/propal.lang b/htdocs/langs/uk_UA/propal.lang index 203612b53df..c3d70292fba 100644 --- a/htdocs/langs/uk_UA/propal.lang +++ b/htdocs/langs/uk_UA/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal +PdfCommercialProposalTitle=Commercial proposal ProposalCard=Proposal card NewProp=New commercial proposal NewPropal=New proposal diff --git a/htdocs/langs/uk_UA/salaries.lang b/htdocs/langs/uk_UA/salaries.lang index 522bf0a65d7..7e0c80d3380 100644 --- a/htdocs/langs/uk_UA/salaries.lang +++ b/htdocs/langs/uk_UA/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries diff --git a/htdocs/langs/uk_UA/website.lang b/htdocs/langs/uk_UA/website.lang index b3b05ee6cc9..98577e0de5e 100644 --- a/htdocs/langs/uk_UA/website.lang +++ b/htdocs/langs/uk_UA/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/uk_UA/workflow.lang b/htdocs/langs/uk_UA/workflow.lang index 54246856e9b..8021fb9b198 100644 --- a/htdocs/langs/uk_UA/workflow.lang +++ b/htdocs/langs/uk_UA/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Workflow module setup WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/uz_UZ/accountancy.lang b/htdocs/langs/uz_UZ/accountancy.lang index d239f259a94..a7176d2e55f 100644 --- a/htdocs/langs/uz_UZ/accountancy.lang +++ b/htdocs/langs/uz_UZ/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Code Nature=Nature AccountingJournalType1=Various operation AccountingJournalType2=Sales @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/uz_UZ/admin.lang b/htdocs/langs/uz_UZ/admin.lang index a443d04f35d..8dba7af0e0b 100644 --- a/htdocs/langs/uz_UZ/admin.lang +++ b/htdocs/langs/uz_UZ/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=System tools area SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. Purge=Purge PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. PurgeRunNow=Purge now PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s files or directories deleted. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Purge all security events ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Generate backup @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Read discounts Permission402=Create/modify discounts Permission403=Validate discounts Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files +PreviousDumpFiles=Generated database backup files WeekStartOnDay=First day of week RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. diff --git a/htdocs/langs/uz_UZ/banks.lang b/htdocs/langs/uz_UZ/banks.lang index ba42f9a4c83..9bce7b9e29a 100644 --- a/htdocs/langs/uz_UZ/banks.lang +++ b/htdocs/langs/uz_UZ/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/uz_UZ/bills.lang b/htdocs/langs/uz_UZ/bills.lang index 1e83ba9b2d1..6bcd2464c1c 100644 --- a/htdocs/langs/uz_UZ/bills.lang +++ b/htdocs/langs/uz_UZ/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Invoice card PredefinedInvoices=Predefined Invoices Invoice=Invoice +PdfInvoiceTitle=Invoice Invoices=Invoices InvoiceLine=Invoice line InvoiceCustomer=Customer invoice diff --git a/htdocs/langs/uz_UZ/compta.lang b/htdocs/langs/uz_UZ/compta.lang index 94a3bd671ef..f8b5b683cb8 100644 --- a/htdocs/langs/uz_UZ/compta.lang +++ b/htdocs/langs/uz_UZ/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/uz_UZ/errors.lang b/htdocs/langs/uz_UZ/errors.lang index feada2d1b5a..853a34b4bb4 100644 --- a/htdocs/langs/uz_UZ/errors.lang +++ b/htdocs/langs/uz_UZ/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/uz_UZ/install.lang b/htdocs/langs/uz_UZ/install.lang index a3533a31277..5b6ba06e78a 100644 --- a/htdocs/langs/uz_UZ/install.lang +++ b/htdocs/langs/uz_UZ/install.lang @@ -53,10 +53,10 @@ AdminLogin=Login for Dolibarr database owner. PasswordAgain=Retype password a second time AdminPassword=Password for Dolibarr database owner. CreateDatabase=Create database -CreateUser=Create owner +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Database server - Superuser access CheckToCreateDatabase=Check box if database does not exist and must be created.
    In this case, you must fill the login/password for superuser account at the bottom of this page. -CheckToCreateUser=Check box if database owner does not exist and must be created.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Login of the user allowed to create new databases or new users, mandatory if your database or its owner does not already exists. KeepEmptyIfNoPassword=Leave empty if user has no password (avoid this) SaveConfigurationFile=Save values diff --git a/htdocs/langs/uz_UZ/main.lang b/htdocs/langs/uz_UZ/main.lang index 16b9968bd32..a7f196826ce 100644 --- a/htdocs/langs/uz_UZ/main.lang +++ b/htdocs/langs/uz_UZ/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=The file was successfully uploaded -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Parameter Parameters=Parameters Value=Value PersonalValue=Personal value +NewObject=New %s NewValue=New value CurrentValue=Current value Code=Code @@ -441,6 +443,7 @@ Reporting=Reporting Reportings=Reporting Draft=Draft Drafts=Drafts +StatusInterInvoiced= Validated=Validated Opened=Open New=New @@ -727,6 +730,7 @@ SetBankAccount=Define Bank Account AccountCurrency=Account Currency ViewPrivateNote=View notes XMoreLines=%s line(s) hidden +ShowMoreLines=Show more lines PublicUrl=Public URL AddBox=Add box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Gender Genderman=Man diff --git a/htdocs/langs/uz_UZ/orders.lang b/htdocs/langs/uz_UZ/orders.lang index 331e3b49d3e..0c59b4f4ada 100644 --- a/htdocs/langs/uz_UZ/orders.lang +++ b/htdocs/langs/uz_UZ/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Suppliers orders area OrderCard=Order card OrderId=Order Id Order=Order +PdfOrderTitle=Order Orders=Orders OrderLine=Order line OrderDate=Order date diff --git a/htdocs/langs/uz_UZ/other.lang b/htdocs/langs/uz_UZ/other.lang index e15d490c0f2..e519f7af405 100644 --- a/htdocs/langs/uz_UZ/other.lang +++ b/htdocs/langs/uz_UZ/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/uz_UZ/propal.lang b/htdocs/langs/uz_UZ/propal.lang index 3fdb379c5a2..271fb44ac40 100644 --- a/htdocs/langs/uz_UZ/propal.lang +++ b/htdocs/langs/uz_UZ/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Draft commercial proposals ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal +PdfCommercialProposalTitle=Commercial proposal ProposalCard=Proposal card NewProp=New commercial proposal NewPropal=New proposal diff --git a/htdocs/langs/uz_UZ/salaries.lang b/htdocs/langs/uz_UZ/salaries.lang index 522bf0a65d7..7e0c80d3380 100644 --- a/htdocs/langs/uz_UZ/salaries.lang +++ b/htdocs/langs/uz_UZ/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries diff --git a/htdocs/langs/uz_UZ/workflow.lang b/htdocs/langs/uz_UZ/workflow.lang index 54246856e9b..8021fb9b198 100644 --- a/htdocs/langs/uz_UZ/workflow.lang +++ b/htdocs/langs/uz_UZ/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Workflow module setup WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/vi_VN/accountancy.lang b/htdocs/langs/vi_VN/accountancy.lang index 45e801c5fda..b15ed05b14c 100644 --- a/htdocs/langs/vi_VN/accountancy.lang +++ b/htdocs/langs/vi_VN/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=Danh sách các tài khoản kế toán +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Lớp tài khoản Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Lỗi, bạn không thể xóa tài khoản kế toán này bởi vì nó được sử dụng -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Mã Nature=Tự nhiên AccountingJournalType1=Various operation AccountingJournalType2=Bán @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Xuất khẩu -Export=Xuất dữ liệu ExportDraftJournal=Export draft journal Modelcsv=Mô hình xuất khẩu OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/vi_VN/admin.lang b/htdocs/langs/vi_VN/admin.lang index 0df2bc9c284..43e1c742528 100644 --- a/htdocs/langs/vi_VN/admin.lang +++ b/htdocs/langs/vi_VN/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=Khu vực công cụ hệ thống SystemToolsAreaDesc=Khu vực này cung cấp các tính năng quản trị. Sử dụng menu để chọn tính năng mà bạn đang muốn thao tác. Purge=Thanh lọc PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Xóa tất cả các file trong thư mục %s. Tập tin tạm thời mà còn sao lưu cơ sở dữ liệu bãi, tập tin đính kèm với các yếu tố (các bên thứ ba, hóa đơn, ...) và tải lên vào module ECM sẽ bị xóa. PurgeRunNow=Thanh lọc bây giờ PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=% các tập tin hoặc thư mục bị xóa. +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=Thanh lọc tất cả các sự kiện bảo mật ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=Tạo sao lưu @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Phiên bản hiện tại Dolibarr CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Đơn hàng đề xuất nhà cung cấp Module1120Desc=Yêu cầu giá và đơn hàng đề xuất nhà cung cấp Module1200Name=Mantis Module1200Desc=Tích hợp Mantis -Module1400Name=Kế toán -Module1400Desc=Accounting management (double entries) Module1520Name=Xuất chứng từ Module1520Desc=Xuất chứng từ Mass mail Module1780Name=Gán thẻ/phân nhóm @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module để cung cấp một trang thanh toán trực tuyến bằng thẻ tín dụng với Paypal Module50400Name=Kế toán (nâng cao) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=Xem giảm giá Permission402=Tạo/chỉnh sửa giảm giá Permission403=Xác nhận giảm giá Permission404=Xóa giảm giá -Permission510=Xem lương -Permission512=Tạo/chỉnh sửa lương +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Xóa lương Permission517=Xuất dữ liệu lương Permission520=Xem cho vay @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL nhập dữ liệu ForcedToByAModule= Quy luật này buộc %s bởi một mô-đun được kích hoạt -PreviousDumpFiles=Available database backup dump files +PreviousDumpFiles=Generated database backup files WeekStartOnDay=Ngày đầu tiên của tuần RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. diff --git a/htdocs/langs/vi_VN/banks.lang b/htdocs/langs/vi_VN/banks.lang index d37efc853ea..4d27b3dc479 100644 --- a/htdocs/langs/vi_VN/banks.lang +++ b/htdocs/langs/vi_VN/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Séc bị trả lại và hóa đơn bị mở BankAccountModelModule=Mẫu tài liệu dàng cho tài khoản ngân hàng DocumentModelSepaMandate=Mẫu lệnh SEPA. Chỉ dùng cho các nước trong khối EEC DocumentModelBan=Mẫu để in 1 trang với thông tin BAN -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/vi_VN/bills.lang b/htdocs/langs/vi_VN/bills.lang index c88dc3f0ba0..1babe15991e 100644 --- a/htdocs/langs/vi_VN/bills.lang +++ b/htdocs/langs/vi_VN/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=Thẻ hóa đơn PredefinedInvoices=Hoá đơn định sẵn Invoice=Hoá đơn +PdfInvoiceTitle=Hoá đơn Invoices=Hoá đơn InvoiceLine=Dòng hóa đơn InvoiceCustomer=Hóa đơn khách hàng diff --git a/htdocs/langs/vi_VN/compta.lang b/htdocs/langs/vi_VN/compta.lang index 41d427301b1..700a2d75be7 100644 --- a/htdocs/langs/vi_VN/compta.lang +++ b/htdocs/langs/vi_VN/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Sao chép nó vào tháng tới diff --git a/htdocs/langs/vi_VN/errors.lang b/htdocs/langs/vi_VN/errors.lang index 5cb5d29384c..f1a133f461e 100644 --- a/htdocs/langs/vi_VN/errors.lang +++ b/htdocs/langs/vi_VN/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/vi_VN/install.lang b/htdocs/langs/vi_VN/install.lang index 0655145e4d6..6d638802bde 100644 --- a/htdocs/langs/vi_VN/install.lang +++ b/htdocs/langs/vi_VN/install.lang @@ -53,10 +53,10 @@ AdminLogin=Đăng nhập cho chủ sở hữu cơ sở dữ liệu Dolibarr. PasswordAgain=Nhập lại mật khẩu một lần thứ hai AdminPassword=Mật khẩu cho chủ sở hữu cơ sở dữ liệu Dolibarr. CreateDatabase=Tạo cơ sở dữ liệu -CreateUser=Tạo chủ sở hữu +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=Máy chủ cơ sở dữ liệu - truy cập superuser CheckToCreateDatabase=Kiểm tra hộp nếu cơ sở dữ liệu không tồn tại và phải được tạo ra.
    Trong trường hợp này, bạn phải điền tên đăng nhập / mật khẩu cho tài khoản superuser ở dưới cùng của trang này. -CheckToCreateUser=Kiểm tra hộp nếu chủ sở hữu cơ sở dữ liệu không tồn tại và phải được tạo ra.
    Trong trường hợp này, bạn phải chọn tên đăng nhập và mật khẩu của mình và cũng có thể điền tên đăng nhập / mật khẩu cho tài khoản superuser ở dưới cùng của trang này. Nếu hộp này được đánh dấu, cơ sở dữ liệu và mật khẩu chủ sở hữu của nó phải tồn tại. +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=Đăng nhập của người dùng được phép để tạo ra cơ sở dữ liệu mới hoặc người dùng mới, bắt buộc nếu cơ sở dữ liệu của bạn hoặc chủ sở hữu của nó không đã tồn tại. KeepEmptyIfNoPassword=Để trống nếu người dùng không có mật khẩu (tránh điều này) SaveConfigurationFile=Lưu giá trị diff --git a/htdocs/langs/vi_VN/main.lang b/htdocs/langs/vi_VN/main.lang index ff953aeb5e8..162e728bbc5 100644 --- a/htdocs/langs/vi_VN/main.lang +++ b/htdocs/langs/vi_VN/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=Các tập tin được tải lên thành công -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=Một tập tin được chọn để đính kèm nhưng vẫn chưa được tải lên. Bấm vào nút "Đính kèm tập tin" cho việc này. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=Thông số Parameters=Các thông số Value=Giá trị PersonalValue=Giá trị cá nhân +NewObject=New %s NewValue=Giá trị mới CurrentValue=Giá trị hiện tại Code=Mã @@ -441,6 +443,7 @@ Reporting=Việc báo cáo Reportings=Việc báo cáo Draft=Dự thảo Drafts=Dự thảo +StatusInterInvoiced= Validated=Đã xác nhận Opened=Mở New=Mới @@ -727,6 +730,7 @@ SetBankAccount=Xác định tài khoản ngân hàng AccountCurrency=Tài khoản Tiền tệ ViewPrivateNote=Xem ghi chú XMoreLines=%s dòng ẩn +ShowMoreLines=Show more lines PublicUrl=URL công khai AddBox=Thêm hộp SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Vào Nhà-Thiết lập-Công ty để đổi logo hoặc vào Nhà-Thiết lập-Hiển thị để ẩn. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Gender Genderman=Man diff --git a/htdocs/langs/vi_VN/modulebuilder.lang b/htdocs/langs/vi_VN/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/vi_VN/modulebuilder.lang +++ b/htdocs/langs/vi_VN/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/vi_VN/orders.lang b/htdocs/langs/vi_VN/orders.lang index 2f64030be08..24cf20df6ef 100644 --- a/htdocs/langs/vi_VN/orders.lang +++ b/htdocs/langs/vi_VN/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=Khu vực đặt hàng của nhà cung cấp OrderCard=Thẻ đặt hàng OrderId=Mã đặt hàng Order=Đơn hàng +PdfOrderTitle=Đơn hàng Orders=Đơn hàng OrderLine=Chi tiết đơn hàng OrderDate=Ngày đặt hàng diff --git a/htdocs/langs/vi_VN/other.lang b/htdocs/langs/vi_VN/other.lang index 30bba6aba30..62c9c0f49e7 100644 --- a/htdocs/langs/vi_VN/other.lang +++ b/htdocs/langs/vi_VN/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/vi_VN/propal.lang b/htdocs/langs/vi_VN/propal.lang index 9f00a930015..70e6bccb2cd 100644 --- a/htdocs/langs/vi_VN/propal.lang +++ b/htdocs/langs/vi_VN/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=Dự thảo đơn hàng đề xuất ProposalsOpened=Open commercial proposals Prop=Đơn hàng đề xuất CommercialProposal=Đơn hàng đề xuất +PdfCommercialProposalTitle=Đơn hàng đề xuất ProposalCard=Thẻ đơn hàng đề xuất NewProp=Đơn hàng đề xuất mới NewPropal=Đơn hàng đề xuất mới diff --git a/htdocs/langs/vi_VN/salaries.lang b/htdocs/langs/vi_VN/salaries.lang index 092bfc6ab02..23904b7ced0 100644 --- a/htdocs/langs/vi_VN/salaries.lang +++ b/htdocs/langs/vi_VN/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Mức lương Salaries=Tiền lương diff --git a/htdocs/langs/vi_VN/website.lang b/htdocs/langs/vi_VN/website.lang index 0ef146632dd..11df1380930 100644 --- a/htdocs/langs/vi_VN/website.lang +++ b/htdocs/langs/vi_VN/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/vi_VN/workflow.lang b/htdocs/langs/vi_VN/workflow.lang index 40a2a16a796..56defee7da0 100644 --- a/htdocs/langs/vi_VN/workflow.lang +++ b/htdocs/langs/vi_VN/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=Thiết lập mô-đun quy trình WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=Chưa có sử đổi quy trình nào với những mô đun đang hoạt động -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Tự động tạo đơn đặt hàng cho khách hàng sau một đề xuất thương mại được ký -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Tạo hóa đơn khách hàng tự động sau 1 đề xuất thương mại được ký kết +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Tạo một khóa đơn khách hàng tự động sau khi hợp đồng được thông qua -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Tự động tạo 1 hóa đơn khách hàng sau khi đơn đặt hàng được đóng -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Phân loại đề xuất nguồn liên quan đến hóa đơn khi đơn đặt hàng được thiết lập để trả -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Phân loại đơn đặt hàng nguồn liên kết (s) để tính tiền khi hóa đơn khách hàng được thiết lập để trả -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Phân loại theo thứ tự liên kết nguồn khách hàng (s) để tính tiền khi hóa đơn của khách hàng được xác nhận -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Tạo tự động AutomaticClassification=Phân loại tự động diff --git a/htdocs/langs/zh_CN/accountancy.lang b/htdocs/langs/zh_CN/accountancy.lang index 52b3658a228..3f434069181 100644 --- a/htdocs/langs/zh_CN/accountancy.lang +++ b/htdocs/langs/zh_CN/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=账目平衡 - +ObjectsRef=Source object ref CAHTF=税前供应商采购总计 TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=财务账 ExpenseReportsJournal=Expense reports journal DescFinanceJournal=财务账包括全部银行账户付款类型 -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=会计账目清单 +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=账户类 Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=错误,你不能删除这个会计帐户,因为它是用来 -MvtNotCorrectlyBalanced=不正确的移转调拨。 Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=编码 Nature=属性 AccountingJournalType1=Various operation AccountingJournalType2=销售 @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=导出 -Export=导出 ExportDraftJournal=Export draft journal Modelcsv=导出型号 OptionsDeactivatedForThisExportModel=对于这种导出模式,选项被禁用 diff --git a/htdocs/langs/zh_CN/admin.lang b/htdocs/langs/zh_CN/admin.lang index 98ab103d79b..b30dc2a699a 100644 --- a/htdocs/langs/zh_CN/admin.lang +++ b/htdocs/langs/zh_CN/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=系统工具区 SystemToolsAreaDesc=此区域提供管理员功能。请点选菜单来管理你想要的内容。 Purge=清空 PurgeAreaDesc=该页面允许您删除所有由Dolibarr自动生成和储存的文件(临时文件和所有在%s目录里的文件)。不必要使用该功能。它是为那些把Dolibarr安装在第三方的服务器并且没有删除文件权限的使用者提供的一个应急操作。 -PurgeDeleteLogFile=删除系统模块日志文件 %s(无数据丢失风险) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=删除临时文件(无数据丢失风险) PurgeDeleteTemporaryFilesShort=删除临时文件 PurgeDeleteAllFilesInDocumentsDir=删除 %s 目录中的所有文件。临时文件、数据库备份转储文件、系统档案条目(第三方、账单)的附件及 电子文档管理 模块中上传的文件。 PurgeRunNow=立即清空 PurgeNothingToDelete=未删除目录或文件 PurgeNDirectoriesDeleted=%s 个文件或目录删除。 +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=清空所有安全事件 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=生成备份 @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=在这一步中,你可以使用 选择模块文件 来发送包 +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=Dolibarr 当前版本 CallUpdatePage=升级更新数据库和数据请到: %s. LastStableVersion=最新稳定版 @@ -535,8 +536,6 @@ Module1120Name=供应商商业报价 Module1120Desc=要求供应商商业报价和价格 Module1200Name=Mantis Module1200Desc=Mantis 整合 -Module1400Name=会计 -Module1400Desc=Accounting management (double entries) Module1520Name=文档生成 Module1520Desc=生成文档群发邮件 Module1780Name=标签/分类 @@ -585,7 +584,7 @@ Module50100Desc= (POS)POS模块. Module50200Name=Paypal Module50200Desc=提供信用卡与Paypal网上支付页面的模块 Module50400Name=会计(高级) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=IPP打印 Module54000Desc=不打开文档而使用 Cups IPP 界面直接打印 (打印机必须在服务器可见,Cups 必须安装在服务器上)。 Module55000Name=问卷, 调查或投票 @@ -751,8 +750,10 @@ Permission401=读取折扣 Permission402=创建/变更折扣 Permission403=确认折扣 Permission404=删除折扣 -Permission510=查看工资 -Permission512=创建/变更工资 +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=删除工资 Permission517=导出工资 Permission520=读取贷款 @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL 导入 ForcedToByAModule= 此规则被一个启用中的模块强制应用于 %s -PreviousDumpFiles=可用的数据库备份转储文件 +PreviousDumpFiles=Generated database backup files WeekStartOnDay=每周的第一天 RunningUpdateProcessMayBeRequired=似乎需要运行升级程序(程序版本 %s 与数据库版本 %s 不符) YouMustRunCommandFromCommandLineAfterLoginToUser=您必须以 %s 用户在MySQL控制台登陆后通过命令行运行此命令否则您必须在命令行的末尾使用 -W 选项来提供 %s 的密码。 diff --git a/htdocs/langs/zh_CN/banks.lang b/htdocs/langs/zh_CN/banks.lang index 286ab4a160b..509496160ff 100644 --- a/htdocs/langs/zh_CN/banks.lang +++ b/htdocs/langs/zh_CN/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=检查退回发票并重新打开发票 BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/zh_CN/bills.lang b/htdocs/langs/zh_CN/bills.lang index acd51f412b3..e81bf8c1c9c 100644 --- a/htdocs/langs/zh_CN/bills.lang +++ b/htdocs/langs/zh_CN/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=发票信息 PredefinedInvoices=预定义的发票 Invoice=发票 +PdfInvoiceTitle=发票 Invoices=发票 InvoiceLine=发票线 InvoiceCustomer=客户发票 diff --git a/htdocs/langs/zh_CN/compta.lang b/htdocs/langs/zh_CN/compta.lang index 944091f39c2..09875837fed 100644 --- a/htdocs/langs/zh_CN/compta.lang +++ b/htdocs/langs/zh_CN/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=复制 social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=复制下一个月 diff --git a/htdocs/langs/zh_CN/errors.lang b/htdocs/langs/zh_CN/errors.lang index 0abbed95bfb..46964709367 100644 --- a/htdocs/langs/zh_CN/errors.lang +++ b/htdocs/langs/zh_CN/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/zh_CN/install.lang b/htdocs/langs/zh_CN/install.lang index 1aae3ad7dde..82463dd0cc4 100644 --- a/htdocs/langs/zh_CN/install.lang +++ b/htdocs/langs/zh_CN/install.lang @@ -53,10 +53,10 @@ AdminLogin=这里填写Dolibarr数据库的账号。 PasswordAgain=确认密码 AdminPassword=这里填写Dolibarr数据库的密码。 CreateDatabase=创建数据库 -CreateUser=创建账号 +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=数据库服务器 - 超级用户 CheckToCreateDatabase=勾选此选项则表示如果数据库不存在则创建数据库。
    在这种情况下, 勾选之后会在页底显示填写超级数据库账号和密码的输入框。 -CheckToCreateUser=如果数据库所有者复选框不存在,必须创建。
    在这种情况下,必须选择自己的登录名和密码,并填写在本页面底部的登陆/为超级用户帐户的密码。如果此框未被选中,用户的数据库及其密码必须存在。 +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=选中此项表示使用有创建数据库并且可创建数据库登陆账号的权限,前提是假如填写的数据库不存在。 KeepEmptyIfNoPassword=如果账号无需密码则保留空白不填写(最好避免空密码这种情况不安全呀) SaveConfigurationFile=保存参数 diff --git a/htdocs/langs/zh_CN/main.lang b/htdocs/langs/zh_CN/main.lang index 6bccc043869..78be1f0b83d 100644 --- a/htdocs/langs/zh_CN/main.lang +++ b/htdocs/langs/zh_CN/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=文件上传成功 -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=一个文件被选中的附件,但还没有上传。点击“附加文件”为这一点。 NbOfEntries=铌条目 GoToWikiHelpPage=阅读在线帮助文档 (需要访问外网) @@ -196,6 +197,7 @@ Parameter=参数 Parameters=参数 Value=值 PersonalValue=自定义 +NewObject=New %s NewValue=新的价值 CurrentValue=当前值 Code=编码 @@ -441,6 +443,7 @@ Reporting=报告 Reportings=报告 Draft=草稿 Drafts=草稿 +StatusInterInvoiced= Validated=验证 Opened=打开 New=新建 @@ -727,6 +730,7 @@ SetBankAccount=定义银行账户 AccountCurrency=帐户货币 ViewPrivateNote=查看备注 XMoreLines=%s 明细(s) 隐藏 +ShowMoreLines=Show more lines PublicUrl=公网URL AddBox=添加选项框 SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=点击菜单 主页 -> 设置 -> 公司 来修改LOGO或 主页 -> 设置 -> 显示菜单隐藏它。 Deny=否认 Denied=否认 +ListOf=List of %s ListOfTemplates=模板列表 Gender=性别 Genderman=男人 diff --git a/htdocs/langs/zh_CN/modulebuilder.lang b/htdocs/langs/zh_CN/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/zh_CN/modulebuilder.lang +++ b/htdocs/langs/zh_CN/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/zh_CN/multicurrency.lang b/htdocs/langs/zh_CN/multicurrency.lang index b8ed714c199..a529b8b73bb 100644 --- a/htdocs/langs/zh_CN/multicurrency.lang +++ b/htdocs/langs/zh_CN/multicurrency.lang @@ -4,7 +4,8 @@ ErrorAddRateFail=Error in added rate ErrorAddCurrencyFail=Error in added currency ErrorDeleteCurrencyFail=Error delete fail multicurrency_syncronize_error=Synchronisation error: %s -multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) +MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Use date of document to find currency rate, instead of using latest known rate +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the latest known rate) CurrencyLayerAccount=CurrencyLayer API CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
    Get your API key
    If you use a free account you can't change the currency source (USD by default)
    But if your main currency isn't USD you can use the alternate currency source to force you main currency

    You are limited at 1000 synchronizations per month multicurrency_appId=API key diff --git a/htdocs/langs/zh_CN/orders.lang b/htdocs/langs/zh_CN/orders.lang index fce57b2d250..6e6020ad9a8 100644 --- a/htdocs/langs/zh_CN/orders.lang +++ b/htdocs/langs/zh_CN/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=供应商订单区 OrderCard=订单信息 OrderId=订单编号 Order=订单 +PdfOrderTitle=订单 Orders=订单 OrderLine=在线订单 OrderDate=订购日期 diff --git a/htdocs/langs/zh_CN/other.lang b/htdocs/langs/zh_CN/other.lang index d732e68bfe1..d0e9f6b64bc 100644 --- a/htdocs/langs/zh_CN/other.lang +++ b/htdocs/langs/zh_CN/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/zh_CN/propal.lang b/htdocs/langs/zh_CN/propal.lang index 25034b9ec80..21e7f8aa536 100644 --- a/htdocs/langs/zh_CN/propal.lang +++ b/htdocs/langs/zh_CN/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=起草报价单 ProposalsOpened=开启商业报价 Prop=报价单 CommercialProposal=报价单 +PdfCommercialProposalTitle=报价单 ProposalCard=报价 信息卡 NewProp=新建报价单 NewPropal=新建报价单 diff --git a/htdocs/langs/zh_CN/salaries.lang b/htdocs/langs/zh_CN/salaries.lang index 0696678782a..2806dc9e6c6 100644 --- a/htdocs/langs/zh_CN/salaries.lang +++ b/htdocs/langs/zh_CN/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=工资 Salaries=工资 diff --git a/htdocs/langs/zh_CN/website.lang b/htdocs/langs/zh_CN/website.lang index 5e31578f533..54725ac5193 100644 --- a/htdocs/langs/zh_CN/website.lang +++ b/htdocs/langs/zh_CN/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=删除网址 ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=页面名字/别名 +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=外部CSS文件的URL地址 WEBSITE_CSS_INLINE=CSS 内容 -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=媒体库 -EditCss=编辑 Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=编辑菜单 EditPageMeta=编辑 Meta EditPageContent=编辑内容 Website=网站 -Webpage=Web page -AddPage=添加页面 +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=网站 '%s' 页面 %s 已删除 -PageAdded=页面 '%s' 已添加 +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=在新标签页查看网站 ViewPageInNewTab=在新标签页查看页面 SetAsHomePage=设为首页 @@ -28,4 +30,9 @@ ViewWebsiteInProduction=使用主页URL网址查看网页 SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/zh_CN/workflow.lang b/htdocs/langs/zh_CN/workflow.lang index b0286d8c63d..20720b86d33 100644 --- a/htdocs/langs/zh_CN/workflow.lang +++ b/htdocs/langs/zh_CN/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=工作流模块的设置 WorkflowDesc=此模块的设计,以修改自动动作到应用程序的行为。默认情况下,工作流是打开的(你可以按你想要的顺序做事情)。你可以激活你感兴趣的自动动作。 ThereIsNoWorkflowToModify=没有工作流程,您可以修改你已激活的模块。 -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=商业提案签署后自动创建一个客户订单 -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=当商业建议签署后自动创建客户发票 +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=在合同确认后自动创建客户发票 -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=当客户订单关闭后自动创建客户发票 -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=分类链接来源建议,创建客户订单时设置支付 -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=当客户发票标记为已开票时将账单归类到客户订单(s)资源 -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=当客户发票标记为已确认时将账单归类到客户订单(s)资源 -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=当客户发票生效时分类链接报价源到账单 -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/langs/zh_TW/accountancy.lang b/htdocs/langs/zh_TW/accountancy.lang index 9f121aa2734..2fb30c87ca6 100644 --- a/htdocs/langs/zh_TW/accountancy.lang +++ b/htdocs/langs/zh_TW/accountancy.lang @@ -28,7 +28,14 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup +MainAccountForVatPaymentNotDefined=Main accounting account for VAT payment not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -45,7 +52,7 @@ AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for 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 expences (miscellaneous taxes). For this, use the menu entry %s. AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. 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 for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. @@ -83,7 +90,7 @@ ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance - +ObjectsRef=Source object ref CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind @@ -103,7 +110,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) @@ -154,7 +161,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -170,6 +177,8 @@ AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts +UnknownAccountForThirdparty=Unknown third party account. We will use %s +UnknownAccountForThirdpartyBlocking=Unknown third party account. Blocking error Pcgtype=Class of account Pcgsubtype=Subclass of account @@ -194,7 +203,7 @@ ValidateHistory=Bind Automatically AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s +MvtNotCorrectlyBalanced=Movement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card GeneralLedgerIsWritten=Transactions are written in the Ledger GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. @@ -210,7 +219,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=碼 Nature=類型 AccountingJournalType1=Various operation AccountingJournalType2=可否銷售 @@ -221,8 +229,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/zh_TW/admin.lang b/htdocs/langs/zh_TW/admin.lang index b3662996060..eeae03e712f 100644 --- a/htdocs/langs/zh_TW/admin.lang +++ b/htdocs/langs/zh_TW/admin.lang @@ -140,13 +140,14 @@ SystemToolsArea=系統工具區 SystemToolsAreaDesc=此區提供了管理功能,請點選選單來管理你想要的內容。 Purge=Purge PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=刪除所有文件目錄%s。臨時文件,而且文件附加到元素(第三方發票,...),進入流腦模組上傳將被刪除。 PurgeRunNow=現在清除 PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s的文件或目錄刪除。 +PurgeNDirectoriesFailed=Failed to delete %s files or directories. PurgeAuditEvents=清除所有事件 ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. GenerateBackup=生成的備份 @@ -298,7 +299,7 @@ SetupIsReadyForUse=Module deployment is finished. You must however enable and se NotExistsDirect=The alternative root directory is not defined to an existing directory.
    InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
    Just create a directory at the root of Dolibarr (eg: custom).
    InfDirExample=
    Then declare it in the file conf.php
    $dolibarr_main_url_root_alt='http://myserver/custom'
    $dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
    If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +YouCanSubmitFile=For this step, you can submit your package file here : CurrentVersion=此系統軟體(Dolibarr)目前版本 CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version @@ -535,8 +536,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=螂 Module1200Desc=螳螂一體化 -Module1400Name=會計 -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +584,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=貝寶 Module50200Desc=模組提供信用卡與Paypal網上支付頁面 Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double entries) +Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote @@ -751,8 +750,10 @@ Permission401=閲讀折扣 Permission402=建立/修改折扣 Permission403=驗證折扣 Permission404=刪除折扣 -Permission510=Read Salaries -Permission512=Create/modify salaries +Permission501=Read employee contracts/salaries +Permission502=Create/modify employee contracts/salaries +Permission511=Read payment of salaries +Permission512=Create/modify payment of salaries Permission514=Delete salaries Permission517=Export salaries Permission520=Read Loans @@ -1057,7 +1058,7 @@ RestoreDesc2=Restore archive file (zip file for example) of documents directory RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. RestoreMySQL=MySQL import ForcedToByAModule= 這項規則是被迫到%s的一個激活的模組 -PreviousDumpFiles=可用的數據庫備份轉儲文件 +PreviousDumpFiles=Generated database backup files WeekStartOnDay=每週的第一天 RunningUpdateProcessMayBeRequired=運行升級進程似乎需要(程序版本%s版本%s從數據庫不同) YouMustRunCommandFromCommandLineAfterLoginToUser=您必須運行此命令從命令行殻用戶登錄後進入%s。 diff --git a/htdocs/langs/zh_TW/banks.lang b/htdocs/langs/zh_TW/banks.lang index 7ba0be71a05..9255f85c8b4 100644 --- a/htdocs/langs/zh_TW/banks.lang +++ b/htdocs/langs/zh_TW/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New various payment -VariousPayment=Various payment -VariousPayments=Various payments -ShowVariousPayment=Show various payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments +VariousPayments=Miscellaneous payments +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/zh_TW/bills.lang b/htdocs/langs/zh_TW/bills.lang index 81c1029f289..5ea35a6bddc 100644 --- a/htdocs/langs/zh_TW/bills.lang +++ b/htdocs/langs/zh_TW/bills.lang @@ -45,6 +45,7 @@ InvoiceHasAvoir=Was source of one or several credit notes CardBill=發票卡 PredefinedInvoices=預定義的發票 Invoice=發票 +PdfInvoiceTitle=發票 Invoices=發票 InvoiceLine=發票線 InvoiceCustomer=客戶發票 diff --git a/htdocs/langs/zh_TW/compta.lang b/htdocs/langs/zh_TW/compta.lang index 8505bf63968..6285e1ff5c5 100644 --- a/htdocs/langs/zh_TW/compta.lang +++ b/htdocs/langs/zh_TW/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - 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=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/zh_TW/errors.lang b/htdocs/langs/zh_TW/errors.lang index 4fe69b16b2f..8b438c2db77 100644 --- a/htdocs/langs/zh_TW/errors.lang +++ b/htdocs/langs/zh_TW/errors.lang @@ -194,6 +194,9 @@ ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. ErrorNoWarehouseDefined=Error, no warehouses defined. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorMassValidationNotAllowedWhenStockIncreaseOnAction=Mass validation is not possible when option to increase/decrease stock is set on this action (you must validate one by one so you can define the warehouse to increase/decrease) +ErrorObjectMustHaveStatusDraftToBeValidated=Object %s must have status 'Draft' to be validated. +ErrorObjectMustHaveLinesToBeValidated=Object %s must have lines to be validated. # Warnings 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. diff --git a/htdocs/langs/zh_TW/install.lang b/htdocs/langs/zh_TW/install.lang index 4eaf1122060..416f906de50 100644 --- a/htdocs/langs/zh_TW/install.lang +++ b/htdocs/langs/zh_TW/install.lang @@ -53,10 +53,10 @@ AdminLogin=登錄為Dolibarr數據庫所有者。 PasswordAgain=第二次再次輸入密碼 AdminPassword=密碼Dolibarr數據庫所有者。 CreateDatabase=創建數據庫 -CreateUser=創建所有者 +CreateUser=Create owner or grant him permission on database DatabaseSuperUserAccess=數據庫服務器 - 超級用戶 CheckToCreateDatabase=檢查中,如果數據庫不存在,必須創建。
    在這種情況下,必須填寫登錄/密碼為超級用戶帳戶在本頁面底部。 -CheckToCreateUser=如果數據庫所有者復選框不存在,必須創建。
    在這種情況下,必須選擇自己的登錄名和密碼,並填寫在本頁面底部的登錄/為超級用戶帳戶的密碼。如果此框未被選中,業主數據庫及其密碼必須存在。 +CheckToCreateUser=Check box if database owner does not exist and must be created, or if it exists but database does not exists and permissions must be granted.
    In this case, you must choose its login and password and also fill the login/password for the superuser account at the bottom of this page. If this box is unchecked, owner database and its passwords must exists. DatabaseRootLoginDescription=允許創建新的數據庫或新用戶,無用的,如果你的數據庫和數據庫登錄已經存在就像當你在一個網站舉辦的托管服務提供商是(用戶登錄)。 KeepEmptyIfNoPassword=給空如果用戶沒有密碼(避免這種情況) SaveConfigurationFile=保存價值 diff --git a/htdocs/langs/zh_TW/main.lang b/htdocs/langs/zh_TW/main.lang index d3783d05db8..2b684e945d2 100644 --- a/htdocs/langs/zh_TW/main.lang +++ b/htdocs/langs/zh_TW/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=檔案已上傳 -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=附件尚未上傳 NbOfEntries=鈮條目 GoToWikiHelpPage=Read online help (Internet access needed) @@ -196,6 +197,7 @@ Parameter=參數名稱 Parameters=參數清單 Value=值 PersonalValue=個人設定值 +NewObject=New %s NewValue=新值 CurrentValue=當前值 Code=碼 @@ -441,6 +443,7 @@ Reporting=報告 Reportings=報表 Draft=草案 Drafts=草稿 +StatusInterInvoiced= Validated=驗證 Opened=開放 New=新 @@ -727,6 +730,7 @@ SetBankAccount=定義銀行帳號 AccountCurrency=帳戶幣別 ViewPrivateNote=View notes XMoreLines=%s line(s) hidden +ShowMoreLines=Show more lines PublicUrl=公開網址 AddBox=Add box SelectElementAndClick=Select an element and click %s @@ -735,6 +739,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=拒絕 Denied=拒絕 +ListOf=List of %s ListOfTemplates=範本列表 Gender=性別 Genderman=男 diff --git a/htdocs/langs/zh_TW/modulebuilder.lang b/htdocs/langs/zh_TW/modulebuilder.lang index e4812fa4e79..966b3117453 100644 --- a/htdocs/langs/zh_TW/modulebuilder.lang +++ b/htdocs/langs/zh_TW/modulebuilder.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - loan ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...). The CRUD class file, but also API file, pages to list/add/edit/delete object and SQL files will be generated. ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module @@ -9,10 +9,11 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated (.sql files and .class.php file) ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). -ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have within easy reach all the rules to develop. Also this text content will be included into the generated documentation (see last tab). You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A CRUD DAO class, SQL files, page to list record of objects, to create/edit/view a record and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. @@ -24,7 +25,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsNotActive=This module was not activated yet. Ggo into %s to make it live or click here: ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor @@ -38,3 +39,18 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists +TriggersFile=File for triggers code +HooksFile=File for hooks code +WidgetFile=Widget file +ReadmeFile=Readme file +ChangeLog=ChangeLog file +SqlFile=Sql file +SqlFileKey=Sql file for keys +AnObjectAlreadyExistWithThisNameAndDiffCase=An object already exists with this name and a different case +UseAsciiDocFormat=You can use Markdown format, but it is recommanded to use Asciidoc format (Comparison between .md and .asciidoc: http://asciidoctor.org/docs/user-manual/#compared-to-markdown) diff --git a/htdocs/langs/zh_TW/orders.lang b/htdocs/langs/zh_TW/orders.lang index d66dcf2b3a2..8dda4af0a15 100644 --- a/htdocs/langs/zh_TW/orders.lang +++ b/htdocs/langs/zh_TW/orders.lang @@ -4,6 +4,7 @@ SuppliersOrdersArea=供應商的訂單面積 OrderCard=訂單資訊 OrderId=訂單編號 Order=訂單 +PdfOrderTitle=訂單 Orders=訂單 OrderLine=在線訂單 OrderDate=訂購日期 diff --git a/htdocs/langs/zh_TW/other.lang b/htdocs/langs/zh_TW/other.lang index a6415dd7ac3..ef6761c7ee4 100644 --- a/htdocs/langs/zh_TW/other.lang +++ b/htdocs/langs/zh_TW/other.lang @@ -17,6 +17,7 @@ TextPreviousMonthOfInvoice=Previous month (text) of invoice date NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. +DocFileGeneratedInto=Doc file generated into %s. YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date diff --git a/htdocs/langs/zh_TW/propal.lang b/htdocs/langs/zh_TW/propal.lang index 77d4f965056..28903c0ade3 100644 --- a/htdocs/langs/zh_TW/propal.lang +++ b/htdocs/langs/zh_TW/propal.lang @@ -6,6 +6,7 @@ ProposalsDraft=商業建議草案 ProposalsOpened=Open commercial proposals Prop=商業建議 CommercialProposal=商業建議 +PdfCommercialProposalTitle=商業建議 ProposalCard=建議卡 NewProp=新的商業建議 NewPropal=新建議 diff --git a/htdocs/langs/zh_TW/salaries.lang b/htdocs/langs/zh_TW/salaries.lang index 522bf0a65d7..7e0c80d3380 100644 --- a/htdocs/langs/zh_TW/salaries.lang +++ b/htdocs/langs/zh_TW/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries diff --git a/htdocs/langs/zh_TW/website.lang b/htdocs/langs/zh_TW/website.lang index 865bd3dc93d..d7063287f2d 100644 --- a/htdocs/langs/zh_TW/website.lang +++ b/htdocs/langs/zh_TW/website.lang @@ -4,22 +4,24 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content -PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +PageNameAliasHelp=Name or alias of the page.
    This alias is also used to forge a SEO URL when website is ran from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library -EditCss=Edit Style/CSS +EditCss=Edit Style/CSS or HTML header EditMenu=Edit menu EditPageMeta=Edit Meta EditPageContent=Edit Content Website=Web site -Webpage=Web page -AddPage=Add page +Webpage=Web page/container +AddPage=Add page/container HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageContent=Page/Contenair +PageDeleted=Page/Contenair '%s' of website %s deleted +PageAdded=Page/Contenair '%s' added ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page @@ -28,4 +30,9 @@ ViewWebsiteInProduction=View web site using home URLs SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
    then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

    The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
    %s
    URL served by external server:
    %s PreviewSiteServedByDolibarr=Preview %s in a new tab.

    The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
    The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
    URL served by Dolibarr:
    %s

    To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
    %s
    then enter the name of this virtual server and click on the other preview button. +VirtualHostUrlNotDefined=URL of the virtual host served by external web server not defined NoPageYet=No pages yet +SyntaxHelp=Help on code syntax +YouCanEditHtmlSource=You can edit HTML source code using the "Source" button in editor. You can also include PHP code into this source using tags <?php ?>. The following global variables are available: $conf, $langs, $db, $mysoc, $user, $website.

    You can also include content of another Page/Container with the following syntax: <?php dolIncludeHtmlContent($websitekey.'/contentaliastoinclude.php'); ?>

    To include a link to download a file stored into the documents/medias directory, use syntax:
    <a href="/document.php?modulepart=medias&file=filename.ext">. +ClonePage=Clone page/container +CloneSite=Clone site diff --git a/htdocs/langs/zh_TW/workflow.lang b/htdocs/langs/zh_TW/workflow.lang index 35fda4766ef..5e28accfaa2 100644 --- a/htdocs/langs/zh_TW/workflow.lang +++ b/htdocs/langs/zh_TW/workflow.lang @@ -2,14 +2,16 @@ WorkflowSetup=工作流模塊的設置 WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed +# Autocreate +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed (new order will have same amount than proposal) +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed (new invoice will have same amount than proposal) descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer order is set to paid -descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) +# Autoclassify +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer order is set to billed (and if amount of the order is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of signed linked proposals) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classify linked source customer order(s) to billed when customer invoice is set to paid (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) AutomaticCreation=Automatic creation AutomaticClassification=Automatic classification diff --git a/htdocs/loan/card.php b/htdocs/loan/card.php index 29cea1eb019..4f61aa833bf 100644 --- a/htdocs/loan/card.php +++ b/htdocs/loan/card.php @@ -41,6 +41,8 @@ $action=GETPOST('action','aZ09'); $confirm=GETPOST('confirm'); $cancel=GETPOST('cancel','alpha'); +$projectid = GETPOST('projectid','int'); + // Security check $socid = GETPOST('socid','int'); if ($user->societe_id) $socid=$user->societe_id; @@ -133,7 +135,7 @@ if (empty($reshook)) $object->rate = $rate; $object->note_private = GETPOST('note_private'); $object->note_public = GETPOST('note_public'); - $object->fk_project = GETPOST('fk_project'); + $object->fk_project = GETPOST('projectid','int'); $accountancy_account_capital = GETPOST('accountancy_account_capital'); $accountancy_account_insurance = GETPOST('accountancy_account_insurance'); @@ -215,7 +217,7 @@ if (empty($reshook)) if ($action == 'classin' && $user->rights->loan->write) { $object->fetch($id); - $result = $object->setProject(GETPOST('projectid')); + $result = $object->setProject($projectid); if ($result < 0) setEventMessages($object->error, $object->errors, 'errors'); } @@ -309,7 +311,7 @@ if ($action == 'create') print '
    '; } @@ -443,21 +445,21 @@ if ($id > 0) { $langs->load("projects"); $morehtmlref.='
    '.$langs->trans('Project') . ' '; - if ($user->rights->commande->creer) + if ($user->rights->loan->write) { - if ($action != 'classify') - $morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; - if ($action == 'classify') { - //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); - $morehtmlref.='
    '; - $morehtmlref.=''; - $morehtmlref.=''; - $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); - $morehtmlref.=''; - $morehtmlref.=''; - } else { - $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); - } + if ($action != 'classify') + $morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; + if ($action == 'classify') { + //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); + $morehtmlref.='
    '; + $morehtmlref.=''; + $morehtmlref.=''; + $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref.=''; + $morehtmlref.=''; + } else { + $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + } } else { if (! empty($object->fk_project)) { $proj = new Project($db); diff --git a/htdocs/loan/document.php b/htdocs/loan/document.php index f4f490a146a..b43261d2b9d 100644 --- a/htdocs/loan/document.php +++ b/htdocs/loan/document.php @@ -89,8 +89,38 @@ if ($object->id) $morehtmlref='
    '; // Ref loan - $morehtmlref.=$form->editfieldkey("Label", 'label', $object->label, $object, $user->rights->loan->write, 'string', '', 0, 1); - $morehtmlref.=$form->editfieldval("Label", 'label', $object->label, $object, $user->rights->loan->write, 'string', '', null, null, '', 1); + $morehtmlref.=$form->editfieldkey("Label", 'label', $object->label, $object, 0, 'string', '', 0, 1); + $morehtmlref.=$form->editfieldval("Label", 'label', $object->label, $object, 0, 'string', '', null, null, '', 1); + // Project + if (! empty($conf->projet->enabled)) { + $langs->load("projects"); + $morehtmlref .= '
    ' . $langs->trans('Project') . ' : '; + if ($user->rights->loan->write) { + //if ($action != 'classify') + // $morehtmlref .= '' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; + if ($action == 'classify') { + // $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); + $morehtmlref .= '
    '; + $morehtmlref .= ''; + $morehtmlref .= ''; + $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref .= ''; + $morehtmlref .= ''; + } else { + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + } + } else { + if (! empty($object->fk_project)) { + $proj = new Project($db); + $proj->fetch($object->fk_project); + $morehtmlref .= ''; + $morehtmlref .= $proj->ref; + $morehtmlref .= ''; + } else { + $morehtmlref .= ''; + } + } + } $morehtmlref.='
    '; $linkback = '' . $langs->trans("BackToList") . ''; diff --git a/htdocs/loan/index.php b/htdocs/loan/index.php index 0aa16b4225d..7b96c13358f 100644 --- a/htdocs/loan/index.php +++ b/htdocs/loan/index.php @@ -119,7 +119,7 @@ if ($resql) print ''; print ''; print ''; - + print_barre_liste($langs->trans("Loans"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_accountancy.png', 0, '', '', $limit); print '
    '; @@ -139,14 +139,14 @@ if ($resql) print ''; print '
    '; - print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"l.rowid","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"l.label","",$param,'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("LoanCapital"),$_SERVER["PHP_SELF"],"l.capital","",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DateStart"),$_SERVER["PHP_SELF"],"l.datestart","",$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"l.paid","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"l.rowid","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("Label",$_SERVER["PHP_SELF"],"l.label","",$param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre("LoanCapital",$_SERVER["PHP_SELF"],"l.capital","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("DateStart",$_SERVER["PHP_SELF"],"l.datestart","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"l.paid","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre(''); print "\n"; - + while ($i < min($num,$limit)) { $obj = $db->fetch_object($resql); @@ -172,7 +172,7 @@ if ($resql) print ''; print ''; - + print "\n"; $i++; diff --git a/htdocs/loan/info.php b/htdocs/loan/info.php index 73bb1c1f984..96da6182da6 100644 --- a/htdocs/loan/info.php +++ b/htdocs/loan/info.php @@ -57,8 +57,38 @@ dol_fiche_head($head, 'info', $langs->trans("Loan"), -1, 'bill'); $morehtmlref='
    '; // Ref loan -$morehtmlref.=$form->editfieldkey("Label", 'label', $object->label, $object, $user->rights->loan->write, 'string', '', 0, 1); -$morehtmlref.=$form->editfieldval("Label", 'label', $object->label, $object, $user->rights->loan->write, 'string', '', null, null, '', 1); +$morehtmlref.=$form->editfieldkey("Label", 'label', $object->label, $object, 0, 'string', '', 0, 1); +$morehtmlref.=$form->editfieldval("Label", 'label', $object->label, $object, 0, 'string', '', null, null, '', 1); +// Project +if (! empty($conf->projet->enabled)) { + $langs->load("projects"); + $morehtmlref .= '
    ' . $langs->trans('Project') . ' : '; + if ($user->rights->loan->write) { + //if ($action != 'classify') + // $morehtmlref .= '' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; + if ($action == 'classify') { + // $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); + $morehtmlref .= '
    '; + $morehtmlref .= ''; + $morehtmlref .= ''; + $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref .= ''; + $morehtmlref .= ''; + } else { + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + } + } else { + if (! empty($object->fk_project)) { + $proj = new Project($db); + $proj->fetch($object->fk_project); + $morehtmlref .= ''; + $morehtmlref .= $proj->ref; + $morehtmlref .= ''; + } else { + $morehtmlref .= ''; + } + } +} $morehtmlref.='
    '; $linkback = '' . $langs->trans("BackToList") . ''; diff --git a/htdocs/loan/note.php b/htdocs/loan/note.php index 4b76cad1d6d..5f435444f32 100644 --- a/htdocs/loan/note.php +++ b/htdocs/loan/note.php @@ -74,8 +74,38 @@ if ($id > 0) $morehtmlref='
    '; // Ref loan - $morehtmlref.=$form->editfieldkey("Label", 'label', $object->label, $object, $user->rights->loan->write, 'string', '', 0, 1); - $morehtmlref.=$form->editfieldval("Label", 'label', $object->label, $object, $user->rights->loan->write, 'string', '', null, null, '', 1); + $morehtmlref.=$form->editfieldkey("Label", 'label', $object->label, $object, 0, 'string', '', 0, 1); + $morehtmlref.=$form->editfieldval("Label", 'label', $object->label, $object, 0, 'string', '', null, null, '', 1); + // Project + if (! empty($conf->projet->enabled)) { + $langs->load("projects"); + $morehtmlref .= '
    ' . $langs->trans('Project') . ' : '; + if ($user->rights->loan->write) { + //if ($action != 'classify') + // $morehtmlref .= '' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; + if ($action == 'classify') { + // $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); + $morehtmlref .= '
    '; + $morehtmlref .= ''; + $morehtmlref .= ''; + $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref .= ''; + $morehtmlref .= ''; + } else { + $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + } + } else { + if (! empty($object->fk_project)) { + $proj = new Project($db); + $proj->fetch($object->fk_project); + $morehtmlref .= ''; + $morehtmlref .= $proj->ref; + $morehtmlref .= ''; + } else { + $morehtmlref .= ''; + } + } + } $morehtmlref.='
    '; $linkback = '' . $langs->trans("BackToList") . ''; diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 1edc67d582f..c100583dd76 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -457,9 +457,7 @@ if (! defined('NOLOGIN')) $passwordtotest = GETPOST('password','none',2); $entitytotest = (GETPOST('entity','int') ? GETPOST('entity','int') : (!empty($conf->entity) ? $conf->entity : 1)); - // Validation of login/pass/entity - // If ok, the variable login will be returned - // If error, we will put error message in session under the name dol_loginmesg + // Define if we received data to test the login. $goontestloop=false; if (isset($_SERVER["REMOTE_USER"]) && in_array('http',$authmode)) $goontestloop=true; if ($dolibarr_main_authentication == 'forceuser' && ! empty($dolibarr_auto_user)) $goontestloop=true; @@ -473,6 +471,9 @@ if (! defined('NOLOGIN')) $langs->setDefaultLang($langcode); } + // Validation of login/pass/entity + // If ok, the variable login will be returned + // If error, we will put error message in session under the name dol_loginmesg if ($test && $goontestloop) { $login = checkLoginPassEntity($usertotest,$passwordtotest,$entitytotest,$authmode); @@ -531,9 +532,10 @@ if (! defined('NOLOGIN')) // End test login / passwords if (! $login || (in_array('ldap',$authmode) && empty($passwordtotest))) // With LDAP we refused empty password because some LDAP are "opened" for anonymous access so connexion is a success. { - // We show login page + // No data to test login, so we show the login page dol_syslog("--- Access to ".$_SERVER["PHP_SELF"]." showing the login form and exit"); - dol_loginfunction($langs,$conf,(! empty($mysoc)?$mysoc:'')); + if (defined('NOREDIRECTBYMAINTOLOGIN')) return 'ERROR_NOT_LOGGED'; + else dol_loginfunction($langs,$conf,(! empty($mysoc)?$mysoc:'')); exit; } @@ -1197,7 +1199,7 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs print ''."\n"; if (defined('JS_JQUERY') && constant('JS_JQUERY')) print ''."\n"; else print ''."\n"; - if (! empty($conf->global->MAIN_FEATURES_LEVEL)) + if (! empty($conf->global->MAIN_FEATURES_LEVEL) && ! defined('JS_JQUERY_MIGRATE_DISABLED')) { if (defined('JS_JQUERY_MIGRATE') && constant('JS_JQUERY_MIGRATE')) print ''."\n"; else print ''."\n"; @@ -1212,15 +1214,6 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs print ''."\n"; print ''."\n"; } - // jQuery blockUI - if (! empty($conf->global->MAIN_USE_JQUERY_BLOCKUI) || defined('REQUIRE_JQUERY_BLOCKUI')) - { - print ''."\n"; - print ''."\n"; - print ''."\n"; - } // Flot if (empty($conf->global->MAIN_DISABLE_JQUERY_FLOT) && ! defined('DISABLE_JQUERY_FLOT')) { @@ -1309,7 +1302,7 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs if (! defined('DISABLE_BROWSER_NOTIF')) { $enablebrowsernotif=false; - if (! empty($conf->agenda->enabled) && ! empty($conf->global->AGENDA_NOTIFICATION)) $enablebrowsernotif=true; + if (! empty($conf->agenda->enabled) && ! empty($conf->global->AGENDA_REMINDER_BROWSER)) $enablebrowsernotif=true; if ($conf->browser->layout == 'phone') $enablebrowsernotif=false; if ($enablebrowsernotif) { @@ -2000,7 +1993,7 @@ if (! function_exists("llxFooter")) } // Wrapper to manage dropdown - if ($conf->use_javascript_ajax) + if (! empty($conf->use_javascript_ajax) && ! defined('JS_JQUERY_DISABLE_DROPDOWN')) { print "\n\n"; print ''; + + +// Part to create if ($action == 'create') { - if (empty($user->rights->stock->creer)) accessforbidden(); + print load_fiche_titre($langs->trans("NewObject", $langs->transnoentitiesnoconv("Inventory"))); - print load_fiche_titre($langs->trans("NewInventory")); - - echo '
    '; - echo ''; - - dol_fiche_head(); - - $formproduct = new FormProduct($db); - - ?> -

    *** Force modules not found to be disabled
    '; - print $majname; + $resql = $db->query($sql); + if ($resql) + { + $num = $db->num_rows($resql); + if ($num) + { + $i = 0; + while ($i < $num) + { + $obj=$db->fetch_object($resql); + $constantname = $obj->name; // Name of constant for hook or js or css declaration - $db->begin(); + print '
    '; + print $constantname; - if (preg_match('/MAIN_MODULE_(.*)_HOOKS/i', $majname, $reg)) - { - $name=strtolower($reg[1]); + $db->begin(); - if ($name) - { - $reloffile=$name.'/class/actions_'.$name.'.class.php'; - $result = dol_include_once($reloffile); - if (! $result) - { - print ' - File of hooks ('.$reloffile.') NOT found, we disable the module.'; - if (GETPOST('force_disable_of_modules_not_found') == 'confirmed') - { - $sql2 ="DELETE FROM ".MAIN_DB_PREFIX."const WHERE name = 'MAIN_MODULE_".strtoupper($name)."_HOOKS'"; - $resql2=$db->query($sql2); - if (! $resql2) - { - $error++; - dol_print_error($db); - } - $sql2 ="DELETE FROM ".MAIN_DB_PREFIX."const WHERE name = 'MAIN_MODULE_".strtoupper($name)."'"; - $resql2=$db->query($sql2); - if (! $resql2) - { - $error++; - dol_print_error($db); - } - else - print " - Cleaned"; - } - else - { - print ' - Canceled (test mode)'; - } - } - else - { - print ' - File of hooks ('.$reloffile.') found, we do nothing.'; - } - } + if (preg_match('/MAIN_MODULE_(.*)_'.strtoupper($key).'/i', $constantname, $reg)) + { + $name=strtolower($reg[1]); - if (!$error) $db->commit(); - else $db->rollback(); - } + if ($name) // And entry for key $key and module $name was found in database. + { + if ($key == 'hooks') $reloffile=$name.'/class/actions_'.$name.'.class.php'; + if ($key == 'js') + { + $value=$obj->value; + $valuearray=json_decode($value); + $reloffile=$valuearray[0]; + $reloffile=preg_replace('/^\//','',$valuearray[0]); + } + if ($key == 'css') + { + $value=$obj->value; + $valuearray=json_decode($value); + $reloffile=preg_replace('/^\//','',$valuearray[0]); + } - print'
    No active module with missing files found
    No active module with missing files found by searching on MAIN_MODULE_(.*)_'.strtoupper($key).'
    '.$langs->trans("Project").''; - $numproject=$formproject->select_projects(-1,GETPOST("fk_project"),'fk_project',16,0,1,1); + $numproject=$formproject->select_projects(-1, $projectid, 'projectid', 16, 0, 1, 1); print '
    '.$loan_static->LibStatut($obj->paid,5,$obj->alreadypayed).'
    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    trans('Title') ?>
    trans('Date') ?>select_date(time(),'date_inventory'); ?>
    trans('inventorySelectWarehouse') ?>selectWarehouses('', 'fk_warehouse') ?>
    trans('SelectCategory') ?>select_all_categories(0,'', 'fk_category') ?>
    trans('SelectFournisseur') ?>select_thirdparty('','fk_supplier','s.fournisseur = 1') ?>
    trans('OnlyProdsInStock') ?>
    - '; - print ''; - print '     '; - print ''; - print '
    '; - - echo ''; - + print '
    '; + print ''; + print ''; + print ''; + + dol_fiche_head(array(), ''); + + print ''."\n"; + foreach($object->fields as $key => $val) + { + if (in_array($key, array('rowid', 'entity', 'date_creation', 'tms', 'import_key'))) continue; + print ''.$langs->trans($val['label']).''; + } + print '
    '."\n"; + + dol_fiche_end(); + + print '
     
    '; + + print '
    '; } -if ($action == 'view' || $action == 'edit' || empty($action)) + + +// Part to edit record +if (($id || $ref) && $action == 'edit') { - $object = new Inventory($db); - $result = $object->fetch($id); - if ($result < 0) dol_print_error($db, $object->error, $object->errors); - - $warehouse = new Entrepot($db); - $warehouse->fetch($object->fk_warehouse); - - - - if($action == 'changePMP') - { - print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ApplyNewPMP'), $langs->trans('ConfirmApplyNewPMP', $object->getTitle()), 'confirm_changePMP', array(),'no',1); - } - else if($action == 'flush') - { - print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id,$langs->trans('FlushInventory'),$langs->trans('ConfirmFlushInventory',$object->getTitle()),'confirm_flush',array(),'no',1); - } - else if($action == 'delete') - { - print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id,$langs->trans('Delete'),$langs->trans('ConfirmDelete',$object->getTitle()),'confirm_delete',array(),'no',1); - } - else if($action == 'delete_line') - { - print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id.'&rowid='.GETPOST('rowid'),$langs->trans('DeleteLine'),$langs->trans('ConfirmDeleteLine',$object->getTitle()),'confirm_delete_line',array(),'no',1); - } - else if($action == 'regulate') - { - print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id,$langs->trans('RegulateStock'),$langs->trans('ConfirmRegulateStock',$object->getTitle()),'confirm_regulate',array(),'no',1); - } - - print dol_get_fiche_head(inventoryPrepareHead($object, $langs->trans('inventoryOfWarehouse', $warehouse->libelle), empty($action) ? '': '&action='.$action)); - - $lines = array(); - card_line($object, $lines, $action); - - print $langs->trans('Ref')." ".$object->ref.'
    '; - print $langs->trans('Date')." ".$object->getDate('date_inventory').'

    '; - - $objectTPL = array( - 'id'=> $object->id - ,'ref'=> $object->ref - ,'date_cre' => $object->getDate('date_cre', 'd/m/Y') - ,'date_maj' => $object->getDate('date_maj', 'd/m/Y H:i') - ,'fk_warehouse' => $object->fk_warehouse - ,'status' => $object->status - ,'entity' => $object->entity - ,'amount' => price( round($object->amount,2) ) - ,'amount_actual'=>price (round($object->amount_actual,2)) - - ); - - $can_validate = !empty($user->rights->stock->validate); - $view_url = dol_buildpath('/product/inventory/card.php', 1); - - $view = array( - 'mode' => $action - ,'url' => dol_buildpath('/product/inventory/card.php', 1) - ,'can_validate' => (int) $user->rights->stock->validate - ,'is_already_validate' => (int) $object->status - ,'token'=>$_SESSION['newtoken'] - ); - - include './tpl/inventory.tpl.php'; + print load_fiche_titre($langs->trans("Inventory")); + + print '
    '; + print ''; + print ''; + print ''; + + dol_fiche_head(); + + print ''."\n"; + // print ''; + // LIST_OF_TD_LABEL_FIELDS_EDIT + print '
    '.$langs->trans("Label").'
    '; + + dol_fiche_end(); + + print '
    '; + print '   '; + print '
    '; + + print '
    '; } + + +// Part to show record +if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'create'))) +{ + $res = $object->fetch_optionals($object->id, $extralabels); + + $head = inventory_prepare_head($object); + dol_fiche_head($head, 'order', $langs->trans("CustomerOrder"), -1, 'order'); + + $formconfirm = ''; + + // Confirmation to delete + if ($action == 'delete') { + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('DeleteOrder'), $langs->trans('ConfirmDeleteOrder'), 'confirm_delete', '', 0, 1); + } + + // Confirmation of action xxxx + if ($action == 'xxx') + { + $formquestion=array(); + /* + $formquestion = array( + // 'text' => $langs->trans("ConfirmClone"), + // array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1), + // array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1), + // array('type' => 'other', 'name' => 'idwarehouse', 'label' => $langs->trans("SelectWarehouseForStockDecrease"), 'value' => $formproduct->selectWarehouses(GETPOST('idwarehouse')?GETPOST('idwarehouse'):'ifone', 'idwarehouse', '', 1))); + }*/ + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('XXX'), $text, 'confirm_xxx', $formquestion, 0, 1, 220); + } + + if (! $formconfirm) { + $parameters = array('lineid' => $lineid); + $reshook = $hookmanager->executeHooks('formConfirm', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + if (empty($reshook)) $formconfirm.=$hookmanager->resPrint; + elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint; + } + + // Print form confirm + print $formconfirm; + + + + // Object card + // ------------------------------------------------------------ + + $linkback = '' . $langs->trans("BackToList") . ''; + + + $morehtmlref='
    '; + /* + // Ref bis + $morehtmlref.=$form->editfieldkey("RefBis", 'ref_client', $object->ref_client, $object, $user->rights->inventory->creer, 'string', '', 0, 1); + $morehtmlref.=$form->editfieldval("RefBis", 'ref_client', $object->ref_client, $object, $user->rights->inventory->creer, 'string', '', null, null, '', 1); + // Thirdparty + $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . $soc->getNomUrl(1); + // Project + if (! empty($conf->projet->enabled)) + { + $langs->load("projects"); + $morehtmlref.='
    '.$langs->trans('Project') . ' '; + if ($user->rights->inventory->creer) + { + if ($action != 'classify') + { + $morehtmlref.='' . img_edit($langs->transnoentitiesnoconv('SetProject')) . ' : '; + if ($action == 'classify') { + //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); + $morehtmlref.='
    '; + $morehtmlref.=''; + $morehtmlref.=''; + $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref.=''; + $morehtmlref.='
    '; + } else { + $morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); + } + } + } else { + if (! empty($object->fk_project)) { + $proj = new Project($db); + $proj->fetch($object->fk_project); + $morehtmlref.=''; + $morehtmlref.=$proj->ref; + $morehtmlref.=''; + } else { + $morehtmlref.=''; + } + } + } + */ + $morehtmlref.='
    '; + + + dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); + + + print '
    '; + print '
    '; + print '
    '; + print ''."\n"; + // print ''; + // LIST_OF_TD_LABEL_FIELDS_VIEW + + + // Other attributes + include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php'; + + print '
    '.$langs->trans("Label").''.$object->label.'
    '; + print '
    '; + print '
    '; + print '
    '; + print '
    '; + print ''; + + + + print '
    '; + print '
    '; + print '
    '; + print '
    '; + + print '

    '; + + dol_fiche_end(); + + + // Buttons for actions + if ($action != 'presend' && $action != 'editline') { + print '
    '."\n"; + $parameters=array(); + $reshook=$hookmanager->executeHooks('addMoreActionsButtons',$parameters,$object,$action); // Note that $action and $object may have been modified by hook + if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + + if (empty($reshook)) + { + // Send + print ''."\n"; + + if ($user->rights->inventory->write) + { + print ''."\n"; + } + + if ($user->rights->inventory->delete) + { + print ''."\n"; + } + } + print '
    '."\n"; + } + + + // Select mail models is same action as presend + if (GETPOST('modelselected')) { + $action = 'presend'; + } + + if ($action != 'presend') + { + print '
    '; + print ''; // ancre + // Documents + $comref = dol_sanitizeFileName($object->ref); + $relativepath = $comref . '/' . $comref . '.pdf'; + $filedir = $conf->inventory->dir_output . '/' . $comref; + $urlsource = $_SERVER["PHP_SELF"] . "?id=" . $object->id; + $genallowed = $user->rights->inventory->creer; + $delallowed = $user->rights->inventory->supprimer; + print $formfile->showdocuments('inventory', $comref, $filedir, $urlsource, $genallowed, $delallowed, $object->modelpdf, 1, 0, 0, 28, 0, '', '', '', $soc->default_lang); + + + // Show links to link elements + $linktoelem = $form->showLinkToObjectBlock($object, null, array('order')); + $somethingshown = $form->showLinkedObjectBlock($object, $linktoelem); + + + print '
    '; + + // List of actions on element + include_once DOL_DOCUMENT_ROOT . '/core/class/html.formactions.class.php'; + $formactions = new FormActions($db); + $somethingshown = $formactions->showactions($object, 'order', $socid); + + print '
    '; + } + + + /* + * Action presend + */ + /* + if ($action == 'presend') + { + $object->fetch_projet(); + + $ref = dol_sanitizeFileName($object->ref); + include_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php'; + $fileparams = dol_most_recent_file($conf->commande->dir_output . '/' . $ref, preg_quote($ref, '/').'[^\-]+'); + $file = $fileparams['fullname']; + + // Define output language + $outputlangs = $langs; + $newlang = ''; + if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id'])) + $newlang = $_REQUEST['lang_id']; + if ($conf->global->MAIN_MULTILANGS && empty($newlang)) + $newlang = $object->thirdparty->default_lang; + + if (!empty($newlang)) + { + $outputlangs = new Translate('', $conf); + $outputlangs->setDefaultLang($newlang); + $outputlangs->load('commercial'); + } + + // Build document if it not exists + if (! $file || ! is_readable($file)) { + $result = $object->generateDocument(GETPOST('model') ? GETPOST('model') : $object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); + if ($result <= 0) { + dol_print_error($db, $object->error, $object->errors); + exit(); + } + $fileparams = dol_most_recent_file($conf->commande->dir_output . '/' . $ref, preg_quote($ref, '/').'[^\-]+'); + $file = $fileparams['fullname']; + } + + print '
    '; + print '
    '; + print '
    '; + print load_fiche_titre($langs->trans('SendOrderByMail')); + + dol_fiche_head(''); + + // Cree l'objet formulaire mail + include_once DOL_DOCUMENT_ROOT . '/core/class/html.formmail.class.php'; + $formmail = new FormMail($db); + $formmail->param['langsmodels']=(empty($newlang)?$langs->defaultlang:$newlang); + $formmail->fromtype = (GETPOST('fromtype')?GETPOST('fromtype'):(!empty($conf->global->MAIN_MAIL_DEFAULT_FROMTYPE)?$conf->global->MAIN_MAIL_DEFAULT_FROMTYPE:'user')); + + if($formmail->fromtype === 'user'){ + $formmail->fromid = $user->id; + + } + $formmail->trackid='ord'.$object->id; + if (! empty($conf->global->MAIN_EMAIL_ADD_TRACK_ID) && ($conf->global->MAIN_EMAIL_ADD_TRACK_ID & 2)) // If bit 2 is set + { + include DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; + $formmail->frommail=dolAddEmailTrackId($formmail->frommail, 'ord'.$object->id); + } + $formmail->withfrom = 1; + $liste = array(); + foreach ($object->thirdparty->thirdparty_and_contact_email_array(1) as $key => $value) + $liste [$key] = $value; + $formmail->withto = GETPOST('sendto') ? GETPOST('sendto') : $liste; + $formmail->withtocc = $liste; + $formmail->withtoccc = $conf->global->MAIN_EMAIL_USECCC; + if (empty($object->ref_client)) { + $formmail->withtopic = $outputlangs->trans('SendOrderRef', '__ORDERREF__'); + } else if (! empty($object->ref_client)) { + $formmail->withtopic = $outputlangs->trans('SendOrderRef', '__ORDERREF__ (__REFCLIENT__)'); + } + $formmail->withfile = 2; + $formmail->withbody = 1; + $formmail->withdeliveryreceipt = 1; + $formmail->withcancel = 1; + // Tableau des substitutions + $formmail->setSubstitFromObject($object); + $formmail->substit ['__ORDERREF__'] = $object->ref; + + $custcontact = ''; + $contactarr = array(); + $contactarr = $object->liste_contact(- 1, 'external'); + + if (is_array($contactarr) && count($contactarr) > 0) + { + foreach ($contactarr as $contact) + { + if ($contact['libelle'] == $langs->trans('TypeContact_commande_external_CUSTOMER')) { // TODO Use code and not label + $contactstatic = new Contact($db); + $contactstatic->fetch($contact ['id']); + $custcontact = $contactstatic->getFullName($langs, 1); + } + } + + if (! empty($custcontact)) { + $formmail->substit['__CONTACTCIVNAME__'] = $custcontact; + } + } + + // Tableau des parametres complementaires + $formmail->param['action'] = 'send'; + $formmail->param['models'] = 'order_send'; + $formmail->param['models_id']=GETPOST('modelmailselected','int'); + $formmail->param['orderid'] = $object->id; + $formmail->param['returnurl'] = $_SERVER["PHP_SELF"] . '?id=' . $object->id; + + // Init list of files + if (GETPOST("mode") == 'init') { + $formmail->clear_attached_files(); + $formmail->add_attached_files($file, basename($file), dol_mimetype($file)); + } + + // Show form + print $formmail->get_form(); + + dol_fiche_end(); + }*/ +} + + // End of page llxFooter(); $db->close(); - - - -function card_line(&$inventory, &$lines, $mode) -{ - global $db,$langs,$user,$conf; - $inventory->amount_actual = 0; - - $TCacheEntrepot = array(); - - foreach ($inventory->Inventorydet as $k => $Inventorydet) - { - $product = & $Inventorydet->product; - $stock = $Inventorydet->qty_stock; - - $pmp = $Inventorydet->pmp; - $pmp_actual = $pmp * $stock; - $inventory->amount_actual+=$pmp_actual; - - $last_pa = $Inventorydet->pa; - $current_pa = $Inventorydet->current_pa; - - $e = new Entrepot($db); - if(!empty($TCacheEntrepot[$Inventorydet->fk_warehouse])) $e = $TCacheEntrepot[$Inventorydet->fk_warehouse]; - elseif($e->fetch($Inventorydet->fk_warehouse) > 0) $TCacheEntrepot[$e->id] = $e; - - $qtytoadd = GETPOST('qty_to_add', 'array'); - $qty = (float) $qtytoadd[$k]; - - $lines[]=array( - 'produit' => $product->getNomUrl(1).' - '.$product->label, - 'entrepot'=>$e->getNomUrl(1), - 'barcode' => $product->barcode, - 'qty' =>($mode == 'edit' ? ' '.img_picto($langs->trans('Add'), 'edit_add').'' : '' ), - 'qty_view' => ($Inventorydet->qty_view ? $Inventorydet->qty_view : 0), - 'qty_stock' => $stock, - 'qty_regulated' => ($Inventorydet->qty_regulated ? $Inventorydet->qty_regulated : 0), - 'action' => ($user->rights->stock->write && $mode=='edit' ? ''.img_picto($langs->trans('inventoryDeleteLine'), 'delete').'' : ''), - 'pmp_stock'=>round($pmp_actual,2), - 'pmp_actual'=> round($pmp * $Inventorydet->qty_view,2), - 'pmp_new'=>(!empty($user->rights->stock->changePMP) && $mode == 'edit' ? ' '.img_picto($langs->trans('Save'), 'bt-save.png@inventory').'' : price($Inventorydet->new_pmp)), - 'pa_stock'=>round($last_pa * $stock,2), - 'pa_actual'=>round($last_pa * $Inventorydet->qty_view,2), - 'current_pa_stock'=>round($current_pa * $stock,2), - 'current_pa_actual'=>round($current_pa * $Inventorydet->qty_view,2), - 'k'=>$k, - 'id'=>$Inventorydet->id - ); - } - -} - - -/* -function _exportCSV(&$inventory) -{ - global $conf; - - header('Content-Type: application/octet-stream'); - header('Content-disposition: attachment; filename=inventory-'. $inventory->getId().'-'.date('Ymd-His').'.csv'); - header('Pragma: no-cache'); - header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0'); - header('Expires: 0'); - - echo 'Ref;Label;barcode;qty theorique;PMP;dernier PA;'; - if(!empty($conf->global->INVENTORY_USE_MIN_PA_IF_NO_LAST_PA)) echo 'PA courant;'; - echo 'qty réelle;PMP;dernier PA;'; - if(!empty($conf->global->INVENTORY_USE_MIN_PA_IF_NO_LAST_PA)) echo 'PA courant;'; - echo 'qty regulée;'."\r\n"; - - foreach ($inventory->Inventorydet as $k => $Inventorydet) - { - $product = & $Inventorydet->product; - $stock = $Inventorydet->qty_stock; - - $pmp = $Inventorydet->pmp; - $pmp_actual = $pmp * $stock; - $inventory->amount_actual+=$pmp_actual; - - $last_pa = $Inventorydet->pa; - $current_pa = $Inventorydet->current_pa; - - if(!empty($conf->global->INVENTORY_USE_MIN_PA_IF_NO_LAST_PA)) { - $row=array( - 'produit' => $product->ref - ,'label'=>$product->label - ,'barcode' => $product->barcode - ,'qty_stock' => $stock - ,'pmp_stock'=>round($pmp_actual,2) - ,'pa_stock'=>round($last_pa * $stock,2) - ,'current_pa_stock'=>round($current_pa * $stock,2) - ,'qty_view' => $Inventorydet->qty_view ? $Inventorydet->qty_view : 0 - ,'pmp_actual'=>round($pmp * $Inventorydet->qty_view,2) - ,'pa_actual'=>round($last_pa * $Inventorydet->qty_view,2) - ,'current_pa_actual'=>round($current_pa * $Inventorydet->qty_view,2) - ,'qty_regulated' => $Inventorydet->qty_regulated ? $Inventorydet->qty_regulated : 0 - - ); - - } - else{ - $row=array( - 'produit' => $product->ref - ,'label'=>$product->label - ,'barcode' => $product->barcode - ,'qty_stock' => $stock - ,'pmp_stock'=>round($pmp_actual,2) - ,'pa_stock'=>round($last_pa * $stock,2) - ,'qty_view' => $Inventorydet->qty_view ? $Inventorydet->qty_view : 0 - ,'pmp_actual'=>round($pmp * $Inventorydet->qty_view,2) - ,'pa_actual'=>round($last_pa * $Inventorydet->qty_view,2) - - ,'qty_regulated' => $Inventorydet->qty_regulated ? $Inventorydet->qty_regulated : 0 - - ); - - } - - - echo '"'.implode('";"', $row).'"'."\r\n"; - - } - - exit; -} -*/ - -function _footerList($view,$total_pmp,$total_pmp_actual,$total_pa,$total_pa_actual, $total_current_pa,$total_current_pa_actual) -{ - global $conf,$user,$langs; - - if ($view['can_validate'] == 1) { ?> -
       - - '.price($total_current_pa).'  '.price($total_current_pa_actual).'  
    trans('Product'); ?>trans('Warehouse'); ?>trans('Barcode'); ?>trans('TheoricalQty'); ?>'.$langs->trans('TheoricalValue').''.$langs->trans('TheoricalValue').'trans('RealQty'); ?>'.$langs->trans('RealValue').'trans('RegulatedQty'); ?>#
     trans('PMP'); ?>trans('LastPA'); ?>'.$langs->trans('CurrentPA').' trans('PMP'); ?>'.$langs->trans('ColumnNewPMP').'trans('LastPA'); ?>'.$langs->trans('CurrentPA').'  
    '."\n"; + + +// Fields title search +// -------------------------------------------------------------------- +print ''; +foreach($object->fields as $key => $val) +{ + if (in_array($key, array('date_creation', 'tms', 'import_key', 'status'))) continue; + $align=''; + if (in_array($val['type'], array('date','datetime','timestamp'))) $align='center'; + if (in_array($val['type'], array('timestamp'))) $align.=' nowrap'; + if (! empty($arrayfields['t.'.$key]['checked'])) print ''; +} +// Extra fields +if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) +{ + foreach($extrafields->attribute_label as $key => $val) + { + if (! empty($arrayfields["ef.".$key]['checked'])) + { + $align=$extrafields->getAlignFlag($key); + $typeofextrafield=$extrafields->attribute_type[$key]; + print ''; + } + } +} +// Fields from hook +$parameters=array('arrayfields'=>$arrayfields); +$reshook=$hookmanager->executeHooks('printFieldListOption',$parameters); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; +// Rest of fields search +foreach($object->fields as $key => $val) +{ + if (! in_array($key, array('date_creation', 'tms', 'import_key', 'status'))) continue; + $align=''; + if (in_array($val['type'], array('date','datetime','timestamp'))) $align='center'; + if (in_array($val['type'], array('timestamp'))) $align.=' nowrap'; + if (! empty($arrayfields['t.'.$key]['checked'])) print ''; +} +// Action column +print ''; +print ''."\n"; + + +// Fields title label +// -------------------------------------------------------------------- +print ''; +foreach($object->fields as $key => $val) +{ + if (in_array($key, array('date_creation', 'tms', 'import_key', 'status'))) continue; + $align=''; + if (in_array($val['type'], array('date','datetime','timestamp'))) $align='center'; + if (in_array($val['type'], array('timestamp'))) $align.='nowrap'; + if (! empty($arrayfields['t.'.$key]['checked'])) print getTitleFieldOfList($arrayfields['t.'.$key]['label'], 0, $_SERVER['PHP_SELF'], 't.'.$key, '', $param, ($align?'class="'.$align.'"':''), $sortfield, $sortorder, $align.' ')."\n"; +} +// Extra fields +if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) +{ + foreach($extrafields->attribute_label as $key => $val) + { + if (! empty($arrayfields["ef.".$key]['checked'])) + { + $align=$extrafields->getAlignFlag($key); + $sortonfield = "ef.".$key; + if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; + print getTitleFieldOfList($langs->trans($extralabels[$key]), 0, $_SERVER["PHP_SELF"], $sortonfield, "", $param, ($align?'align="'.$align.'"':''), $sortfield, $sortorder)."\n"; + } + } +} +// Hook fields +$parameters=array('arrayfields'=>$arrayfields); +$reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; +// Rest of fields title +foreach($object->fields as $key => $val) +{ + if (! in_array($key, array('date_creation', 'tms', 'import_key', 'status'))) continue; + $align=''; + if (in_array($val['type'], array('date','datetime','timestamp'))) $align='center'; + if (in_array($val['type'], array('timestamp'))) $align.=' nowrap'; + if (! empty($arrayfields['t.'.$key]['checked'])) print getTitleFieldOfList($arrayfields['t.'.$key]['label'], 0, $_SERVER['PHP_SELF'], 't.'.$key, '', $param, ($align?'class="'.$align.'"':''), $sortfield, $sortorder, $align.' ')."\n"; +} +print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch ')."\n"; +print ''."\n"; + + +// Detect if we need a fetch on each output line +$needToFetchEachLine=0; +foreach ($extrafields->attribute_computed as $key => $val) +{ + if (preg_match('/\$object/',$val)) $needToFetchEachLine++; // There is at least one compute field that use $object +} + + +// Loop on record +// -------------------------------------------------------------------- +$i=0; +$totalarray=array(); +while ($i < min($num, $limit)) +{ + $obj = $db->fetch_object($resql); + if ($obj) + { + // Store properties in $object + $object->id = $obj->rowid; + foreach($object->fields as $key => $val) + { + if (isset($obj->$key)) $object->$key = $obj->$key; + } + + // Show here line of result + print ''; + foreach($object->fields as $key => $val) + { + if (in_array($key, array('date_creation', 'tms', 'import_key', 'status'))) continue; + $align=''; + if (in_array($val['type'], array('date','datetime','timestamp'))) $align='center'; + if (in_array($val['type'], array('timestamp'))) $align.='nowrap'; + if ($key == 'status') $align.=($align?' ':'').'center'; + if (! empty($arrayfields['t.'.$key]['checked'])) + { + print ''; + if (in_array($val['type'], array('date','datetime','timestamp'))) print dol_print_date($db->jdate($obj->$key), 'dayhour'); + elseif ($key == 'ref') print $object->getNomUrl(1); + elseif ($key == 'status') print $object->getLibStatut(3); + else print $obj->$key; + print ''; + if (! $i) $totalarray['nbfield']++; + if (! empty($val['isameasure'])) + { + if (! $i) $totalarray['pos'][$totalarray['nbfield']]='t.'.$key; + $totalarray['val']['t.'.$key] += $obj->$key; + } + } + } + // Extra fields + if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) + { + foreach($extrafields->attribute_label as $key => $val) + { + if (! empty($arrayfields["ef.".$key]['checked'])) + { + print 'getAlignFlag($key); + if ($align) print ' align="'.$align.'"'; + print '>'; + $tmpkey='options_'.$key; + print $extrafields->showOutputField($key, $obj->$tmpkey, '', 1); + print ''; + if (! $i) $totalarray['nbfield']++; + if (! empty($val['isameasure'])) + { + if (! $i) $totalarray['pos'][$totalarray['nbfield']]='ef.'.$tmpkey; + $totalarray['val']['ef.'.$tmpkey] += $obj->$tmpkey; + } + } + } + } + // Fields from hook + $parameters=array('arrayfields'=>$arrayfields, 'obj'=>$obj); + $reshook=$hookmanager->executeHooks('printFieldListValue',$parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + // Rest of fields + foreach($object->fields as $key => $val) + { + if (! in_array($key, array('date_creation', 'tms', 'import_key', 'status'))) continue; + $align=''; + if (in_array($val['type'], array('date','datetime','timestamp'))) $align.=($align?' ':'').'center'; + if (in_array($val['type'], array('timestamp'))) $align.=($align?' ':'').'nowrap'; + if ($key == 'status') $align.=($align?' ':'').'center'; + if (! empty($arrayfields['t.'.$key]['checked'])) + { + print ''; + if (in_array($val['type'], array('date','datetime','timestamp'))) print dol_print_date($db->jdate($obj->$key), 'dayhour'); + elseif ($key == 'status') print $object->getLibStatut(3); + else print $obj->$key; + print ''; + if (! $i) $totalarray['nbfield']++; + if (! empty($val['isameasure'])) + { + if (! $i) $totalarray['pos'][$totalarray['nbfield']]='t.'.$key; + $totalarray['val']['t.'.$key] += $obj->$key; + } + } + } + // Action column + print ''; + if (! $i) $totalarray['nbfield']++; + + print ''; + } + $i++; +} + +// Show total line +if (isset($totalarray['pos'])) +{ + print ''; + $i=0; + while ($i < $totalarray['nbfield']) + { + $i++; + if (! empty($totalarray['pos'][$i])) print ''; + else + { + if ($i == 1) + { + if ($num < $limit) print ''; + else print ''; + } + print ''; + } + } + print ''; +} + +// 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 '
    '; + if (in_array($typeofextrafield, array('varchar', 'int', 'double', 'select')) && empty($extrafields->attribute_computed[$key])) + { + $crit=$val; + $tmpkey=preg_replace('/search_options_/','',$key); + $searchclass=''; + if (in_array($typeofextrafield, array('varchar', 'select'))) $searchclass='searchstring'; + if (in_array($typeofextrafield, array('int', 'double'))) $searchclass='searchnum'; + print ''; + } + print ''; +$searchpicto=$form->showFilterButtons(); +print $searchpicto; +print '
    '; + if ($massactionbutton || $massaction) // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined + { + $selected=0; + if (in_array($obj->rowid, $arrayofselected)) $selected=1; + print ''; + } + print '
    '.price($totalarray['val'][$totalarray['pos'][$i]]).''.$langs->trans("Total").''.$langs->trans("Totalforthispage").'
    '.$langs->trans("NoRecordFound").'
    '."\n"; +print ''."\n"; + +print ''."\n"; + +if ($nbtotalofrecords === '' || $nbtotalofrecords) +{ + if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) + { + require_once(DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'); + $formfile = new FormFile($db); + + // Show list of available documents + $urlsource=$_SERVER['PHP_SELF'].'?sortfield='.$sortfield.'&sortorder='.$sortorder; + $urlsource.=str_replace('&','&',$param); + + $filedir=$diroutputmassaction; + $genallowed=$user->rights->inventory->read; + $delallowed=$user->rights->inventory->read; + + print $formfile->showdocuments('massfilesarea_inventory','',$filedir,$urlsource,0,$delallowed,'',1,1,0,48,1,$param,$title,''); + } + else + { + print '
    '.$langs->trans("ShowTempMassFilesArea").''; + } +} + +// End of page +llxFooter(); +$db->close(); diff --git a/htdocs/product/inventory/listview.class.php b/htdocs/product/inventory/listview.class.php deleted file mode 100644 index 3dddac44516..00000000000 --- a/htdocs/product/inventory/listview.class.php +++ /dev/null @@ -1,1083 +0,0 @@ - - - This program and all files within this directory and sub directory - is free software: you can redistribute it and/or modify it under - the terms of the GNU General Public License as published by the - Free Software Foundation, either version 3 of the License, or any - later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - */ - -/** - * Class to manage the lists view - */ -class Listview -{ - /** - * Constructor - * - * @param DoliDB $db Database handler - * @param string $id html id - */ - function __construct(&$db, $id) - { - $this->db = &$db; - $this->id = $id; - $this->TTotalTmp=array(); - $this->sql = ''; - $this->form = null; - $this->totalRowToShow=0; - $this->totalRow=0; - - $this->TField=array(); - - require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; - $this->extrafields = new ExtraFields($this->db); - $this->extralabels = $this->extrafields->fetch_name_optionals_label('product'); - $this->search_array_options=$this->extrafields->getOptionalsFromPost($this->extralabels,'','search_'); - } - - /** - * Function to init fields - * - * @param array $TParam array of configuration of list - * @return bool - */ - private function init(&$TParam) - { - global $conf, $langs, $user; - - if(!isset($TParam['hide'])) $TParam['hide']=array(); - if(!isset($TParam['link'])) $TParam['link']=array(); - if(!isset($TParam['type'])) $TParam['type']=array(); - if(!isset($TParam['orderby']['noOrder'])) $TParam['orderby']['noOrder']=array(); - if(!isset($TParam['allow-fields-select'])) $TParam['allow-fields-select'] = 0; - - if(!isset($TParam['list']))$TParam['list']=array(); - $TParam['list'] = array_merge(array( - 'messageNothing'=>$langs->trans('ListMessageNothingToShow') - ,'noheader'=>0 - ,'useBottomPagination'=>0 - ,'image'=>'' - ,'title'=>$langs->trans('List') - ,'orderDown'=>'' - ,'orderUp'=>'' - ,'id'=>$this->id - ,'head_search'=>'' - ,'export'=>array() - ,'view_type'=>'' - ,'massactions'=>array() - ),$TParam['list']); - - if (empty($TParam['limit'])) $TParam['limit'] = array(); - - $page = GETPOST('page'); - if (!empty($page)) $TParam['limit']['page'] = $page; - - $TParam['limit'] = array_merge(array('page'=>0, 'nbLine' => $conf->liste_limit, 'global'=>0), $TParam['limit']); - - if (GETPOST('sortfield')) - { - $TParam['sortfield'] = GETPOST('sortfield'); - $TParam['sortorder'] = GETPOST('sortorder'); - } - - include_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php'; - $this->form = new Form($this->db); - } - - - /** - * Function to know if we can search on null value - * @param string $key field name - * @param array $TParam array of configuration - * @return bool - */ - private function getSearchNull($key, &$TParam) - { - return !empty($TParam['search'][$key]['allow_is_null']); - } - - /** - * @param string $key field name - * @param string $TParam array of configuration - * @return array - */ - private function getSearchKey($key, &$TParam) - { - $TPrefixe = array(); - if(!empty($TParam['search'][$key]['table'])) - { - if (!is_array($TParam['search'][$key]['table'])) $TParam['search'][$key]['table'] = array($TParam['search'][$key]['table']); - - foreach ($TParam['search'][$key]['table'] as $prefix_table) - { - $TPrefixe[] = $prefix_table.'.'; - } - } - - $TKey=array(); - if(!empty($TParam['search'][$key]['field'])) - { - if (!is_array($TParam['search'][$key]['field'])) $TParam['search'][$key]['field'] = array($TParam['search'][$key]['field']); - - foreach ($TParam['search'][$key]['field'] as $i => $field) - { - $prefixe = !empty($TPrefixe[$i]) ? $TPrefixe[$i] : $TPrefixe[0]; - $TKey[] = $prefixe. $field ; - } - } - else - { - $TKey[] = $TPrefixe[0].$key; - } - - return $TKey; - } - /** - * @param string $TSQLMore contain some additional sql instructions - * @param string $value date with read format - * @param string $sKey field name - */ - private function addSqlFromTypeDate(&$TSQLMore, &$value, $sKey) - { - if(is_array($value)) - { - $TSQLDate=array(); - if(!empty($value['start'])) - { - $TSQLDate[]=$sKey." >= '".$value['start']."'" ; - } - - if(!empty($value['end'])) - { - $TSQLDate[]=$sKey." <= '".$value['end']."'" ; - } - - if(!empty($TSQLDate)) $TSQLMore[] = implode(' AND ', $TSQLDate); - } - else - { - $TSQLMore[]=$sKey." LIKE '".$value."%'" ; - } - } - - - /** - * @param string $TSQLMore contain some additional sql instructions - * @param string $value value to filter - * @param string $TParam array of configuration - * @param string $sKey field name - * @param string $key reference of sKey to find value into TParam - * @return bool - */ - private function addSqlFromOther(&$TSQLMore, &$value, &$TParam, $sKey, $key) - { - // Do not use empty() function, statut 0 exist - if ($value == '') return false; - elseif($value==-1) return false; - - if(isset($TParam['operator'][$key])) - { - if($TParam['operator'][$key] == '<' || $TParam['operator'][$key] == '>' || $TParam['operator'][$key]=='=') - { - $TSQLMore[] = $sKey . ' ' . $TParam['operator'][$key] . ' "' . $value . '"'; - } - elseif ($TParam['operator'][$key]=='IN') - { - $TSQLMore[] = $sKey . ' ' . $TParam['operator'][$key] . ' (' . $value . ')'; - } - else - { - if(strpos($value,'%')===false) $value = '%'.$value.'%'; - $TSQLMore[]=$sKey." LIKE '".addslashes($value)."'" ; - } - } - else - { - if(strpos($value,'%')===false) $value = '%'.$value.'%'; - $TSQLMore[]=$sKey." LIKE '".addslashes($value)."'" ; - } - - return true; - } - - - /** - * @param string $sql standard select sql - * @param string $TParam array of configuration - * @return string - */ - private function search($sql, &$TParam) - { - if (empty($TParam['no-auto-sql-search']) && !GETPOST('button_removefilter_x','alpha') && !GETPOST('button_removefilter.x','alpha') && !GETPOST('button_removefilter','alpha')) - { - foreach ($TParam['search'] as $field => $info) - { - $TsKey = $this->getSearchKey($field, $TParam); - $TSQLMore = array(); - $allow_is_null = $this->getSearchNull($field,$TParam); - - $fieldname = !empty($info['fieldname']) ? $info['fieldname'] : 'Listview_'.$this->id.'_search_'.$field; - - foreach ($TsKey as $i => &$sKey) - { - $value = GETPOST($fieldname); - $value_null = GETPOST('Listview_'.$this->id.'_search_on_null_'.$field); - - if ($allow_is_null && !empty($value_null)) - { - $TSQLMore[] = $sKey.' IS NULL '; - $value = ''; - } - - if (isset($TParam['type'][$field]) && ($TParam['type'][$field]==='date' || $TParam['type'][$field]==='datetime')) - { - $k = $fieldname; - if ($info['search_type'] === 'calendars') - { - $value = array(); - - $timestart = dol_mktime(0, 0, 0, GETPOST($k.'_startmonth'), GETPOST($k.'_startday'), GETPOST($k.'_startyear')); - if ($timestart) $value['start'] = date('Y-m-d', $timestart); - - $timeend = dol_mktime(23, 59, 59, GETPOST($k.'_endmonth'), GETPOST($k.'_endday'), GETPOST($k.'_endyear')); - if ($timeend) $value['end'] = date('Y-m-d', $timeend); - } - else - { - $time = dol_mktime(12, 0, 0, GETPOST($k.'month'), GETPOST($k.'day'), GETPOST($k.'year')); - if ($time) $value = date('Y-m-d', $time); - } - - if (!empty($value)) $this->addSqlFromTypeDate($TSQLMore, $value, $sKey); - } - else - { - $this->addSqlFromOther($TSQLMore, $value, $TParam, $sKey, $field); - } - } - - if (!empty($TSQLMore)) - { - $sql.=' AND ( '.implode(' OR ',$TSQLMore).' ) '; - } - } - } - - if ($sqlGROUPBY!='') $sql.=' GROUP BY '.$sqlGROUPBY; - - return $sql; - } - - /** - * @param string $sql standard select sql - * @param string $TParam array of configuration - * @return string - */ - public function render($sql, $TParam=array()) - { - global $conf; - - $TField= & $this->TField; - - $this->init($TParam); - - $THeader = $this->initHeader($TParam); - - $sql = $this->search($sql,$TParam); - $sql.= $this->db->order($TParam['sortfield'], $TParam['sortorder']); - - if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) - { - $result = $this->db->query($sql); - $this->totalRow = $this->db->num_rows($result); - } - - $this->parse_sql($THeader, $TField, $TParam, $sql); - list($TTotal, $TTotalGroup)=$this->get_total($TField, $TParam); - - return $this->renderList($THeader, $TField, $TTotal, $TTotalGroup, $TParam); - } - - /** - * @param string $THeader the configuration of header - * @param string $TParam array of configuration - * @return array - */ - private function setSearch(&$THeader, &$TParam) - { - global $langs, $form; - - if(empty($TParam['search'])) return array(); - - $TSearch=array(); - - $nb_search_in_bar = 0; - - foreach($THeader as $key => $libelle) - { - if(empty($TSearch[$key]))$TSearch[$key]=''; - } - - $removeFilter = (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')); - foreach($TParam['search'] as $key => $param_search) - { - if ($removeFilter) $value = ''; - - $typeRecherche = (is_array($param_search) && isset($param_search['search_type'])) ? $param_search['search_type'] : $param_search; - - $fieldname = !empty($param_search['fieldname']) ? $param_search['fieldname'] : 'Listview_'.$this->id.'_search_'.$key; - $value = $removeFilter ? '' : GETPOST($fieldname); - - if(is_array($typeRecherche)) - { - $fsearch=$form->selectarray($fieldname, $typeRecherche,$value,1); - } - else if($typeRecherche==='calendar') - { - if (!$removeFilter) $value = GETPOST($fieldname) ? mktime(0,0,0, (int) GETPOST($fieldname.'month'), (int) GETPOST($fieldname.$key.'day'), (int) GETPOST($fieldname.'year') ) : ''; - - $fsearch = $form->select_date($value, $fieldname,0, 0, 1, "", 1, 0, 1); - } - else if($typeRecherche==='calendars') - { - $value_start = $value_end = ''; - if (!$removeFilter) - { - $value_start = GETPOST($fieldname.'_start') ? mktime(0,0,0, (int) GETPOST($fieldname.'_startmonth'), (int) GETPOST($fieldname.'_startday'), (int) GETPOST($fieldname.'_startyear') ) : ''; - $value_end = GETPOST($fieldname.'_end') ? mktime(0,0,0, (int) GETPOST($fieldname.'_endmonth'), (int) GETPOST($fieldname.'_endday'), (int) GETPOST($fieldname.'_endyear') ) : ''; - } - - $fsearch = $form->select_date($value_start,$fieldname.'_start',0, 0, 1, "", 1, 0, 1) - . $form->select_date($value_end, $fieldname.'_end',0, 0, 1, "", 1, 0, 1); - - } - else if(is_string($typeRecherche)) - { - $fsearch=$TParam['search'][$key]; - } - else - { - $fsearch=''; - } - - if(!empty($param_search['allow_is_null'])) - { - $valueNull = GETPOST($fieldname.'search_on_null_'.$key) ? 1 : 0; - $fsearch.=' '.$form->checkbox1('', $fieldname.'search_on_null_'.$key,1, $valueNull,' onclick=" if($(this).is(\':checked\')){ $(this).prev().val(\'\'); }" ').img_help(1, $langs->trans('SearchOnNUllValue')); - } - - if(!empty($THeader[$key])) - { - $TSearch[$key] = $fsearch; - $nb_search_in_bar++; - } - } - - $search_button = ' '.img_search().''; - $search_button .= ' '.img_searchclear().''; - - if($nb_search_in_bar>0) - { - end($TSearch); - list($key,$v) = each($TSearch); - $TSearch[$key].=$search_button; - } - else - { - $TSearch=array(); - } - - return $TSearch; - } - - /** - * Function to analyse and calculate the total from a column - * - * @param string $TField TField - * @param string $TParam TParam - * @return array - */ - private function get_total(&$TField, &$TParam) - { - $TTotal=$TTotalGroup=array(); - - if(!empty($TParam['math']) && !empty($TField[0])) - { - foreach($TField[0] as $field=>$value) - { - $TTotal[$field]=''; - $TTotalGroup[$field] = ''; - } - - foreach($TParam['math'] as $field=>$typeMath) - { - if(is_array($typeMath)) - { - $targetField = $typeMath[1]; - $typeMath = $typeMath[0]; - } - else - { - $targetField = $field; - } - - if($typeMath == 'groupsum') - { - $TTotalGroup[$field] = array('target'=>$targetField, 'values'=> $this->TTotalTmp['@groupsum'][$targetField]); - } - else if($typeMath=='average') - { - $TTotal[$field]=array_sum($this->TTotalTmp[$targetField]) / count($this->TTotalTmp[$targetField]); - } - elseif($typeMath=='count') - { - $TTotal[$field]=count($this->TTotalTmp[$targetField]); - } - else - { - $TTotal[$field]=array_sum($this->TTotalTmp[$targetField]); - } - } - } - - return array($TTotal,$TTotalGroup); - } - - /** - * @return string - */ - /* - private function getJS() - { - $javaScript = ''; - - return $javaScript; - } - */ - - /** - * @param string $TParam TParam - * @param string $TField TField - * @param string $THeader THeader - * @return array - */ - private function setExport(&$TParam, $TField, $THeader) - { - global $langs; - - $Tab=array(); - if(!empty($TParam['export'])) - { - $token = GETPOST('token'); - if(empty($token)) $token = md5($this->id.time().rand(1,9999)); - - $_SESSION['token_list_'.$token] = gzdeflate( serialize( array( - 'title'=>$this->title, - 'sql'=>$this->sql, - 'TBind'=>$this->TBind, - 'TChamps'=>$TField, - 'TEntete'=>$THeader - ))); - - foreach($TParam['export'] as $mode_export) - { - $Tab[] = array( - 'label'=>$langs->trans('Export'.$mode_export), - 'url'=>dol_buildpath('/abricot/downlist.php',1), - 'mode'=>$mode_export, - 'token'=>$token, - 'session_name'=>session_name() - ); - } - - } - - return $Tab; - } - - /** - * @param string $TField TField - * @param string $TTotalGroup TTotalGroup - * @return array - */ - private function addTotalGroup($TField, $TTotalGroup) - { - global $langs; - - $Tab=array(); - $proto_total_line = array(); - $tagbase = $old_tagbase = null; - $addGroupLine = false; - - foreach($TField as $k=>&$line) - { - if(empty($proto_total_line)) - { - foreach($line as $field=>$value) - { - $proto_total_line[$field] = ''; - } - $group_line = $proto_total_line; - } - - $addGroupLine = false; - - $tagbase = ''; - foreach($line as $field=>$value) - { - if(!empty($TTotalGroup[$field])) - { - $tagbase.=$value.'|'; - $group_line[$field] = '
    '.(empty($value) ? $langs->trans('Empty') : $value ).' :
    '; - $group_line[$TTotalGroup[$field]['target']] = '
    '.price($TTotalGroup[$field]['values'][$value]).'
    '; - $addGroupLine = true; - } - } - - if(!is_null($old_tagbase) && $old_tagbase!=$tagbase && $addGroupLine) - { - $Tab[] = $previous_group_line; - } - - $old_tagbase = $tagbase; - $previous_group_line = $group_line; - $group_line = $proto_total_line; - - $Tab[] = $line; - } - - if($addGroupLine) - { - $Tab[] = $previous_group_line; - } - - return $Tab; - } - - /** - * @param string $THeader THeader - * @param string $TField TField - * @param string $TTotal TTotal - * @param string $TTotalGroup TTotalGroup - * @param string $TParam TParam - * @return string - */ - private function renderList(&$THeader, &$TField, &$TTotal, &$TTotalGroup, &$TParam) - { - global $bc,$form; - - $TSearch = $this->setSearch($THeader, $TParam); - $TExport = $this->setExport($TParam, $TField, $THeader); - $TField = $this->addTotalGroup($TField,$TTotalGroup); - - //$out = $this->getJS(); - - $massactionbutton= empty($TParam['list']['massactions']) ? '' : $form->selectMassAction('', $TParam['list']['massactions']); - - $dolibarr_decalage = $this->totalRow > $this->totalRowToShow ? 1 : 0; - ob_start(); - print_barre_liste($TParam['list']['title'], $TParam['limit']['page'], $_SERVER["PHP_SELF"], '&'.$TParam['list']['param_url'], $TParam['sortfield'], $TParam['sortorder'], $massactionbutton, $this->totalRowToShow+$dolibarr_decalage, $this->totalRow, $TParam['list']['image'], 0, '', '', $TParam['limit']['nbLine']); - $out .= ob_get_clean(); - - $classliste='liste'; - if(!empty($TParam['head_search'])) { - $out.='
    '; - $out.=$TParam['head_search']; - $out.='
    '; - - $classliste.=' listwithfilterbefore'; - } - - $out.= '
    '; - $out.= ''; - - if(count($TSearch)>0) - { - $out.=''; - - foreach ($THeader as $field => $head) - { - if ($field === 'selectedfields') - { - $out.= ''; - } - else - { - $moreattrib = 'style="width:'.$head['width'].';text-align:'.$head['text-align'].'"'; - $out .= ''; - } - } - - $out.=''; - } - - $out.= ''; - foreach($THeader as $field => $head) - { - $moreattrib = ''; - $search = ''; - $prefix = ''; - - $label = $head['label']; - - if ($field === 'selectedfields') - { - $moreattrib = 'align="right" '; - $prefix = 'maxwidthsearch '; - - if(!empty($TParam['list']['massactions'])) { - $label.=$form->showCheckAddButtons('checkforselect', 1); - } - - } - - if (empty($head['width'])) $head['width'] = 'auto'; - if (!empty($head['width']) && !empty($head['text-align'])) $moreattrib .= 'style="width:'.$head['width'].';text-align:'.$head['text-align'].'"'; - - if (isset($TParam['search'][$field]['search_type']) && $TParam['search'][$field]['search_type'] !== false) - { - $TsKey = $this->getSearchKey($field, $TParam); - if (!empty($TsKey)) $search = implode(',', $TsKey); - else $search = $field; - } - - $out .= getTitleFieldOfList($label, 0, $_SERVER["PHP_SELF"], $search, '', $moreparam, $moreattrib, $TParam['sortfield'], $TParam['sortorder'], $prefix); - $out .= $head['more']; - } - - //$out .= ''; - $out .= ''; - - $out.=''; - - if(empty($TField)) - { - if (!empty($TParam['list']['messageNothing'])) $out .= ''; - } - else - { - $line_number = 0; - foreach($TField as $fields) - { - if($this->in_view($TParam, $line_number)) - { - $out.=''; - - foreach ($THeader as $field => $head) - { - $value_aff =(isset($fields[$field]) ? $fields[$field] : ' '); - - if ($field === 'selectedfields') - { - $head['text-align']='center'; - if(!empty($TParam['list']['massactions'])) { - $arrayofselected=array(); // TODO get in param - $selected=0; - if (in_array($obj->rowid, $arrayofselected)) $selected=1; - $value_aff.=''; - } - } - - $moreattrib = 'style="width:'.$head['width'].';text-align:'.$head['text-align'].'"'; - $out.=''; - } - - $out.=''; - } - - $line_number++; - } - - $out.=''; - - if (!empty($TParam['list']['haveTotal'])) - { - $out.=''; - - foreach ($THeader as $field => $head) - { - if (isset($TTotal[$field])) - { - $moreattrib = 'style="width:'.$head['width'].';text-align:'.$head['text-align'].'"'; - $out.=''; - } - } - - $out.=''; - } - } - - $out .= '
    --
    '.$TParam['list']['messageNothing'].'
    '.$value_aff.'
    '.price($TTotal[$field]).'
    '; - $out .= '
    '; - - return $out; - } - - /** - * @param string $db Db - * @param string $TField TField - * @param string $TParam TParam - */ - public function renderArray(&$db, $TField, $TParam=array()) - { - $this->typeRender = 'array'; - - $TField=array(); - - $this->init($TParam); - $THeader = $this->initHeader($TParam); - - $this->parse_array($THeader, $TField, $TParam); - list($TTotal, $TTotalGroup)=$this->get_total($TField, $TParam); - - $this->renderList($THeader, $TField, $TTotal, $TTotalGroup, $TParam); - } - - - /** - * @param string $THeader THeader - * @param string $TField TField - * @param string $TParam TParam - * @return bool - */ - private function parse_array(&$THeader, &$TField, &$TParam) - { - $this->totalRow = count($TField); - - $this->THideFlip = array_flip($TParam['hide']); - $this->TTotalTmp=array(); - - if (empty($TField)) return false; - - foreach($TField as $row) - { - $this->set_line($THeader, $TField, $TParam, $row); - } - } - - - private function initHeader(&$TParam) - { - global $user,$conf; - - $THeader = array(); - - $TField=$TFieldVisibility=array(); - foreach ($TParam['title'] as $field => $value) - { - $TField[$field]=true; - } - - $contextpage=md5($_SERVER['PHP_SELF']); - if(!empty($TParam['allow-fields-select'])) - { - $selectedfields = GETPOST('Listview'.$this->id.'_selectedfields'); - - if(!empty($selectedfields)) - { - include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; - $tabparam['MAIN_SELECTEDFIELDS_'.$contextpage] = $selectedfields; - $result=dol_set_user_param($this->db, $conf, $user, $tabparam); - } - - $tmpvar='MAIN_SELECTEDFIELDS_'.$contextpage; - if (! empty($user->conf->{$tmpvar})) - { - $tmparray = explode(',', $user->conf->{$tmpvar}); - $TParam['hide'] = array(); - foreach($TField as $field => $dummy) - { - $label = $TParam['title'][$field]; - if(!in_array($field, $tmparray)) - { - $TParam['hide'][] = $field; - $visible = 0; - } - else - { - // Overrive search from extrafields - // for the type as 'checkbox', 'chkbxlst', 'sellist' we should use code instead of id (example: I declare a 'chkbxlst' to have a link with dictionnairy, I have to extend it with the 'code' instead 'rowid') - if (isset($this->extralabels[$field])) $TParam['search'][$field] = $this->extrafields->showInputField($field, $this->search_array_options['search_options_'.$field], '', '', 'search_'); - $visible = 1; - } - - $TFieldVisibility[$field] = array( - 'label'=>$label - ,'checked'=>$visible - ); - } - } - else - { - foreach($TField as $field=>$dummy) - { - $label = isset($TParam['title'][$field]) ? $TParam['title'][$field] : $field; - $visible = (!in_array($field, $TParam['hide'])) ? 1 : 0; - $TFieldVisibility[$field]=array( - 'label'=>$label, - 'checked'=>$visible - ); - } - } - - $selectedfields = $this->form->multiSelectArrayWithCheckbox('Listview'.$this->id.'_selectedfields', $TFieldVisibility, $contextpage); // This also change content of $arrayfields_0 - } - - foreach ($TParam['title'] as $field => $label) - { - $visible = (!in_array($field, $TParam['hide'])) ? 1 : 0; - if($visible) - { - $THeader[$field] = array( - 'label'=>$label, - 'order'=>(in_array($field, $TParam['orderby']['noOrder']) ? 0 : 1), - 'width'=>(!empty($TParam['size']['width'][$field]) ? $TParam['size']['width'][$field] : 'auto'), - 'text-align'=>(!empty($TParam['position']['text-align'][$field]) ? $TParam['position']['text-align'][$field] : 'auto'), - 'rank'=>(!empty($TParam['position']['rank'][$field]) ? $TParam['position']['rank'][$field] : 0), - 'more'=>'' - ); - } - } - - uasort($THeader,array('Listview','sortHeaderRank')); - - $THeader['selectedfields']['label']=$selectedfields; - - return $THeader; - } - - public function sortHeaderRank(&$a, &$b) { - if($a['rank']>$b['rank']) return 1; - else if($a['rank']<$b['rank']) return -1; - else return 0; - - } - - /** - * @param string $TParam TParam - * @param string $line_number aaa - * @return bool - */ - private function in_view(&$TParam, $line_number) - { - global $conf; - - if(!empty($_REQUEST['get-all-for-export'])) return true; - - $page_number = !empty($TParam['limit']['page']) ? $TParam['limit']['page'] : 1; - $line_per_page = !empty($TParam['limit']['nbLine']) ? $TParam['limit']['nbLine'] : $conf->liste_limit; - - $start = ($page_number-1) * $line_per_page; - $end = ($page_number* $line_per_page) -1; - - if($line_number>=$start && $line_number<=$end) return true; - else return false; - } - - /** - * Apply function to result and set fields array - * - * @param string $THeader array of headers - * @param string $TField array of fields - * @param string $TParam array of parameters - * @param string $currentLine object containing current sql result - */ - private function set_line(&$THeader, &$TField, &$TParam, $currentLine) - { - global $conf; - - $line_number = count($TField); - - if($this->in_view($TParam,$line_number)) - { - $this->totalRowToShow++; - $row=array(); - $trans = array(); - foreach($currentLine as $kF=>$vF)$trans['@'.$kF.'@'] = addslashes($vF); - - foreach($THeader as $field=>$dummy) - { - $value = isset($currentLine->{$field}) ? $currentLine->{$field}: ''; - - if(is_object($value)) - { - if(get_class($value)=='stdClass') {$value=print_r($value, true);} - else $value=(string) $value; - } - - $trans['@'.$field.'@'] = addslashes($value); - - if(!empty($TParam['math'][$field])) - { - $float_value = (double) strip_tags($value); - $this->TTotalTmp[$field][] = $float_value; - } - - if(!in_array($field,$TParam['hide'])) - { - $row[$field]=$value; - - if(isset($TParam['eval'][$field]) && in_array($field,array_keys($row))) - { - $strToEval = 'return '.strtr( $TParam['eval'][$field], array_merge( $trans, array('@val@'=>addslashes( $row[$field] )) )).';'; - $row[$field] = eval($strToEval); - - } - - if(isset($TParam['type'][$field]) && !isset($TParam['eval'][$field])) - { - if($TParam['type'][$field]=='date' || $TParam['type'][$field]=='datetime' ) - { - - if($row[$field] != '0000-00-00 00:00:00' && $row[$field] != '1000-01-01 00:00:00' && $row[$field] != '0000-00-00' && !empty($row[$field])) - { - if($TParam['type'][$field]=='datetime')$row[$field] = dol_print_date(strtotime($row[$field]),'dayhour'); - else $row[$field] = dol_print_date(strtotime($row[$field]),'day'); - } - else - { - $row[$field] = ''; - } - } - - if($TParam['type'][$field]=='hour') { $row[$field] = date('H:i', strtotime($row[$field])); } - if($TParam['type'][$field]=='money') { $row[$field] = '
    '.price($row[$field],0,'',1,-1,2).'
    '; } - if($TParam['type'][$field]=='number') { $row[$field] = '
    '.price($row[$field]).'
    '; } - if($TParam['type'][$field]=='integer') { $row[$field] = '
    '.((int) $row[$field]).'
    '; } - } - - if(isset($TParam['link'][$field])) - { - if(empty($row[$field]) && $row[$field]!==0 && $row[$field]!=='0')$row[$field]='(vide)'; - $row[$field]= strtr( $TParam['link'][$field], array_merge( $trans, array('@val@'=>$row[$field]))) ; - } - - if(isset($TParam['translate'][$field])) - { - if(isset($TParam['translate'][$field][''])) unset($TParam['translate'][$field]['']); - - $row[$field] = strtr( $row[$field], $TParam['translate'][$field]); - } - } - } - } - else - { - $row = array(); - - foreach($currentLine as $field=>&$value) - { - if(!isset($this->THideFlip[$field])) - { - if(isset($TParam['math'][$field]) && !empty($TParam['math'][$field])) - { - $float_value = (double) strip_tags($value); - $this->TTotalTmp[$field][] = $float_value; - } - - $row[$field] = $value; - } - } - } - - if(!empty($TParam['math'][$field])) - { - foreach($row as $field=>$value) - { - if(!empty($TParam['math'][$field]) && is_array($TParam['math'][$field])) - { - $toField = $TParam['math'][$field][1]; - $float_value = (double) strip_tags($row[$toField]); - $this->TTotalTmp['@groupsum'][$toField][ $row[$field] ] += $float_value; - } - } - } - - $TField[] = $row; - } - - /** - * @param string $sql sql - * @param string $TParam TParam - * @return string - */ - private function limitSQL($sql, &$TParam) - { - if(!empty($TParam['limit']['global']) && strpos($sql,'LIMIT ')===false ) - { - $sql.=' LIMIT '.(int) $TParam['limit']['global']; - } - else if(!empty($TParam['limit'])) $sql.= $this->db->plimit($TParam['limit']['nbLine']+1, $TParam['limit']['page'] * $TParam['limit']['nbLine']); - - - return $sql; - } - - /** - * @param string $THeader THeader - * @param string $TField TField - * @param string $TParam TParam - * @param string $sql sql - */ - private function parse_sql(&$THeader, &$TField, &$TParam, $sql) - { - $this->sql = $this->limitSQL($sql, $TParam); - - $this->TTotalTmp=array(); - $this->THideFlip = array_flip($TParam['hide']); - - $res = $this->db->query($this->sql); - if($res!==false) - { - dol_syslog(get_class($this)."::parse_sql id=".$this->id." sql=".$this->sql, LOG_DEBUG); - - if(empty($this->totalRow))$this->totalRow = $this->db->num_rows($res); - - while($currentLine = $this->db->fetch_object($res)) - { - $this->set_line($THeader, $TField, $TParam, $currentLine); - } - } - else - { - dol_syslog(get_class($this)."::parse_sql id=".$this->id." sql=".$this->sql, LOG_ERR); - } - } - - static function getCachedOjbect($class_name, $fk_object) { - global $db, $TCacheListObject; - - if(!class_exists($class_name)) return false; - - if(empty($TCacheListObject)) $TCacheListObject = array(); - if(empty($TCacheListObject[$class_name])) $TCacheListObject[$class_name] =array(); - - if(empty($TCacheListObject[$class_name][$fk_object])) { - $TCacheListObject[$class_name][$fk_object]= new $class_name($db); - if( $TCacheListObject[$class_name][$fk_object]->fetch($fk_object)<0) { - return false; - } - } - - return $TCacheListObject[$class_name][$fk_object]; - } - -} diff --git a/htdocs/product/list.php b/htdocs/product/list.php index 13793438a7b..f772f8d4f0c 100644 --- a/htdocs/product/list.php +++ b/htdocs/product/list.php @@ -609,7 +609,26 @@ else { foreach($extrafields->attribute_label as $key => $val) { - if (! empty($arrayfields["ef.".$key]['checked'])) print ''; + if (! empty($arrayfields["ef.".$key]['checked'])) { + $align=$extrafields->getAlignFlag($key); + $typeofextrafield=$extrafields->attribute_type[$key]; + print ''; + if (in_array($typeofextrafield, array('varchar', 'int', 'double', 'select')) && empty($extrafields->attribute_computed[$key])) + { + $crit=$val; + $tmpkey=preg_replace('/search_options_/','',$key); + $searchclass=''; + if (in_array($typeofextrafield, array('varchar', 'select'))) $searchclass='searchstring'; + if (in_array($typeofextrafield, array('int', 'double'))) $searchclass='searchnum'; + print ''; + } + else + { + // for the type as 'checkbox', 'chkbxlst', 'sellist' we should use code instead of id (example: I declare a 'chkbxlst' to have a link with dictionnairy, I have to extend it with the 'code' instead 'rowid') + echo $extrafields->showInputField($key, $search_array_options['search_options_'.$key], '', '', 'search_'); + } + print ''; + } } } // Fields from hook @@ -674,7 +693,7 @@ else $align=$extrafields->getAlignFlag($key); $sortonfield = "ef.".$key; if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/product/popuprop.php b/htdocs/product/popuprop.php index 21491eab512..91a8f4f80a4 100644 --- a/htdocs/product/popuprop.php +++ b/htdocs/product/popuprop.php @@ -139,10 +139,10 @@ if ($resql) while ($i < $num) { $objp = $db->fetch_object($resql); - + $infoprod[$objp->rowid]=array('type'=>$objp->type, 'ref'=>$objp->ref, 'label'=>$objp->label); $infoprod[$objp->rowid]['nblineproposal']=$objp->c; - + $i++; } $db->free($resql); @@ -159,10 +159,10 @@ print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sort print ''; print ""; -print_liste_field_titre($langs->trans('Ref'), $_SERVER["PHP_SELF"], 'p.ref', '', $param, '', $sortfield, $sortorder); -print_liste_field_titre($langs->trans('Type'), $_SERVER["PHP_SELF"], 'p.fk_product_type', '', $param, '', $sortfield, $sortorder); -print_liste_field_titre($langs->trans('Label'), $_SERVER["PHP_SELF"], 'p.label', '', $param, '', $sortfield, $sortorder); -print_liste_field_titre($langs->trans('NbOfQtyInProposals'), $_SERVER["PHP_SELF"], 'c', '', $param, 'align="right"', $sortfield, $sortorder); +print_liste_field_titre('Ref', $_SERVER["PHP_SELF"], 'p.ref', '', $param, '', $sortfield, $sortorder); +print_liste_field_titre('Type', $_SERVER["PHP_SELF"], 'p.fk_product_type', '', $param, '', $sortfield, $sortorder); +print_liste_field_titre('Label', $_SERVER["PHP_SELF"], 'p.label', '', $param, '', $sortfield, $sortorder); +print_liste_field_titre('NbOfQtyInProposals', $_SERVER["PHP_SELF"], 'c', '', $param, 'align="right"', $sortfield, $sortorder); print "\n"; foreach($infoprod as $prodid => $vals) diff --git a/htdocs/product/price.php b/htdocs/product/price.php index 1000388cb56..b03a8763770 100644 --- a/htdocs/product/price.php +++ b/htdocs/product/price.php @@ -1171,6 +1171,12 @@ if ($action == 'edit_price' && $object->getRights()->creer) } print ''; print ''; + + $parameters=array('colspan' => 2); + $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook + + $parameters=array('colspan' => 2); + $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook print '
    '; diff --git a/htdocs/product/reassort.php b/htdocs/product/reassort.php index 9d58c244b2e..e3983344cff 100644 --- a/htdocs/product/reassort.php +++ b/htdocs/product/reassort.php @@ -200,7 +200,7 @@ if ($resql) { print_barre_liste($texte, $page, $_SERVER["PHP_SELF"], "&sref=$sref&snom=$snom&fourn_id=$fourn_id".(isset($type)?"&type=$type":"").(!empty($search_categ) ? '&search_categ='.$search_categ : '').(!empty($toolowstock) ? '&toolowstock='.$toolowstock : ''), $sortfield, $sortorder,'',$num, $nbtotalofrecords, 'title_products', 0, '', '', $limit); } - + if (! empty($catid)) { print "
    "; @@ -210,7 +210,7 @@ if ($resql) print " > ".$ways[0]."
    \n"; print "

    "; } - + // Filter on categories $moreforfilter=''; if (! empty($conf->categorie->enabled)) @@ -220,11 +220,11 @@ if ($resql) $moreforfilter.=$htmlother->select_categories(Categorie::TYPE_PRODUCT,$search_categ,'search_categ'); $moreforfilter.=''; } - + $moreforfilter.='
    '; $moreforfilter.=$langs->trans("StockTooLow").' '; $moreforfilter.='
    '; - + if (! empty($moreforfilter)) { print '
    '; @@ -234,7 +234,7 @@ if ($resql) print $hookmanager->resPrint; print '
    '; } - + $param=''; if ($tosell) $param.="&tosell=".$tosell; if ($tobuy) $param.="&tobuy=".$tobuy; @@ -242,17 +242,17 @@ if ($resql) if ($fourn_id) $param.="&fourn_id=".$fourn_id; if ($snom) $param.="&snom=".$snom; if ($sref) $param.="&sref=".$sref; - + $formProduct = new FormProduct($db); $formProduct->loadWarehouses(); $warehouses_list = $formProduct->cache_warehouses; $nb_warehouse = count($warehouses_list); $colspan_warehouse = 1; if (! empty($conf->global->STOCK_DETAIL_ON_WAREHOUSE)) { $colspan_warehouse = $nb_warehouse > 1 ? $nb_warehouse+1 : 1; } - + print '
    '; print ''; - + // Lignes des champs de filtre print ''; print '"; - print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "p.ref",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Label"), $_SERVER["PHP_SELF"], "p.label",$param,"","",$sortfield,$sortorder); - if (! empty($conf->service->enabled) && $type == 1) print_liste_field_titre($langs->trans("Duration"), $_SERVER["PHP_SELF"], "p.duration",$param,"",'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("StockLimit"), $_SERVER["PHP_SELF"], "p.seuil_stock_alerte",$param,"",'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DesiredStock"), $_SERVER["PHP_SELF"], "p.desiredstock",$param,"",'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("PhysicalStock"), $_SERVER["PHP_SELF"], "stock_physique",$param,"",'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "p.ref",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("Label", $_SERVER["PHP_SELF"], "p.label",$param,"","",$sortfield,$sortorder); + if (! empty($conf->service->enabled) && $type == 1) print_liste_field_titre("Duration", $_SERVER["PHP_SELF"], "p.duration",$param,"",'align="center"',$sortfield,$sortorder); + print_liste_field_titre("StockLimit", $_SERVER["PHP_SELF"], "p.seuil_stock_alerte",$param,"",'align="right"',$sortfield,$sortorder); + print_liste_field_titre("DesiredStock", $_SERVER["PHP_SELF"], "p.desiredstock",$param,"",'align="right"',$sortfield,$sortorder); + print_liste_field_titre("PhysicalStock", $_SERVER["PHP_SELF"], "stock_physique",$param,"",'align="right"',$sortfield,$sortorder); // Details per warehouse if (! empty($conf->global->STOCK_DETAIL_ON_WAREHOUSE)) // TODO This should be moved into the selection of fields on page product/list (page product/stock will be removed and replaced with product/list with its own context) { @@ -297,16 +297,16 @@ if ($resql) foreach($warehouses_list as &$wh) { print_liste_field_titre($wh['label'], '', '','','','align="right"'); } - + } } - if ($virtualdiffersfromphysical) print_liste_field_titre($langs->trans("VirtualStock"),$_SERVER["PHP_SELF"], "",$param,"",'align="right"',$sortfield,$sortorder); + if ($virtualdiffersfromphysical) print_liste_field_titre("VirtualStock",$_SERVER["PHP_SELF"], "",$param,"",'align="right"',$sortfield,$sortorder); print_liste_field_titre(''); - print_liste_field_titre($langs->trans("Status").' ('.$langs->trans("Sell").')',$_SERVER["PHP_SELF"], "p.tosell",$param,"",'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Status").' ('.$langs->trans("Buy").')',$_SERVER["PHP_SELF"], "p.tobuy",$param,"",'align="right"',$sortfield,$sortorder); + print_liste_field_titre( $langs->trans("Status").' ('.$langs->trans("Sell").')',$_SERVER["PHP_SELF"], "p.tosell",$param,"",'align="right"',$sortfield,$sortorder); + print_liste_field_titre( $langs->trans("Status").' ('.$langs->trans("Buy").')',$_SERVER["PHP_SELF"], "p.tobuy",$param,"",'align="right"',$sortfield,$sortorder); print_liste_field_titre(''); print "\n"; - + while ($i < min($num,$limit)) { $objp = $db->fetch_object($resql); @@ -338,22 +338,22 @@ if ($resql) if ($objp->seuil_stock_alerte != '' && ($objp->stock_physique < $objp->seuil_stock_alerte)) print img_warning($langs->trans("StockTooLow")).' '; print $objp->stock_physique; print ''; - + // Details per warehouse if (! empty($conf->global->STOCK_DETAIL_ON_WAREHOUSE)) // TODO This should be moved into the selection of fields on page product/list (page product/stock will be removed and replaced with product/list with its own context) { if($nb_warehouse>1) { foreach($warehouses_list as &$wh) { - + print ''; } - } - } - - - + } + } + + + // Virtual stock if ($virtualdiffersfromphysical) { @@ -372,7 +372,7 @@ if ($resql) print "
    '; @@ -284,12 +284,12 @@ if ($resql) // Lignes des titres print "
    '; print empty($product->stock_warehouse[$wh['id']]->real) ? '0' : $product->stock_warehouse[$wh['id']]->real; print '
    "; print '
    '; - + print ''; $db->free($resql); diff --git a/htdocs/product/reassortlot.php b/htdocs/product/reassortlot.php index 3c335ed1ad8..490986b155e 100644 --- a/htdocs/product/reassortlot.php +++ b/htdocs/product/reassortlot.php @@ -288,20 +288,20 @@ if ($resql) // Lignes des titres print ""; - print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "p.ref",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Label"), $_SERVER["PHP_SELF"], "p.label",$param,"","",$sortfield,$sortorder); - if (! empty($conf->service->enabled) && $type == 1) print_liste_field_titre($langs->trans("Duration"), $_SERVER["PHP_SELF"], "p.duration",$param,"",'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Warehouse"), $_SERVER["PHP_SELF"], "e.label",$param,"",'',$sortfield,$sortorder); - //print_liste_field_titre($langs->trans("DesiredStock"), $_SERVER["PHP_SELF"], "p.desiredstock",$param,"",'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Batch"), $_SERVER["PHP_SELF"], "pb.batch",$param,"",'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("EatByDate"), $_SERVER["PHP_SELF"], "pb.eatby",$param,"",'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("SellByDate"), $_SERVER["PHP_SELF"], "pb.sellby",$param,"",'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("PhysicalStock"), $_SERVER["PHP_SELF"], "stock_physique",$param,"",'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "p.ref",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("Label", $_SERVER["PHP_SELF"], "p.label",$param,"","",$sortfield,$sortorder); + if (! empty($conf->service->enabled) && $type == 1) print_liste_field_titre("Duration", $_SERVER["PHP_SELF"], "p.duration",$param,"",'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Warehouse", $_SERVER["PHP_SELF"], "e.label",$param,"",'',$sortfield,$sortorder); + //print_liste_field_titre("DesiredStock", $_SERVER["PHP_SELF"], "p.desiredstock",$param,"",'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Batch", $_SERVER["PHP_SELF"], "pb.batch",$param,"",'align="center"',$sortfield,$sortorder); + print_liste_field_titre("EatByDate", $_SERVER["PHP_SELF"], "pb.eatby",$param,"",'align="center"',$sortfield,$sortorder); + print_liste_field_titre("SellByDate", $_SERVER["PHP_SELF"], "pb.sellby",$param,"",'align="center"',$sortfield,$sortorder); + print_liste_field_titre("PhysicalStock", $_SERVER["PHP_SELF"], "stock_physique",$param,"",'align="right"',$sortfield,$sortorder); // TODO Add info of running suppliers/customers orders - //print_liste_field_titre($langs->trans("TheoreticalStock"),$_SERVER["PHP_SELF"], "stock_theorique",$param,"",'align="right"',$sortfield,$sortorder); + //print_liste_field_titre("TheoreticalStock",$_SERVER["PHP_SELF"], "stock_theorique",$param,"",'align="right"',$sortfield,$sortorder); print_liste_field_titre(''); - print_liste_field_titre($langs->trans("Status").' ('.$langs->trans("Sell").')',$_SERVER["PHP_SELF"], "p.tosell","",$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Status").' ('.$langs->trans("Buy").')',$_SERVER["PHP_SELF"], "p.tobuy","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre( $langs->trans("Status").' ('.$langs->trans("Sell").')',$_SERVER["PHP_SELF"], "p.tosell","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre( $langs->trans("Status").' ('.$langs->trans("Buy").')',$_SERVER["PHP_SELF"], "p.tobuy","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre(''); print "\n"; diff --git a/htdocs/product/stats/commande.php b/htdocs/product/stats/commande.php index 1b4036af8af..5a371554058 100644 --- a/htdocs/product/stats/commande.php +++ b/htdocs/product/stats/commande.php @@ -200,13 +200,13 @@ if ($id > 0 || ! empty($ref)) print '
    '; print ''; print ''; - print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"c.rowid","",$option,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$option,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("CustomerCode"),$_SERVER["PHP_SELF"],"s.code_client","",$option,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("OrderDate"),$_SERVER["PHP_SELF"],"c.date_commande","",$option,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Qty"),$_SERVER["PHP_SELF"],"d.qty","",$option,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("AmountHT"),$_SERVER["PHP_SELF"],"c.total_ht","",$option,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"c.fk_statut","",$option,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"c.rowid","",$option,'',$sortfield,$sortorder); + print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom","",$option,'',$sortfield,$sortorder); + print_liste_field_titre("CustomerCode",$_SERVER["PHP_SELF"],"s.code_client","",$option,'',$sortfield,$sortorder); + print_liste_field_titre("OrderDate",$_SERVER["PHP_SELF"],"c.date_commande","",$option,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Qty",$_SERVER["PHP_SELF"],"d.qty","",$option,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("AmountHT",$_SERVER["PHP_SELF"],"c.total_ht","",$option,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"c.fk_statut","",$option,'align="right"',$sortfield,$sortorder); print "\n"; if ($num > 0) diff --git a/htdocs/product/stats/commande_fournisseur.php b/htdocs/product/stats/commande_fournisseur.php index ad802ed36f6..daf2a9c3654 100644 --- a/htdocs/product/stats/commande_fournisseur.php +++ b/htdocs/product/stats/commande_fournisseur.php @@ -210,13 +210,13 @@ if ($id > 0 || ! empty($ref)) { print '
    '; print '
    '; print ''; - print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "c.rowid", "", $option, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Company"), $_SERVER["PHP_SELF"], "s.nom", "", $option, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("SupplierCode"), $_SERVER["PHP_SELF"], "s.code_client", "", $option, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("OrderDate"), $_SERVER["PHP_SELF"], "c.date_commande", "", $option, 'align="center"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Qty"), $_SERVER["PHP_SELF"], "d.qty", "", $option, 'align="center"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("AmountHT"), $_SERVER["PHP_SELF"], "c.total_ht", "", $option, 'align="right"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Status"), $_SERVER["PHP_SELF"], "c.fk_statut", "", $option, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "c.rowid", "", $option, '', $sortfield, $sortorder); + print_liste_field_titre("Company", $_SERVER["PHP_SELF"], "s.nom", "", $option, '', $sortfield, $sortorder); + print_liste_field_titre("SupplierCode", $_SERVER["PHP_SELF"], "s.code_client", "", $option, '', $sortfield, $sortorder); + print_liste_field_titre("OrderDate", $_SERVER["PHP_SELF"], "c.date_commande", "", $option, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre("Qty", $_SERVER["PHP_SELF"], "d.qty", "", $option, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre("AmountHT", $_SERVER["PHP_SELF"], "c.total_ht", "", $option, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "c.fk_statut", "", $option, 'align="right"', $sortfield, $sortorder); print "\n"; if ($num > 0) { diff --git a/htdocs/product/stats/contrat.php b/htdocs/product/stats/contrat.php index 1f85d25f9f3..f9eed565903 100644 --- a/htdocs/product/stats/contrat.php +++ b/htdocs/product/stats/contrat.php @@ -163,11 +163,11 @@ if ($id > 0 || ! empty($ref)) print '
    '; print ''; - print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"c.rowid","","&id=".$product->id,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","","&id=".$product->id,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("CustomerCode"),$_SERVER["PHP_SELF"],"s.code_client","","&id=".$product->id,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"c.date_contrat","","&id=".$product->id,'align="center"',$sortfield,$sortorder); - //print_liste_field_titre($langs->trans("AmountHT"),$_SERVER["PHP_SELF"],"c.amount","","&id=".$product->id,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"c.rowid","","&id=".$product->id,'',$sortfield,$sortorder); + print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom","","&id=".$product->id,'',$sortfield,$sortorder); + print_liste_field_titre("CustomerCode",$_SERVER["PHP_SELF"],"s.code_client","","&id=".$product->id,'',$sortfield,$sortorder); + print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"c.date_contrat","","&id=".$product->id,'align="center"',$sortfield,$sortorder); + //print_liste_field_titre("AmountHT"),$_SERVER["PHP_SELF"],"c.amount","","&id=".$product->id,'align="right"',$sortfield,$sortorder); print_liste_field_titre($staticcontratligne->LibStatut(0,3),$_SERVER["PHP_SELF"],"",'','','width="16"',$sortfield,$sortorder,'maxwidthsearch '); print_liste_field_titre($staticcontratligne->LibStatut(4,3),$_SERVER["PHP_SELF"],"",'','','width="16"',$sortfield,$sortorder,'maxwidthsearch '); print_liste_field_titre($staticcontratligne->LibStatut(5,3),$_SERVER["PHP_SELF"],"",'','','width="16"',$sortfield,$sortorder,'maxwidthsearch '); diff --git a/htdocs/product/stats/facture.php b/htdocs/product/stats/facture.php index 831e7ec729c..8cdc0efd5c0 100644 --- a/htdocs/product/stats/facture.php +++ b/htdocs/product/stats/facture.php @@ -223,13 +223,13 @@ if ($id > 0 || ! empty($ref)) print '
    '; print '
    '; print ''; - print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"s.rowid","",$option,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","",$option,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("CustomerCode"),$_SERVER["PHP_SELF"],"s.code_client","",$option,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("DateInvoice"),$_SERVER["PHP_SELF"],"f.datef","",$option,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Qty"),$_SERVER["PHP_SELF"],"d.qty","",$option,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("AmountHT"),$_SERVER["PHP_SELF"],"f.total","",$option,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"f.paye,f.fk_statut","",$option,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"s.rowid","",$option,'',$sortfield,$sortorder); + print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom","",$option,'',$sortfield,$sortorder); + print_liste_field_titre("CustomerCode",$_SERVER["PHP_SELF"],"s.code_client","",$option,'',$sortfield,$sortorder); + print_liste_field_titre("DateInvoice",$_SERVER["PHP_SELF"],"f.datef","",$option,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Qty",$_SERVER["PHP_SELF"],"d.qty","",$option,'align="center"',$sortfield,$sortorder); + print_liste_field_titre("AmountHT",$_SERVER["PHP_SELF"],"f.total","",$option,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"f.paye,f.fk_statut","",$option,'align="right"',$sortfield,$sortorder); print "\n"; if ($num > 0) diff --git a/htdocs/product/stats/facture_fournisseur.php b/htdocs/product/stats/facture_fournisseur.php index 514fc622cc5..586741496c2 100644 --- a/htdocs/product/stats/facture_fournisseur.php +++ b/htdocs/product/stats/facture_fournisseur.php @@ -202,13 +202,13 @@ if ($id > 0 || ! empty($ref)) print '
    '; print '
    '; print ''; - print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "s.rowid", "", $option, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Company"), $_SERVER["PHP_SELF"], "s.nom", "", $option, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("SupplierCode"), $_SERVER["PHP_SELF"], "s.code_client", "", $option, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("DateInvoice"), $_SERVER["PHP_SELF"], "f.datef", "", $option, 'align="center"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Qty"), $_SERVER["PHP_SELF"], "d.qty", "", $option, 'align="center"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("AmountHT"), $_SERVER["PHP_SELF"], "f.total_ht", "", $option, 'align="right"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Status"), $_SERVER["PHP_SELF"], "f.paye,f.fk_statut", "", $option, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "s.rowid", "", $option, '', $sortfield, $sortorder); + print_liste_field_titre("Company", $_SERVER["PHP_SELF"], "s.nom", "", $option, '', $sortfield, $sortorder); + print_liste_field_titre("SupplierCode", $_SERVER["PHP_SELF"], "s.code_client", "", $option, '', $sortfield, $sortorder); + print_liste_field_titre("DateInvoice", $_SERVER["PHP_SELF"], "f.datef", "", $option, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre("Qty", $_SERVER["PHP_SELF"], "d.qty", "", $option, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre("AmountHT", $_SERVER["PHP_SELF"], "f.total_ht", "", $option, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "f.paye,f.fk_statut", "", $option, 'align="right"', $sortfield, $sortorder); print "\n"; if ($num > 0) diff --git a/htdocs/product/stats/propal.php b/htdocs/product/stats/propal.php index 3b7131245a6..a5801c422e0 100644 --- a/htdocs/product/stats/propal.php +++ b/htdocs/product/stats/propal.php @@ -204,12 +204,12 @@ if ($id > 0 || ! empty($ref)) print '
    '; print '
    '; print ''; - print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "p.rowid", "", $option, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Company"), $_SERVER["PHP_SELF"], "s.nom", "", $option, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("DatePropal"), $_SERVER["PHP_SELF"], "p.datep", "", $option, 'align="center"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Qty"), $_SERVER["PHP_SELF"], "d.qty", "", $option, 'align="center"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("AmountHT"), $_SERVER["PHP_SELF"], "p.total", "", $option, 'align="right"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Status"), $_SERVER["PHP_SELF"], "p.fk_statut", "", $option, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "p.rowid", "", $option, '', $sortfield, $sortorder); + print_liste_field_titre("Company", $_SERVER["PHP_SELF"], "s.nom", "", $option, '', $sortfield, $sortorder); + print_liste_field_titre("DatePropal", $_SERVER["PHP_SELF"], "p.datep", "", $option, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre("Qty", $_SERVER["PHP_SELF"], "d.qty", "", $option, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre("AmountHT", $_SERVER["PHP_SELF"], "p.total", "", $option, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "p.fk_statut", "", $option, 'align="right"', $sortfield, $sortorder); print "\n"; if ($num > 0) diff --git a/htdocs/product/stock/card.php b/htdocs/product/stock/card.php index db8a6736688..0f843e97b61 100644 --- a/htdocs/product/stock/card.php +++ b/htdocs/product/stock/card.php @@ -429,13 +429,13 @@ else print '
    '; print ""; - print_liste_field_titre($langs->trans("Product"),"", "p.ref","&id=".$id,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Label"),"", "p.label","&id=".$id,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Units"),"", "ps.reel","&id=".$id,"",'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("AverageUnitPricePMPShort"),"", "p.pmp","&id=".$id,"",'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("EstimatedStockValueShort"),"", "","&id=".$id,"",'align="right"',$sortfield,$sortorder); - if (empty($conf->global->PRODUIT_MULTIPRICES)) print_liste_field_titre($langs->trans("SellPriceMin"),"", "p.price","&id=".$id,"",'align="right"',$sortfield,$sortorder); - if (empty($conf->global->PRODUIT_MULTIPRICES)) print_liste_field_titre($langs->trans("EstimatedStockValueSellShort"),"", "","&id=".$id,"",'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Product","", "p.ref","&id=".$id,"","",$sortfield,$sortorder); + print_liste_field_titre("Label","", "p.label","&id=".$id,"","",$sortfield,$sortorder); + print_liste_field_titre("Units","", "ps.reel","&id=".$id,"",'align="right"',$sortfield,$sortorder); + print_liste_field_titre("AverageUnitPricePMPShort","", "p.pmp","&id=".$id,"",'align="right"',$sortfield,$sortorder); + print_liste_field_titre("EstimatedStockValueShort","", "","&id=".$id,"",'align="right"',$sortfield,$sortorder); + if (empty($conf->global->PRODUIT_MULTIPRICES)) print_liste_field_titre("SellPriceMin","", "p.price","&id=".$id,"",'align="right"',$sortfield,$sortorder); + if (empty($conf->global->PRODUIT_MULTIPRICES)) print_liste_field_titre("EstimatedStockValueSellShort","", "","&id=".$id,"",'align="right"',$sortfield,$sortorder); if ($user->rights->stock->mouvement->creer) print_liste_field_titre(''); if ($user->rights->stock->creer) print_liste_field_titre(''); print "\n"; diff --git a/htdocs/product/stock/list.php b/htdocs/product/stock/list.php index 683bb4de566..d740a2a9d73 100644 --- a/htdocs/product/stock/list.php +++ b/htdocs/product/stock/list.php @@ -129,22 +129,22 @@ if ($result) if ($search_label) $param.="&search_label=".$search_label; if ($search_status) $param.="&search_status=".$search_status; if ($sall) $param.="&sall=".$sall; - + print ''; print ''; print ''; print ''; print ''; print ''; - + print_barre_liste($langs->trans("ListOfWarehouses"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $totalnboflines, 'title_generic.png', 0, '', '', $limit); - + if ($sall) { foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val); print $langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall); } - + $moreforfilter=''; print '
    '; @@ -174,14 +174,14 @@ if ($result) print ''; print ''; - + print '
    '; - print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"], "e.label","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("LocationSummary"),$_SERVER["PHP_SELF"], "e.lieu","",$param,"",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("PhysicalStock"), $_SERVER["PHP_SELF"], "stockqty",'',$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("EstimatedStockValue"), $_SERVER["PHP_SELF"], "estimatedvalue",'',$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("EstimatedStockValueSell"), $_SERVER["PHP_SELF"], "",'',$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"], "e.statut",'',$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Ref",$_SERVER["PHP_SELF"], "e.label","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("LocationSummary",$_SERVER["PHP_SELF"], "e.lieu","",$param,"",$sortfield,$sortorder); + print_liste_field_titre("PhysicalStock", $_SERVER["PHP_SELF"], "stockqty",'',$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("EstimatedStockValue", $_SERVER["PHP_SELF"], "estimatedvalue",'',$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("EstimatedStockValueSell", $_SERVER["PHP_SELF"], "",'',$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Status",$_SERVER["PHP_SELF"], "e.statut",'',$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'',$param,'',$sortfield,$sortorder,'maxwidthsearch '); print "\n"; @@ -192,12 +192,12 @@ if ($result) while ($i < min($num,$limit)) { $objp = $db->fetch_object($result); - + $warehouse->id = $objp->rowid; $warehouse->label = $objp->ref; $warehouse->lieu = $objp->lieu; $warehouse->fk_parent = $objp->fk_parent; - + print ''; print ''; // Location @@ -225,7 +225,7 @@ if ($result) print "\n"; - + $i++; } @@ -253,7 +253,7 @@ if ($result) print "
    ' . $warehouse->getNomUrl(1) . '
    "; print ""; - + print ''; } else diff --git a/htdocs/product/stock/massstockmove.php b/htdocs/product/stock/massstockmove.php index 2ab78ac735d..1ca2b1b16d1 100644 --- a/htdocs/product/stock/massstockmove.php +++ b/htdocs/product/stock/massstockmove.php @@ -328,9 +328,9 @@ llxHeader('', $title); print load_fiche_titre($langs->trans("MassStockTransferShort")); $titletoadd=$langs->trans("Select"); -$titletoaddnoent=$langs->transnoentitiesnoconv("Select"); $buttonrecord=$langs->trans("RecordMovement"); -$buttonrecordnoent=$langs->trans("RecordMovement"); +$titletoaddnoent=$langs->transnoentitiesnoconv("Select"); +$buttonrecordnoent=$langs->transnoentitiesnoconv("RecordMovement"); print $langs->trans("SelectProductInAndOutWareHouse",$titletoaddnoent,$buttonrecordnoent).'
    '; print '
    '."\n"; @@ -402,7 +402,7 @@ print ''; foreach($listofdata as $key => $val) { - + $productstatic->fetch($val['id_product']); $warehousestatics->fetch($val['id_sw']); @@ -444,7 +444,7 @@ print ''; print ''; // Button to record mass movement -$codemove=GETPOST('codemove'); +$codemove=(isset($_POST["codemove"])?GETPOST("codemove",'alpha'):dol_print_date(dol_now(),'%y%m%d%H%M%S')); $labelmovement=GETPOST("label")?GETPOST('label'):$langs->trans("StockTransfer").' '.dol_print_date($now,'%Y-%m-%d %H:%M'); print ''; diff --git a/htdocs/product/stock/mouvement.php b/htdocs/product/stock/mouvement.php index e12ecee2b9b..4f56527353d 100644 --- a/htdocs/product/stock/mouvement.php +++ b/htdocs/product/stock/mouvement.php @@ -649,12 +649,12 @@ if ($resql) if ($user->rights->stock->mouvement->creer) { - print ''.$langs->trans("StockCorrection").''; + print ''.$langs->trans("CorrectStock").''; } if ($user->rights->stock->mouvement->creer) { - print ''.$langs->trans("StockTransfer").''; + print ''.$langs->trans("TransferStock").''; } print '
    '; @@ -756,20 +756,20 @@ if ($resql) { // Product Ref print ''; } if (! empty($arrayfields['p.label']['checked'])) { // Product label print ''; } // Batch if (! empty($arrayfields['m.batch']['checked'])) { - print ''; + print ''; } if (! empty($arrayfields['pl.eatby']['checked'])) { @@ -878,12 +878,12 @@ if ($resql) if (! empty($arrayfields['m.batch']['checked'])) print_liste_field_titre($arrayfields['m.batch']['label'],$_SERVER["PHP_SELF"],'m.batch','',$param,'align="center"',$sortfield,$sortorder); if (! empty($arrayfields['pl.eatby']['checked'])) print_liste_field_titre($arrayfields['pl.eatby']['label'],$_SERVER["PHP_SELF"],'pl.eatby','',$param,'align="center"',$sortfield,$sortorder); if (! empty($arrayfields['pl.sellby']['checked'])) print_liste_field_titre($arrayfields['pl.sellby']['label'],$_SERVER["PHP_SELF"],'pl.sellby','',$param,'align="center"',$sortfield,$sortorder); - if (! empty($arrayfields['e.label']['checked'])) print_liste_field_titre($arrayfields['e.label']['label'],$_SERVER["PHP_SELF"], "e.label","",$param,"",$sortfield,$sortorder); // We are on a specific warehouse card, no filter on other should be possible + if (! empty($arrayfields['e.label']['checked'])) print_liste_field_titre($arrayfields['e.label']['label'],$_SERVER["PHP_SELF"], "e.label","",$param,"",$sortfield,$sortorder); // We are on a specific warehouse card, no filter on other should be possible if (! empty($arrayfields['m.fk_user_author']['checked'])) print_liste_field_titre($arrayfields['m.fk_user_author']['label'],$_SERVER["PHP_SELF"], "m.fk_user_author","",$param,"",$sortfield,$sortorder); if (! empty($arrayfields['m.inventorycode']['checked'])) print_liste_field_titre($arrayfields['m.inventorycode']['label'],$_SERVER["PHP_SELF"], "m.inventorycode","",$param,"",$sortfield,$sortorder); if (! empty($arrayfields['m.label']['checked'])) print_liste_field_titre($arrayfields['m.label']['label'],$_SERVER["PHP_SELF"], "m.label","",$param,"",$sortfield,$sortorder); if (! empty($arrayfields['origin']['checked'])) print_liste_field_titre($arrayfields['origin']['label'],$_SERVER["PHP_SELF"], "","",$param,"",$sortfield,$sortorder); - if (! empty($arrayfields['m.value']['checked'])) print_liste_field_titre($langs->trans("Qty"),$_SERVER["PHP_SELF"], "m.value","",$param,'align="right"',$sortfield,$sortorder); + if (! empty($arrayfields['m.value']['checked'])) print_liste_field_titre($arrayfields['m.value']['label'],$_SERVER["PHP_SELF"], "m.value","",$param,'align="right"',$sortfield,$sortorder); // Extra fields if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) { @@ -894,7 +894,7 @@ if ($resql) $align=$extrafields->getAlignFlag($key); $sortonfield = "ef.".$key; if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/product/stock/product.php b/htdocs/product/stock/product.php index 1daff124764..87a218bb672 100644 --- a/htdocs/product/stock/product.php +++ b/htdocs/product/stock/product.php @@ -614,7 +614,7 @@ if ($id > 0 || $ref) } // Stock alert threshold - print ''; @@ -769,13 +769,13 @@ if (empty($reshook)) if ($user->rights->stock->mouvement->creer) { - print ''.$langs->trans("StockCorrection").''; + print ''.$langs->trans("CorrectStock").''; } //if (($user->rights->stock->mouvement->creer) && ! $object->hasbatch()) if ($user->rights->stock->mouvement->creer) { - print ''.$langs->trans("StockTransfer").''; + print ''.$langs->trans("TransferStock").''; } print ''; @@ -891,7 +891,7 @@ if ($resql) { print "\n".''."\n"; diff --git a/htdocs/product/stock/replenish.php b/htdocs/product/stock/replenish.php index a3f4cb8ecaf..55fe5908c7f 100644 --- a/htdocs/product/stock/replenish.php +++ b/htdocs/product/stock/replenish.php @@ -487,8 +487,8 @@ $param .= '&fk_supplier=' . $fk_supplier; $param .= '&fk_entrepot=' . $fk_entrepot; $stocklabel = $langs->trans('Stock'); -if ($usevirtualstock == 1) $stocklabel = $langs->trans('VirtualStock'); -if ($usevirtualstock == 0) $stocklabel = $langs->trans('PhysicalStock'); +if ($usevirtualstock == 1) $stocklabel = 'VirtualStock'; +if ($usevirtualstock == 0) $stocklabel = 'PhysicalStock'; print ''. ''. @@ -521,15 +521,15 @@ print ''; // Lines of title print ''; print_liste_field_titre('', $_SERVER["PHP_SELF"], ''); -print_liste_field_titre($langs->trans('Ref'), $_SERVER["PHP_SELF"], 'p.ref', $param, '', '', $sortfield, $sortorder); -print_liste_field_titre($langs->trans('Label'), $_SERVER["PHP_SELF"], 'p.label', $param, '', '', $sortfield, $sortorder); -if (!empty($conf->service->enabled) && $type == 1) print_liste_field_titre($langs->trans('Duration'), $_SERVER["PHP_SELF"], 'p.duration', $param, '', 'align="center"', $sortfield, $sortorder); -print_liste_field_titre($langs->trans('DesiredStock'), $_SERVER["PHP_SELF"], 'p.desiredstock', $param, '', 'align="right"', $sortfield, $sortorder); -print_liste_field_titre($langs->trans('StockLimitShort'), $_SERVER["PHP_SELF"], 'p.seuil_stock_alerte', $param, '', 'align="right"', $sortfield, $sortorder); +print_liste_field_titre('Ref', $_SERVER["PHP_SELF"], 'p.ref', $param, '', '', $sortfield, $sortorder); +print_liste_field_titre('Label', $_SERVER["PHP_SELF"], 'p.label', $param, '', '', $sortfield, $sortorder); +if (!empty($conf->service->enabled) && $type == 1) print_liste_field_titre('Duration', $_SERVER["PHP_SELF"], 'p.duration', $param, '', 'align="center"', $sortfield, $sortorder); +print_liste_field_titre('DesiredStock', $_SERVER["PHP_SELF"], 'p.desiredstock', $param, '', 'align="right"', $sortfield, $sortorder); +print_liste_field_titre('StockLimitShort', $_SERVER["PHP_SELF"], 'p.seuil_stock_alerte', $param, '', 'align="right"', $sortfield, $sortorder); print_liste_field_titre($stocklabel, $_SERVER["PHP_SELF"], 'stock_physique', $param, '', 'align="right"', $sortfield, $sortorder); -print_liste_field_titre($langs->trans('Ordered'), $_SERVER["PHP_SELF"], '', $param, '', 'align="right"', $sortfield, $sortorder); -print_liste_field_titre($langs->trans('StockToBuy'), $_SERVER["PHP_SELF"], '', $param, '', 'align="right"', $sortfield, $sortorder); -print_liste_field_titre($langs->trans('SupplierRef'), $_SERVER["PHP_SELF"], '', $param, '', 'align="right"', $sortfield, $sortorder); +print_liste_field_titre('Ordered', $_SERVER["PHP_SELF"], '', $param, '', 'align="right"', $sortfield, $sortorder); +print_liste_field_titre('StockToBuy', $_SERVER["PHP_SELF"], '', $param, '', 'align="right"', $sortfield, $sortorder); +print_liste_field_titre('SupplierRef', $_SERVER["PHP_SELF"], '', $param, '', 'align="right"', $sortfield, $sortorder); print "\n"; $prod = new Product($db); @@ -579,7 +579,7 @@ while ($i < ($limit ? min($num, $limit) : $num)) }else { $result=$prod->load_stats_commande_fournisseur(0,'1,2,3,4'); } - + $result=$prod->load_stats_reception(0,'4'); //print $prod->stats_commande_fournisseur['qty'].'
    '."\n"; diff --git a/htdocs/product/stock/replenishorders.php b/htdocs/product/stock/replenishorders.php index 6ed7fc379b5..694f9cae1ad 100644 --- a/htdocs/product/stock/replenishorders.php +++ b/htdocs/product/stock/replenishorders.php @@ -186,7 +186,7 @@ if ($resql) print ''; print_liste_field_titre( - $langs->trans('Ref'), + 'Ref', $_SERVER['PHP_SELF'], 'cf.ref', '', @@ -196,7 +196,7 @@ if ($resql) $sortorder ); print_liste_field_titre( - $langs->trans('Company'), + 'Company', $_SERVER['PHP_SELF'], 's.nom', '', @@ -206,7 +206,7 @@ if ($resql) $sortorder ); print_liste_field_titre( - $langs->trans('Author'), + 'Author', $_SERVER['PHP_SELF'], 'u.login', '', @@ -216,7 +216,7 @@ if ($resql) $sortorder ); print_liste_field_titre( - $langs->trans('AmountTTC'), + 'AmountTTC', $_SERVER['PHP_SELF'], 'cf.total_ttc', '', @@ -226,7 +226,7 @@ if ($resql) $sortorder ); print_liste_field_titre( - $langs->trans('OrderCreation'), + 'OrderCreation', $_SERVER['PHP_SELF'], 'cf.date_creation', '', @@ -236,7 +236,7 @@ if ($resql) $sortorder ); print_liste_field_titre( - $langs->trans('Status'), + 'Status', $_SERVER['PHP_SELF'], 'cf.fk_statut', '', @@ -246,7 +246,7 @@ if ($resql) $sortorder ); print ''; - + $userstatic = new User($db); while ($i < min($num,$conf->liste_limit)) diff --git a/htdocs/product/stock/tpl/stockcorrection.tpl.php b/htdocs/product/stock/tpl/stockcorrection.tpl.php index 28fd3dfadea..4242121177c 100644 --- a/htdocs/product/stock/tpl/stockcorrection.tpl.php +++ b/htdocs/product/stock/tpl/stockcorrection.tpl.php @@ -15,7 +15,7 @@ * along with this program. If not, see . * * $object must be defined - * $backtopage + * $backtopage */ ?> @@ -50,7 +50,7 @@ print ''."\n"; dol_fiche_head(); - + print ''; print ''; print ''; @@ -93,12 +93,12 @@ print ''; print ''; + print ''; } print ''; // Serial / Eat-by date - if (! empty($conf->productbatch->enabled) && + if (! empty($conf->productbatch->enabled) && (($object->element == 'product' && $object->hasbatch()) || ($object->element == 'stock')) ) @@ -127,19 +127,19 @@ print ''; - print ''; + print ''; print ''; print '
    '; - print ''; + print ''; print ''; - print ''; + print ''; print '
    '.$form->editfieldkey("StockLimit",'seuil_stock_alerte',$object->seuil_stock_alerte,$object,$user->rights->produit->creer).''; + print '
    '.$form->editfieldkey($form->textwithpicto($langs->trans("StockLimit"), $langs->trans("StockLimitDesc"), 1),'seuil_stock_alerte',$object->seuil_stock_alerte,$object,$user->rights->produit->creer).''; print $form->editfieldval("StockLimit",'seuil_stock_alerte',$object->seuil_stock_alerte,$object,$user->rights->produit->creer,'string'); print '
    '; print img_picto($langs->trans("Tranfer"),'uparrow','class="hideonsmartphone"').' '; - print 'id.'">'.$langs->trans("StockTransfer").''; + print 'id.'">'.$langs->trans("TransferStock").''; // Disabled, because edition of stock content must use the "Correct stock menu". // Do not use this, or data will be wrong (bad tracking of movement label, inventory code, ... //print 'id.'#'.$pdluo->id.'">'; diff --git a/htdocs/product/stock/productlot_list.php b/htdocs/product/stock/productlot_list.php index fc60f500ba6..638aa1e4fbd 100644 --- a/htdocs/product/stock/productlot_list.php +++ b/htdocs/product/stock/productlot_list.php @@ -425,7 +425,7 @@ if ($resql) $align=$extrafields->getAlignFlag($key); $sortonfield = "ef.".$key; if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } @@ -435,7 +435,7 @@ if ($resql) print $hookmanager->resPrint; if (! empty($arrayfields['t.datec']['checked'])) print_liste_field_titre($arrayfields['t.datec']['label'],$_SERVER["PHP_SELF"],"t.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder); if (! empty($arrayfields['t.tms']['checked'])) print_liste_field_titre($arrayfields['t.tms']['label'],$_SERVER["PHP_SELF"],"t.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder); - //if (! empty($arrayfields['t.status']['checked'])) print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"t.status","",$param,'align="center"',$sortfield,$sortorder); + //if (! empty($arrayfields['t.status']['checked'])) print_liste_field_titre($arrayfields['t.status']['label'],$_SERVER["PHP_SELF"],"t.status","",$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch '); print '
    '.$langs->trans('Project').''; $formproject->select_projects(); - print '
    '; print ''; print ''.$langs->trans("InventoryCode").''.$langs->trans("InventoryCode").'
    '; dol_fiche_end(); - + print '
    '; print ''; print '     '; print ''; print '
    '; - + print ''; ?> diff --git a/htdocs/product/stock/tpl/stocktransfer.tpl.php b/htdocs/product/stock/tpl/stocktransfer.tpl.php index ed367742f1c..6d028da5663 100644 --- a/htdocs/product/stock/tpl/stocktransfer.tpl.php +++ b/htdocs/product/stock/tpl/stocktransfer.tpl.php @@ -25,9 +25,9 @@ if ($object->element == 'product') $productref = $object->ref; $langs->load("productbatch"); - + if (empty($id)) $id = $object->id; - + $pdluoid=GETPOST('pdluoid','int'); $pdluo = new Productbatch($db); @@ -48,9 +48,9 @@ print load_fiche_titre($langs->trans("StockTransfer"),'','title_generic.png'); print '
    '."\n"; - + dol_fiche_head(); - + print ''; print ''; print ''; @@ -76,7 +76,7 @@ print $form->select_produits(GETPOST('product_id'),'product_id',(empty($conf->global->STOCK_SUPPORTS_SERVICES)?'0':'')); print ''; } - + print ''.$langs->trans("WarehouseTarget").''; print $formproduct->selectWarehouses(GETPOST('id_entrepot_destination'), 'id_entrepot_destination', 'warehouseopen,warehouseinternal', 1); print ''; @@ -84,7 +84,7 @@ print ''; // Serial / Eat-by date - if (! empty($conf->productbatch->enabled) && + if (! empty($conf->productbatch->enabled) && (($object->element == 'product' && $object->hasbatch()) || ($object->element == 'stock')) ) @@ -103,7 +103,7 @@ } print ''; print ''; - + print ''; print ''.$langs->trans("EatByDate").''; print $form->select_date(($d_eatby?$d_eatby:$pdluo->eatby),'eatby','','',1,"", 1, 0, 1, ($pdluoid > 0 ? 1 : 0)); // If form was opened for a specific pdluoid, field is disabled @@ -121,13 +121,13 @@ print ''; print ''; print ''; - print ''.$langs->trans("InventoryCode").''; + print ''.$langs->trans("InventoryCode").''; print ''; print ''; dol_fiche_end(); - + print '
    '; print ''; print '     '; diff --git a/htdocs/product/stock/valo.php b/htdocs/product/stock/valo.php index 40e3060cfee..a1d68394bb0 100644 --- a/htdocs/product/stock/valo.php +++ b/htdocs/product/stock/valo.php @@ -87,11 +87,11 @@ if ($result) print ''; print ""; - print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "e.label","","","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("LocationSummary"), $_SERVER["PHP_SELF"], "e.lieu","","","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("EstimatedStockValue"), $_SERVER["PHP_SELF"], "e.valo_pmp",'','','align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("EstimatedStockValueSell"), $_SERVER["PHP_SELF"], "",'','','align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Status"), $_SERVER["PHP_SELF"], "e.statut",'','','align="right"',$sortfield,$sortorder); + print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "e.label","","","",$sortfield,$sortorder); + print_liste_field_titre("LocationSummary", $_SERVER["PHP_SELF"], "e.lieu","","","",$sortfield,$sortorder); + print_liste_field_titre("EstimatedStockValue", $_SERVER["PHP_SELF"], "e.valo_pmp",'','','align="right"',$sortfield,$sortorder); + print_liste_field_titre("EstimatedStockValueSell", $_SERVER["PHP_SELF"], "",'','','align="right"',$sortfield,$sortorder); + print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "e.statut",'','','align="right"',$sortfield,$sortorder); print "\n"; if ($num) @@ -120,7 +120,7 @@ if ($result) print "\n"; $total += price2num($objp->estimatedvalue,'MU'); $totalsell += price2num($objp->sellvalue,'MU'); - + $i++; } @@ -134,7 +134,7 @@ if ($result) } $db->free($result); - + print "
    "; print '
    '; diff --git a/htdocs/projet/activity/index.php b/htdocs/projet/activity/index.php index 7bea4bf3213..8418561aa30 100644 --- a/htdocs/projet/activity/index.php +++ b/htdocs/projet/activity/index.php @@ -29,7 +29,9 @@ require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; -$mine = $_REQUEST['mode']=='mine' ? 1 : 0; +$search_project_user = GETPOST('search_project_user','int'); +$mine = GETPOST('mode','aZ09')=='mine' ? 1 : 0; +if ($search_project_user == $user->id) $mine = 1; // Security check $socid=0; @@ -73,7 +75,7 @@ $morehtml=''; $morehtml.=''; $morehtml.=''; $morehtml.=''; @@ -98,7 +100,7 @@ if (! empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS)) // This is usele { $listofsearchfields['search_task']=array('text'=>'Task'); } - + if (count($listofsearchfields)) { print ''; @@ -114,7 +116,7 @@ if (! empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS)) // This is usele print ''; $i++; } - print ''; + print ''; print ''; print '
    '; } @@ -148,7 +150,7 @@ if ( $resql ) while ($row = $db->fetch_object($resql)) { - + print ''; print ''; $projectstatic->id=$row->rowid; @@ -205,7 +207,7 @@ if ( $resql ) while ($row = $db->fetch_object($resql)) { - + print ''; print ''; $projectstatic->id=$row->rowid; @@ -237,14 +239,14 @@ print ""; if ($db->type != 'pgsql') { print '
    '; - + // Affichage de la liste des projets de la semaine print ''; print ''; print ''; print ''; print "\n"; - + $sql = "SELECT p.rowid, p.ref, p.title, p.public, SUM(tt.task_duration) as nb"; $sql.= " FROM ".MAIN_DB_PREFIX."projet as p"; $sql.= " , ".MAIN_DB_PREFIX."projet_task as t"; @@ -256,16 +258,16 @@ if ($db->type != 'pgsql') $sql.= " AND task_date >= '".$db->idate(dol_get_first_day($year, $month)).'" AND ..."; $sql.= " AND p.rowid in (".$projectsListId.")"; $sql.= " GROUP BY p.rowid, p.ref, p.title"; - + $resql = $db->query($sql); if ( $resql ) { $total = 0; $var=true; - + while ($row = $db->fetch_object($resql)) { - + print ''; print '\n"; $total += $row->nb; } - + $db->free($resql); } else @@ -302,7 +304,7 @@ if (! empty($conf->global->PROJECT_TASK_TIME_MONTH)) print ''; print ''; print "\n"; - + $sql = "SELECT p.rowid, p.ref, p.title, p.public, SUM(tt.task_duration) as nb"; $sql.= " FROM ".MAIN_DB_PREFIX."projet as p"; $sql.= ", ".MAIN_DB_PREFIX."projet_task as t"; @@ -314,12 +316,12 @@ if (! empty($conf->global->PROJECT_TASK_TIME_MONTH)) $sql.= " AND task_date BETWEEN '".$db->idate(dol_get_first_day($year, $month))."' AND '".$db->idate(dol_get_last_day($year, $month))."'"; $sql.= " AND p.rowid in (".$projectsListId.")"; $sql.= " GROUP BY p.rowid, p.ref, p.title, p.public"; - + $resql = $db->query($sql); if ( $resql ) { $var=false; - + while ($row = $db->fetch_object($resql)) { print ''; @@ -331,7 +333,7 @@ if (! empty($conf->global->PROJECT_TASK_TIME_MONTH)) print ''; print ''; print "\n"; - + } $db->free($resql); } @@ -383,7 +385,7 @@ if (! empty($conf->global->PROJECT_TASK_TIME_YEAR)) print ''; print ''; print "\n"; - + } $db->free($resql); } @@ -430,12 +432,12 @@ if (empty($conf->global->PROJECT_HIDE_TASKS) && ! empty($conf->global->PROJECT_S } else dol_print_error($db); if (count($listoftaskcontacttype) == 0) $listoftaskcontacttype[0]='0'; // To avoid sql syntax error if not found - + // Tasks for all resources of all opened projects and time spent for each task/resource // This list can be very long, so we don't show it by default on task area. We prefer to use the list page. // Add constant PROJECT_SHOW_TASK_LIST_ON_PROJECT_AREA to show this list - + $max = (empty($conf->global->PROJECT_LIMIT_TASK_PROJECT_AREA)?1000:$conf->global->PROJECT_LIMIT_TASK_PROJECT_AREA); $sql = "SELECT p.ref, p.title, p.rowid as projectid, p.fk_statut as status, p.fk_opp_status as opp_status, p.public, p.dateo as projdateo, p.datee as projdatee,"; @@ -489,7 +491,7 @@ if (empty($conf->global->PROJECT_HIDE_TASKS) && ! empty($conf->global->PROJECT_S while ($i < $num && $i < $max) { $obj = $db->fetch_object($resql); - + $username=''; if ($obj->userid && $userstatic->id != $obj->userid) // We have a user and it is not last loaded user @@ -509,7 +511,7 @@ if (empty($conf->global->PROJECT_HIDE_TASKS) && ! empty($conf->global->PROJECT_S $projectstatic->public = $obj->public; $projectstatic->dateo = $db->jdate($obj->projdateo); $projectstatic->datee = $db->jdate($obj->projdatee); - + print $projectstatic->getNomUrl(1,'',0,'','
    '); print ''; if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES)) @@ -536,7 +538,7 @@ if (empty($conf->global->PROJECT_HIDE_TASKS) && ! empty($conf->global->PROJECT_S $taskstatic->datee = $db->jdate($obj->datee); print ''; print ''; print ''; // Module - print ''; + print ''; // Nb print ''; // Amount HT @@ -711,7 +711,7 @@ foreach ($listofreferent as $key => $value) $idtofilterthirdparty=0; $array_of_element_linkable_with_different_thirdparty = array('facture_fourn', 'commande_fournisseur'); - if (! in_array($tablename, $array_of_element_linkable_with_different_thirdparty)) + if (! in_array($tablename, $array_of_element_linkable_with_different_thirdparty)) { $idtofilterthirdparty=$object->thirdparty->id; if (! empty($conf->global->PROJECT_OTHER_THIRDPARTY_ID_TO_ADD_ELEMENTS)) $idtofilterthirdparty.=','.$conf->global->PROJECT_OTHER_THIRDPARTY_ID_TO_ADD_ELEMENTS; @@ -854,7 +854,7 @@ foreach ($listofreferent as $key => $value) print '' . img_picto($langs->trans('Unlink'), 'editdelete') . ''; } print "\n"; - + // Ref print ''; //elseif (empty($value['disableamount']) && in_array($tablename, array('projet_task'))) print ''; print ''; //elseif (empty($value['disableamount']) && in_array($tablename, array('projet_task'))) print ''; print ''; $i++; } - print '
    '.$langs->trans("ActivityOnProjectThisWeek").''.$langs->trans("Time").'
    '; $projectstatic->id=$row->rowid; @@ -278,7 +280,7 @@ if ($db->type != 'pgsql') print "
    '.$langs->trans("ActivityOnProjectThisMonth").': '.dol_print_date($now,"%B %Y").''.$langs->trans("Time").'
    '.convertSecondToTime($row->nb, 'allhourmin').'
    '.convertSecondToTime($row->nb, 'allhourmin').'
    '.dol_print_date($db->jdate($obj->dateo),'day').''.dol_print_date($db->jdate($obj->datee),'day'); - print dol_print_date($obj->date_end,'dayhour'); + print dol_print_date($obj->date_end,'dayhour'); if ($taskstatic->hasDelay()) print img_warning($langs->trans("Late")); print ''; diff --git a/htdocs/projet/activity/perday.php b/htdocs/projet/activity/perday.php index a7b243dd338..45d7aa237ad 100644 --- a/htdocs/projet/activity/perday.php +++ b/htdocs/projet/activity/perday.php @@ -64,6 +64,7 @@ $day=GETPOST('reday')?GETPOST('reday'):(GETPOST("day","int")?GETPOST("day","int" $day = (int) $day; $week=GETPOST("week","int")?GETPOST("week","int"):date("W"); +$search_categ=GETPOST("search_categ",'alpha'); $search_usertoprocessid=GETPOST('search_usertoprocessid', 'int'); $search_task_ref=GETPOST('search_task_ref', 'alpha'); $search_task_label=GETPOST('search_task_label', 'alpha'); @@ -81,13 +82,18 @@ else if ($year && $month && $day) $daytoparse=dol_mktime(0, 0, 0, $month, $day, if (empty($search_usertoprocessid) || $search_usertoprocessid == $user->id) { $usertoprocess=$user; + $search_usertoprocessid=$usertoprocess->id; } -else +elseif (search_usertoprocessid > 0) { $usertoprocess=new User($db); $usertoprocess->fetch($search_usertoprocessid); + $search_usertoprocessid=$usertoprocess->id; +} +else +{ + $usertoprocess=new User($db); } -$search_usertoprocessid=$usertoprocess->id; $object=new Task($db); @@ -100,13 +106,14 @@ $object=new Task($db); 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 { $action = ''; + $search_categ=''; $search_usertoprocessid = ''; $search_task_ref = ''; $search_task_label = ''; $search_project_ref = ''; $search_thirdparty = ''; } -if (GETPOST("button_search_x") || GETPOST("button_search.x") || GETPOST("button_search")) +if (GETPOST("button_search_x",'alpha') || GETPOST("button_search.x",'alpha') || GETPOST("button_search",'alpha')) { $action = ''; } @@ -303,9 +310,9 @@ $next_month = $next['mon']; $next_day = $next['mday']; $title=$langs->trans("TimeSpent"); -if ($mine) $title=$langs->trans("MyTimeSpent"); +if ($mine || ($usertoprocess->id == $user->id)) $title=$langs->trans("MyTimeSpent"); -$projectsListId = $projectstatic->getProjectsAuthorizedForUser($usertoprocess,0,1); // Return all project i have permission on. I want my tasks and some of my task may be on a public projet that is not my project +$projectsListId = $projectstatic->getProjectsAuthorizedForUser($usertoprocess,(empty($usertoprocess->id)?2:0),1); // Return all project i have permission on. I want my tasks and some of my task may be on a public projet that is not my project if ($id) { @@ -318,7 +325,7 @@ $morewherefilter=''; if ($search_task_ref) $morewherefilter.=natural_search("t.ref", $search_task_ref); if ($search_task_label) $morewherefilter.=natural_search("t.label", $search_task_label); if ($search_thirdparty) $morewherefilter.=natural_search("s.nom", $search_thirdparty); -$tasksarray=$taskstatic->getTasksArray(0, 0, ($project->id?$project->id:0), $socid, 0, $search_project_ref, $onlyopenedproject, $morewherefilter); // We want to see all task of opened project i am allowed to see, not only mine. Later only mine will be editable later. +$tasksarray=$taskstatic->getTasksArray(0, 0, ($project->id?$project->id:0), $socid, 0, $search_project_ref, $onlyopenedproject, $morewherefilter, ($search_usertoprocessid?$search_usertoprocessid:0)); // We want to see all task of opened project i am allowed to see and that match filter, not only my tasks. Later only mine will be editable later. $projectsrole=$taskstatic->getUserRolesForProjectsOrTasks($usertoprocess, 0, ($project->id?$project->id:0), 0, $onlyopenedproject); $tasksrole=$taskstatic->getUserRolesForProjectsOrTasks(0, $usertoprocess, ($project->id?$project->id:0), 0, $onlyopenedproject); //var_dump($tasksarray); @@ -360,13 +367,16 @@ dol_fiche_head($head, 'inputperday', '', -1, 'task'); // Show description of content print '
    '; -if ($mine) print $langs->trans("MyTasksDesc").($onlyopenedproject?' '.$langs->trans("OnlyOpenedProject"):'').'
    '; +if ($mine || ($usertoprocess->id == $user->id)) print $langs->trans("MyTasksDesc").($onlyopenedproject?' '.$langs->trans("OnlyOpenedProject"):'').'
    '; else { - if ($user->rights->projet->all->lire && ! $socid) print $langs->trans("ProjectsDesc").($onlyopenedproject?' '.$langs->trans("OnlyOpenedProject"):'').'
    '; - else print $langs->trans("ProjectsPublicTaskDesc").($onlyopenedproject?' '.$langs->trans("OnlyOpenedProject"):'').'
    '; + if (empty($usertoprocess->id) || $usertoprocess->id < 0) + { + if ($user->rights->projet->all->lire && ! $socid) print $langs->trans("ProjectsDesc").($onlyopenedproject?' '.$langs->trans("OnlyOpenedProject"):'').'
    '; + else print $langs->trans("ProjectsPublicTaskDesc").($onlyopenedproject?' '.$langs->trans("OnlyOpenedProject"):'').'
    '; + } } -if ($mine) +if ($mine || ($usertoprocess->id == $user->id)) { print $langs->trans("OnlyYourTaskAreVisible").'
    '; } @@ -394,15 +404,41 @@ print '
    '; print '
    '; +$moreforfilter=''; + +// Filter on categories +/*if (! empty($conf->categorie->enabled)) +{ + require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php'; + $moreforfilter.='
    '; + $moreforfilter.=$langs->trans('ProjectCategories'). ': '; + $moreforfilter.=$formother->select_categories('project', $search_categ, 'search_categ', 1, 1, 'maxwidth300'); + $moreforfilter.='
    '; +}*/ + +// If the user can view user other than himself +$moreforfilter.='
    '; +$moreforfilter.=$langs->trans('ProjectsWithThisUserAsContact'). ': '; +$includeonly='hierachyme'; +if (empty($user->rights->user->user->lire)) $includeonly=array($user->id); +$moreforfilter.=$form->select_dolusers($search_usertoprocessid?$search_usertoprocessid:$usertoprocess->id, 'search_usertoprocessid', $user->rights->user->user->lire?0:0, null, 0, $includeonly, null, 0, 0, 0, '', 0, '', 'maxwidth200'); +$moreforfilter.='
    '; + +if (! empty($moreforfilter)) +{ + print '
    '; + print $moreforfilter; + $parameters=array(); + $reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + print '
    '; +} + + print '
    '; print ''."\n"; print ''; -print ''; print ''; print ''; print ''; @@ -422,7 +458,6 @@ print ''; print "\n"; print ''; -print ''; print ''; print ''; print ''; @@ -454,7 +489,7 @@ if (count($tasksarray) > 0) } else { - print ''; + print ''; } print "
    '; -$usersettoshow='hierarchyme'; -if ($user->rights->projet->all->lire) $usersettoshow=''; -print $form->select_dolusers($usertoprocess->id, 'search_usertoprocessid', 0, null, 0, $usersettoshow, 0, 0, 0, 1, '', 0, '', 'maxwidth150'); -print '
    '.$langs->trans("User").''.$langs->trans("RefTask").''.$langs->trans("LabelTask").''.$langs->trans("ProjectRef").'
    '.$langs->trans("NoTasks").'
    '.$langs->trans("NoTasks").'
    "; print '
    '; diff --git a/htdocs/projet/activity/perweek.php b/htdocs/projet/activity/perweek.php index 5f3e9b1aa20..b4fcd68a3c9 100644 --- a/htdocs/projet/activity/perweek.php +++ b/htdocs/projet/activity/perweek.php @@ -65,6 +65,7 @@ $day=GETPOST('reday')?GETPOST('reday','int'):(GETPOST("day")?GETPOST("day","int" $day = (int) $day; $week=GETPOST("week","int")?GETPOST("week","int"):date("W"); +$search_categ=GETPOST("search_categ",'alpha'); $search_usertoprocessid=GETPOST('search_usertoprocessid', 'int'); $search_task_ref=GETPOST('search_task_ref', 'alpha'); $search_task_label=GETPOST('search_task_label', 'alpha'); @@ -94,13 +95,18 @@ $lastdaytoshow=dol_time_plus_duree($firstdaytoshow, 7, 'd'); if (empty($search_usertoprocessid) || $search_usertoprocessid == $user->id) { $usertoprocess=$user; + $search_usertoprocessid=$usertoprocess->id; } -else +elseif (search_usertoprocessid > 0) { $usertoprocess=new User($db); $usertoprocess->fetch($search_usertoprocessid); + $search_usertoprocessid=$usertoprocess->id; +} +else +{ + $usertoprocess=new User($db); } -$search_usertoprocessid=$usertoprocess->id; $object=new Task($db); @@ -113,13 +119,14 @@ $object=new Task($db); 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 { $action = ''; + $search_categ=''; $search_usertoprocessid = ''; $search_task_ref = ''; $search_task_label = ''; $search_project_ref = ''; $search_thirdparty = ''; } -if (GETPOST("button_search_x") || GETPOST("button_search.x") || GETPOST("button_search")) +if (GETPOST("button_search_x",'alpha') || GETPOST("button_search.x",'alpha') || GETPOST("button_search",'alpha')) { $action = ''; } @@ -298,9 +305,9 @@ $taskstatic = new Task($db); $thirdpartystatic = new Societe($db); $title=$langs->trans("TimeSpent"); -if ($mine) $title=$langs->trans("MyTimeSpent"); +if ($mine || $usertoprocess->id == $user->id) $title=$langs->trans("MyTimeSpent"); -$projectsListId = $projectstatic->getProjectsAuthorizedForUser($usertoprocess,0,1); // Return all project i have permission on (assigned to me+public). I want my tasks and some of my task may be on a public projet that is not my project +$projectsListId = $projectstatic->getProjectsAuthorizedForUser($usertoprocess,(empty($usertoprocess->id)?2:0),1); // Return all project i have permission on (assigned to me+public). I want my tasks and some of my task may be on a public projet that is not my project //var_dump($projectsListId); if ($id) { @@ -313,7 +320,8 @@ $morewherefilter=''; if ($search_task_ref) $morewherefilter.=natural_search("t.ref", $search_task_ref); if ($search_task_label) $morewherefilter.=natural_search("t.label", $search_task_label); if ($search_thirdparty) $morewherefilter.=natural_search("s.nom", $search_thirdparty); -$tasksarray=$taskstatic->getTasksArray(0, 0, ($project->id?$project->id:0), $socid, 0, $search_project_ref, $onlyopenedproject, $morewherefilter); // We want to see all task of opened project i am allowed to see, not only mine. Later only mine will be editable later. + +$tasksarray=$taskstatic->getTasksArray(0, 0, ($project->id?$project->id:0), $socid, 0, $search_project_ref, $onlyopenedproject, $morewherefilter, ($search_usertoprocessid?$search_usertoprocessid:0)); // We want to see all task of opened project i am allowed to see and that match filter, not only my tasks. Later only mine will be editable later. $projectsrole=$taskstatic->getUserRolesForProjectsOrTasks($usertoprocess, 0, ($project->id?$project->id:0), 0, $onlyopenedproject); $tasksrole=$taskstatic->getUserRolesForProjectsOrTasks(0, $usertoprocess, ($project->id?$project->id:0), 0, $onlyopenedproject); //var_dump($tasksarray); @@ -353,13 +361,16 @@ dol_fiche_head($head, 'inputperweek', '', -1, 'task'); // Show description of content print '
    '; -if ($mine) print $langs->trans("MyTasksDesc").($onlyopenedproject?' '.$langs->trans("OnlyOpenedProject"):'').'
    '; +if ($mine || ($usertoprocess->id == $user->id)) print $langs->trans("MyTasksDesc").($onlyopenedproject?' '.$langs->trans("OnlyOpenedProject"):'').'
    '; else { - if ($user->rights->projet->all->lire && ! $socid) print $langs->trans("ProjectsDesc").($onlyopenedproject?' '.$langs->trans("OnlyOpenedProject"):'').'
    '; - else print $langs->trans("ProjectsPublicTaskDesc").($onlyopenedproject?' '.$langs->trans("OnlyOpenedProject"):'').'
    '; + if (empty($usertoprocess->id) || $usertoprocess->id < 0) + { + if ($user->rights->projet->all->lire && ! $socid) print $langs->trans("ProjectsDesc").($onlyopenedproject?' '.$langs->trans("OnlyOpenedProject"):'').'
    '; + else print $langs->trans("ProjectsPublicTaskDesc").($onlyopenedproject?' '.$langs->trans("OnlyOpenedProject"):'').'
    '; + } } -if ($mine) +if ($mine || ($usertoprocess->id == $user->id)) { print $langs->trans("OnlyYourTaskAreVisible").'
    '; } @@ -387,15 +398,42 @@ print '
    '; print '
    '; +$moreforfilter=''; + +// Filter on categories +/* +if (! empty($conf->categorie->enabled)) +{ + require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php'; + $moreforfilter.='
    '; + $moreforfilter.=$langs->trans('ProjectCategories'). ': '; + $moreforfilter.=$formother->select_categories('project', $search_categ, 'search_categ', 1, 1, 'maxwidth300'); + $moreforfilter.='
    '; +}*/ + +// If the user can view user other than himself +$moreforfilter.='
    '; +$moreforfilter.=$langs->trans('ProjectsWithThisUserAsContact'). ': '; +$includeonly='hierachyme'; +if (empty($user->rights->user->user->lire)) $includeonly=array($user->id); +$moreforfilter.=$form->select_dolusers($search_usertoprocessid?$search_usertoprocessid:$usertoprocess->id, 'search_usertoprocessid', $user->rights->user->user->lire?0:0, null, 0, $includeonly, null, 0, 0, 0, '', 0, '', 'maxwidth200'); +$moreforfilter.='
    '; + +if (! empty($moreforfilter)) +{ + print '
    '; + print $moreforfilter; + $parameters=array(); + $reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + print '
    '; +} + + print '
    '; print ''."\n"; print ''; -print ''; print ''; print ''; print ''; @@ -416,7 +454,6 @@ print ''; print "\n"; print ''; -print ''; print ''; print ''; print ''; @@ -453,7 +490,7 @@ if (count($tasksarray) > 0) $level=0; projectLinesPerWeek($j, $firstdaytoshow, $usertoprocess, 0, $tasksarray, $level, $projectsrole, $tasksrole, $mine, $restrictviewformytask); - $colspan=8; + $colspan=7; if (! empty($conf->global->PROJECT_LINES_PERWEEK_SHOW_THIRDPARTY)) $colspan++; print ' @@ -470,7 +507,7 @@ if (count($tasksarray) > 0) } else { - print ''; + print ''; } print "
    '; -$usersettoshow='hierarchyme'; -if ($user->rights->projet->all->lire) $usersettoshow=''; -print $form->select_dolusers($usertoprocess->id, 'search_usertoprocessid', 0, null, 0, $usersettoshow, 0, 0, 0, 1, '', 0, '', 'maxwidth150'); -print '
    '.$langs->trans("User").''.$langs->trans("RefTask").''.$langs->trans("LabelTask").''.$langs->trans("ProjectRef").'
    '.$langs->trans("NoTasks").'
    '.$langs->trans("NoTasks").'
    "; print '
    '; diff --git a/htdocs/projet/class/project.class.php b/htdocs/projet/class/project.class.php index 84050012a5a..af55063c66a 100644 --- a/htdocs/projet/class/project.class.php +++ b/htdocs/projet/class/project.class.php @@ -971,6 +971,7 @@ class Project extends CommonObject $label .= ($label?'
    ':'').'' . $langs->trans('DateEnd') . ': ' . dol_print_date($this->datee, 'day'); // The space must be after the : to not being explode when showing the title in img_picto if ($moreinpopup) $label.='
    '.$moreinpopup; + $url=''; if ($option != 'nolink') { if (preg_match('/\.php$/',$option)) { @@ -1000,6 +1001,17 @@ class Project extends CommonObject } $linkclose.=' title="'.dol_escape_htmltag($label, 1).'"'; $linkclose.=' class="classfortooltip"'; + + if (! is_object($hookmanager)) { + include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php'; + $hookmanager=new HookManager($this->db); + } + $hookmanager->initHooks(array('projectdao')); + $parameters=array('id'=>$this->id); + // Note that $action and $object may have been modified by some hooks + $reshook=$hookmanager->executeHooks('getnomurltooltip',$parameters,$this,$action); + if ($reshook > 0) + $linkclose = $hookmanager->resPrint; } $picto = 'projectpub'; diff --git a/htdocs/projet/element.php b/htdocs/projet/element.php index 93e15f2fe77..bda8d793840 100644 --- a/htdocs/projet/element.php +++ b/htdocs/projet/element.php @@ -336,7 +336,7 @@ $listofreferent=array( 'table'=>'fichinter', 'datefieldname'=>'date_valid', 'disableamount'=>0, - 'margin'=>'minus', + 'margin'=>'minus', 'urlnew'=>DOL_URL_ROOT.'/fichinter/card.php?action=create&origin=project&originid='.$id.'&socid='.$socid, 'lang'=>'interventions', 'buttonnew'=>'AddIntervention', @@ -417,9 +417,9 @@ $listofreferent=array( 'lang'=>'compta', 'buttonnew'=>'AddSocialContribution', 'testnew'=>$user->rights->tax->charges->lire, - 'test'=>$conf->tax->enabled && $user->rights->tax->charges->lire), + 'test'=>$conf->tax->enabled && $user->rights->tax->charges->lire), 'project_task'=>array( - 'name'=>"TaskTimeValorised", + 'name'=>"TaskTimeSpent", 'title'=>"ListTaskTimeUserProject", 'class'=>'Task', 'margin'=>'minus', @@ -573,7 +573,7 @@ foreach ($listofreferent as $key => $value) if ($tablename != 'expensereport_det' && method_exists($element, 'fetch_thirdparty')) $element->fetch_thirdparty(); if ($tablename == 'don' || $tablename == 'chargesociales') $total_ht_by_line=$element->amount; elseif ($tablename == 'stock_mouvement') $total_ht_by_line=$element->price*abs($element->qty); - else if($tablename == 'fichinter') $total_ht_by_line=$element->getAmount(); + else if($tablename == 'fichinter') $total_ht_by_line=$element->getAmount(); elseif ($tablename == 'projet_task') { if ($idofelementuser) @@ -598,7 +598,7 @@ foreach ($listofreferent as $key => $value) if ($qualifiedfortotal) $total_ht = $total_ht + $total_ht_by_line; if ($tablename == 'don' || $tablename == 'chargesociales') $total_ttc_by_line=$element->amount; - else if($tablename == 'fichinter') $total_ttc_by_line=$element->getAmount(); + else if($tablename == 'fichinter') $total_ttc_by_line=$element->getAmount(); elseif ($tablename == 'stock_mouvement') $total_ttc_by_line=$element->price*abs($element->qty); elseif ($tablename == 'projet_task') { @@ -629,7 +629,7 @@ foreach ($listofreferent as $key => $value) $total_ttc = -$total_ttc; } - switch ($classname) { + /*switch ($classname) { case 'FactureFournisseur': $newclassname = 'SupplierInvoice'; break; @@ -653,12 +653,12 @@ foreach ($listofreferent as $key => $value) break; default: $newclassname = $classname; - } + }*/ $var = ! $var; print '
    '.$langs->trans($newclassname).''.$name.''.$i.''; if ($tablename == 'expensereport_det') @@ -922,7 +922,7 @@ foreach ($listofreferent as $key => $value) print dol_print_date($element->datep,'dayhour'); if ($element->datef && $element->datef > $element->datep) print " - ".dol_print_date($element->datef,'dayhour'); } - else if (in_array($tablename, array('projet_task'))) + else if (in_array($tablename, array('projet_task'))) { $tmpprojtime = $element->getSumOfAmount($elementuser, $dates, $datee); // $element is a task. $elementuser may be empty print ''; @@ -1018,7 +1018,7 @@ foreach ($listofreferent as $key => $value) else { $othermessage=$form->textwithpicto($langs->trans("NotAvailable"), $langs->trans("ModuleSalaryToDefineHourlyRateMustBeEnabled")); - } + } } else { @@ -1074,8 +1074,8 @@ foreach ($listofreferent as $key => $value) $total_ht_by_third += $total_ht_by_line; $total_ttc_by_third += $total_ttc_by_line; - - $total_time = $total_time + $total_time_by_line; + + $total_time = $total_time + $total_time_by_line; } if (canApplySubtotalOn($tablename)) @@ -1115,7 +1115,7 @@ foreach ($listofreferent as $key => $value) //if (empty($value['disableamount']) && ! in_array($tablename, array('projet_task'))) print ''.$langs->trans("TotalHT").' : '.price($total_ht).''.$langs->trans("Total").' : '.price($total_ht).''; - if (empty($value['disableamount'])) + if (empty($value['disableamount'])) { if ($tablename != 'projet_task' || ! empty($conf->salaries->enabled)) print ''.$langs->trans("TotalHT").' : '.price($total_ht); } @@ -1123,7 +1123,7 @@ foreach ($listofreferent as $key => $value) //if (empty($value['disableamount']) && ! in_array($tablename, array('projet_task'))) print ''.$langs->trans("TotalTTC").' : '.price($total_ttc).''; - if (empty($value['disableamount'])) + if (empty($value['disableamount'])) { if ($tablename != 'projet_task' || ! empty($conf->salaries->enabled)) print $langs->trans("TotalTTC").' : '.price($total_ttc); } diff --git a/htdocs/projet/ganttview.php b/htdocs/projet/ganttview.php index 7ec9dcf1a4b..ca3c0ba35e6 100644 --- a/htdocs/projet/ganttview.php +++ b/htdocs/projet/ganttview.php @@ -98,12 +98,12 @@ if ($id > 0 || ! empty($ref)) $param=($mode=='mine'?'&mode=mine':''); - + // Project card - + $linkback = ''.$langs->trans("BackToList").''; - + $morehtmlref='
    '; // Title $morehtmlref.=$object->title; @@ -113,29 +113,29 @@ if ($id > 0 || ! empty($ref)) $morehtmlref.='
    '.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1, 'project'); } $morehtmlref.='
    '; - + // Define a complementary filter for search of next/prev ref. if (! $user->rights->projet->all->lire) { $objectsListId = $object->getProjectsAuthorizedForUser($user,0,0); $object->next_prev_filter=" rowid in (".(count($objectsListId)?join(',',array_keys($objectsListId)):'0').")"; } - + dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); - - + + print '
    '; print '
    '; print '
    '; - + print ''; - + // Visibility print ''; - + // Date start - end print ''; - + // Budget print ''; - + // Other attributes $cols = 2; include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php'; - + print '
    '.$langs->trans("Visibility").''; if ($object->public) print $langs->trans('SharedProject'); else print $langs->trans('PrivateProject'); print '
    '.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; $start = dol_print_date($object->date_start,'dayhour'); @@ -145,45 +145,45 @@ if ($id > 0 || ! empty($ref)) print ($end?$end:'?'); if ($object->hasDelay()) print img_warning("Late"); print '
    '.$langs->trans("Budget").''; if (strcmp($object->budget_amount, '')) print price($object->budget_amount,'',$langs,1,0,0,$conf->currency); print '
    '; - + print '
    '; print '
    '; print '
    '; print '
    '; - + print ''; - + // Description print ''; - + // Categories if($conf->categorie->enabled) { print '"; } - + print '
    '.$langs->trans("Description").''; print nl2br($object->description); print '
    '.$langs->trans("Categories").''; print $form->showCategories($object->id,'project',1); print "
    '; - + print '
    '; print '
    '; print '
    '; - + print '
    '; - + dol_fiche_end(); } diff --git a/htdocs/projet/index.php b/htdocs/projet/index.php index c7f0181dbf5..2188d4bd6a4 100644 --- a/htdocs/projet/index.php +++ b/htdocs/projet/index.php @@ -33,8 +33,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; $langs->load("projects"); $langs->load("companies"); -$mine = GETPOST('mode','aZ09')=='mine' ? 1 : 0; $search_project_user = GETPOST('search_project_user','int'); +$mine = GETPOST('mode','aZ09')=='mine' ? 1 : 0; +if ($search_project_user == $user->id) $mine = 1; // Security check $socid=0; @@ -122,7 +123,7 @@ if (! empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS)) // This is usele { $listofsearchfields['search_project']=array('text'=>'Project'); } - + if (count($listofsearchfields)) { print '
    '; @@ -138,7 +139,7 @@ if (! empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS)) // This is usele print '
    '; + print ''; print ''; print '
    '; } @@ -160,8 +161,8 @@ print '
    '; print ''; print ''; -print_liste_field_titre($langs->trans("OpenedProjectsByThirdparties"),$_SERVER["PHP_SELF"],"s.nom","","",'',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("NbOfProjects"),"","","","",'align="right"',$sortfield,$sortorder); +print_liste_field_titre("OpenedProjectsByThirdparties",$_SERVER["PHP_SELF"],"s.nom","","",'',$sortfield,$sortorder); +print_liste_field_titre("NbOfProjects","","","","",'align="right"',$sortfield,$sortorder); print "\n"; $sql = "SELECT COUNT(p.rowid) as nb, SUM(p.opp_amount)"; @@ -185,7 +186,7 @@ if ( $resql ) while ($i < $num) { $obj = $db->fetch_object($resql); - + print ''; print ''; if (! empty($arrayfields['p.ref']['checked'])) { print ''; } if (! empty($arrayfields['p.title']['checked'])) { print ''; } if (! empty($arrayfields['s.nom']['checked'])) { print ''; } // Sale representative @@ -511,8 +517,8 @@ if (! empty($arrayfields['commercial']['checked'])) if (! empty($arrayfields['p.dateo']['checked'])) { print ''; } @@ -520,8 +526,8 @@ if (! empty($arrayfields['p.dateo']['checked'])) if (! empty($arrayfields['p.datee']['checked'])) { print ''; } @@ -634,7 +640,7 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab $align=$extrafields->getAlignFlag($key); $sortonfield = "ef.".$key; if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/projet/tasks/list.php b/htdocs/projet/tasks/list.php index 58ef76b7a91..7078b11ae70 100644 --- a/htdocs/projet/tasks/list.php +++ b/htdocs/projet/tasks/list.php @@ -610,7 +610,7 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab $align=$extrafields->getAlignFlag($key); $sortonfield = "ef.".$key; if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/projet/tasks/time.php b/htdocs/projet/tasks/time.php index f643b9b5ca3..74ec47549a2 100644 --- a/htdocs/projet/tasks/time.php +++ b/htdocs/projet/tasks/time.php @@ -807,7 +807,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0) $align=$extrafields->getAlignFlag($key); $sortonfield = "ef.".$key; if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } }*/ @@ -956,7 +956,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0) } // Fields from hook - $parameters=array('arrayfields'=>$arrayfields, 'obj'=>$obj); + $parameters=array('arrayfields'=>$arrayfields, 'obj'=>$task_time); $reshook=$hookmanager->executeHooks('printFieldListValue',$parameters); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; diff --git a/htdocs/public/cron/cron_run_jobs.php b/htdocs/public/cron/cron_run_jobs.php index 3ca058acb8a..36b21c514e9 100644 --- a/htdocs/public/cron/cron_run_jobs.php +++ b/htdocs/public/cron/cron_run_jobs.php @@ -1,7 +1,8 @@ - * Copyright (C) 2013-2015 Laurent Destailleur +/* Copyright (C) 2012 Nicolas Villa aka Boyquotes http://informetic.fr + * Copyright (C) 2013 Florian Henry + * Copyright (C) 2013-2015 Laurent Destailleur + * Copyright (C) 2017 Regis Houssin * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -30,6 +31,11 @@ if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); if (! defined('NOLOGIN')) define('NOLOGIN','1'); //if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); +// For MultiCompany module. +// Do not use GETPOST here, function is not defined and define must be done before including main.inc.php +$entity=(! empty($_GET['entity']) ? (int) $_GET['entity'] : (! empty($_POST['entity']) ? (int) $_POST['entity'] : 1)); +if (is_numeric($entity)) define("DOLENTITY", $entity); + // librarie core // Dolibarr environment $res = @include("../../main.inc.php"); // From htdocs directory @@ -119,19 +125,25 @@ if ($result<0) exit; } +$qualifiedjobs = array(); +foreach($object->lines as $val) +{ + if (! verifCond($val->test)) continue; + $qualifiedjobs[] = $val; +} // TODO Duplicate code. This sequence of code must be shared with code into cron_run_jobs.php script. // current date $now=dol_now(); -$nbofjobs=count($object->lines); +$nbofjobs=count($qualifiedjobs); $nbofjobslaunchedok=0; $nbofjobslaunchedko=0; -if (is_array($object->lines) && (count($object->lines)>0)) +if (is_array($qualifiedjobs) && (count($qualifiedjobs)>0)) { // Loop over job - foreach($object->lines as $line) + foreach($qualifiedjobs as $line) { dol_syslog("cron_run_jobs.php cronjobid: ".$line->id, LOG_WARNING); @@ -144,16 +156,16 @@ if (is_array($object->lines) && (count($object->lines)>0)) $result=$cronjob->fetch($line->id); if ($result<0) { - echo "Error:".$cronjob->error."
    \n"; - dol_syslog("cron_run_jobs.php:: fetch Error".$cronjob->error, LOG_ERR); + echo "Error cronjob->fetch: ".$cronjob->error."
    \n"; + dol_syslog("cron_run_jobs.php::fetch Error".$cronjob->error, LOG_ERR); exit; } // Execut job $result=$cronjob->run_jobs($userlogin); if ($result < 0) { - echo "Error:".$cronjob->error."
    \n"; - dol_syslog("cron_run_jobs.php:: run_jobs Error".$cronjob->error, LOG_ERR); + echo "Error cronjob->run_job: ".$cronjob->error."
    \n"; + dol_syslog("cron_run_jobs.php::run_jobs Error".$cronjob->error, LOG_ERR); $nbofjobslaunchedko++; } else @@ -165,8 +177,8 @@ if (is_array($object->lines) && (count($object->lines)>0)) $result=$cronjob->reprogram_jobs($userlogin, $now); if ($result<0) { - echo "Error:".$cronjob->error."
    \n"; - dol_syslog("cron_run_jobs.php:: reprogram_jobs Error".$cronjob->error, LOG_ERR); + echo "Error cronjob->reprogram_job: ".$cronjob->error."
    \n"; + dol_syslog("cron_run_jobs.php::reprogram_jobs Error".$cronjob->error, LOG_ERR); exit; } diff --git a/htdocs/public/members/public_list.php b/htdocs/public/members/public_list.php index 232c6ef5aa3..ef42b4e8d56 100644 --- a/htdocs/public/members/public_list.php +++ b/htdocs/public/members/public_list.php @@ -132,18 +132,18 @@ if ($result) print '
    '; print ''; print ''."\n"; - //print_liste_field_titre($langs->trans("DateToBirth"), $_SERVER["PHP_SELF"],"birth",'',$param,$sortfield,$sortorder); // est-ce nécessaire ?? - print_liste_field_titre($langs->trans("EMail"), $_SERVER["PHP_SELF"],"email",'',$param,'',$sortfield,$sortorder,'public_'); - print_liste_field_titre($langs->trans("Zip"), $_SERVER["PHP_SELF"],"zip","",$param,'',$sortfield,$sortorder,'public_'); - print_liste_field_titre($langs->trans("Town"), $_SERVER["PHP_SELF"],"town","",$param,'',$sortfield,$sortorder,'public_'); - print_liste_field_titre($langs->trans("Photo"), $_SERVER["PHP_SELF"],"","",$param,'',$sortfield,$sortorder,'public_'); + //print_liste_field_titre("DateToBirth", $_SERVER["PHP_SELF"],"birth",'',$param,$sortfield,$sortorder); // est-ce nécessaire ?? + print_liste_field_titre("EMail", $_SERVER["PHP_SELF"],"email",'',$param,'',$sortfield,$sortorder,'public_'); + print_liste_field_titre("Zip", $_SERVER["PHP_SELF"],"zip","",$param,'',$sortfield,$sortorder,'public_'); + print_liste_field_titre("Town", $_SERVER["PHP_SELF"],"town","",$param,'',$sortfield,$sortorder,'public_'); + print_liste_field_titre("Photo", $_SERVER["PHP_SELF"],"","",$param,'',$sortfield,$sortorder,'public_'); print "\n"; $var=True; while ($i < $num && $i < $conf->liste_limit) { $objp = $db->fetch_object($result); - + print ''; print ''."\n"; print ''."\n"; diff --git a/htdocs/public/test/test_arrays.php b/htdocs/public/test/test_arrays.php index 0776c36f74a..ce3faa4bf20 100644 --- a/htdocs/public/test/test_arrays.php +++ b/htdocs/public/test/test_arrays.php @@ -32,9 +32,6 @@ if (empty($usedolheader)) - - - " /> @@ -43,9 +40,6 @@ if (empty($usedolheader)) - - - @@ -74,7 +68,7 @@ else '/includes/pdfmake/vfs_fonts.js' ); */ - + llxHeader('','','','',0,0,$arrayjs,$arraycss); } @@ -92,7 +86,7 @@ This page is a sample of page using tables. It is designed to make test with
    - tablednd
    - +


    Example 0a : Table with div+div+div containg a select that should be overflowed and truncated => Use this to align text or form
    @@ -139,7 +133,7 @@ This page is a sample of page using tables. It is designed to make test with



    Example 1 : Standard table/thead/tbody/tr/th-td (no class pair/impair on td) => Use this if you need the drag and drop for lines or for long result tables
    - + - + - +
    '; if ($obj->socid) @@ -217,9 +218,9 @@ if (! empty($conf->global->PROJECT_SHOW_PROJECT_LIST_ON_PROJECT_AREA)) { // This list can be very long, so we don't show it by default on task area. We prefer to use the list page. // Add constant PROJECT_SHOW_PROJECT_LIST_ON_PROJECT_AREA to show this list - + print '
    '; - + print_projecttasks_array($db, $form, $socid, $projectsListId, 0, 1, $listofoppstatus, array()); } diff --git a/htdocs/projet/list.php b/htdocs/projet/list.php index 1bf65decd71..12576d790fd 100644 --- a/htdocs/projet/list.php +++ b/htdocs/projet/list.php @@ -261,8 +261,8 @@ if ($search_project_user > 0) } $sql.= " WHERE p.entity IN (".getEntity('project').')'; if (! $user->rights->projet->all->lire) $sql.= " AND p.rowid IN (".$projectsListId.")"; // public and assigned to, or restricted to company for external users -// No need to check company, as filtering of projects must be done by getProjectsAuthorizedForUser -if ($socid) $sql.= " AND (p.fk_soc IS NULL OR p.fk_soc = 0 OR p.fk_soc = ".$socid.")"; +// No need to check if company is external user, as filtering of projects must be done by getProjectsAuthorizedForUser +if ($socid > 0) $sql.= " AND (p.fk_soc = ".$socid.")"; if ($search_categ > 0) $sql.= " AND cs.fk_categorie = ".$db->escape($search_categ); if ($search_categ == -2) $sql.= " AND cs.fk_categorie IS NULL"; if ($search_ref) $sql .= natural_search('p.ref', $search_ref); @@ -371,6 +371,7 @@ llxHeader("", $title, $help_url); $param=''; if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; +if ($search_all != '') $param.='&search_all='.$search_all; if ($search_sday) $param.='&search_sday='.$search_sday; if ($search_smonth) $param.='&search_smonth='.$search_smonth; if ($search_syear) $param.='&search_syear=' .$search_syear; @@ -378,7 +379,6 @@ if ($search_eday) $param.='&search_eday='.$search_eday; if ($search_emonth) $param.='&search_emonth='.$search_emonth; if ($search_eyear) $param.='&search_eyear=' .$search_eyear; if ($socid) $param.='&socid='.$socid; -if ($search_all != '') $param.='&search_all='.$search_all; if ($search_ref != '') $param.='&search_ref='.$search_ref; if ($search_label != '') $param.='&search_label='.$search_label; if ($search_societe != '') $param.='&search_societe='.$search_societe; @@ -451,7 +451,7 @@ if (! empty($conf->categorie->enabled)) // If the user can view user other than himself $moreforfilter.='
    '; $moreforfilter.=$langs->trans('ProjectsWithThisUserAsContact'). ': '; -$includeonly=''; +$includeonly='hierachyme'; if (empty($user->rights->user->user->lire)) $includeonly=array($user->id); $moreforfilter.=$form->select_dolusers($search_project_user?$search_project_user:'', 'search_project_user', 1, '', 0, $includeonly, '', 0, 0, 0, '', 0, '', 'maxwidth200'); $moreforfilter.='
    '; @@ -487,19 +487,25 @@ print '
    '; - print ''; + print ''; print ''; - print ''; + print ''; print ''; - print ''; + if ($socid > 0) + { + $tmpthirdparty=new Societe($db); + $tmpthirdparty->fetch($socid); + $search_societe=$tmpthirdparty->nom; + } + print ''; print ''; - if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print ''; - print ''; + if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print ''; + print ''; $formother->select_year($search_syear?$search_syear:-1,'search_syear',1, 20, 5); print ''; - if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print ''; - print ''; + if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print ''; + print ''; $formother->select_year($search_eyear?$search_eyear:-1,'search_eyear',1, 20, 5); print '
    '.dolGetFirstLastname($langs->trans("Firstname"),$langs->trans("Lastname")).''.$langs->trans("Company").'
    '.dolGetFirstLastname($objp->firstname, $objp->lastname).''.$objp->societe.'
    " id="tablelines3"> @@ -243,7 +237,7 @@ if (! empty($moreforfilter))
    -'."\n"; +print ''."\n"; include_once $original_file_osencoded; diff --git a/htdocs/public/websites/styles.css.php b/htdocs/public/websites/styles.css.php index 14014577cea..7fe80f9b66e 100644 --- a/htdocs/public/websites/styles.css.php +++ b/htdocs/public/websites/styles.css.php @@ -139,6 +139,8 @@ if (! file_exists($original_file_osencoded)) // Output page content +define('USEDOLIBARRSERVER', 1); +print '/* Page content '.$original_file.' : CSS content that was saved into tpl dir */'."\n"; require_once $original_file_osencoded; diff --git a/htdocs/resource/add.php b/htdocs/resource/add.php index a294dfb94db..a6cd75cccf8 100644 --- a/htdocs/resource/add.php +++ b/htdocs/resource/add.php @@ -66,64 +66,72 @@ $extrafields = new ExtraFields($db); // fetch optionals attributes and labels $extralabels=$extrafields->fetch_name_optionals_label($object->table_element); -if ($action == 'confirm_add_resource') +$hookmanager->initHooks(array('resource_card_add','globalcard')); +$parameters=array(); +$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + +if (empty($reshook)) { - if (! $cancel) - { - $error=''; - $ref=GETPOST('ref','alpha'); - $description=GETPOST('description','alpha'); - $fk_code_type_resource=GETPOST('fk_code_type_resource','alpha'); - - if (empty($ref)) - { - $mesg=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Ref")); - setEventMessages($mesg, null, 'errors'); - $error++; - } - - if (! $error) - { - $object=new Dolresource($db); - $object->ref=$ref; - $object->description=$description; - $object->fk_code_type_resource=$fk_code_type_resource; - - // Fill array 'array_options' with data from add form - $ret = $extrafields->setOptionalsFromPost($extralabels, $object); - if ($ret < 0) { - $error ++; - } - - $result=$object->create($user); - if ($result > 0) - { - // Creation OK - $db->commit(); - setEventMessages($langs->trans('ResourceCreatedWithSuccess'), null, 'mesgs'); - Header("Location: card.php?id=" . $object->id); - return; - } - else - { - // Creation KO - setEventMessages($object->error, $object->errors, 'errors'); - $action = ''; - } - } - else - { - $action = ''; - } - } - else - { - Header("Location: list.php"); - } + if ($action == 'confirm_add_resource') + { + if (! $cancel) + { + $error=''; + + $ref=GETPOST('ref','alpha'); + $description=GETPOST('description','alpha'); + $fk_code_type_resource=GETPOST('fk_code_type_resource','alpha'); + + if (empty($ref)) + { + $mesg=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Ref")); + setEventMessages($mesg, null, 'errors'); + $error++; + } + + if (! $error) + { + $object=new Dolresource($db); + $object->ref=$ref; + $object->description=$description; + $object->fk_code_type_resource=$fk_code_type_resource; + + // Fill array 'array_options' with data from add form + $ret = $extrafields->setOptionalsFromPost($extralabels, $object); + if ($ret < 0) { + $error ++; + } + + $result=$object->create($user); + if ($result > 0) + { + // Creation OK + $db->commit(); + setEventMessages($langs->trans('ResourceCreatedWithSuccess'), null, 'mesgs'); + Header("Location: card.php?id=" . $object->id); + return; + } + else + { + // Creation KO + setEventMessages($object->error, $object->errors, 'errors'); + $action = ''; + } + } + else + { + $action = ''; + } + } + else + { + Header("Location: list.php"); + } + } } - /* * View */ diff --git a/htdocs/resource/card.php b/htdocs/resource/card.php index 02d38c2b924..db6eed63b3b 100644 --- a/htdocs/resource/card.php +++ b/htdocs/resource/card.php @@ -54,10 +54,13 @@ if ($user->societe_id > 0) accessforbidden(); } -if( ! $user->rights->resource->read) +if (! $user->rights->resource->read) accessforbidden(); $object = new Dolresource($db); +$objectFetchRes = $object->fetch($id); +if (! ($objectFetchRes > 0)) dol_print_error($db, $object->error); + $extrafields = new ExtraFields($db); @@ -162,7 +165,7 @@ llxHeader('',$pagetitle,''); $form = new Form($db); $formresource = new FormResource($db); -if ( $object->fetch($id) > 0 ) +if ( $objectFetchRes > 0 ) { $head=resource_prepare_head($object); diff --git a/htdocs/resource/list.php b/htdocs/resource/list.php index 0564392071a..40d4b7b3655 100644 --- a/htdocs/resource/list.php +++ b/htdocs/resource/list.php @@ -247,7 +247,7 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab $align=$extrafields->getAlignFlag($key); $sortonfield = "ef.".$key; if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/societe/consumption.php b/htdocs/societe/consumption.php index 5c134aee36d..4c68e12583a 100644 --- a/htdocs/societe/consumption.php +++ b/htdocs/societe/consumption.php @@ -386,13 +386,13 @@ if ($sql_select) // Titles with sort buttons print ''; - print_liste_field_titre($langs->trans('Ref'),$_SERVER['PHP_SELF'],'doc_number','',$param,'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('Date'),$_SERVER['PHP_SELF'],'dateprint','',$param,'align="center" width="150"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('Status'),$_SERVER['PHP_SELF'],'fk_statut','',$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('Product'),$_SERVER['PHP_SELF'],'','',$param,'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('Quantity'),$_SERVER['PHP_SELF'],'prod_qty','',$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('TotalHT'),$_SERVER['PHP_SELF'],'total_ht','',$param,'align="right"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('UnitPrice'),$_SERVER['PHP_SELF'],'','',$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre('Ref',$_SERVER['PHP_SELF'],'doc_number','',$param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre('Date',$_SERVER['PHP_SELF'],'dateprint','',$param,'align="center" width="150"',$sortfield,$sortorder); + print_liste_field_titre('Status',$_SERVER['PHP_SELF'],'fk_statut','',$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre('Product',$_SERVER['PHP_SELF'],'','',$param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre('Quantity',$_SERVER['PHP_SELF'],'prod_qty','',$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre('TotalHT',$_SERVER['PHP_SELF'],'total_ht','',$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre('UnitPrice',$_SERVER['PHP_SELF'],'','',$param,'align="right"',$sortfield,$sortorder); print "\n"; @@ -605,11 +605,11 @@ else if (empty($type_element) || $type_element == -1) print '
    '."\n"; // Titles with sort buttons print ''; - print_liste_field_titre($langs->trans('Ref'),$_SERVER['PHP_SELF'],'doc_number','',$param,'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('Date'),$_SERVER['PHP_SELF'],'dateprint','',$param,'align="center" width="150"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('Status'),$_SERVER['PHP_SELF'],'fk_status','',$param,'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('Product'),$_SERVER['PHP_SELF'],'','',$param,'align="left"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('Quantity'),$_SERVER['PHP_SELF'],'prod_qty','',$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre('Ref',$_SERVER['PHP_SELF'],'doc_number','',$param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre('Date',$_SERVER['PHP_SELF'],'dateprint','',$param,'align="center" width="150"',$sortfield,$sortorder); + print_liste_field_titre('Status',$_SERVER['PHP_SELF'],'fk_status','',$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre('Product',$_SERVER['PHP_SELF'],'','',$param,'align="left"',$sortfield,$sortorder); + print_liste_field_titre('Quantity',$_SERVER['PHP_SELF'],'prod_qty','',$param,'align="right"',$sortfield,$sortorder); print "\n"; print ''; diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php index f7a479b8ddf..94fc46f5734 100644 --- a/htdocs/societe/list.php +++ b/htdocs/societe/list.php @@ -49,6 +49,9 @@ if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user,'societe',$socid,''); $search_all=trim(GETPOST('sall', 'alphanohtml')); +$search_cti=preg_replace('/^0+/', '', preg_replace('/[^0-9]/', '', GETPOST('search_cti', 'alphanohtml'))); // Phone number without any special chars + +$search_id=trim(GETPOST("search_id","int")); $search_nom=trim(GETPOST("search_nom")); $search_alias=trim(GETPOST("search_alias")); $search_nom_only=trim(GETPOST("search_nom_only")); @@ -78,6 +81,7 @@ $search_type=GETPOST('search_type','alpha'); $search_level_from = GETPOST("search_level_from","alpha"); $search_level_to = GETPOST("search_level_to","alpha"); $search_stcomm=GETPOST('search_stcomm','int'); +$search_import_key = GETPOST("search_import_key","alpha"); $type=GETPOST('type'); $optioncss=GETPOST('optioncss','alpha'); @@ -152,6 +156,7 @@ $checkedprofid6=0; $checkprospectlevel=(in_array($contextpage, array('prospectlist')) ? 1 : 0); $checkstcomm=(in_array($contextpage, array('prospectlist')) ? 1 : 0); $arrayfields=array( + 's.rowid'=>array('label'=>"TechnicalID", 'checked'=>($conf->global->MAIN_SHOW_TECHNICAL_ID?1:0), 'enabled'=>($conf->global->MAIN_SHOW_TECHNICAL_ID?1:0)), 's.nom'=>array('label'=>"ThirdPartyName", 'checked'=>1), 's.name_alias'=>array('label'=>"AliasNameShort", 'checked'=>1), 's.barcode'=>array('label'=>"Gencod", 'checked'=>1, 'enabled'=>(! empty($conf->barcode->enabled))), @@ -179,6 +184,7 @@ $arrayfields=array( 's.datec'=>array('label'=>"DateCreation", 'checked'=>0, 'position'=>500), 's.tms'=>array('label'=>"DateModificationShort", 'checked'=>0, 'position'=>500), 's.status'=>array('label'=>"Status", 'checked'=>1, 'position'=>1000), + 's.import_key'=>array('label'=>"ImportId", 'checked'=>0, 'position'=>1100), ); // Extra fields if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) @@ -211,6 +217,7 @@ if (empty($reshook)) // Did we click on purge search criteria ? if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')) // All tests are required to be compatible with all browsers { + $search_id=''; $search_nom=''; $search_alias=''; $search_categ=0; @@ -239,6 +246,7 @@ if (empty($reshook)) $search_stcomm=''; $search_level_from=''; $search_level_to=''; + $search_import_key=''; $toselect=''; $search_array_options=array(); } @@ -401,42 +409,47 @@ if ($search_sale || (!$user->rights->societe->client->voir && !$socid)) $sql.= " $sql.= " WHERE s.fk_stcomm = st.id"; $sql.= " AND s.entity IN (".getEntity('societe').")"; if (! $user->rights->societe->client->voir && ! $socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; -if ($socid) $sql.= " AND s.rowid = ".$socid; -if ($search_sale) $sql.= " AND s.rowid = sc.fk_soc"; // Join for the needed table to filter by sale +if ($socid) $sql.= " AND s.rowid = ".$socid; +if ($search_sale) $sql.= " AND s.rowid = sc.fk_soc"; // Join for the needed table to filter by sale if (! $user->rights->fournisseur->lire) $sql.=" AND (s.fournisseur <> 1 OR s.client <> 0)"; // client=0, fournisseur=0 must be visible -if ($search_sale) $sql.= " AND sc.fk_user = ".$db->escape($search_sale); -if ($search_categ > 0) $sql.= " AND cs.fk_categorie = ".$db->escape($search_categ); -if ($search_categ == -2) $sql.= " AND cs.fk_categorie IS NULL"; -if ($search_all) $sql.= natural_search(array_keys($fieldstosearchall), $search_all); -if ($search_nom) $sql.= natural_search("s.nom",$search_nom); -if ($search_alias) $sql.= natural_search("s.name_alias",$search_alias); -if ($search_nom_only) $sql.= natural_search("s.nom",$search_nom_only); +if ($search_sale) $sql.= " AND sc.fk_user = ".$db->escape($search_sale); +if ($search_categ > 0) $sql.= " AND cs.fk_categorie = ".$db->escape($search_categ); +if ($search_categ == -2) $sql.= " AND cs.fk_categorie IS NULL"; + +if ($search_all) $sql.= natural_search(array_keys($fieldstosearchall), $search_all); +if (strlen($search_cti)) $sql.= natural_search('s.phone', $search_cti); + +if ($search_id > 0) $sql.= natural_search("s.rowid",$search_id,1); +if ($search_nom) $sql.= natural_search("s.nom",$search_nom); +if ($search_alias) $sql.= natural_search("s.name_alias",$search_alias); +if ($search_nom_only) $sql.= natural_search("s.nom",$search_nom_only); if ($search_customer_code) $sql.= natural_search("s.code_client",$search_customer_code); if ($search_supplier_code) $sql.= natural_search("s.code_fournisseur",$search_supplier_code); if ($search_account_customer_code) $sql.= natural_search("s.code_compta",$search_account_customer_code); if ($search_account_supplier_code) $sql.= natural_search("s.code_compta_fournisseur",$search_account_supplier_code); -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 (".$search_country.')'; -if ($search_email) $sql.= natural_search("s.email",$search_email); -if ($search_phone) $sql.= natural_search("s.phone",$search_phone); -if ($search_url) $sql.= natural_search("s.url",$search_url); -if ($search_idprof1) $sql.= natural_search("s.siren",$search_idprof1); -if ($search_idprof2) $sql.= natural_search("s.siret",$search_idprof2); -if ($search_idprof3) $sql.= natural_search("s.ape",$search_idprof3); -if ($search_idprof4) $sql.= natural_search("s.idprof4",$search_idprof4); -if ($search_idprof5) $sql.= natural_search("s.idprof5",$search_idprof5); -if ($search_idprof6) $sql.= natural_search("s.idprof6",$search_idprof6); +if ($search_town) $sql.= natural_search("s.town",$search_town); +if (strlen($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 (".$search_country.')'; +if ($search_email) $sql.= natural_search("s.email",$search_email); +if (strlen($search_phone)) $sql.= natural_search("s.phone", $search_phone); +if ($search_url) $sql.= natural_search("s.url",$search_url); +if (strlen($search_idprof1)) $sql.= natural_search("s.siren",$search_idprof1); +if (strlen($search_idprof2)) $sql.= natural_search("s.siret",$search_idprof2); +if (strlen($search_idprof3)) $sql.= natural_search("s.ape",$search_idprof3); +if (strlen($search_idprof4)) $sql.= natural_search("s.idprof4",$search_idprof4); +if (strlen($search_idprof5)) $sql.= natural_search("s.idprof5",$search_idprof5); +if (strlen($search_idprof6)) $sql.= natural_search("s.idprof6",$search_idprof6); // Filter on type of thirdparty if ($search_type > 0 && in_array($search_type,array('1,3','2,3'))) $sql .= " AND s.client IN (".$db->escape($search_type).")"; if ($search_type > 0 && in_array($search_type,array('4'))) $sql .= " AND s.fournisseur = 1"; if ($search_type == '0') $sql .= " AND s.client = 0 AND s.fournisseur = 0"; if ($search_status!='' && $search_status >= 0) $sql .= " AND s.status = ".$db->escape($search_status); -if (!empty($conf->barcode->enabled) && $search_barcode) $sql.= " AND s.barcode LIKE '%".$db->escape($search_barcode)."%'"; +if (!empty($conf->barcode->enabled) && $search_barcode) $sql.= natural_search("s.barcode", $search_barcode); if ($search_type_thirdparty) $sql .= " AND s.fk_typent IN (".$search_type_thirdparty.')'; if ($search_levels) $sql .= " AND s.fk_prospectlevel IN (".$search_levels.')'; if ($search_stcomm != '' && $search_stcomm != -2) $sql.= natural_search("s.fk_stcomm",$search_stcomm,2); +if ($search_import_key) $sql.= natural_search("s.import_key",$search_import_key); // Add where from extra fields foreach ($search_array_options as $key => $val) { @@ -478,7 +491,7 @@ $num = $db->num_rows($resql); $arrayofselected=is_array($toselect)?$toselect:array(); -if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $search_all && $action != 'list') +if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && ($search_all != '' || $search_cti != '') && $action != 'list') { $obj = $db->fetch_object($resql); $id = $obj->rowid; @@ -496,6 +509,7 @@ if ($search_all != '') $param = "&sall=".urlencode($search_all); if ($sall != '') $param .= "&sall=".urlencode($sall); if ($search_categ > 0) $param.='&search_categ='.urlencode($search_categ); if ($search_sale > 0) $param.='&search_sale='.urlencode($search_sale); +if ($search_id > 0) $param.= "&search_id=".urlencode($search_id); if ($search_nom != '') $param.= "&search_nom=".urlencode($search_nom); if ($search_alias != '') $param.= "&search_alias=".urlencode($search_alias); if ($search_town != '') $param.= "&search_town=".urlencode($search_town); @@ -520,9 +534,10 @@ if ($search_country != '') $param.='&search_country='.urlencode($search_country) if ($search_type_thirdparty != '') $param.='&search_type_thirdparty='.urlencode($search_type_thirdparty); if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss); if ($search_status != '') $param.='&search_status='.urlencode($search_status); -if ($search_stcomm != '') $param.='&search_stcomm='.$search_stcomm; -if ($search_level_from != '') $param.='&search_level_from='.$search_level_from; -if ($search_level_to != '') $param.='&search_level_to='.$search_level_to; +if ($search_stcomm != '') $param.='&search_stcomm='.urlencode($search_stcomm); +if ($search_level_from != '') $param.='&search_level_from='.urlencode($search_level_from); +if ($search_level_to != '') $param.='&search_level_to='.urlencode($search_level_to); +if ($search_import_key != '') $param.='&search_import_key='.urlencode($search_import_key); if ($type != '') $param.='&type='.urlencode($type); // Add $param from extra fields foreach ($search_array_options as $key => $val) @@ -631,6 +646,12 @@ print '
    '.$langs->trans("SelectElementAndClick", $langs->transnoentitiesnoconv("Search")).'
    '; +if (! empty($arrayfields['s.rowid']['checked'])) +{ + print ''; +} if (! empty($arrayfields['s.nom']['checked'])) { print ''; } +if (! empty($arrayfields['s.import_key']['checked'])) +{ + print ''; +} // Action column print ''; print "\n"; print ''; +if (! empty($arrayfields['s.rowid']['checked'])) print_liste_field_titre($arrayfields['s.rowid']['label'], $_SERVER["PHP_SELF"],"s.rowid","",$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.barcode']['checked'])) print_liste_field_titre($arrayfields['s.barcode']['label'], $_SERVER["PHP_SELF"], "s.barcode",$param,'','',$sortfield,$sortorder); @@ -926,7 +954,7 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab $align=$extrafields->getAlignFlag($key); $sortonfield = "ef.".$key; if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } @@ -937,6 +965,7 @@ print $hookmanager->resPrint; if (! empty($arrayfields['s.datec']['checked'])) print_liste_field_titre($arrayfields['s.datec']['label'],$_SERVER["PHP_SELF"],"s.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder); if (! empty($arrayfields['s.tms']['checked'])) print_liste_field_titre($arrayfields['s.tms']['label'],$_SERVER["PHP_SELF"],"s.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder); if (! empty($arrayfields['s.status']['checked'])) print_liste_field_titre($arrayfields['s.status']['label'],$_SERVER["PHP_SELF"],"s.status","",$param,'align="center"',$sortfield,$sortorder); +if (! empty($arrayfields['s.import_key']['checked'])) print_liste_field_titre($arrayfields['s.import_key']['label'],$_SERVER["PHP_SELF"],"s.import_key","",$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch '); print "\n"; @@ -962,6 +991,13 @@ while ($i < min($num, $limit)) $companystatic->fk_prospectlevel=$obj->fk_prospectlevel; print ''; + if (! empty($arrayfields['s.rowid']['checked'])) + { + print '\n"; + if (! $i) $totalarray['nbfield']++; + } if (! empty($arrayfields['s.nom']['checked'])) { print ''; if (! $i) $totalarray['nbfield']++; } + if (! empty($arrayfields['s.import_key']['checked'])) + { + print '\n"; + if (! $i) $totalarray['nbfield']++; + } // Action column print '
    '; + print ''; + print ''; @@ -879,10 +900,16 @@ if (! empty($arrayfields['s.tms']['checked'])) // Status if (! empty($arrayfields['s.status']['checked'])) { - print ''; + print ''; print $form->selectarray('search_status', array('0'=>$langs->trans('ActivityCeased'),'1'=>$langs->trans('InActivity')), $search_status, 1); print ''; + print ''; + print ''; $searchpicto=$form->showFilterButtons(); @@ -892,6 +919,7 @@ print '
    '; + print $obj->rowid; + print "'; @@ -1186,6 +1222,13 @@ while ($i < min($num, $limit)) print ''.$companystatic->getLibStatut(3).''; + print $obj->import_key; + print "'; diff --git a/htdocs/societe/notify/card.php b/htdocs/societe/notify/card.php index 5cbbdba629b..697ae315fb3 100644 --- a/htdocs/societe/notify/card.php +++ b/htdocs/societe/notify/card.php @@ -230,9 +230,9 @@ if ($result > 0) // Line with titles print ''; print ''; - print_liste_field_titre($langs->trans("Target"),$_SERVER["PHP_SELF"],"c.lastname,c.firstname",'',$param,'"width="45%"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Action"),$_SERVER["PHP_SELF"],"",'',$param,'"width="35%"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"n.type",'',$param,'"width="10%"',$sortfield,$sortorder); + print_liste_field_titre("Target",$_SERVER["PHP_SELF"],"c.lastname,c.firstname",'',$param,'"width="45%"',$sortfield,$sortorder); + print_liste_field_titre("Action",$_SERVER["PHP_SELF"],"",'',$param,'"width="35%"',$sortfield,$sortorder); + print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"n.type",'',$param,'"width="10%"',$sortfield,$sortorder); print_liste_field_titre(''); print "\n"; @@ -305,9 +305,9 @@ if ($result > 0) // Line with titles print '
    '; print ''; - print_liste_field_titre($langs->trans("Target"),$_SERVER["PHP_SELF"],"c.lastname,c.firstname",'',$param,'"width="45%"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Action"),$_SERVER["PHP_SELF"],"",'',$param,'"width="35%"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"n.type",'',$param,'"width="10%"',$sortfield,$sortorder); + print_liste_field_titre("Target",$_SERVER["PHP_SELF"],"c.lastname,c.firstname",'',$param,'"width="45%"',$sortfield,$sortorder); + print_liste_field_titre("Action",$_SERVER["PHP_SELF"],"",'',$param,'"width="35%"',$sortfield,$sortorder); + print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"n.type",'',$param,'"width="10%"',$sortfield,$sortorder); print_liste_field_titre('','',''); print ''; @@ -463,11 +463,11 @@ if ($result > 0) // Line with titles print '
    '; print ''; - print_liste_field_titre($langs->trans("Target"),$_SERVER["PHP_SELF"],"c.lastname,c.firstname",'',$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Action"),$_SERVER["PHP_SELF"],"",'',$param,'',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"n.type",'',$param,'',$sortfield,$sortorder); - //print_liste_field_titre($langs->trans("Object"),$_SERVER["PHP_SELF"],"",'',$param,'"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Date"),$_SERVER["PHP_SELF"],"n.daten",'',$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre("Target",$_SERVER["PHP_SELF"],"c.lastname,c.firstname",'',$param,'',$sortfield,$sortorder); + print_liste_field_titre("Action",$_SERVER["PHP_SELF"],"",'',$param,'',$sortfield,$sortorder); + print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"n.type",'',$param,'',$sortfield,$sortorder); + //print_liste_field_titre("Object",$_SERVER["PHP_SELF"],"",'',$param,'"',$sortfield,$sortorder); + print_liste_field_titre("Date",$_SERVER["PHP_SELF"],"n.daten",'',$param,'align="right"',$sortfield,$sortorder); print ''; if ($num > 0) diff --git a/htdocs/societe/notify/index.php b/htdocs/societe/notify/index.php index 4b7a5a3a111..1a46f62d202 100644 --- a/htdocs/societe/notify/index.php +++ b/htdocs/societe/notify/index.php @@ -81,16 +81,16 @@ if ($result) print '
    '; print ''; - print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","","",'valign="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Contact"),$_SERVER["PHP_SELF"],"c.lastname","","",'valign="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Action"),$_SERVER["PHP_SELF"],"a.titre","","",'valign="center"',$sortfield,$sortorder); + print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom","","",'valign="center"',$sortfield,$sortorder); + print_liste_field_titre("Contact",$_SERVER["PHP_SELF"],"c.lastname","","",'valign="center"',$sortfield,$sortorder); + print_liste_field_titre("Action",$_SERVER["PHP_SELF"],"a.titre","","",'valign="center"',$sortfield,$sortorder); print "\n"; $var=True; while ($i < $num) { $obj = $db->fetch_object($result); - + print ''; print "\n"; diff --git a/htdocs/societe/rib.php b/htdocs/societe/rib.php index 7385b466e34..5e7df26e176 100644 --- a/htdocs/societe/rib.php +++ b/htdocs/societe/rib.php @@ -204,7 +204,8 @@ if (empty($reshook)) $account->proprio = GETPOST('proprio','alpha'); $account->owner_address = GETPOST('owner_address','alpha'); $account->frstrecur = GETPOST('frstrecur'); - + $account->rum = GETPOST('rum','alpha'); + // This test can be done only once properties were set if ($account->needIBAN() == 1) { @@ -443,17 +444,17 @@ if ($socid && $action != 'edit' && $action != "create") print '
    socid."\">".$obj->name."
    '; print ''; - print_liste_field_titre($langs->trans("LabelRIB")); - print_liste_field_titre($langs->trans("Bank")); - print_liste_field_titre($langs->trans("RIB")); - print_liste_field_titre($langs->trans("IBAN")); - print_liste_field_titre($langs->trans("BIC")); + print_liste_field_titre("LabelRIB"); + print_liste_field_titre("Bank"); + print_liste_field_titre("RIB"); + print_liste_field_titre("IBAN"); + print_liste_field_titre("BIC"); if (! empty($conf->prelevement->enabled)) { - print print_liste_field_titre($langs->trans("RUM")); - print print_liste_field_titre($langs->trans("WithdrawMode")); + print print_liste_field_titre("RUM"); + print print_liste_field_titre("WithdrawMode"); } - print_liste_field_titre($langs->trans("DefaultRIB"), '', '', '', '', 'align="center"'); + print_liste_field_titre("DefaultRIB", '', '', '', '', 'align="center"'); print_liste_field_titre('', '', '', '', '', 'align="center"'); print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch '); print "\n"; @@ -868,7 +869,7 @@ if ($socid && $action == 'create' && $user->rights->societe->creer) // RUM print ''; - print ''; + print ''; print '
    '.$langs->trans("RUM").''.$langs->trans("RUMWillBeGenerated").'

    '.$langs->trans("RUMWillBeGenerated").'
    '.$langs->trans("WithdrawMode").''; $tblArraychoice = array("FRST" => $langs->trans("FRST"), "RECUR" => $langs->trans("RECUR")); diff --git a/htdocs/societe/societecontact.php b/htdocs/societe/societecontact.php index e640cabc93b..d95c0bc554f 100644 --- a/htdocs/societe/societecontact.php +++ b/htdocs/societe/societecontact.php @@ -234,14 +234,14 @@ if ($id > 0 || ! empty($ref)) print ""; print ''; - print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"d.rowid",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Name")." / ".$langs->trans("Company"),$_SERVER["PHP_SELF"],"d.lastname",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Login"),$_SERVER["PHP_SELF"],"d.login",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Type"),$_SERVER["PHP_SELF"],"t.libelle",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Person"),$_SERVER["PHP_SELF"],"d.morphy",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("EMail"),$_SERVER["PHP_SELF"],"d.email",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"d.statut,d.datefin",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("EndSubscription"),$_SERVER["PHP_SELF"],"d.datefin",$param,"",'align="center"',$sortfield,$sortorder); + print_liste_field_titre("Ref",$_SERVER["PHP_SELF"],"d.rowid",$param,"","",$sortfield,$sortorder); + print_liste_field_titre( $langs->trans("Name")." / ".$langs->trans("Company"),$_SERVER["PHP_SELF"],"d.lastname",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("Login",$_SERVER["PHP_SELF"],"d.login",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("Type",$_SERVER["PHP_SELF"],"t.libelle",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("Person",$_SERVER["PHP_SELF"],"d.morphy",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("EMail",$_SERVER["PHP_SELF"],"d.email",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"d.statut,d.datefin",$param,"","",$sortfield,$sortorder); + print_liste_field_titre("EndSubscription",$_SERVER["PHP_SELF"],"d.datefin",$param,"",'align="center"',$sortfield,$sortorder); print "\n"; $var=True; diff --git a/htdocs/supplier_proposal/list.php b/htdocs/supplier_proposal/list.php index 23a0fae1876..cfe94989301 100644 --- a/htdocs/supplier_proposal/list.php +++ b/htdocs/supplier_proposal/list.php @@ -734,7 +734,7 @@ if ($resql) $align=$extrafields->getAlignFlag($key); $sortonfield = "ef.".$key; if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/support/index.php b/htdocs/support/index.php index 0e27107ef54..dc1872a1b45 100644 --- a/htdocs/support/index.php +++ b/htdocs/support/index.php @@ -70,12 +70,12 @@ print '
    '; print ''; print '