From a5814ce77907f7a2c7b874b493324596a64796b0 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Fri, 9 Feb 2018 11:00:43 +0100 Subject: [PATCH 01/49] Fix: nocheck for "fournisseur", already check with "societe" --- htdocs/core/lib/security.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/security.lib.php b/htdocs/core/lib/security.lib.php index e84eef83924..f8753193888 100644 --- a/htdocs/core/lib/security.lib.php +++ b/htdocs/core/lib/security.lib.php @@ -382,7 +382,7 @@ function checkUserAccessToObject($user, $featuresarray, $objectid=0, $tableandsh $checkother = array('contact','agenda'); // Test on entity and link to third party. Allowed if link is empty (Ex: contacts...). $checkproject = array('projet','project'); // Test for project object $checktask = array('projet_task'); - $nocheck = array('barcode','stock'); // No test + $nocheck = array('barcode','stock','fournisseur'); // No test $checkdefault = 'all other not already defined'; // Test on entity and link to third party. Not allowed if link is empty (Ex: invoice, orders...). // If dbtablename not defined, we use same name for table than module name From 67ce71bc487feba279c83c57cfb287a6bea08f52 Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Fri, 9 Feb 2018 18:23:11 +0100 Subject: [PATCH 02/49] Fix: Contracts not show price --- htdocs/contrat/tpl/linkedobjectblock.tpl.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/htdocs/contrat/tpl/linkedobjectblock.tpl.php b/htdocs/contrat/tpl/linkedobjectblock.tpl.php index eae46dad772..68d7a8462f2 100644 --- a/htdocs/contrat/tpl/linkedobjectblock.tpl.php +++ b/htdocs/contrat/tpl/linkedobjectblock.tpl.php @@ -1,5 +1,6 @@ + * Copyright (C) 2018 Juanjo Menent * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -50,7 +51,15 @@ foreach($linkedObjectBlock as $key => $objectlink) getNomUrl(1); ?> date_contrat,'day'); ?> -   + rights->contrat->lire) { + $totalcontrat = 0; + foreach ($objectlink->lines as $linecontrat) { + $totalcontrat = $totalcontrat + $linecontrat->total_ht; + $total = $total + $linecontrat->total_ht; + } + echo price($totalcontrat); + } ?> getLibStatut(7); ?> ">transnoentitiesnoconv("RemoveLink")); ?> From d731857fd0dfaa0ac22ee8db3d8aa1ce29f5d4f5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 12 Feb 2018 03:13:12 +0100 Subject: [PATCH 03/49] Update linkedobjectblock.tpl.php --- htdocs/contrat/tpl/linkedobjectblock.tpl.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/htdocs/contrat/tpl/linkedobjectblock.tpl.php b/htdocs/contrat/tpl/linkedobjectblock.tpl.php index 68d7a8462f2..a44f20679b8 100644 --- a/htdocs/contrat/tpl/linkedobjectblock.tpl.php +++ b/htdocs/contrat/tpl/linkedobjectblock.tpl.php @@ -52,7 +52,11 @@ foreach($linkedObjectBlock as $key => $objectlink) date_contrat,'day'); ?> rights->contrat->lire) { + // Price of contract is not shown by default because a contract is a list of service with + // start and end date that change with time andd that may be different that the period of reference for price. + // So price of a contract does often means nothing. Prices is on the different invoices done on same contract. + if ($user->rights->contrat->lire && empty($conf->global->CONTRACT_SHOW_TOTAL_OF_PRODUCT_AS_PRICE)) + { $totalcontrat = 0; foreach ($objectlink->lines as $linecontrat) { $totalcontrat = $totalcontrat + $linecontrat->total_ht; @@ -65,4 +69,4 @@ foreach($linkedObjectBlock as $key => $objectlink) - \ No newline at end of file + From 448fcae02fc36f196883460814f0df8416d2b0c8 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Mon, 12 Feb 2018 09:03:53 +0100 Subject: [PATCH 04/49] Fix: move "fournisseur" in $checksoc --- htdocs/core/lib/security.lib.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/security.lib.php b/htdocs/core/lib/security.lib.php index 50ce574e271..14ff7bfdf53 100644 --- a/htdocs/core/lib/security.lib.php +++ b/htdocs/core/lib/security.lib.php @@ -378,11 +378,11 @@ function checkUserAccessToObject($user, $featuresarray, $objectid=0, $tableandsh if ($feature == 'task') $feature='projet_task'; $check = array('adherent','banque','user','usergroup','produit','service','produit|service','categorie'); // Test on entity only (Objects with no link to company) - $checksoc = array('societe'); // Test for societe object + $checksoc = array('societe','fournisseur'); // Test for societe object $checkother = array('contact','agenda'); // Test on entity and link to third party. Allowed if link is empty (Ex: contacts...). $checkproject = array('projet','project'); // Test for project object $checktask = array('projet_task'); - $nocheck = array('barcode','stock','fournisseur'); // No test + $nocheck = array('barcode','stock'); // No test $checkdefault = 'all other not already defined'; // Test on entity and link to third party. Not allowed if link is empty (Ex: invoice, orders...). // If dbtablename not defined, we use same name for table than module name From 24cc687724758e474d2e772a41532e252ec884e3 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Mon, 12 Feb 2018 09:28:41 +0100 Subject: [PATCH 05/49] Fix: you can't check "fournisseur" with checkUserAccessToObject without object ID --- htdocs/core/lib/security.lib.php | 2 +- htdocs/product/fournisseurs.php | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/security.lib.php b/htdocs/core/lib/security.lib.php index 14ff7bfdf53..c204809e9a1 100644 --- a/htdocs/core/lib/security.lib.php +++ b/htdocs/core/lib/security.lib.php @@ -378,7 +378,7 @@ function checkUserAccessToObject($user, $featuresarray, $objectid=0, $tableandsh if ($feature == 'task') $feature='projet_task'; $check = array('adherent','banque','user','usergroup','produit','service','produit|service','categorie'); // Test on entity only (Objects with no link to company) - $checksoc = array('societe','fournisseur'); // Test for societe object + $checksoc = array('societe'); // Test for societe object $checkother = array('contact','agenda'); // Test on entity and link to third party. Allowed if link is empty (Ex: contacts...). $checkproject = array('projet','project'); // Test for project object $checktask = array('projet_task'); diff --git a/htdocs/product/fournisseurs.php b/htdocs/product/fournisseurs.php index 2c49319fc19..9c91b5e11d7 100644 --- a/htdocs/product/fournisseurs.php +++ b/htdocs/product/fournisseurs.php @@ -51,6 +51,8 @@ $cost_price=GETPOST('cost_price', 'alpha'); $backtopage=GETPOST('backtopage','alpha'); $error=0; +if (!$user->rights->fournisseur->lire) accessforbidden(); + // If socid provided by ajax company selector if (! empty($_REQUEST['search_fourn_id'])) { @@ -63,7 +65,7 @@ if (! empty($_REQUEST['search_fourn_id'])) $fieldvalue = (! empty($id) ? $id : (! empty($ref) ? $ref : '')); $fieldtype = (! empty($ref) ? 'ref' : 'rowid'); if ($user->societe_id) $socid=$user->societe_id; -$result=restrictedArea($user,'produit|service&fournisseur',$fieldvalue,'product&product','','',$fieldtype); +$result=restrictedArea($user,'produit|service',$fieldvalue,'product&product','','',$fieldtype); $limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit; $sortfield = GETPOST("sortfield",'alpha'); From ef051716410fcb7eef18447f6facc1086924beec Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Mon, 12 Feb 2018 13:48:43 +0100 Subject: [PATCH 06/49] Fix : contract service list context was mixing up with service list from product/service module --- htdocs/contrat/services.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/contrat/services.php b/htdocs/contrat/services.php index f21c476fe35..09df597d017 100644 --- a/htdocs/contrat/services.php +++ b/htdocs/contrat/services.php @@ -75,7 +75,7 @@ $opclotureyear=GETPOST('opclotureyear'); $filter_opcloture=GETPOST('filter_opcloture'); // Initialize context for list -$contextpage=GETPOST('contextpage','aZ')?GETPOST('contextpage','aZ'):'servicelist'.$mode; +$contextpage=GETPOST('contextpage','aZ')?GETPOST('contextpage','aZ'):'contractservicelist'.$mode; // Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array $hookmanager->initHooks(array($contextpage)); From d762226a70ed31da529fa45900327a78710b1566 Mon Sep 17 00:00:00 2001 From: ATM-Nicolas Date: Mon, 12 Feb 2018 14:39:18 +0100 Subject: [PATCH 07/49] FIX : Call to trigger on chargesociale create --- .../compta/sociales/class/chargesociales.class.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/sociales/class/chargesociales.class.php b/htdocs/compta/sociales/class/chargesociales.class.php index cf359d691ec..b6386ae3b98 100644 --- a/htdocs/compta/sociales/class/chargesociales.class.php +++ b/htdocs/compta/sociales/class/chargesociales.class.php @@ -155,6 +155,7 @@ class ChargeSociales extends CommonObject function create($user) { global $conf; + $error=0; $now=dol_now(); @@ -190,8 +191,17 @@ class ChargeSociales extends CommonObject $this->id=$this->db->last_insert_id(MAIN_DB_PREFIX."chargesociales"); //dol_syslog("ChargesSociales::create this->id=".$this->id); - $this->db->commit(); - return $this->id; + $result=$this->call_trigger('PAYMENTSOCIALECONTRIBUTION_CREATE',$user); + if ($result < 0) $error++; + + if(empty($error)) { + $this->db->commit(); + return $this->id; + } + else { + $this->db->rollback(); + return -1*$error; + } } else { From 6f7d6f977bd49a122095e6e4da7af556392457b0 Mon Sep 17 00:00:00 2001 From: De Coninck Laurent Date: Mon, 12 Feb 2018 15:47:04 +0100 Subject: [PATCH 08/49] fix error in latest release --- htdocs/compta/tva/class/tva.class.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/htdocs/compta/tva/class/tva.class.php b/htdocs/compta/tva/class/tva.class.php index 187d21cb0a6..dbc18a83605 100644 --- a/htdocs/compta/tva/class/tva.class.php +++ b/htdocs/compta/tva/class/tva.class.php @@ -655,7 +655,7 @@ class Tva extends CommonObject * @param string $morecss More CSS * @return string Chaine with URL */ - function getNomUrl($withpicto=0, $option='', $notooltip=0, morecss='') + function getNomUrl($withpicto=0, $option='', $notooltip=0, $morecss='') { global $langs, $conf; @@ -669,6 +669,9 @@ class Tva extends CommonObject $linkclose=''; if (empty($notooltip)) { + + + if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { $label=$langs->trans("ShowMyObject"); From 1052213c978274c3bacb2188aba0c6b4b91f96c3 Mon Sep 17 00:00:00 2001 From: De Coninck Laurent Date: Mon, 12 Feb 2018 18:12:43 +0100 Subject: [PATCH 09/49] Fix 8183 - adherent welcome e-mail Fix the adherent welcome e-mail. [see: #8183] --- htdocs/adherents/type.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/adherents/type.php b/htdocs/adherents/type.php index a0f36c409de..01c8841708f 100644 --- a/htdocs/adherents/type.php +++ b/htdocs/adherents/type.php @@ -96,7 +96,7 @@ if ($action == 'add' && $user->rights->adherent->configurer) $object->label = trim($label); $object->subscription = (int) trim($subscription); $object->note = trim($comment); - $object->mail_valid = (boolean) trim($mail_valid); + $object->mail_valid = $db->escape(trim($mail_valid)); $object->vote = (boolean) trim($vote); // Fill array 'array_options' with data from add form @@ -134,7 +134,7 @@ if ($action == 'update' && $user->rights->adherent->configurer) $object->label = trim($label); $object->subscription = (int) trim($subscription); $object->note = trim($comment); - $object->mail_valid = (boolean) trim($mail_valid); + $object->mail_valid = $db->escape(trim($mail_valid)); $object->vote = (boolean) trim($vote); // Fill array 'array_options' with data from add form From 2aaf3a466d97b6898047bbde05f3f5ad50519e8d Mon Sep 17 00:00:00 2001 From: Gerhard Stephan Date: Mon, 12 Feb 2018 21:38:51 +0100 Subject: [PATCH 10/49] Load product data optional fields to the line -> enables to use "line_options_{extrafield}" This fixes the issue #3185 https://github.com/Dolibarr/dolibarr/issues/3185 --- htdocs/core/class/commondocgenerator.class.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/htdocs/core/class/commondocgenerator.class.php b/htdocs/core/class/commondocgenerator.class.php index 666011b3f4a..dee67990cdc 100644 --- a/htdocs/core/class/commondocgenerator.class.php +++ b/htdocs/core/class/commondocgenerator.class.php @@ -527,7 +527,13 @@ abstract class CommonDocGenerator $line->fetch_optionals($line->rowid,$extralabels); $resarray = $this->fill_substitutionarray_with_extrafields($line,$resarray,$extrafields,$array_key=$array_key,$outputlangs); - + + // Load product data optional fields to the line -> enables to use "line_options_{extrafield}" + $product = new Product($this->db); + $result = $product->fetch(null, $line->product_ref); + foreach($product->array_options as $key=>$label) + $resarray["line_".$key] = $label; + return $resarray; } From f93934905fba82d5d4acddb33388bf44fe6c0d50 Mon Sep 17 00:00:00 2001 From: Gerhard Stephan Date: Tue, 13 Feb 2018 08:41:57 +0100 Subject: [PATCH 11/49] Implemented a correct error handling, if the $line->product_ref has not been set --- htdocs/core/class/commondocgenerator.class.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/htdocs/core/class/commondocgenerator.class.php b/htdocs/core/class/commondocgenerator.class.php index dee67990cdc..015173f1f05 100644 --- a/htdocs/core/class/commondocgenerator.class.php +++ b/htdocs/core/class/commondocgenerator.class.php @@ -529,10 +529,13 @@ abstract class CommonDocGenerator $resarray = $this->fill_substitutionarray_with_extrafields($line,$resarray,$extrafields,$array_key=$array_key,$outputlangs); // Load product data optional fields to the line -> enables to use "line_options_{extrafield}" - $product = new Product($this->db); - $result = $product->fetch(null, $line->product_ref); - foreach($product->array_options as $key=>$label) - $resarray["line_".$key] = $label; + if (isset($line->product_ref)) + { + $product = new Product($this->db); + $result = $product->fetch(null, $line->product_ref); + foreach($product->array_options as $key=>$label) + $resarray["line_".$key] = $label; + } return $resarray; } From 144c13998a87fba22acf7bbf20f8b89adc2ad2e0 Mon Sep 17 00:00:00 2001 From: atm-quentin Date: Tue, 13 Feb 2018 09:51:33 +0100 Subject: [PATCH 12/49] NEW_einstein_pdf_modules --- .../modules/commande/doc/pdf_einstein.modules.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php index d8bfff2e528..9fecdc277b5 100644 --- a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php @@ -1311,7 +1311,17 @@ class pdf_einstein extends ModelePDFCommandes if ($showaddress) { // Sender properties - $carac_emetteur = pdf_build_address($outputlangs, $this->emetteur, $object->thirdparty); + $carac_emetteur=''; + // Add internal contact of proposal if defined + $arrayidcontact=$object->getIdContact('internal','SALESREPFOLL'); + if (count($arrayidcontact) > 0) + { + $object->fetch_user($arrayidcontact[0]); + $labelbeforecontactname=($outputlangs->transnoentities("FromContactName")!='FromContactName'?$outputlangs->transnoentities("FromContactName"):$outputlangs->transnoentities("Name")); + $carac_emetteur .= ($carac_emetteur ? "\n" : '' ).$labelbeforecontactname." ".$outputlangs->convToOutputCharset($object->user->getFullName($outputlangs))."\n"; + } + + $carac_emetteur .= pdf_build_address($outputlangs, $this->emetteur, $object->thirdparty); // Show sender $posy=42+$top_shift; From c690dfb25803a2a37b80cecab0b8dbcf19f9eddd Mon Sep 17 00:00:00 2001 From: atm-ph Date: Wed, 14 Feb 2018 10:15:38 +0100 Subject: [PATCH 13/49] Fix apply global progress don't update multicurrency values --- htdocs/compta/facture/class/facture.class.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index 3c35a03f218..f7901a364c8 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -2919,6 +2919,9 @@ class Facture extends CommonInvoice $line->total_ttc = $tabprice[2]; $line->total_localtax1 = $tabprice[9]; $line->total_localtax2 = $tabprice[10]; + $line->multicurrency_total_ht = $tabprice[16]; + $line->multicurrency_total_tva = $tabprice[17]; + $line->multicurrency_total_ttc = $tabprice[18]; $line->update($user); $this->update_price(1); $this->db->commit(); From 7bdf335a8e6216b77c37441ad4db22d79dec961f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 14 Feb 2018 14:26:33 +0100 Subject: [PATCH 14/49] Add a fix to clean data --- htdocs/install/repair.php | 53 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/htdocs/install/repair.php b/htdocs/install/repair.php index 5db07cd1412..4f2e5f53201 100644 --- a/htdocs/install/repair.php +++ b/htdocs/install/repair.php @@ -78,6 +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 clean_perm_table (0 or \'test\' or \'confirmed\') is '.(GETPOST('clean_perm_table','alpha')?GETPOST('clean_perm_table','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 '
'; @@ -161,6 +162,7 @@ $conf->setValues($db); $oneoptionset=0; $oneoptionset=(GETPOST('standard', 'alpha') || GETPOST('restore_thirdparties_logos','alpha') || GETPOST('clean_linked_elements','alpha') || GETPOST('clean_menus','alpha') || GETPOST('clean_orphelin_dir','alpha') || GETPOST('clean_product_stock_batch','alpha') || GETPOST('set_empty_time_spent_amount','alpha') || GETPOST('rebuild_product_thumbs','alpha') + || GETPOST('clean_perm_table','alpha') || GETPOST('force_disable_of_modules_not_found','alpha') || GETPOST('force_utf8_on_tables','alpha')); if ($ok && $oneoptionset) @@ -901,6 +903,57 @@ if ($ok && GETPOST('set_empty_time_spent_amount','alpha')) } +// clean_old_module_entries: Clean data into const when files of module were removed without being +if ($ok && GETPOST('clean_perm_table','alpha')) +{ + print '
*** Clean table user_rights from lines of external modules no more enabled'; + + $listofmods=''; + foreach($conf->modules as $key => $val) + { + $listofmods.=($listofmods?',':'')."'".$val."'"; + } + $sql = 'SELECT id, libelle, module from '.MAIN_DB_PREFIX.'rights_def WHERE module not in ('.$listofmods.') AND id > 100000'; + $resql = $db->query($sql); + if ($resql) + { + $num = $db->num_rows($resql); + if ($num) + { + $i = 0; + while ($i < $num) + { + $obj=$db->fetch_object($resql); + if ($obj->id > 0) + { + print 'Found line with id '.$obj->id.', label "'.$obj->libelle.'" of module "'.$obj->module.'" to delete'; + if (GETPOST('clean_perm_table','alpha') == 'confirmed') + { + $sqldelete = 'DELETE FROM '.MAIN_DB_PREFIX.'rights_def WHERE id = '.$obj->id; + $resqldelete = $db->query($sqldelete); + if (! $resqldelete) + { + dol_print_error($db); + } + print ' - deleted'; + } + print ''; + } + $i++; + } + } + else + { + print 'No lines of a disabled external module (with id > 100000) found into table rights_def'; + } + } + else + { + dol_print_error($db); + } +} + + // clean_old_module_entries: Clean data into const when files of module were removed without being if ($ok && GETPOST('force_disable_of_modules_not_found','alpha')) { From fa2fddcdc13e77e7f098db4e79cd5574d6e06c74 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Wed, 14 Feb 2018 14:30:39 +0100 Subject: [PATCH 15/49] Fix: Update entity field in llx_user_rights and llx_usergroup_rights --- ChangeLog | 4 +- htdocs/install/upgrade2.php | 181 ++++++++++++++++++++++++++++++-- htdocs/langs/en_US/install.lang | 2 + 3 files changed, 178 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index e6d061a58ac..849d8b38855 100644 --- a/ChangeLog +++ b/ChangeLog @@ -287,7 +287,9 @@ Following changes may create regression for some external modules, but were nece 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. 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. + the Home - setup - other admin page. +* If you use Multicompany transverse mode, it will be necessary to check the activation of the modules in the children + entities and to review completely the rights of the groups and the users. * 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. diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php index 7bf283f828d..8a8547a926a 100644 --- a/htdocs/install/upgrade2.php +++ b/htdocs/install/upgrade2.php @@ -366,14 +366,27 @@ if (! GETPOST('action','aZ09') || preg_match('/upgrade/i',GETPOST('action','aZ09 migrate_remise_except_entity($db,$langs,$conf); } - // Scripts for last version - $afterversionarray=explode('.','5.0.9'); - $beforeversionarray=explode('.','6.0.9'); - if (versioncompare($versiontoarray,$afterversionarray) >= 0 && versioncompare($versiontoarray,$beforeversionarray) <= 0) - { - // No particular code - } - } + // Scripts for last version + $afterversionarray=explode('.','5.0.9'); + $beforeversionarray=explode('.','6.0.9'); + if (versioncompare($versiontoarray,$afterversionarray) >= 0 && versioncompare($versiontoarray,$beforeversionarray) <= 0) + { + if (! empty($conf->multicompany->enabled)) + { + global $multicompany_transverse_mode; + + // Only if the transverse mode is not used + if (empty($multicompany_transverse_mode)) + { + // Migrate to add entity value into llx_user_rights + migrate_user_rights_entity($db, $langs, $conf); + + // Migrate to add entity value into llx_usergroup_rights + migrate_usergroup_rights_entity($db, $langs, $conf); + } + } + } + } // Code executed only if migrate is LAST ONE. Must always be done. if (versioncompare($versiontoarray,$versionranarray) >= 0 || versioncompare($versiontoarray,$versionranarray) <= -3) @@ -3967,6 +3980,158 @@ function migrate_remise_except_entity($db,$langs,$conf) print ''; } +/** + * Migrate to add entity value into llx_user_rights + * + * @param DoliDB $db Database handler + * @param Translate $langs Object langs + * @param Conf $conf Object conf + * @return void + */ +function migrate_user_rights_entity($db,$langs,$conf) +{ + print ''; + + print ''.$langs->trans('MigrationUserRightsEntity')."
\n"; + + $error = 0; + + dolibarr_install_syslog("upgrade2::migrate_user_rights_entity"); + + $db->begin(); + + $sqlSelect = "SELECT u.rowid, u.entity"; + $sqlSelect.= " FROM ".MAIN_DB_PREFIX."user as u"; + $sqlSelect.= " WHERE u.entity > 1"; + //print $sqlSelect; + + $resql = $db->query($sqlSelect); + if ($resql) + { + $i = 0; + $num = $db->num_rows($resql); + + if ($num) + { + while ($i < $num) + { + $obj = $db->fetch_object($resql); + + $sqlUpdate = "UPDATE ".MAIN_DB_PREFIX."user_rights SET"; + $sqlUpdate.= " entity = " . $obj->entity; + $sqlUpdate.= " WHERE fk_user = " . $obj->rowid; + + $result=$db->query($sqlUpdate); + if (! $result) + { + $error++; + dol_print_error($db); + } + + print ". "; + $i++; + } + } + else + { + print $langs->trans('AlreadyDone')."
\n"; + } + + if (! $error) + { + $db->commit(); + } + else + { + $db->rollback(); + } + } + else + { + dol_print_error($db); + $db->rollback(); + } + + + print ''; +} + +/** + * Migrate to add entity value into llx_usergroup_rights + * + * @param DoliDB $db Database handler + * @param Translate $langs Object langs + * @param Conf $conf Object conf + * @return void + */ +function migrate_usergroup_rights_entity($db,$langs,$conf) +{ + print ''; + + print ''.$langs->trans('MigrationUserGroupRightsEntity')."
\n"; + + $error = 0; + + dolibarr_install_syslog("upgrade2::migrate_usergroup_rights_entity"); + + $db->begin(); + + $sqlSelect = "SELECT u.rowid, u.entity"; + $sqlSelect.= " FROM ".MAIN_DB_PREFIX."usergroup as u"; + $sqlSelect.= " WHERE u.entity > 1"; + //print $sqlSelect; + + $resql = $db->query($sqlSelect); + if ($resql) + { + $i = 0; + $num = $db->num_rows($resql); + + if ($num) + { + while ($i < $num) + { + $obj = $db->fetch_object($resql); + + $sqlUpdate = "UPDATE ".MAIN_DB_PREFIX."usergroup_rights SET"; + $sqlUpdate.= " entity = " . $obj->entity; + $sqlUpdate.= " WHERE fk_usergroup = " . $obj->rowid; + + $result=$db->query($sqlUpdate); + if (! $result) + { + $error++; + dol_print_error($db); + } + + print ". "; + $i++; + } + } + else + { + print $langs->trans('AlreadyDone')."
\n"; + } + + if (! $error) + { + $db->commit(); + } + else + { + $db->rollback(); + } + } + else + { + dol_print_error($db); + $db->rollback(); + } + + + print ''; +} + /** * Migration directory * diff --git a/htdocs/langs/en_US/install.lang b/htdocs/langs/en_US/install.lang index 4bd1bba3e9a..ed5cdab1b99 100644 --- a/htdocs/langs/en_US/install.lang +++ b/htdocs/langs/en_US/install.lang @@ -193,6 +193,8 @@ MigrationCategorieAssociation=Migration of categories MigrationEvents=Migration of events to add event owner into assignement table MigrationRemiseEntity=Update entity field value of llx_societe_remise MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except +MigrationUserRightsEntity=Update entity field value of llx_user_rights +MigrationUserGroupRightsEntity=Update entity field value of llx_usergroup_rights MigrationReloadModule=Reload module %s ShowNotAvailableOptions=Show not available options HideNotAvailableOptions=Hide not available options From 9f883f3401a74db987b90c0008e7fad826c0877f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 14 Feb 2018 14:50:22 +0100 Subject: [PATCH 16/49] Fix install log disappeared --- htdocs/install/check.php | 6 +++++- htdocs/install/repair.php | 10 ++++------ htdocs/install/step5.php | 6 ++++++ htdocs/install/upgrade2.php | 8 +++++++- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/htdocs/install/check.php b/htdocs/install/check.php index 50409fb55e5..7e6d15115d5 100644 --- a/htdocs/install/check.php +++ b/htdocs/install/check.php @@ -35,7 +35,7 @@ $allowinstall = 0; $allowupgrade = false; $checksok = 1; -$setuplang=GETPOST("selectlang",'',3)?GETPOST("selectlang",'',3):$langs->getDefaultLang(); +$setuplang=GETPOST("selectlang",'az09',3)?GETPOST("selectlang",'az09',3):$langs->getDefaultLang(); $langs->setDefaultLang($setuplang); $langs->load("install"); @@ -345,6 +345,10 @@ else $conf->db->dolibarr_main_db_cryptkey = $dolibarr_main_db_cryptkey; $conf->setValues($db); + // Reset forced setup after the setValues + if (defined('SYSLOG_FILE')) $conf->global->SYSLOG_FILE=constant('SYSLOG_FILE'); + $conf->global->MAIN_ENABLE_LOG_TO_HTML = 1; + // Current version is $conf->global->MAIN_VERSION_LAST_UPGRADE // Version to install is DOL_VERSION $dolibarrlastupgradeversionarray=preg_split('/[\.-]/',isset($conf->global->MAIN_VERSION_LAST_UPGRADE) ? $conf->global->MAIN_VERSION_LAST_UPGRADE : (isset($conf->global->MAIN_VERSION_LAST_INSTALL)?$conf->global->MAIN_VERSION_LAST_INSTALL:'')); diff --git a/htdocs/install/repair.php b/htdocs/install/repair.php index 4f2e5f53201..bc2f165a30c 100644 --- a/htdocs/install/repair.php +++ b/htdocs/install/repair.php @@ -42,10 +42,8 @@ error_reporting(0); @set_time_limit(120); error_reporting($err); -$setuplang=GETPOST("selectlang",'',3)?GETPOST("selectlang",'',3):'auto'; +$setuplang=GETPOST("selectlang",'az09',3)?GETPOST("selectlang",'az09',3):'auto'; $langs->setDefaultLang($setuplang); -$versionfrom=GETPOST("versionfrom",'',3)?GETPOST("versionfrom",'',3):(empty($argv[1])?'':$argv[1]); -$versionto=GETPOST("versionto",'',3)?GETPOST("versionto",'',3):(empty($argv[2])?'':$argv[2]); $langs->loadLangs(array("admin","install","other")); @@ -155,7 +153,9 @@ if ($ok) } $conf->setValues($db); - +// Reset forced setup after the setValues +if (defined('SYSLOG_FILE')) $conf->global->SYSLOG_FILE=constant('SYSLOG_FILE'); +$conf->global->MAIN_ENABLE_LOG_TO_HTML = 1; /* Start action here */ @@ -588,8 +588,6 @@ if ($ok && GETPOST('clean_menus','alpha')) // clean_orphelin_dir: Run purge of directory if ($ok && GETPOST('clean_orphelin_dir','alpha')) { - $conf->setValues($db); - $listmodulepart=array('company','invoice','invoice_supplier','propal','order','order_supplier','contract','tax'); foreach ($listmodulepart as $modulepart) { diff --git a/htdocs/install/step5.php b/htdocs/install/step5.php index b7d320aab59..df8ec9812c1 100644 --- a/htdocs/install/step5.php +++ b/htdocs/install/step5.php @@ -165,6 +165,9 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i',$action)) if ($db->connected) { $conf->setValues($db); + // Reset forced setup after the setValues + if (defined('SYSLOG_FILE')) $conf->global->SYSLOG_FILE=constant('SYSLOG_FILE'); + $conf->global->MAIN_ENABLE_LOG_TO_HTML = 1; // Create admin user include_once DOL_DOCUMENT_ROOT .'/user/class/user.class.php'; @@ -295,6 +298,9 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i',$action)) if ($db->connected) { $conf->setValues($db); + // Reset forced setup after the setValues + if (defined('SYSLOG_FILE')) $conf->global->SYSLOG_FILE=constant('SYSLOG_FILE'); + $conf->global->MAIN_ENABLE_LOG_TO_HTML = 1; // Define if we need to update the MAIN_VERSION_LAST_UPGRADE value in database $tagdatabase=false; diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php index 430c6f46c94..6dbcae4cd24 100644 --- a/htdocs/install/upgrade2.php +++ b/htdocs/install/upgrade2.php @@ -163,7 +163,13 @@ if (! GETPOST('action','aZ09') || preg_match('/upgrade/i',GETPOST('action','aZ09 $conf->db->dolibarr_main_db_cryptkey = $dolibarr_main_db_cryptkey; // Chargement config - if (! $error) $conf->setValues($db); + if (! $error) + { + $conf->setValues($db); + // Reset forced setup after the setValues + if (defined('SYSLOG_FILE')) $conf->global->SYSLOG_FILE=constant('SYSLOG_FILE'); + $conf->global->MAIN_ENABLE_LOG_TO_HTML = 1; + } /*************************************************************************************** From ca71d90d96231c3037a927291e364c5a4d8b37e1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 14 Feb 2018 14:57:53 +0100 Subject: [PATCH 17/49] Fix help --- htdocs/install/repair.php | 103 +++++++++++++++++++------------------- 1 file changed, 51 insertions(+), 52 deletions(-) diff --git a/htdocs/install/repair.php b/htdocs/install/repair.php index bc2f165a30c..229ae0a3c3e 100644 --- a/htdocs/install/repair.php +++ b/htdocs/install/repair.php @@ -901,61 +901,10 @@ if ($ok && GETPOST('set_empty_time_spent_amount','alpha')) } -// clean_old_module_entries: Clean data into const when files of module were removed without being -if ($ok && GETPOST('clean_perm_table','alpha')) -{ - print '
*** Clean table user_rights from lines of external modules no more enabled'; - - $listofmods=''; - foreach($conf->modules as $key => $val) - { - $listofmods.=($listofmods?',':'')."'".$val."'"; - } - $sql = 'SELECT id, libelle, module from '.MAIN_DB_PREFIX.'rights_def WHERE module not in ('.$listofmods.') AND id > 100000'; - $resql = $db->query($sql); - if ($resql) - { - $num = $db->num_rows($resql); - if ($num) - { - $i = 0; - while ($i < $num) - { - $obj=$db->fetch_object($resql); - if ($obj->id > 0) - { - print 'Found line with id '.$obj->id.', label "'.$obj->libelle.'" of module "'.$obj->module.'" to delete'; - if (GETPOST('clean_perm_table','alpha') == 'confirmed') - { - $sqldelete = 'DELETE FROM '.MAIN_DB_PREFIX.'rights_def WHERE id = '.$obj->id; - $resqldelete = $db->query($sqldelete); - if (! $resqldelete) - { - dol_print_error($db); - } - print ' - deleted'; - } - print ''; - } - $i++; - } - } - else - { - print 'No lines of a disabled external module (with id > 100000) found into table rights_def'; - } - } - else - { - dol_print_error($db); - } -} - - // clean_old_module_entries: Clean data into const when files of module were removed without being if ($ok && GETPOST('force_disable_of_modules_not_found','alpha')) { - print '
*** Force modules not found to be disabled'; + print '
*** Force modules not found to be disabled (only modules adding js, css or hooks can be detected as removed)'; $arraylistofkey=array('hooks','js','css'); @@ -1071,6 +1020,56 @@ if ($ok && GETPOST('force_disable_of_modules_not_found','alpha')) } +// clean_old_module_entries: Clean data into const when files of module were removed without being +if ($ok && GETPOST('clean_perm_table','alpha')) +{ + print '
*** Clean table user_rights from lines of external modules no more enabled'; + + $listofmods=''; + foreach($conf->modules as $key => $val) + { + $listofmods.=($listofmods?',':'')."'".$val."'"; + } + $sql = 'SELECT id, libelle, module from '.MAIN_DB_PREFIX.'rights_def WHERE module not in ('.$listofmods.') AND id > 100000'; + $resql = $db->query($sql); + if ($resql) + { + $num = $db->num_rows($resql); + if ($num) + { + $i = 0; + while ($i < $num) + { + $obj=$db->fetch_object($resql); + if ($obj->id > 0) + { + print 'Found line with id '.$obj->id.', label "'.$obj->libelle.'" of module "'.$obj->module.'" to delete'; + if (GETPOST('clean_perm_table','alpha') == 'confirmed') + { + $sqldelete = 'DELETE FROM '.MAIN_DB_PREFIX.'rights_def WHERE id = '.$obj->id; + $resqldelete = $db->query($sqldelete); + if (! $resqldelete) + { + dol_print_error($db); + } + print ' - deleted'; + } + print ''; + } + $i++; + } + } + else + { + print 'No lines of a disabled external module (with id > 100000) found into table rights_def'; + } + } + else + { + dol_print_error($db); + } +} + // clean_linked_elements: Check and clean linked elements From 536eb7e008b8ce0d1e8229feb7e1492b0f4aa4c3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 14 Feb 2018 17:25:13 +0100 Subject: [PATCH 18/49] Fix label of invoice --- htdocs/fourn/card.php | 33 ++++++++++--------- .../fourn/class/fournisseur.facture.class.php | 2 ++ 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/htdocs/fourn/card.php b/htdocs/fourn/card.php index 5a47ce17089..8d10d55b3bd 100644 --- a/htdocs/fourn/card.php +++ b/htdocs/fourn/card.php @@ -107,7 +107,7 @@ if (empty($reshook)) // Fill array 'array_options' with data from update form $extralabels = $extrafields->fetch_name_optionals_label($object->table_element); $ret = $extrafields->setOptionalsFromPost($extralabels, $object, GETPOST('attribute')); - + if ($ret < 0) $error++; if (! $error) { @@ -456,7 +456,7 @@ if ($object->id > 0) /* - * Last supplier proposal + * Latest supplier proposal */ $proposalstatic = new SupplierProposal($db); @@ -465,7 +465,7 @@ if ($object->id > 0) $sql = "SELECT p.rowid, p.ref, p.date_valid as dc, p.fk_statut, p.total_ht, p.tva as total_tva, p.total as total_ttc"; $sql.= " FROM ".MAIN_DB_PREFIX."supplier_proposal as p "; $sql.= " WHERE p.fk_soc =".$object->id; - $sql.= " AND p.entity =".$conf->entity; + $sql.= " AND p.entity IN (".getEntity('supplier_proposal').")"; $sql.= " ORDER BY p.date_valid DESC"; $sql.= " ".$db->plimit($MAXLIST); @@ -528,7 +528,7 @@ if ($object->id > 0) } /* - * Last supplier orders + * Latest supplier orders */ $orderstatic = new CommandeFournisseur($db); @@ -541,6 +541,7 @@ if ($object->id > 0) $sql2.= ' FROM '.MAIN_DB_PREFIX.'societe as s'; $sql2.= ', '.MAIN_DB_PREFIX.'commande_fournisseur as c'; $sql2.= ' WHERE c.fk_soc = s.rowid'; + $sql2.= " AND c.entity IN (".getEntity('commande_fournisseur').")"; $sql2.= ' AND s.rowid = '.$object->id; // Show orders with status validated, shipping started and delivered (well any order we can bill) $sql2.= " AND c.fk_statut IN (5)"; @@ -558,9 +559,9 @@ if ($object->id > 0) // TODO move to DAO class $sql = "SELECT count(p.rowid) as total"; - $sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur as p "; + $sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur as p"; $sql.= " WHERE p.fk_soc =".$object->id; - $sql.= " AND p.entity =".$conf->entity; + $sql.= " AND p.entity IN (".getEntity('commande_fournisseur').")"; $resql=$db->query($sql); if ($resql) { @@ -569,9 +570,9 @@ if ($object->id > 0) } $sql = "SELECT p.rowid,p.ref, p.date_commande as dc, p.fk_statut, p.total_ht, p.tva as total_tva, p.total_ttc"; - $sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur as p "; + $sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur as p"; $sql.= " WHERE p.fk_soc =".$object->id; - $sql.= " AND p.entity =".$conf->entity; + $sql.= " AND p.entity IN (".getEntity('commande_fournisseur').")"; $sql.= " ORDER BY p.date_commande DESC"; $sql.= " ".$db->plimit($MAXLIST); $resql=$db->query($sql); @@ -632,7 +633,7 @@ if ($object->id > 0) } /* - * Last supplier invoices + * Latest supplier invoices */ $langs->load('bills'); @@ -646,7 +647,7 @@ if ($object->id > 0) $sql.= ' FROM '.MAIN_DB_PREFIX.'facture_fourn as f'; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'paiementfourn_facturefourn as pf ON f.rowid=pf.fk_facturefourn'; $sql.= ' WHERE f.fk_soc = '.$object->id; - $sql.= " AND f.entity =".$conf->entity; + $sql.= " AND f.entity IN (".getEntity('facture_fourn').")"; $sql.= ' GROUP BY f.rowid,f.libelle,f.ref,f.ref_supplier,f.fk_statut,f.datef,f.total_ht,f.total_tva,f.total_ttc,f.paye'; $sql.= ' ORDER BY f.datef DESC'; $resql=$db->query($sql); @@ -674,15 +675,15 @@ if ($object->id > 0) print ''; print ''; $facturestatic->id=$obj->rowid; - $facturestatic->ref=($obj->ref?$obj->ref:$obj->rowid).($obj->ref_supplier?' - '.$obj->ref_supplier:''); - $facturestatic->ref_supplier = $obj->ref_supplier; - $facturestatic->total_ht = $obj->total_ht; + $facturestatic->ref=($obj->ref?$obj->ref:$obj->rowid); + $facturestatic->ref_supplier = $obj->ref_supplier; + $facturestatic->libelle = $obj->libelle; + $facturestatic->total_ht = $obj->total_ht; $facturestatic->total_tva = $obj->total_tva; $facturestatic->total_ttc = $obj->total_ttc; - //$facturestatic->ref_supplier=$obj->ref_supplier; print $facturestatic->getNomUrl(1); - //print img_object($langs->trans('ShowBill'),'bill').' '.($obj->ref?$obj->ref:$obj->rowid).' - '.$obj->ref_supplier.''; - print ' '.dol_trunc($obj->libelle,14); + print $obj->ref_supplier?' - '.$obj->ref_supplier:''; + print ($obj->libelle?' - ':'').dol_trunc($obj->libelle,14); print ''; print ''.dol_print_date($db->jdate($obj->df),'day').''; print ''.price($obj->amount).''; diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index 444eb5d200a..292466ea0d8 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -1929,6 +1929,8 @@ class FactureFournisseur extends CommonInvoice $label .= '
' . $langs->trans('Ref') . ': ' . $this->ref; if (! empty($this->ref_supplier)) $label.= '
' . $langs->trans('RefSupplier') . ': ' . $this->ref_supplier; + if (! empty($this->libelle)) + $label.= '
' . $langs->trans('Label') . ': ' . $this->libelle; if (! empty($this->total_ht)) $label.= '
' . $langs->trans('AmountHT') . ': ' . price($this->total_ht, 0, $langs, 0, -1, -1, $conf->currency); if (! empty($this->total_tva)) From 8783857aa5969f383489588ef9b2729161306eb6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 14 Feb 2018 20:33:48 +0100 Subject: [PATCH 19/49] Fix tooltip of website editor --- htdocs/langs/en_US/website.lang | 4 +++- htdocs/website/class/websitepage.class.php | 2 ++ htdocs/website/index.php | 24 ++++++++++++++++------ 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/htdocs/langs/en_US/website.lang b/htdocs/langs/en_US/website.lang index a329661a056..e96e60f14f9 100644 --- a/htdocs/langs/en_US/website.lang +++ b/htdocs/langs/en_US/website.lang @@ -55,7 +55,7 @@ OrEnterPageInfoManually=Or create empty page from scratch... FetchAndCreate=Fetch and Create ExportSite=Export site IDOfPage=Id of page -Banner=Bandeau +Banner=Banner BlogPost=Blog post WebsiteAccount=Web site account WebsiteAccounts=Web site accounts @@ -64,3 +64,5 @@ BackToListOfThirdParty=Back to list for Third Party DisableSiteFirst=Disable website first MyContainerTitle=My web site title AnotherContainer=Another container +OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is intiliazed by grabbing it from an external page (WYSIWYG editor will not be available) +OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabber from an external site \ No newline at end of file diff --git a/htdocs/website/class/websitepage.class.php b/htdocs/website/class/websitepage.class.php index 51c737673a0..408f5d194ae 100644 --- a/htdocs/website/class/websitepage.class.php +++ b/htdocs/website/class/websitepage.class.php @@ -59,10 +59,12 @@ class WebsitePage extends CommonObject public $keywords; public $htmlheader; public $content; + public $grabbed_from; public $status; public $date_creation; public $date_modification; + // BEGIN MODULEBUILDER PROPERTIES /** * @var array Array with all fields and their property. Do not use it as a static var. It may be modified by constructor. diff --git a/htdocs/website/index.php b/htdocs/website/index.php index 6f515568bc2..f57d28a2acb 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -1476,6 +1476,12 @@ if (count($object->records) > 0) //print ''; print ''; + $websitepage = new WebSitePage($db); + if ($pageid > 0 && ($action == 'preview' || $action == 'createfromclone' || $action == 'createpagefromclone')) + { + $websitepage->fetch($pageid); + } + if ($action == 'preview' || $action == 'createfromclone' || $action == 'createpagefromclone') { $disabled=''; @@ -1516,7 +1522,15 @@ if (count($object->records) > 0) print '   '; print ''; - print ''; + if ($websitepage->grabbed_from) + { + print ''; + } + else + { + print ''; + } + print ''; if ($object->fk_default_home > 0 && $pageid == $object->fk_default_home) print ''; else print ''; @@ -1529,11 +1543,8 @@ if (count($object->records) > 0) print '
'; - if ($website && $pageid > 0 && ($action == 'preview' || $action == 'createfromclone' || $action == 'createpagefromclone')) + if ($pageid > 0 && ($action == 'preview' || $action == 'createfromclone' || $action == 'createpagefromclone')) { - $websitepage = new WebSitePage($db); - $websitepage->fetch($pageid); - $realpage=$urlwithroot.'/public/website/index.php?website='.$website.'&pageref='.$websitepage->pageurl; $pagealias = $websitepage->pageurl; @@ -1894,8 +1905,9 @@ if ($action == 'editmeta' || $action == 'createcontainer') print ''; print $langs->trans("URL"); print ''; - print ' '; + print ' '; print ''; + print '

'.info_admin($langs->trans("OnlyEditionOfSourceForGrabbedContentFuture"), 0, 0, '1'); print ''; print ''; From 23ee6748f7244b199cdaeaff5ffe32602d6f1f05 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 14 Feb 2018 20:36:13 +0100 Subject: [PATCH 20/49] Update fournisseurs.php --- htdocs/product/fournisseurs.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/product/fournisseurs.php b/htdocs/product/fournisseurs.php index 9c91b5e11d7..68f0d673ca4 100644 --- a/htdocs/product/fournisseurs.php +++ b/htdocs/product/fournisseurs.php @@ -51,8 +51,6 @@ $cost_price=GETPOST('cost_price', 'alpha'); $backtopage=GETPOST('backtopage','alpha'); $error=0; -if (!$user->rights->fournisseur->lire) accessforbidden(); - // If socid provided by ajax company selector if (! empty($_REQUEST['search_fourn_id'])) { @@ -67,6 +65,8 @@ $fieldtype = (! empty($ref) ? 'ref' : 'rowid'); if ($user->societe_id) $socid=$user->societe_id; $result=restrictedArea($user,'produit|service',$fieldvalue,'product&product','','',$fieldtype); +if (empty($user->rights->fournisseur->lire)) accessforbidden(); + $limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit; $sortfield = GETPOST("sortfield",'alpha'); $sortorder = GETPOST("sortorder",'alpha'); From ea2e46cccd091eb3ae07a40389eed178a6a5690c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 14 Feb 2018 20:46:40 +0100 Subject: [PATCH 21/49] Update chargesociales.class.php --- htdocs/compta/sociales/class/chargesociales.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/sociales/class/chargesociales.class.php b/htdocs/compta/sociales/class/chargesociales.class.php index b6386ae3b98..07b7d1a5ae7 100644 --- a/htdocs/compta/sociales/class/chargesociales.class.php +++ b/htdocs/compta/sociales/class/chargesociales.class.php @@ -191,7 +191,7 @@ class ChargeSociales extends CommonObject $this->id=$this->db->last_insert_id(MAIN_DB_PREFIX."chargesociales"); //dol_syslog("ChargesSociales::create this->id=".$this->id); - $result=$this->call_trigger('PAYMENTSOCIALECONTRIBUTION_CREATE',$user); + $result=$this->call_trigger('PAYMENTSOCIALCONTRIBUTION_CREATE',$user); if ($result < 0) $error++; if(empty($error)) { From 0d00c51c2aaf0a614eed10ebc912bd903d7aa02a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 14 Feb 2018 20:51:05 +0100 Subject: [PATCH 22/49] Update type.php --- htdocs/adherents/type.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/adherents/type.php b/htdocs/adherents/type.php index 01c8841708f..2d36f1d7fc5 100644 --- a/htdocs/adherents/type.php +++ b/htdocs/adherents/type.php @@ -96,7 +96,7 @@ if ($action == 'add' && $user->rights->adherent->configurer) $object->label = trim($label); $object->subscription = (int) trim($subscription); $object->note = trim($comment); - $object->mail_valid = $db->escape(trim($mail_valid)); + $object->mail_valid = trim($mail_valid); $object->vote = (boolean) trim($vote); // Fill array 'array_options' with data from add form From d0fdf700d77a474ac03fae4cf0868ead674265a5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 14 Feb 2018 20:51:33 +0100 Subject: [PATCH 23/49] Update type.php --- htdocs/adherents/type.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/adherents/type.php b/htdocs/adherents/type.php index 2d36f1d7fc5..a66108dec21 100644 --- a/htdocs/adherents/type.php +++ b/htdocs/adherents/type.php @@ -134,7 +134,7 @@ if ($action == 'update' && $user->rights->adherent->configurer) $object->label = trim($label); $object->subscription = (int) trim($subscription); $object->note = trim($comment); - $object->mail_valid = $db->escape(trim($mail_valid)); + $object->mail_valid = trim($mail_valid); $object->vote = (boolean) trim($vote); // Fill array 'array_options' with data from add form From 78697c1735a0861c4136ddde0314433aed614bef Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 14 Feb 2018 21:14:24 +0100 Subject: [PATCH 24/49] USe fk_product is better than ref --- htdocs/comm/propal/card.php | 10 ++++++---- htdocs/core/class/commondocgenerator.class.php | 18 +++++++++--------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php index 8bd9f7ffa98..54e3cf36c45 100644 --- a/htdocs/comm/propal/card.php +++ b/htdocs/comm/propal/card.php @@ -104,8 +104,11 @@ if ($id > 0 || ! empty($ref)) { $ret = $object->fetch($id, $ref); if ($ret > 0) $ret = $object->fetch_thirdparty(); - if ($ret < 0) - dol_print_error('', $object->error); + if ($ret <= 0) + { + setEventMessages($object->error, $object->errors, 'errors'); + $action = ''; + } } // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context @@ -1711,7 +1714,7 @@ if ($action == 'create') print ''; } -} else { +} elseif ($object->id > 0) { /* * Show object in view mode */ @@ -1818,7 +1821,6 @@ if ($action == 'create') $linkback = '' . $langs->trans("BackToList") . ''; - $morehtmlref='
'; // Ref customer $morehtmlref.=$form->editfieldkey("RefCustomer", 'ref_client', $object->ref_client, $object, $user->rights->propal->creer, 'string', '', 0, 1); diff --git a/htdocs/core/class/commondocgenerator.class.php b/htdocs/core/class/commondocgenerator.class.php index 015173f1f05..aeca3d5a102 100644 --- a/htdocs/core/class/commondocgenerator.class.php +++ b/htdocs/core/class/commondocgenerator.class.php @@ -425,7 +425,7 @@ abstract class CommonDocGenerator { $object->fetch_projet(); } - + $resarray[$array_key.'_project_ref'] = $object->project->ref; $resarray[$array_key.'_project_title'] = $object->project->title; $resarray[$array_key.'_project_description'] = $object->project->description; @@ -510,7 +510,7 @@ abstract class CommonDocGenerator 'line_multicurrency_total_tva_locale' => price($line->multicurrency_total_tva, 0, $outputlangs), 'line_multicurrency_total_ttc_locale' => price($line->multicurrency_total_ttc, 0, $outputlangs), ); - + // Units if ($conf->global->PRODUCT_USE_UNITS) { @@ -527,16 +527,16 @@ abstract class CommonDocGenerator $line->fetch_optionals($line->rowid,$extralabels); $resarray = $this->fill_substitutionarray_with_extrafields($line,$resarray,$extrafields,$array_key=$array_key,$outputlangs); - + // Load product data optional fields to the line -> enables to use "line_options_{extrafield}" - if (isset($line->product_ref)) + if (isset($line->fk_product) && $line->fk_product > 0) { - $product = new Product($this->db); - $result = $product->fetch(null, $line->product_ref); - foreach($product->array_options as $key=>$label) + $tmpproduct = new Product($this->db); + $result = $tmpproduct->fetch($line->fk_product); + foreach($tmpproduct->array_options as $key=>$label) $resarray["line_".$key] = $label; - } - + } + return $resarray; } From 7ba55ea12e05c13f8030bc80e4cd6088bbf8cf4a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 14 Feb 2018 22:17:53 +0100 Subject: [PATCH 25/49] Fix phpunit --- test/phpunit/CodingPhpTest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/phpunit/CodingPhpTest.php b/test/phpunit/CodingPhpTest.php index 2e4deb372eb..6c3a1bda329 100644 --- a/test/phpunit/CodingPhpTest.php +++ b/test/phpunit/CodingPhpTest.php @@ -196,10 +196,10 @@ class CodingPhpTest extends PHPUnit_Framework_TestCase $ok=true; $matches=array(); // Check string ='".$this->xxx with xxx that is not 'escape'. It means we forget a db->escape when forging sql request. - preg_match_all('/(...................)\$_SERVER\[\'QUERY_STRING\'\]/', $filecontent, $matches, PREG_SET_ORDER); + preg_match_all('/(..............)\$_SERVER\[\'QUERY_STRING\'\]/', $filecontent, $matches, PREG_SET_ORDER); foreach($matches as $key => $val) { - if ($val[1] != 'dol_escape_htmltag(' && $val[1] != 'l_string_nohtmltag(') + if ($val[1] != 'scape_htmltag(' && $val[1] != 'ing_nohtmltag(' && $val[1] != 'dol_escape_js(') { $ok=false; break; From 5f0f9ff32617ef33ea47b1aab02a4f93a1b7cf41 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 14 Feb 2018 23:57:57 +0100 Subject: [PATCH 26/49] Fix delete page --- htdocs/core/class/commonobject.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index ecabc30b681..6a1ef4b0004 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -6458,7 +6458,7 @@ abstract class CommonObject } } - if (! $error) + /*if (! $error) { $sql = "DELETE FROM " . MAIN_DB_PREFIX . $this->table_element."_extrafields"; $sql.= " WHERE fk_object=" . $this->id; @@ -6469,7 +6469,7 @@ abstract class CommonObject $this->errors[] = $this->db->lasterror(); $error++; } - } + }*/ if (! $error) { From b515448bbdc78356dc27a0ccf22062e7b653761b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 15 Feb 2018 00:01:25 +0100 Subject: [PATCH 27/49] Fix delete when no extrafields used --- htdocs/core/class/commonobject.class.php | 4 +-- .../template/class/myobject.class.php | 6 +++- .../modulebuilder/template/myobject_card.php | 3 +- htdocs/website/index.php | 32 +++++++------------ 4 files changed, 20 insertions(+), 25 deletions(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 6a1ef4b0004..60e491162f2 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -6458,7 +6458,7 @@ abstract class CommonObject } } - /*if (! $error) + if (! $error && ! empty($this->isextrafieldmanaged)) { $sql = "DELETE FROM " . MAIN_DB_PREFIX . $this->table_element."_extrafields"; $sql.= " WHERE fk_object=" . $this->id; @@ -6469,7 +6469,7 @@ abstract class CommonObject $this->errors[] = $this->db->lasterror(); $error++; } - }*/ + } if (! $error) { diff --git a/htdocs/modulebuilder/template/class/myobject.class.php b/htdocs/modulebuilder/template/class/myobject.class.php index 616b7ec495d..e40b6b178e6 100644 --- a/htdocs/modulebuilder/template/class/myobject.class.php +++ b/htdocs/modulebuilder/template/class/myobject.class.php @@ -41,9 +41,13 @@ class MyObject extends CommonObject */ public $table_element = 'mymodule_myobject'; /** - * @var array Does myobject support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe + * @var int Does myobject support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe */ public $ismultientitymanaged = 0; + /** + * @var int Does myobject support extrafields ? 0=No, 1=Yes + */ + public $isextrafieldmanaged = 1; /** * @var string String with name of icon for myobject. Must be the part after the 'object_' into object_myobject.png */ diff --git a/htdocs/modulebuilder/template/myobject_card.php b/htdocs/modulebuilder/template/myobject_card.php index 94123008244..68cefa714c3 100644 --- a/htdocs/modulebuilder/template/myobject_card.php +++ b/htdocs/modulebuilder/template/myobject_card.php @@ -235,7 +235,8 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $formconfirm = ''; // Confirmation to delete - if ($action == 'delete') { + if ($action == 'delete') + { $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('DeleteMyObject'), $langs->trans('ConfirmDeleteMyObject'), 'confirm_delete', '', 0, 1); } diff --git a/htdocs/website/index.php b/htdocs/website/index.php index f57d28a2acb..26c4243d382 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -188,15 +188,6 @@ if ($action == 'adddir' && $permtouploadfile) } */ -// Remove directory -if ($action == 'confirm_deletesection' && GETPOST('confirm') == 'yes') -{ - //$result=$ecmdir->delete($user); - setEventMessages($langs->trans("ECMSectionWasRemoved", $ecmdir->label), null, 'mesgs'); - - clearstatcache(); -} - if (GETPOST('refreshsite')) // If we change the site, we reset the pageid and cancel addsite action. { @@ -656,6 +647,8 @@ if ($action == 'addcontainer') // Delete page if ($action == 'delete') { + $error = 0; + $db->begin(); $res = $object->fetch(0, $website); @@ -665,27 +658,24 @@ if ($action == 'delete') if ($res > 0) { $res = $objectpage->delete($user); - if (! $res > 0) + if ($res <= 0) { $error++; setEventMessages($objectpage->error, $objectpage->errors, 'errors'); } + } - if (! $error) - { - $db->commit(); - setEventMessages($langs->trans("PageDeleted", $objectpage->pageurl, $website), null, 'mesgs'); + if (! $error) + { + $db->commit(); + setEventMessages($langs->trans("PageDeleted", $objectpage->pageurl, $website), null, 'mesgs'); - header("Location: ".$_SERVER["PHP_SELF"].'?website='.$website); - exit; - } - else - { - $db->rollback(); - } + header("Location: ".$_SERVER["PHP_SELF"].'?website='.$website); + exit; } else { + $db->rollback(); dol_print_error($db); } } From 0fc302fe980cf5898351273040fabf3797b5bae3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 15 Feb 2018 00:06:43 +0100 Subject: [PATCH 28/49] Sync transifex --- htdocs/langs/en_AU/main.lang | 16 ++--- htdocs/langs/es_EC/admin.lang | 25 +++++--- htdocs/langs/es_ES/admin.lang | 16 ++--- htdocs/langs/es_ES/bills.lang | 2 +- htdocs/langs/es_ES/companies.lang | 2 +- htdocs/langs/es_ES/compta.lang | 2 +- htdocs/langs/es_ES/ecm.lang | 4 +- htdocs/langs/es_ES/mails.lang | 2 +- htdocs/langs/es_ES/main.lang | 4 +- htdocs/langs/es_ES/other.lang | 6 +- htdocs/langs/es_ES/salaries.lang | 2 +- htdocs/langs/es_ES/users.lang | 6 +- htdocs/langs/fr_FR/accountancy.lang | 6 +- htdocs/langs/fr_FR/admin.lang | 14 ++--- htdocs/langs/fr_FR/bills.lang | 4 +- htdocs/langs/fr_FR/companies.lang | 2 +- htdocs/langs/fr_FR/ecm.lang | 4 +- htdocs/langs/fr_FR/interventions.lang | 2 +- htdocs/langs/fr_FR/mails.lang | 2 +- htdocs/langs/fr_FR/main.lang | 2 +- htdocs/langs/fr_FR/modulebuilder.lang | 4 +- htdocs/langs/fr_FR/multicurrency.lang | 4 +- htdocs/langs/fr_FR/orders.lang | 4 +- htdocs/langs/fr_FR/other.lang | 6 +- htdocs/langs/fr_FR/printing.lang | 2 + htdocs/langs/fr_FR/salaries.lang | 2 +- htdocs/langs/fr_FR/trips.lang | 10 ++-- htdocs/langs/fr_FR/users.lang | 6 +- htdocs/langs/nb_NO/admin.lang | 4 +- htdocs/langs/nb_NO/compta.lang | 2 +- htdocs/langs/nl_NL/admin.lang | 6 +- htdocs/langs/pt_BR/accountancy.lang | 86 +++++++++++++++++++++++++-- htdocs/langs/pt_BR/admin.lang | 41 ++++++++----- htdocs/langs/pt_BR/banks.lang | 13 ++++ htdocs/langs/pt_BR/bills.lang | 65 ++++++++++++++++++++ htdocs/langs/pt_BR/bookmarks.lang | 2 + htdocs/langs/pt_BR/boxes.lang | 9 +++ htdocs/langs/pt_BR/categories.lang | 1 + htdocs/langs/pt_BR/commercial.lang | 6 ++ htdocs/langs/pt_BR/companies.lang | 20 +++++++ htdocs/langs/pt_BR/compta.lang | 50 ++++++++++++++++ htdocs/langs/pt_BR/contracts.lang | 6 ++ htdocs/langs/pt_BR/cron.lang | 16 +++++ htdocs/langs/pt_BR/deliveries.lang | 1 + htdocs/langs/pt_BR/dict.lang | 16 +++++ htdocs/langs/pt_BR/ecm.lang | 10 +++- htdocs/langs/pt_BR/exports.lang | 7 +++ htdocs/langs/pt_BR/holiday.lang | 3 + htdocs/langs/pt_BR/install.lang | 7 +++ htdocs/langs/pt_BR/interventions.lang | 4 ++ htdocs/langs/pt_BR/languages.lang | 1 + htdocs/langs/pt_BR/ldap.lang | 3 + htdocs/langs/pt_BR/loan.lang | 9 +++ htdocs/langs/pt_BR/main.lang | 1 - htdocs/langs/pt_BR/margins.lang | 1 + htdocs/langs/pt_BR/members.lang | 4 ++ htdocs/langs/pt_BR/oauth.lang | 6 ++ htdocs/langs/pt_BR/opensurvey.lang | 1 + htdocs/langs/pt_BR/orders.lang | 3 + htdocs/langs/pt_BR/paybox.lang | 1 + htdocs/langs/pt_BR/paypal.lang | 5 ++ htdocs/langs/pt_BR/productbatch.lang | 1 + htdocs/langs/pt_BR/propal.lang | 1 + htdocs/langs/pt_BR/resource.lang | 1 + htdocs/langs/pt_BR/sendings.lang | 1 + htdocs/langs/pt_BR/sms.lang | 1 + htdocs/langs/pt_PT/admin.lang | 4 +- htdocs/langs/pt_PT/bills.lang | 12 ++-- htdocs/langs/pt_PT/companies.lang | 2 +- htdocs/langs/pt_PT/compta.lang | 2 +- htdocs/langs/pt_PT/ecm.lang | 8 +-- htdocs/langs/pt_PT/interventions.lang | 6 +- htdocs/langs/pt_PT/loan.lang | 4 +- htdocs/langs/pt_PT/main.lang | 4 +- htdocs/langs/pt_PT/trips.lang | 2 +- htdocs/langs/pt_PT/withdrawals.lang | 4 +- htdocs/langs/pt_PT/workflow.lang | 8 +-- 77 files changed, 503 insertions(+), 129 deletions(-) diff --git a/htdocs/langs/en_AU/main.lang b/htdocs/langs/en_AU/main.lang index 5edc39f2f32..423a2e5e379 100644 --- a/htdocs/langs/en_AU/main.lang +++ b/htdocs/langs/en_AU/main.lang @@ -4,19 +4,19 @@ FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. SeparatorThousand=, -FormatDateShort=%m/%d/%Y -FormatDateShortInput=%m/%d/%Y -FormatDateShortJava=MM/dd/yyyy -FormatDateShortJavaInput=MM/dd/yyyy -FormatDateShortJQuery=mm/dd/yy -FormatDateShortJQueryInput=mm/dd/yy +FormatDateShort=%d/%m/%Y +FormatDateShortInput=%d/%m/%Y +FormatDateShortJava=dd/MM/yyyy +FormatDateShortJavaInput=dd/MM/yyyy +FormatDateShortJQuery=dd/mm/yy +FormatDateShortJQueryInput=dd/mm/yy FormatHourShortJQuery=HH:MI FormatHourShort=%I:%M %p FormatHourShortDuration=%H:%M FormatDateTextShort=%b %d, %Y FormatDateText=%B %d, %Y -FormatDateHourShort=%m/%d/%Y %I:%M %p -FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p +FormatDateHourShort=%d/%m/%Y %I:%M %p +FormatDateHourSecShort=%d/%m/%Y %I:%M:%S %p FormatDateHourTextShort=%b %d, %Y, %I:%M %p FormatDateHourText=%B %d, %Y, %I:%M %p ErrorNoVATRateDefinedForSellerCountry=Error, no GST rates defined for country '%s'. diff --git a/htdocs/langs/es_EC/admin.lang b/htdocs/langs/es_EC/admin.lang index 3224e309358..aa4ce9ecbfc 100644 --- a/htdocs/langs/es_EC/admin.lang +++ b/htdocs/langs/es_EC/admin.lang @@ -199,7 +199,7 @@ 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_ERRORS_TO=Correo electrónico utilizado como campo 'Errores a' en los correos electrónicos enviados 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 @@ -323,7 +323,7 @@ ExtrafieldParamHelpcheckbox=La lista de valores debe ser líneas con la clave de ExtrafieldParamHelpradio=La lista de valores debe ser líneas con la clave de formato, valor (donde la clave no puede ser '0')

por ejemplo:
1,valor1
2,valor2
3,valor3
... ExtrafieldParamHelpsellist=La lista de valores viene de una tabla
Sintaxis : table_name:label_field:id_field::filter
Ejemplo : c_typent:libelle:id::filtro

- idfilter es necesariamente una llave int primario
- el filtro puede ser una prueba simple (ej activo=1) para mostrar sólo el valor activo
También puede usar $ID$ en el filtro donde es el id actual del objeto actual
Para hacer un SELECT en filtro use $SEL$
si desea filtrar en campos extra 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 en otra lista:
c_typent:libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelpchkbxlst=La lista de valores proviene de un tabla
Syntax: nombre_tabla:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter puede ser una prueba simple (por ejemplo, activa=1) para mostrar sólo el valor activo
También puede usar $ID$ en filtro con el id actual del objeto actual
Para hacer un SELECT en el filtro use $SEL$
si quiere filtrar en extrafields use sintaxis extra.fieldcode=...(donde código de campo es el código de extrafield)

Para tener la lista dependiendo 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 +ExtrafieldParamHelplink=Los parámetros deben ser ObjectName: Classpath
Syntax: ObjectName: Classpath
Examples:
Societe: societe/class/societe.class.php
Contacto: contact/class/contact.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) @@ -381,7 +381,6 @@ Module25Desc=Administración de pedidos de clientes Module30Name=Facturas Module30Desc=Gestión de facturas y notas de crédito para clientes. Gestión de facturas para proveedores Module40Desc=Administración de suministros y compras (órdenes y facturas) -Module42Name=Registros Module42Desc=Instalaciones de registro (archivo, syslog,...). Dichos registros son para propósitos técnicos/depuración. Module49Desc=Administración del editor Module50Desc=Administración de producto @@ -447,8 +446,7 @@ Module2300Name=Trabajos programados Module2300Desc=Gestión de trabajos programados (alias cron o chrono table) Module2400Name=Eventos / Agenda Module2400Desc=Seguir los eventos realizados y próximos. Permita que la aplicación registre eventos automáticos para propósitos de seguimiento o registre eventos manuales o cita. -Module2500Name=Administración de contenidos electrónicos -Module2500Desc=Guardar y compartir documentos +Module2500Desc=Sistema de gestión de documentos / gestión electrónica de contenidos. Organización automática de sus documentos generados o almacenados. Compártelos cuando lo necesites. Module2600Name=API / Servicios Web (servidor SOAP) Module2600Desc=Habilitar el servidor SOAP de Dolibarr que proporciona servicios API Module2610Name=API / Servicios Web (servidor REST) @@ -458,7 +456,7 @@ Module2660Desc=Habilitar el cliente de servicios web de Dolibarr (Puede ser util Module2700Desc=Utilice el servicio Gravatar en línea (www.gravatar.com) para mostrar la foto de los usuarios/miembros (que se encuentran con sus correos electrónicos). Necesita un acceso a Internet Module2900Desc=Capacidades de conversiones GeoIP Maxmind Module3100Desc=Agregar un botón de Skype a usuarios / cliente / proveedor / contactos / tarjetas de miembros -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. +Module3200Desc=Active el registro de algunos eventos comerciales en un registro inalterable. Los eventos se archivan en tiempo real. El registro es una tabla de eventos encadenados que solo se puede leer y exportar. Este módulo puede ser obligatorio para algunos países. Module4000Desc=Administración de recursos humanos (administración del departamento, los contratos y los sentimientos de los empleados) Module5000Desc=Permite gestionar múltiples empresas Module6000Name=Flujo de Trabajo @@ -467,7 +465,6 @@ Module10000Name=Sitios Web Module10000Desc=Cree sitios web públicos con un editor WYSIWYG. Simplemente configure su servidor web (Apache, Nginx, ...) para que apunte al directorio dedicado de Dolibarr para tenerlo en línea en Internet con su propio nombre de dominio. Module20000Name=Administración de solicitudes de permisos Module20000Desc=Declare y siga las solicitudes de los empleados -Module39000Name=Lote de producto Module39000Desc=Administración de lotes o numeros de series, fechas de caducidad y venta de los productos Module50000Name=Paybox Module50000Desc=Módulo para ofrecer una página de pago en línea que acepta pagos con tarjeta de crédito/débito a través de PayBox. Esto se puede usar para permitir que sus clientes realicen pagos gratuitos o para un pago en un objeto Dolibarr en particular (factura, orden, ...) @@ -651,6 +648,7 @@ Permission1202=Crear / Modificar una exportación Permission1231=Leer facturas de proveedores Permission1232=Crear / modificar facturas de proveedores Permission1235=Enviar facturas de proveedor por correo electrónico +Permission1236=Exportar facturas de proveedores, atributos y pagos Permission1237=Exportar órdenes de proveedores y sus detalles Permission1251=Ejecutar importaciones masivas de datos externos en la base de datos (carga de datos) Permission1321=Exportar facturas, atributos y pagos de clientes @@ -698,6 +696,7 @@ DictionarySendingMethods=Métodos de envío DictionaryStaff=Personal DictionaryAvailability=Retraso en la entrega DictionarySource=Origen de las propuestas / pedidos +DictionaryAccountancyCategory=Grupos personalizados para informes DictionaryAccountancysystem=Modelos para el plan de cuentas DictionaryAccountancyJournal=Diarios / libros de contabilidad DictionaryEMailTemplates=Plantillas de correo electrónico @@ -864,11 +863,15 @@ MAIN_PROXY_PASS=Contraseña para utilizar el servidor proxy DefineHereComplementaryAttributes=Defina aquí todos los atributos, que ya no están disponibles de forma predeterminada y que desea que sean compatible con %s. ExtraFields=Atributos complementarios ExtraFieldsLines=Atributos complementarios (líneas) +ExtraFieldsLinesRec=Atributos complementarios (plantillas de líneas de facturas) +ExtraFieldsSupplierOrdersLines=Atributos complementarios (líneas de pedido) +ExtraFieldsSupplierInvoicesLines=Atributos complementarios (líneas de factura) ExtraFieldsThirdParties=Atributos complementarios (cliente/proveedor) ExtraFieldsContacts=Atributos complementarios (contacto/dirección) ExtraFieldsMember=Atributos complementarios (miembro) ExtraFieldsMemberType=Atributos complementarios (tipo de miembro) ExtraFieldsCustomerInvoices=Atributos complementarios (facturas) +ExtraFieldsCustomerInvoicesRec=Atributos complementarios (plantillas de facturas) ExtraFieldsSupplierOrders=Atributos complementarios (pedidos) ExtraFieldsSupplierInvoices=Atributos complementarios (facturas) ExtraFieldsProject=Atributos complementarios (proyectos) @@ -1361,11 +1364,19 @@ ToGenerateCodeDefineAutomaticRuleFirst=Para poder generar códigos automáticame SeeSubstitutionVars=Ver * nota para la lista de posibles variables de sustitución SeeChangeLog=Consulte el archivo ChangeLog (solo en inglés) AllPublishers=Todos los editores +AddRemoveTabs=Añadir o eliminar pestañas +AddDataTables=Añadir tablas de objetos AddDictionaries=Agregar tablas de diccionarios +AddData=Agregar objetos o datos de diccionarios AddBoxes=Añadir widgets AddSheduledJobs=Añadir trabajos programados AddHooks=Añadir ganchos AddTriggers=Añadir disparadores +AddMenus=Añadir menús +AddPermissions=Añadir permisos +AddExportProfiles=Añadir perfiles de exportación +AddImportProfiles=Añadir perfiles de importación +AddOtherPagesOrServices=Añadir otras páginas o servicios AddModels=Agregar plantillas de documento o de numeración AddSubstitutions=Agregar sustituciones de claves DetectionNotPossible=La detección no es posible diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang index 5776fdc61e6..142337a0206 100644 --- a/htdocs/langs/es_ES/admin.lang +++ b/htdocs/langs/es_ES/admin.lang @@ -269,10 +269,10 @@ MAIN_MAIL_SMTP_SERVER=Nombre host o ip del servidor SMTP (Por defecto en php.ini MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Puerto del servidor SMTP (No definido en PHP en sistemas de tipo Unix) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Nombre servidor o ip del servidor SMTP (No definido en PHP en sistemas de tipo Unix) MAIN_MAIL_EMAIL_FROM=E-mail del remitente para e-mails automáticos (por defecto en php.ini: %s) -MAIN_MAIL_ERRORS_TO=Email used as 'Errors-To' field in emails sent +MAIN_MAIL_ERRORS_TO=E-mail a usar para los e-mails de error enviados MAIN_MAIL_AUTOCOPY_TO= Enviar automáticamente copia oculta de los e-mails enviados a MAIN_DISABLE_ALL_MAILS=Deshabilitar todos los envíos de e-mail (para propósitos de prueba o demostraciones) -MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes) +MAIN_MAIL_FORCE_SENDTO=Enviar todos los e-mails a (en lugar de destinatarios reales, para pruebas) MAIN_MAIL_SENDMODE=Método de envío de e-mails MAIN_MAIL_SMTPS_ID=ID de autentificación SMTP si se requiere autenticación SMTP MAIN_MAIL_SMTPS_PW=Contraseña autentificación SMTP si se requiere autentificación SMTP @@ -416,7 +416,7 @@ ExtrafieldParamHelpcheckbox=El listado de parámetros tiene que ser key,valor

por ejemplo:
1,value1
2,value2
3,value3
... ExtrafieldParamHelpsellist=Lista de parámetros proviene de una tabla
Sintaxis: nombre_tabla: etiqueta_field: id_field :: filtro
Ejemplo: c_typent: libelle: id :: filtro

filtro puede ser una prueba simple (por ejemplo, activa = 1) Para mostrar sólo el valor activo
También puede utilizar $ ID $ en el filtro witch es el actual id del objeto actual
Para hacer un SELECT en el filtro de uso $ SEL $
si desea filtrar en campos adicionales utilizar la sintaxis Extra.fieldcode = ... (donde código de campo es el código de campo adicional)

Para que la lista dependa de otra lista de campos adicionales:
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 ExtrafieldParamHelpchkbxlst=Lista de parámetros proviene de una tabla
Sintaxis: nombre_tabla: etiqueta_field: id_field :: filtro
Ejemplo: c_typent: libelle: id :: filtro

filtro puede ser una prueba simple (por ejemplo, activa = 1) Para mostrar sólo el valor activo
También puede utilizar $ ID $ en el filtro witch es el id actual del objeto actual
Para hacer un SELECT en el filtro de uso $ SEL $
si desea filtrar en campos adicionales utilizar la sintaxis Extra.fieldcode = ... (donde código de campo es el código de campo adicional)

Para que la lista dependa de otra lista de campos adicionales:
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=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Examples :
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php +ExtrafieldParamHelplink=Los parámetros deben ser ObjectName: Classpath
Sintaxis: ObjectName:Classpath
Ejemplo:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php LibraryToBuildPDF=Libreria usada en la generación de los PDF WarningUsingFPDF=Atención: Su archivo conf.php contiene la directiva dolibarr_pdf_force_fpdf=1. Esto hace que se use la librería FPDF para generar sus archivos PDF. Esta librería es antigua y no cubre algunas funcionalidades (Unicode, transparencia de imágenes, idiomas cirílicos, árabes o asiáticos, etc.), por lo que puede tener problemas en la generación de los PDF.
Para resolverlo, y disponer de un soporte completo de PDF, puede descargar la librería TCPDF , y a continuación comentar o eliminar la línea $dolibarr_pdf_force_fpdf=1, y añadir en su lugar $dolibarr_lib_TCPDF_PATH='ruta_a_TCPDF' LocalTaxDesc=Algunos países aplican 2 o 3 tasas a cada línea de factura. Si es el caso, escoja el tipo de la segunda y tercera tasa y su valor. Los posibles tipos son:
1 : tasa local aplicable a productos y servicios sin IVA (tasa local es calculada sobre la base imponible)
2 : tasa local se aplica a productos y servicios incluyendo el IVA (tasa local es calculada sobre base imponible+IVA)
3 : tasa local se aplica a productos sin IVA (tasa local es calculada sobre la base imponible)
4 : tasa local se aplica a productos incluyendo el IVA (tasa local es calculada sobre base imponible+IVA)
5 : tasa local se aplica a servicios sin IVA (tasa local es calculada sobre base imponible)
6 : tasa local se aplica a servicios incluyendo el IVA (tasa local es calculada sobre base imponible+IVA) @@ -489,7 +489,7 @@ Module30Name=Facturas y abonos Module30Desc=Gestión de facturas y abonos a clientes. Gestión facturas de proveedores Module40Name=Proveedores Module40Desc=Gestión de proveedores -Module42Name=Debug Logs +Module42Name=Registros de depuración Module42Desc=Generación de logs (archivos, syslog,...). Dichos registros son para propósitos técnicos/de depuración. Module49Name=Editores Module49Desc=Gestión de editores @@ -574,8 +574,8 @@ Module2300Name=Tareas programadas Module2300Desc=Gestión del Trabajo programado (alias cron) Module2400Name=Eventos/Agenda Module2400Desc=Siga los eventos o citas. Registre eventos manuales en las agendas o deje a la aplicación registrar eventos automáticos para fines de seguimiento. -Module2500Name=DMS / ECM -Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need. +Module2500Name=GED / SGD +Module2500Desc=Sistema de Gestión de Documentos / Gestión Electrónica de Contenidos. Organización automática de sus documentos generados o almacenados. Compártalos cuando lo necesite. Module2600Name=API/Servicios web (servidor SOAP) Module2600Desc=Habilitar los servicios Dolibarr SOAP proporcionando servicios API Module2610Name=API/Servicios web (servidor REST) @@ -589,8 +589,8 @@ Module2900Name=GeoIPMaxmind Module2900Desc=Capacidades de conversión GeoIP Maxmind Module3100Name=Skype Module3100Desc=Añadir un botón Skype en las fichas de usuarios/terceros/contactos/miembros -Module3200Name=Unalterable Archives -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries. +Module3200Name=Archivos inalterables +Module3200Desc=Activar 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 en algunos países. Module4000Name=RRHH Module4000Desc=Departamento de Recursos Humanos (gestión del departamento, contratos de empleados) Module5000Name=Multi-empresa diff --git a/htdocs/langs/es_ES/bills.lang b/htdocs/langs/es_ES/bills.lang index f1f1684fca7..6946e96c971 100644 --- a/htdocs/langs/es_ES/bills.lang +++ b/htdocs/langs/es_ES/bills.lang @@ -148,7 +148,7 @@ ErrorDiscountAlreadyUsed=Error, la remesa está ya asignada ErrorInvoiceAvoirMustBeNegative=Error, una factura de tipo Abono debe tener un importe negativo ErrorInvoiceOfThisTypeMustBePositive=Error, una factura de este tipo debe tener un importe positivo ErrorCantCancelIfReplacementInvoiceNotValidated=Error, no es posible cancelar una factura que ha sido sustituida por otra que se encuentra en el estado 'borrador '. -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed. +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Esta parte u otra ya ha sido usada, la serie de descuento no se puede eliminar. BillFrom=Emisor BillTo=Enviar a ActionsOnBill=Eventos sobre la factura diff --git a/htdocs/langs/es_ES/companies.lang b/htdocs/langs/es_ES/companies.lang index c9dbeb960f9..65867f3831f 100644 --- a/htdocs/langs/es_ES/companies.lang +++ b/htdocs/langs/es_ES/companies.lang @@ -56,7 +56,7 @@ Address=Dirección State=Provincia StateShort=Estado Region=Región -Region-State=Region - State +Region-State=Región - Estado Country=País CountryCode=Código país CountryId=Id país diff --git a/htdocs/langs/es_ES/compta.lang b/htdocs/langs/es_ES/compta.lang index b2434f90479..277c8f8fcf5 100644 --- a/htdocs/langs/es_ES/compta.lang +++ b/htdocs/langs/es_ES/compta.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - compta -MenuFinancial=Billing | Payment +MenuFinancial=Financiera TaxModuleSetupToModifyRules=Ir a la configuración del módulo de impuestos para modificar las reglas de cálculo TaxModuleSetupToModifyRulesLT=Ir a la configuración de la Empresa para modificar las reglas de cálculo OptionMode=Opción de gestión contable diff --git a/htdocs/langs/es_ES/ecm.lang b/htdocs/langs/es_ES/ecm.lang index 03142eb9ff0..d0dd4ed578a 100644 --- a/htdocs/langs/es_ES/ecm.lang +++ b/htdocs/langs/es_ES/ecm.lang @@ -14,8 +14,8 @@ ECMNbOfFilesInDir=Número de archivos en el directorio ECMNbOfSubDir=Número de subdirectorios ECMNbOfFilesInSubDir=Número de archivos en los subdirectorios ECMCreationUser=Creador -ECMArea=DMS/ECM area -ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr. +ECMArea=Área GED +ECMAreaDesc=El área GED (Gestión Electrónica de Documentos) le permite guardar, compartir y buscar rápidamente todo tipo de documentos en Dolibarr. ECMAreaDesc2=Puede crear directorios manuales y adjuntar los documentos
Los directorios automáticos son rellenados automáticamente en la adición de un documento en una ficha. ECMSectionWasRemoved=El directorio %s ha sido eliminado ECMSectionWasCreated=El directorio %s ha sido creado. diff --git a/htdocs/langs/es_ES/mails.lang b/htdocs/langs/es_ES/mails.lang index 81f0e87e114..48932dbba97 100644 --- a/htdocs/langs/es_ES/mails.lang +++ b/htdocs/langs/es_ES/mails.lang @@ -87,7 +87,7 @@ MailingModuleDescEmailsFromFile=E-mails de archivo MailingModuleDescEmailsFromUser=E-mails enviados por usuario MailingModuleDescDolibarrUsers=Usuarios con e-mails MailingModuleDescThirdPartiesByCategories=Terceros (por categoría) -SendingFromWebInterfaceIsNotAllowed=Sending from web interface is not allowed. +SendingFromWebInterfaceIsNotAllowed=El envío desde la interfaz web no está permitido. # Libelle des modules de liste de destinataires mailing LineInFile=Línea %s en archivo diff --git a/htdocs/langs/es_ES/main.lang b/htdocs/langs/es_ES/main.lang index 66444ab64c0..e9d3aff70dc 100644 --- a/htdocs/langs/es_ES/main.lang +++ b/htdocs/langs/es_ES/main.lang @@ -498,8 +498,8 @@ AddPhoto=Añadir foto DeletePicture=Eliminar imagen ConfirmDeletePicture=¿Confirma la eliminación de la imagen? Login=Login -LoginEmail=Login (email) -LoginOrEmail=Login or Email +LoginEmail=Ingreso (e-mail) +LoginOrEmail=Login o e-mail CurrentLogin=Login actual EnterLoginDetail=Introduzca los datos de inicio de sesión January=enero diff --git a/htdocs/langs/es_ES/other.lang b/htdocs/langs/es_ES/other.lang index 9805345d7fc..bca0fdaa899 100644 --- a/htdocs/langs/es_ES/other.lang +++ b/htdocs/langs/es_ES/other.lang @@ -227,9 +227,9 @@ Chart=Gráfico PassEncoding=Cifrado de contraseña PermissionsAdd=Permisos añadidos PermissionsDelete=Permisos eliminados -YourPasswordMustHaveAtLeastXChars=Your password must have at least %s chars -YourPasswordHasBeenReset=Your password has been reset successfully -ApplicantIpAddress=IP address of applicant +YourPasswordMustHaveAtLeastXChars=Su contraseña debe contener al menos %s caracteres +YourPasswordHasBeenReset=Su contraseña ha sido restablecida con éxito +ApplicantIpAddress=Dirección IP del solicitante ##### Export ##### ExportsArea=Área de exportaciones AvailableFormats=Formatos disponibles diff --git a/htdocs/langs/es_ES/salaries.lang b/htdocs/langs/es_ES/salaries.lang index d808f325b9e..c4b8eaf2577 100644 --- a/htdocs/langs/es_ES/salaries.lang +++ b/htdocs/langs/es_ES/salaries.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Cuenta contable usada para los terceros SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Se utilizará una cuenta contable dedicada definida en la ficha de usuario para el relleno del Libro Mayor, o como valor predeterminado de la contabilidad del Libro Mayor si no se define una cuenta contable en la ficha del usuario -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for wage payments +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Cuenta contable por defecto para pagos de salarios Salary=Salario Salaries=Salarios NewSalaryPayment=Nuevo pago diff --git a/htdocs/langs/es_ES/users.lang b/htdocs/langs/es_ES/users.lang index 2cabe499c81..68d7a47bae2 100644 --- a/htdocs/langs/es_ES/users.lang +++ b/htdocs/langs/es_ES/users.lang @@ -6,7 +6,7 @@ Permission=Derecho Permissions=Permisos EditPassword=Modificar contraseña SendNewPassword=Enviar nueva contraseña -SendNewPasswordLink=Send link to reset password +SendNewPasswordLink=Enviar enlace para restablecer la contraseña ReinitPassword=Generar nueva contraseña PasswordChangedTo=Contraseña modificada en: %s SubjectNewPassword=Su nueva contraseña para %s @@ -44,9 +44,9 @@ NewGroup=Nuevo grupo CreateGroup=Crear el grupo RemoveFromGroup=Eliminar del grupo PasswordChangedAndSentTo=Contraseña cambiada y enviada a %s. -PasswordChangeRequest=Request to change password for %s +PasswordChangeRequest=Solicitud para cambiar la contraseña de %s PasswordChangeRequestSent=Petición de cambio de contraseña para %s enviada a %s. -ConfirmPasswordReset=Confirm password reset +ConfirmPasswordReset=Confirmar restablecimiento de contraseña MenuUsersAndGroups=Usuarios y grupos LastGroupsCreated=Últimos %s grupos creados LastUsersCreated=Últimos %s usuarios creados diff --git a/htdocs/langs/fr_FR/accountancy.lang b/htdocs/langs/fr_FR/accountancy.lang index 079e1c34d8e..85d1f6a5b58 100644 --- a/htdocs/langs/fr_FR/accountancy.lang +++ b/htdocs/langs/fr_FR/accountancy.lang @@ -224,8 +224,8 @@ GeneralLedgerSomeRecordWasNotRecorded=Certaines des opérations n'ont pu être e NoNewRecordSaved=Plus d'enregistrements à journaliser ListOfProductsWithoutAccountingAccount=Liste des produits non liés à un compte comptable ChangeBinding=Changer les liens -Accounted=Accounted in ledger -NotYetAccounted=Not yet accounted in ledger +Accounted=Comptabilisé dans le grand livre +NotYetAccounted=Pas encore comptabilisé dans le grand livre ## Admin ApplyMassCategories=Application en masse des catégories @@ -291,4 +291,4 @@ Binded=Lignes liées ToBind=Lignes à lier UseMenuToSetBindindManualy=L'autodection n'est pas possible, utilisez le menu %s pour effectuer la liaison manuellement -WarningReportNotReliable=Attention : ce rapport n'est pas basé sur le grand livre et ne contient donc pas les écritures manuelles qui lui ont été ajoutées. Une fonctionnalité améliorée sera présente dans les prochaines versions. +WarningReportNotReliable=Attention : ce rapport n'est pas basé sur le grand livre et ne contient donc pas les écritures manuelles qui lui ont été ajoutées. Si votre journalisation est à jour, la vue depuis le grand livre sera plus précise. diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index 74364386066..15cebb242f7 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/admin.lang @@ -269,10 +269,10 @@ MAIN_MAIL_SMTP_SERVER=Nom d'hôte ou adresse IP du serveur SMTP/SMTPS (Par défa MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Port du serveur SMTP/SMTPS (Non défini dans le PHP sur les systèmes de type Unix) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Nom d'hôte ou adresse IP du serveur SMTP/SMTPS (Non défini dans le PHP sur les systèmes de type Unix) MAIN_MAIL_EMAIL_FROM=Adresse email de l'émetteur pour l'envoi d'emails automatiques (Par défaut dans php.ini: %s) -MAIN_MAIL_ERRORS_TO=Email used as 'Errors-To' field in emails sent +MAIN_MAIL_ERRORS_TO=E-mail utilisé comme champ "Errors-To" dans les e-mails envoyés MAIN_MAIL_AUTOCOPY_TO= Envoyer systématiquement une copie cachée des emails envoyés à MAIN_DISABLE_ALL_MAILS=Désactiver globalement tout envoi d'emails (pour mode test ou démos) -MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes) +MAIN_MAIL_FORCE_SENDTO=Envoyer tous les emails à (au lieu des vrais destinataires, à des fins de test) MAIN_MAIL_SENDMODE=Méthode d'envoi des emails MAIN_MAIL_SMTPS_ID=Identifiant d'authentification SMTP si authentification SMTP requise MAIN_MAIL_SMTPS_PW=Mot de passe d'authentification SMTP si authentification SMTP requise @@ -489,7 +489,7 @@ Module30Name=Factures et avoirs Module30Desc=Gestion des factures et avoirs clients. Gestion des factures fournisseurs Module40Name=Fournisseurs Module40Desc=Gestion des fournisseurs et des achats (commandes et factures) -Module42Name=Debug Logs +Module42Name=Journaux et traces de Debug Module42Desc=Systèmes de logs ( fichier, syslog,... ). De tels logs ont un but technique / de débogage. Module49Name=Éditeurs Module49Desc=Gestion des éditeurs @@ -574,7 +574,7 @@ Module2300Name=Travaux planifiés Module2300Desc=Gestion des travaux planifiées (alias cron ou table chrono) Module2400Name=Événements/Agenda Module2400Desc=Gestion des événements réalisés ou à venir. Enregistrer manuellement des événements ou rendez-vous dans l'agenda ou laisser l'application enregistrer automatiquement des événements à des fins de suivi. -Module2500Name=DMS / ECM +Module2500Name=GED Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need. Module2600Name=API/Web services (serveur SOAP) Module2600Desc=Active le server SOAP Dolibarr fournissant des services API @@ -589,8 +589,8 @@ Module2900Name=GeoIPMaxmind Module2900Desc=Capacités de conversion GeoIP Maxmind Module3100Name=Skype Module3100Desc=Ajouter un bouton Skype dans les fiches utilisateurs / tiers / contacts / adhérents -Module3200Name=Unalterable Archives -Module3200Desc=Activate log of some business events into an unalterable log. Events are archived in real-time. The log is a table of chained events that can be read only and exported. This module may be mandatory for some countries. +Module3200Name=Archives/Logs Inaltérables +Module3200Desc=Active la journalisation de certains événements métiers dans une log/archive inaltérable. Les événements sont archivés en temps réel. L'archive est une table d'événements chaînés qui peut être lu uniquement et exporté. Ce module permet d'être compatible avec les exigences des lois de certains pays (comme par exemple la loi Finance 2016 ou norme 525 en France). Module4000Name=GRH Module4000Desc=Gestion des ressources humaines (gestion du département, contrats des employés et appréciations) Module5000Name=Multi-société @@ -640,7 +640,7 @@ Permission32=Créer/modifier les produits Permission34=Supprimer les produits Permission36=Voir/gérer les produits cachés Permission38=Exporter les produits -Permission41=Lire les projets et tâches (partagés ou dont vous êtes un contact). Permet la saisie de temps passé, par vous et votre supérieur hiérarchique, sur les tâches assignées. +Permission41=Lire les projets et tâches (partagés ou dont vous êtes un contact). Permet la saisie de temps passé, par vous et votre hiérarchie (vos subordonnés), sur les tâches assignées. Permission42=Créer/modifier les projets (projets partagés et projets pour lesquels je suis contact). Permet aussi de créer des tâches et d'assigner des utilisateurs aux projets et tâches. Permission44=Supprimer les projets et tâches (partagés ou dont je suis contact) Permission45=Exporter les projets diff --git a/htdocs/langs/fr_FR/bills.lang b/htdocs/langs/fr_FR/bills.lang index 95283de8042..13729eb43fa 100644 --- a/htdocs/langs/fr_FR/bills.lang +++ b/htdocs/langs/fr_FR/bills.lang @@ -148,7 +148,7 @@ ErrorDiscountAlreadyUsed=Erreur, la remise a déjà été attribuée ErrorInvoiceAvoirMustBeNegative=Erreur, une facture de type Avoir doit avoir un montant négatif ErrorInvoiceOfThisTypeMustBePositive=Erreur, une facture de ce type doit avoir un montant positif ErrorCantCancelIfReplacementInvoiceNotValidated=Erreur, il n'est pas possible d'annuler une facture qui a été remplacée par une autre qui se trouve toujours à l'état 'brouillon'. -ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=This part or another is already used so discount serie cant be removed. +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Cette partie ou une autre est déjà utilisé, aussi la remise ne peut être supprimée. BillFrom=Émetteur BillTo=Adressé à ActionsOnBill=Événements sur la facture @@ -179,7 +179,7 @@ ConfirmCancelBillQuestion=Pour quelle raison voulez-vous classer la facture aban ConfirmClassifyPaidPartially=Êtes-vous sûr de vouloir classer la facture %s comme payée ? ConfirmClassifyPaidPartiallyQuestion=Cette facture n'a pas été payée à hauteur du montant initial. Pour quelle raison voulez-vous la classer malgré tout ? ConfirmClassifyPaidPartiallyReasonAvoir=Le reste à payer (%s %s) est un trop facturé (car article retourné, oubli, escompte réalisé...), régularisé par un avoir -ConfirmClassifyPaidPartiallyReasonDiscount=Remaining unpaid (%s %s) is a discount granted because payment was made before term. +ConfirmClassifyPaidPartiallyReasonDiscount=Le reste à payer (%s %s) est un escompte accordé parce que le paiement a été effectué avant terme. ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Le reste à payer (%s %s) est un escompte accordé après facture. J'accepte de perdre la TVA sur cet escompte ConfirmClassifyPaidPartiallyReasonDiscountVat=Le reste à payer (%s %s) est un escompte ConfirmClassifyPaidPartiallyReasonBadCustomer=Mauvais payeur diff --git a/htdocs/langs/fr_FR/companies.lang b/htdocs/langs/fr_FR/companies.lang index 5252c6f8987..05104ac860b 100644 --- a/htdocs/langs/fr_FR/companies.lang +++ b/htdocs/langs/fr_FR/companies.lang @@ -56,7 +56,7 @@ Address=Adresse State=Département/Canton StateShort=Département Region=Région -Region-State=Region - State +Region-State=Région - État Country=Pays CountryCode=Code pays CountryId=Identifiant pays diff --git a/htdocs/langs/fr_FR/ecm.lang b/htdocs/langs/fr_FR/ecm.lang index 1a648e170fe..83a92bcf767 100644 --- a/htdocs/langs/fr_FR/ecm.lang +++ b/htdocs/langs/fr_FR/ecm.lang @@ -14,8 +14,8 @@ ECMNbOfFilesInDir=Nombre de fichiers dans le répertoire ECMNbOfSubDir=Nombre de sous-répertoires ECMNbOfFilesInSubDir=Nombre de fichiers dans les sous-répertoires ECMCreationUser=Créateur -ECMArea=DMS/ECM area -ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr. +ECMArea=Espace GED +ECMAreaDesc=L'espace GED (Gestion Électronique de Documents) vous permet de stocker, partager et chercher rapidement tout type de documents dans Dolibarr. ECMAreaDesc2=* Les répertoires automatiques sont alimentés automatiquement lors de l'ajout d'un document depuis une fiche objet (proposition commerciale, facture...).
* Les répertoires manuels peuvent être utilisés pour stocker des documents divers, non liés à un objet particulier. ECMSectionWasRemoved=Le répertoire %s a été effacé. ECMSectionWasCreated=Le répertoire %s a été créé. diff --git a/htdocs/langs/fr_FR/interventions.lang b/htdocs/langs/fr_FR/interventions.lang index f8993be0df2..d1f57e2e951 100644 --- a/htdocs/langs/fr_FR/interventions.lang +++ b/htdocs/langs/fr_FR/interventions.lang @@ -52,7 +52,7 @@ UseDateWithoutHourOnFichinter=Masque les heures et les minutes du champ de la da InterventionStatistics=Statistiques des interventions NbOfinterventions=Nb de fiches d'intervention NumberOfInterventionsByMonth=Nb de fiches d'intervention par mois (date de validation) -AmountOfInteventionNotIncludedByDefault=Amount of intervention is not included by default into profit (in most cases, timesheets are used to count time spent). Add option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT to 1 into home-setup-other to include them. +AmountOfInteventionNotIncludedByDefault=Le total des interventions 'nest pas inclus par défaut dans les profits (dans la plupart des cas, les feuilles de temps totalisent le temps passé). Activez l'option PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT à 1 dans Accueil > Condiguration > Divers ##### Exports ##### InterId=Id intervention InterRef=Intervention ref. diff --git a/htdocs/langs/fr_FR/mails.lang b/htdocs/langs/fr_FR/mails.lang index 3f532c5fcb1..487861f4c8b 100644 --- a/htdocs/langs/fr_FR/mails.lang +++ b/htdocs/langs/fr_FR/mails.lang @@ -87,7 +87,7 @@ MailingModuleDescEmailsFromFile=E-mails à partir d'un fichier MailingModuleDescEmailsFromUser=E-mails entrés par l'utilisateur MailingModuleDescDolibarrUsers=Utilisateurs avec e-mail MailingModuleDescThirdPartiesByCategories=Tiers (par catégories/tags) -SendingFromWebInterfaceIsNotAllowed=Sending from web interface is not allowed. +SendingFromWebInterfaceIsNotAllowed=L'envoyer depuis l'interface Web n'est pas autorisé. # Libelle des modules de liste de destinataires mailing LineInFile=Ligne %s du fichier diff --git a/htdocs/langs/fr_FR/main.lang b/htdocs/langs/fr_FR/main.lang index a0b0eb5c34e..cd087a9a4b8 100644 --- a/htdocs/langs/fr_FR/main.lang +++ b/htdocs/langs/fr_FR/main.lang @@ -499,7 +499,7 @@ DeletePicture=Effacer ilage ConfirmDeletePicture=Confirmer la suppressionde l'image Login=Identifiant LoginEmail=Login (email) -LoginOrEmail=Login or Email +LoginOrEmail=Login ou Email CurrentLogin=Identifiant courant EnterLoginDetail=Saisir les informations de connexion January=janvier diff --git a/htdocs/langs/fr_FR/modulebuilder.lang b/htdocs/langs/fr_FR/modulebuilder.lang index 414086a3119..ca1aa0ab1d4 100644 --- a/htdocs/langs/fr_FR/modulebuilder.lang +++ b/htdocs/langs/fr_FR/modulebuilder.lang @@ -75,11 +75,11 @@ GoToApiExplorer=Se rendre sur l'explorateur d'API ListOfMenusEntries=Liste des entrées du menu ListOfPermissionsDefined=Liste des permissions EnabledDesc=Condition pour que ce champ soit actif (Exemples: 1 ou $conf->global->MYMODULE_MYOPTION) -VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only. Using a negative value means field is not shown by default on list but can be selected for viewing) +VisibleDesc=Le champ est-il visible ? (Exemples: 0 = Jamais visible, 1 = Visible sur les listes et formulaires de création/mise à jour/visualisation, 2 = Visible uniquement sur la liste, 3 = Visible uniquement sur le formulaire de création/mise à jour/affichage. Utiliser une valeur négative signifie que le champ n'est pas affiché par défaut sur la liste mais peut être sélectionné pour l'affichage) IsAMeasureDesc=Peut-on cumuler la valeur du champ pour obtenir un total dans les listes ? (Exemples: 1 ou 0) SearchAllDesc=Le champ doit-il être utilisé pour effectuer une recherche à partir de l'outil de recherche rapide ? (Exemples: 1 ou 0) SpecDefDesc=Entrez ici toute la documentation que vous souhaitez joindre au module et qui n'a pas encore été définis dans d'autres onglets. Vous pouvez utiliser .md ou, mieux, la syntaxe enrichie .asciidoc. -LanguageDefDesc=Enter in this files, all the key and the translation for each language file. +LanguageDefDesc=Entrez dans ces fichiers, toutes les clés et la traduction pour chaque fichier de langue. MenusDefDesc=Define here the menus provided by your module (once defined, they are visible into the menu editor %s) PermissionsDefDesc=Define here the new permissions provided by your module (once defined, they are visible into the default permissions setup %s) HooksDefDesc=Define in the module_parts['hooks'] property, in the module descriptor, the context of hooks you want to manage (list of contexts can be found by a search on 'initHooks(' in core code).
Edit the hook file to add code of your hooked functions (hookable functions can be found by a search on 'executeHooks' in core code). diff --git a/htdocs/langs/fr_FR/multicurrency.lang b/htdocs/langs/fr_FR/multicurrency.lang index 7475e826ecf..c833ae46bf9 100644 --- a/htdocs/langs/fr_FR/multicurrency.lang +++ b/htdocs/langs/fr_FR/multicurrency.lang @@ -7,7 +7,7 @@ multicurrency_syncronize_error=Erreur de synchronisation %s MULTICURRENCY_USE_RATE_ON_DOCUMENT_DATE=Utilisez la date du document pour trouver le taux de change, au lieu d'utiliser dernier taux connu 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=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 +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=Clé API multicurrency_appCurrencySource=Devise source multicurrency_alternateCurrencySource=Devise du document source @@ -17,4 +17,4 @@ rate=taux MulticurrencyReceived=Reçu, devise originale MulticurrencyRemainderToTake=Montant restant, devise originale MulticurrencyPaymentAmount=Montant du règlement (devise d'origine) -AmountToOthercurrency=Amount To (in currency of receiving account) +AmountToOthercurrency=Montant destination (en devise du compte de réception) diff --git a/htdocs/langs/fr_FR/orders.lang b/htdocs/langs/fr_FR/orders.lang index 23050cc7a6e..f833fa3b64c 100644 --- a/htdocs/langs/fr_FR/orders.lang +++ b/htdocs/langs/fr_FR/orders.lang @@ -97,7 +97,7 @@ ConfirmMakeOrder=Êtes-vous sûr de vouloir confirmer cette commande en date du GenerateBill=Facturer ClassifyShipped=Classer livrée DraftOrders=Commandes brouillons -DraftSuppliersOrders=Brouillon de commandes fournisseurs +DraftSuppliersOrders=Commandes fournisseurs brouillons OnProcessOrders=Commandes en cours de traitement RefOrder=Réf. commande RefCustomerOrder=Réf. commande client @@ -153,6 +153,6 @@ OrderFail=Une erreur s'est produite pendant la création de vos commandes CreateOrders=Créer commandes ToBillSeveralOrderSelectCustomer=Pour créer une facture pour plusieurs commandes, cliquez d'abord sur le client, puis choisir "%s". OptionToSetOrderBilledNotEnabled=Option (from module Workflow) to set order to 'Billed' automatically when invoice is validated is off, so you will have to set status of order to 'Billed' manually. -IfValidateInvoiceIsNoOrderStayUnbilled=If invoice validation is 'No', the order will remain to status 'Unbilled' until the invoice is validated. +IfValidateInvoiceIsNoOrderStayUnbilled=Si la validation de facture est à "Non", la commande restera au statut "Non facturé" jusqu'à ce que la facture soit validée. CloseReceivedSupplierOrdersAutomatically=Fermer la commande "%s" automatiquement si tous les produits ont été reçus. SetShippingMode=Définir la méthode d'expédition diff --git a/htdocs/langs/fr_FR/other.lang b/htdocs/langs/fr_FR/other.lang index 0b4f1e8a222..610a4f59ab3 100644 --- a/htdocs/langs/fr_FR/other.lang +++ b/htdocs/langs/fr_FR/other.lang @@ -227,9 +227,9 @@ Chart=Graphique PassEncoding=Codage du mot de passe PermissionsAdd=Permissions ajoutés PermissionsDelete=Permissions retirées -YourPasswordMustHaveAtLeastXChars=Your password must have at least %s chars -YourPasswordHasBeenReset=Your password has been reset successfully -ApplicantIpAddress=IP address of applicant +YourPasswordMustHaveAtLeastXChars=Votre mot de passe doit avoir au moins %s caractères +YourPasswordHasBeenReset=Votre mot de passe a été réinitialisé avec succès +ApplicantIpAddress=Adresse IP du demandeur ##### Export ##### ExportsArea=Espace exports AvailableFormats=Formats disponibles diff --git a/htdocs/langs/fr_FR/printing.lang b/htdocs/langs/fr_FR/printing.lang index 434f43fdeb7..62cad4af2c5 100644 --- a/htdocs/langs/fr_FR/printing.lang +++ b/htdocs/langs/fr_FR/printing.lang @@ -49,4 +49,6 @@ DirectPrintingJobsDesc=Cette page liste les travaux d'impression trouvés sur le GoogleAuthNotConfigured=Configuration Google OAuth non terminé. Activer le module OAuth et entrer un Google ID/Secret GoogleAuthConfigured=Identifiants Google OAuth trouvé dans la configuration du module OAuth. PrintingDriverDescprintgcp=Paramètres de configuration des drivers Google Cloud Print pour les impressions. +PrintingDriverDescprintipp=Variables de configuration pour le pilotes d'impression Cups. PrintTestDescprintgcp=List des imprimantes Google Cloud Print. +PrintTestDescprintipp=Liste des imprimantes pour Cups. diff --git a/htdocs/langs/fr_FR/salaries.lang b/htdocs/langs/fr_FR/salaries.lang index 4dcb5432ca8..f6f76d690bb 100644 --- a/htdocs/langs/fr_FR/salaries.lang +++ b/htdocs/langs/fr_FR/salaries.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Compte comptable utilisé pour les utilisateurs SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Le compte comptable défini sur la carte utilisateur sera utilisé uniquement pour la comptabilité auxiliaire. Celui-ci sera utilisé pour le grand livre et comme valeur par défaut de la comptabilité auxiliaire si le compte dédié de l'utilisateur n'est pas défini. -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for wage payments +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Compte comptable par défaut pour les paiements de salaires Salary=Salaire Salaries=Salaires NewSalaryPayment=Nouveau règlement de salaire diff --git a/htdocs/langs/fr_FR/trips.lang b/htdocs/langs/fr_FR/trips.lang index ada5f240cb9..b8151ca57d8 100644 --- a/htdocs/langs/fr_FR/trips.lang +++ b/htdocs/langs/fr_FR/trips.lang @@ -72,7 +72,7 @@ EX_TOL_VP=Péage EX_PAR_VP=Stationnement EX_CAM_VP=Entretien et réparation DefaultCategoryCar=Mode de déplacement par défaut -DefaultRangeNumber=Default range number +DefaultRangeNumber=Numéro de plage par défaut ErrorDoubleDeclaration=Vous avez déclaré une autre note de frais dans une période similaire. AucuneLigne=Aucune note de frais déclarée @@ -116,7 +116,7 @@ CloneExpenseReport=Cloner la note de frais ConfirmCloneExpenseReport=Êtes-vous sûr de vouloir cloner cette note de frais ? ExpenseReportsIk=index des frais kilométriques des notes de frais ExpenseReportsRules=Règle de note de frais -ExpenseReportIkDesc=You can modify the calculation of kilometers expense by category and range who they are previously defined. d is the distance in kilometers +ExpenseReportIkDesc=Vous pouvez modifier le calcul des indemnités kilométriques par catégories et gammes précédemment définies. d est la distance en kilomètres. ExpenseReportRulesDesc=Vous pouvez créer ou mettre à jour toutes les règles de calcul. Cette règle sera utilisée à la création d'une note de frais par un utilisateur. expenseReportOffset=Décalage expenseReportCoef=Coefficient @@ -133,19 +133,19 @@ ExpenseReportLimitOn=Limite sur ExpenseReportDateStart=Date début ExpenseReportDateEnd=Date fin ExpenseReportLimitAmount=Montant limite -ExpenseReportRestrictive=Restrictive +ExpenseReportRestrictive=Restrictif AllExpenseReport=Tout type de note de frais OnExpense=Ligne de dépense ExpenseReportRuleSave=Règle de calcul enregistrée ExpenseReportRuleErrorOnSave=Erreur: %s RangeNum=Plage %d -ExpenseReportConstraintViolationError=Constraint violation id [%s]: %s is superior to %s %s +ExpenseReportConstraintViolationError=Violation de contrainte ID [%s]: %s est supérieur à %s %s byEX_DAY=par jour (limité à %s) byEX_MON=par mois (limité à%s) byEX_YEA=par an (limité à %s) byEX_EXP=par ligne (limité à %s) -ExpenseReportConstraintViolationWarning=Constraint violation id [%s]: %s is superior to %s %s +ExpenseReportConstraintViolationWarning=Violation de contrainte ID [%s]: %s est supérieur à %s %s nolimitbyEX_DAY=par jour (sans limite) nolimitbyEX_MON=par mois (sans limite) nolimitbyEX_YEA=par an (sans limite) diff --git a/htdocs/langs/fr_FR/users.lang b/htdocs/langs/fr_FR/users.lang index c87b331c29d..2b7da2d4507 100644 --- a/htdocs/langs/fr_FR/users.lang +++ b/htdocs/langs/fr_FR/users.lang @@ -6,7 +6,7 @@ Permission=Droit Permissions=Droits EditPassword=Modifier mot de passe SendNewPassword=Régénérer et envoyer mot de passe -SendNewPasswordLink=Send link to reset password +SendNewPasswordLink=Envoyer le lien pour réinitialiser le mot de passe ReinitPassword=Régénérer mot de passe PasswordChangedTo=Mot de passe modifié en: %s SubjectNewPassword=Votre mot de passe pour %s @@ -44,9 +44,9 @@ NewGroup=Nouveau groupe CreateGroup=Créer le groupe RemoveFromGroup=Supprimer du groupe PasswordChangedAndSentTo=Mot de passe changé et envoyé à %s. -PasswordChangeRequest=Request to change password for %s +PasswordChangeRequest=Demande de changement de mot de passe pour %s PasswordChangeRequestSent=Demande de changement de mot de passe pour %s envoyée à %s. -ConfirmPasswordReset=Confirm password reset +ConfirmPasswordReset=Confirmer réinitialisation du mot de passe MenuUsersAndGroups=Utilisateurs & Groupes LastGroupsCreated=Les %s derniers groupes créés LastUsersCreated=Les %s derniers utilisateurs créés diff --git a/htdocs/langs/nb_NO/admin.lang b/htdocs/langs/nb_NO/admin.lang index eecaa03cc94..af5812b05cd 100644 --- a/htdocs/langs/nb_NO/admin.lang +++ b/htdocs/langs/nb_NO/admin.lang @@ -269,10 +269,10 @@ MAIN_MAIL_SMTP_SERVER=SMTP-server (Standard i php.ini: %s) MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP-port (Settes ikke i PHP på Unix/Linux) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP-server (Settes ikke i PHP på Unix/Linux) MAIN_MAIL_EMAIL_FROM=Avsender-e-post for automatiske e-poster (Som standard i php.ini: %s) -MAIN_MAIL_ERRORS_TO=Email used as 'Errors-To' field in emails sent +MAIN_MAIL_ERRORS_TO=E-post brukt som "Feil til" -felt i e-postmeldinger sendt MAIN_MAIL_AUTOCOPY_TO= Send systematisk en skjult karbon-kopi av alle sendte e-post til MAIN_DISABLE_ALL_MAILS=Deaktiver alle e-postmeldinger (for testformål eller demoer) -MAIN_MAIL_FORCE_SENDTO=Send all emails to (instead of real recipients, for test purposes) +MAIN_MAIL_FORCE_SENDTO=Send alle e-post til (i stedet for ekte mottakere, til testformål) MAIN_MAIL_SENDMODE=Metode for å sende e-post MAIN_MAIL_SMTPS_ID=SMTP-ID hvis godkjenning kreves MAIN_MAIL_SMTPS_PW=SMTP-passord hvis godkjenning kreves diff --git a/htdocs/langs/nb_NO/compta.lang b/htdocs/langs/nb_NO/compta.lang index d8300a631b5..5a062dfee7b 100644 --- a/htdocs/langs/nb_NO/compta.lang +++ b/htdocs/langs/nb_NO/compta.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - compta -MenuFinancial=Billing | Payment +MenuFinancial=Fakturering | Betaling TaxModuleSetupToModifyRules=Gå til Oppsett av Skatter/avgifter-modul for å endre regler for utregning TaxModuleSetupToModifyRulesLT=Gå til Firmaoppsett for å endre kalkulasjonsreglene OptionMode=Alternativ for regnskap diff --git a/htdocs/langs/nl_NL/admin.lang b/htdocs/langs/nl_NL/admin.lang index 647fdf4c10b..7a60a35696c 100644 --- a/htdocs/langs/nl_NL/admin.lang +++ b/htdocs/langs/nl_NL/admin.lang @@ -909,7 +909,7 @@ BackToModuleList=Terug naar moduleoverzicht BackToDictionaryList=Terug naar de woordenboeken lijst TypeOfRevenueStamp=Type of revenue stamp VATManagement=BTW-beheer -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. +VATIsUsedDesc=Het standaard BTW-tarief bij het aanmaken van prospecten, facturen, orders etc volgt de actieve standaard regel:
Als de verkoper onderworpen is aan BTW, dan wordt BTW standaard op 0 gezet. Einde van de regel.
Als het 'land van de verkoper' = 'het land van de koper' dan wordt de BTW standaard ingesteld op de BTW van het product in het verkopende land. Einde van de regel.
Als verkoper en koper zich in de Europese Gemeenschap bevinden en het betreft een nieuw vervoersmiddel (auto, boot, vliegtuig), dan wordt de BTW standaard ingesteld op 0 (De BTW moet worden betaald door koper in het grenskantoor van zijn land en niet door de verkoper). Einde van de regel.
Als verkoper en koper zich in de Europese Unie bevinden en de koper is een persoon of bedrijf zonder BTW-registratienummer = BTW-standaard van het verkochte product. Einde van de regel.
Als verkoper en koper zich in de Europese Gemeenschap bevinden en de koper geen bedrijf is, dan wordt de BTW standaard ingesteld op de BTW van het verkochte product. Einde van de regel

In alle andere gevallen wordt de BTW standaard ingesteld op 0. Einde van de regel.
VATIsNotUsedDesc=Standaard is de voorgestelde BTW 0. Dit kan gebruikt worden in situaties zoals verenigingen, particulieren of kleine bedrijven. VATIsUsedExampleFR=In Frankrijk, betekent dit dat bedrijven of organisaties met een echt fiscaalsysteem (Vereenvoudigd reëel of normaal reëel). Een systeem waarbij de BTW wordt aangegeven. VATIsNotUsedExampleFR=In Frankrijk, betekent dit verenigingen die geen BTW aangegeven of bedrijven, organisaties of vrije beroepen die hebben gekozen voor het micro-onderneming fiscale stelsel (BTW in franchise) en een franchise BTW betaalden zonder BTW aangifte. Bij het maken van deze keuze verschijnt de vermelding "Niet van toepassing BTW - art-293B van CGI" op de facturen. @@ -1011,9 +1011,9 @@ ShowBugTrackLink=Toon de link "%s" Alerts=Kennisgevingen DelaysOfToleranceBeforeWarning=Getolereerde vertraging voor kennisgeving DelaysOfToleranceDesc=In dit scherm kunt u de getolereerde vertraging voordat een kennisgeving wordt gemeld op het scherm met een icoontje %s voor elk te laat element. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet +Delays_MAIN_DELAY_ACTIONS_TODO=Getolereerde vertraging (in dagen) voor geplande evenementen (agenda) nog niet voltooid Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet +Delays_MAIN_DELAY_TASKS_TODO=Getolereerde vertraging (in dagen) voor geplande taken (project-taken) nog niet voltooid Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Getolereerde vertraging (in dagen) voor een kennisgeving, op af te sluiten offertes word getoond diff --git a/htdocs/langs/pt_BR/accountancy.lang b/htdocs/langs/pt_BR/accountancy.lang index 26cb9f5fc17..82f62863844 100644 --- a/htdocs/langs/pt_BR/accountancy.lang +++ b/htdocs/langs/pt_BR/accountancy.lang @@ -1,50 +1,93 @@ # Dolibarr language file - Source file is en_US - accountancy ACCOUNTING_EXPORT_SEPARATORCSV=Separador de coluna para arquivo de exportação ACCOUNTING_EXPORT_DATE=Formato de data para arquivo de exportação -ACCOUNTING_EXPORT_PIECE=Exportar a quantidade +ACCOUNTING_EXPORT_PIECE=Exportar a quantidade de peça ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Exportação com conta global? ACCOUNTING_EXPORT_LABEL=Exportar a Descrição? ACCOUNTING_EXPORT_AMOUNT=Exportar o montante? ACCOUNTING_EXPORT_DEVISE=Exportar Moedas Selectformat=Selecione o formato do arquivo ACCOUNTING_EXPORT_FORMAT=Selecione o formato do arquivo +ACCOUNTING_EXPORT_ENDLINE=Selecione o tipo de retorno do frete ACCOUNTING_EXPORT_PREFIX_SPEC=Especifique o prefixo do nome do arquivo +DefaultForService=Padrão para serviço +CantSuggest=Não posso sugerir AccountancySetupDoneFromAccountancyMenu=A maioria das configurações da Contabilidade é feita a partir do menu %s ConfigAccountingExpert=Configuração do módulo específico de contabilidade Journalization=Lançamento no Livro Chartofaccounts=Plano de contas +InvoiceLabel=Rótulo da fatura +OverviewOfAmountOfLinesNotBound=Visão geral do montante das linhas não vinculadas a uma conta contábil +OverviewOfAmountOfLinesBound=Visão geral do montante das linhas já vinculadas a uma conta contábil +DeleteCptCategory=Remover conta contábil do grupo +ConfirmDeleteCptCategory=Tem certeza de que deseja remover esta conta contábil do grupo de contabilidade? +JournalizationInLedgerStatus=Situação do registro do diário +AlreadyInGeneralLedger=Já foram Livros de registro em livros contabilísticos +NotYetInGeneralLedger=Ainda não publicado em livros contábeis +GroupIsEmptyCheckSetup=O grupo está vazio, verifique a configuração do grupo de contabilidade personalizado +DetailByAccount=Mostrar detalhes por conta +AccountWithNonZeroValues=Contas com valores não zerados +ListOfAccounts=Lista de contas +MainAccountForCustomersNotDefined=Conta contábil principal para clientes não definidos na configuração +MainAccountForSuppliersNotDefined=Conta contábil principal para fornecedores não definidos na configuração +MainAccountForUsersNotDefined=Conta contábil principal para usuários não definidos na configuração +MainAccountForVatPaymentNotDefined=Conta contábil principal para o pagamento do IVA não definido na configuração AccountancyArea=Área da Contabilidade AccountancyAreaDescIntro=O uso do módulo Contabilidade é feito em diversas etapas: AccountancyAreaDescActionOnce=As ações a seguir são normalmente realizadas apenas uma vez, ou uma vez por ano... +AccountancyAreaDescActionOnceBis=Os próximos passos devem ser feitos para economizar tempo no futuro, sugerindo-lhe a conta de contabilidade padrão correta ao fazer a reviravolta (gravação de registros em Livros de Registros e contabilidade geral) AccountancyAreaDescActionFreq=As ações a seguir são normalmente executadas a cada mês, semana ou dia para grandes empresas... +AccountancyAreaDescJournalSetup=PASSO %s: Crie ou verifique o conteúdo da sua lista de diários a partir do menu %s AccountancyAreaDescChartModel=ETAPA %s: Criar um modelo de gráfico de conta a partir do menu %s AccountancyAreaDescChart=ETAPA %s: Criar ou verificar o conteúdo do seu gráfico de conta a partir do menu %s +AccountancyAreaDescVat=PASSO %s: defina contas contábeis para cada taxa de IVA. Para isso, use a entrada de menu %s. +AccountancyAreaDescExpenseReport=PASSO %s: Defina contas contábeis padrão para cada tipo de relatório de despesas. Para isso, use a entrada de menu %s. +AccountancyAreaDescSal=PASSO %s: Defina contas contábeis padrão para pagamento de salários. Para isso, use a entrada de menu %s. +AccountancyAreaDescContrib=PASSO %s: Defina contas contábeis padrão para despesas especiais (impostos diversos). Para isso, use a entrada de menu %s. +AccountancyAreaDescDonation=PASSO %s: Defina contas contábeis padrão para doação. Para isso, use a entrada de menu %s. +AccountancyAreaDescMisc=PASSO %s: Defina a conta padrão obrigatória e contas contábeis padrão para transações diversas. Para isso, use a entrada de menu %s. +AccountancyAreaDescLoan=PASSO %s: Defina contas contábeis padrão para empréstimos. Para isso, use a entrada de menu %s. AccountancyAreaDescBank=PASSO %s:Defina contabilidade e código de diário para cada banco e contas contábil. Para isso, use o menu de entradas %s. AccountancyAreaDescProd=PASSO %s: Defina contas contábeis em seus produtos / serviços. Para isso, use o menu de entradas %s. +AccountancyAreaDescBind=PASSO %s: verifique a ligação entre as linhas %s existentes e a conta contábil feita, de modo que o aplicativo poderá periodizar transações no Livro de Registro em um clique. Complete as ligações faltantes. Para isso, use a entrada de menu %s. +AccountancyAreaDescWriteRecords=PASSO %s: efetue as transações no Livro de Registro. Para isso, vá para o menu %s e clique no botão %s . AccountancyAreaDescAnalyze=ETAPA %s: Adicionar ou editar as transações existentes, gerar os relatórios e exportar. AccountancyAreaDescClosePeriod=ETAPA %s: Fechar o período de forma que não possamos fazer modificações no futuro. +TheJournalCodeIsNotDefinedOnSomeBankAccount=Uma etapa obrigatória na configuração não foi concluída (o diário de código contábil não está definido para todas as contas bancárias) Selectchartofaccounts=Selecione gráfico ativo de contas ChangeAndLoad=Alterar e carregar Addanaccount=Adicionar uma conta contábil AccountAccounting=Conta contábil +SubledgerAccount=Conta Sub Livros de registros +ShowAccountingAccount=Mostrar conta contábil +ShowAccountingJournal=Mostrar contabilidade AccountAccountingSuggest=Sugerir Conta de Contabilidade MenuBankAccounts=Contas bancárias +MenuVatAccounts=Contas de Impostos sobre valor agregado +MenuLoanAccounts=Contas de empréstimos MenuProductsAccounts=Contas de produto ProductsBinding=Contas dos produtos Ventilation=Vinculando para as contas CustomersVentilation=Vinculando as faturas do cliente SuppliersVentilation=Vinculando as faturas do fornecedor +ExpenseReportsVentilation=Relatório de despesas obrigatórias WriteBookKeeping=Transações no Livro Razão Bookkeeping=Razão +ObjectsRef=Referência da fonte do objeto CAHTF=Total de Compras em fornecedores sem Impostos +TotalExpenseReport=Relatório de despesas totais InvoiceLines=Linhas da fatura a vincular InvoiceLinesDone=Linhas das faturas vinculadas +ExpenseReportLines=Relatórios de linhas de despesas obrigatórias +ExpenseReportLinesDone=Relatórios de linhas de despesas vinculadas IntoAccount=Vincular linha com conta contábil Processing=Processando EndProcessing=Processo foi finalizado. +LineOfExpenseReport=Relatório de linha de despesas NoAccountSelected=Nenhuma conta da Contabilidade selecionada VentilatedinAccount=Vinculado a conta contábil com sucesso NotVentilatedinAccount=Não vinculado a conta contábil +XLineSuccessfullyBinded=%s produtos / serviços vinculados com sucesso a uma conta contábil XLineFailedToBeBinded=%s produtos/serviços não estão vinculados a qualquer conta da Contabilidade ACCOUNTING_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 @@ -55,8 +98,8 @@ ACCOUNTING_LENGTH_GACCOUNT=Comprimento das contas de contabilidade geral (se o v ACCOUNTING_LENGTH_AACCOUNT=Comprimento das contas contábeis de terceiros (se você definir o valor para 6 aqui, a conta '401' aparecerá como '401000' na tela) ACCOUNTING_MANAGE_ZERO=Permite gerenciar diferentes números de zero no final de uma conta contábil. Necessário por alguns países (como a Suíça). Se manter desligado (padrão), você pode configurar os 2 seguintes parâmetros para pedir ao aplicativo que adicione uma mascara com zero virtual. BANK_DISABLE_DIRECT_INPUT=Desabilitar o registro direto da transação na conta bancária -ACCOUNTING_SELL_JOURNAL=Resumo diário das Vendas -ACCOUNTING_PURCHASE_JOURNAL=Resumo diário das Compras +ACCOUNTING_SELL_JOURNAL=Diário de Vendas +ACCOUNTING_PURCHASE_JOURNAL=Diário de Compras ACCOUNTING_MISCELLANEOUS_JOURNAL=Diário diversos ACCOUNTING_EXPENSEREPORT_JOURNAL=Diário de relatórios de despesas ACCOUNTING_ACCOUNT_TRANSFER_CASH=Conta contábil de transferência @@ -68,26 +111,38 @@ ACCOUNTING_SERVICE_BUY_ACCOUNT=Conta contábil padrão para os serviços comprad ACCOUNTING_SERVICE_SOLD_ACCOUNT=Conta contábil padrão para os serviços vendidos (se não for definido na listagem de serviços) Code_tiers=Terceiro LabelAccount=Conta rótulo +LabelOperation=Operação de etiqueta Sens=Significado TransactionNumShort=Nº da transação GroupByAccountAccounting=Agrupar pela conta da Contabilidade +AccountingAccountGroupsDesc=Você pode definir aqui alguns grupos de contabilidade. Eles serão usados ​​para relatórios contábeis personalizados. +ByPredefinedAccountGroups=Por grupos predefinidos +ByPersonalizedAccountGroups=Por grupos personalizados NotMatch=Não Definido DeleteMvt=Excluir linha do razão DelYear=Ano a ser deletado DelJournal=Resumo a ser deletado ConfirmDeleteMvt=Isso eliminará todas as linhas do Razão por ano e / ou de um período específico. Pelo menos um critério é necessário. +ConfirmDeleteMvtPartial=Isso eliminará a transação do Livro de Registro (todas as linhas relacionadas à mesma transação serão excluídas) DelBookKeeping=Excluir os registros do razão +DescJournalOnlyBindedVisible=Esta é uma visão de registro que é vinculada a uma conta contábil e pode ser gravada no Livro de Registro. VATAccountNotDefined=Conta para ICMS não definida ThirdpartyAccountNotDefined=Conta para terceiro não definida ProductAccountNotDefined=Conta para produto não definida +FeeAccountNotDefined=Conta por taxa não definida BankAccountNotDefined=Conta para o banco não definida ThirdPartyAccount=Conta de terceiro ListeMvts=Lista de movimentações ErrorDebitCredit=Débito e Crédito não pode ter valor preenchido ao mesmo tempo +AddCompteFromBK=Adicionar contas contábeis ao grupo DescThirdPartyReport=Consulte aqui a lista dos terceiros, clientes e fornecedores, e as suas contas contábeis ListAccounts=Lista das contas contábeis +UnknownAccountForThirdparty=Conta de terceiros desconhecida. Usaremos %s +UnknownAccountForThirdpartyBlocking=Conta de terceiros desconhecida. Erro de bloqueio +UnknownAccountForThirdpartyAndWaitingAccountNotDefinedBlocking=Conta de terceiros desconhecida e conta de espera não definida. Erro de bloqueio Pcgtype=Plano de Contas Pcgsubtype=Subgrupo de Contas +PcgtypeDesc=Grupo e subgrupo de conta são usados ​​como critérios de "filtro" e "agrupamento" predefinidos para alguns relatórios contábeis. Por exemplo, 'RESULTADO' ou 'DESPESAS' são utilizados como grupos para contas contábeis de produtos para construir o relatório de despesas / renda. TotalVente=Volume total negociado sem Impostos TotalMarge=Margem de vendas totais DescVentilCustomer=Consulte aqui a lista linhas de pedidos de clientes vinculadas (ou não) a uma conta contábil de produto @@ -97,15 +152,29 @@ DescVentilTodoCustomer=Linhas da fatura ainda não vinculadas à conta da Contab ChangeAccount=Mudar a conta da Contabilidade do produto/serviço para as linhas selecionadas com a seguinte conta da Contabilidade DescVentilSupplier=Consulte aqui a lista das linhas da fatura do fornecedor vinculadas ou ainda não vinculadas a uma conta da Contabilidade de um produto DescVentilDoneSupplier=Consulte aqui a lista das linhas de faturas de fornecedores e sua conta de contabilidade +DescVentilTodoExpenseReport=Relatórios de linhas de despesas de ligação já não estão vinculadas com uma conta contábil com taxa +DescVentilExpenseReport=Consulte aqui a lista de relatório de linhas de despesas vinculadas (ou não) a uma conta contábil com taxa +DescVentilExpenseReportMore=Se você configurar a conta contábil no tipo de relatórios de linha de despesas, o aplicativo poderá fazer toda a vinculação entre seus relatórios de linhas de despesas e a conta contábil do seu plano de contas, com apenas um clique com o botão "%s" . Se a conta não foi definida no dicionário de tarifas ou se você ainda possui algumas linhas não vinculadas a nenhuma conta, você terá que fazer uma ligação manual no menu " %s ". +DescVentilDoneExpenseReport=Consulte aqui a lista dos relatórios de linha de despesas e sua conta contábil de taxas 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=Existem diferenças nos movimentos . Crédito = %s. Débito = %s GeneralLedgerIsWritten=As transações estão escritas no Razão +GeneralLedgerSomeRecordWasNotRecorded=Algumas das transações não podem ser enviadas. Se não houver outra mensagem de erro, isso provavelmente é porque eles já foram despachados. +NoNewRecordSaved=Não há mais registro para lançar ListOfProductsWithoutAccountingAccount=Lista de produtos não vinculados a qualquer conta da Contabilidade ChangeBinding=Alterar a vinculação +AddAccountFromBookKeepingWithNoCategories=Contagem disponível ainda não em um grupo personalizado +CategoryDeleted=A categoria para a conta contábil foi removida AccountingJournals=Relatórios da contabilidade -AccountingJournalType2=De vendas +AccountingJournal=Livro de Registro de contabilidade +NewAccountingJournal=Novo Livro de Registro contábil +ShowAccoutingJournal=Mostrar contabilidade +AccountingJournalType1=Operação diversa +AccountingJournalType9=Novo +ErrorAccountingJournalIsAlreadyUse=Esta Livro de Registro já está sendo usado +ExportDraftJournal=Livro de Registro de rascunho de exportação Selectmodelcsv=Escolha um modelo de exportação Modelcsv_CEGID=Exportação em direção CEGID Especialista em Contabilidade Modelcsv_COALA=Exportar para Sage Coala @@ -114,6 +183,9 @@ Modelcsv_ciel=Exportar para Sage Ciel Compta ou Compta Evolution Modelcsv_quadratus=Exportar para Quadratus QuadraCompta Modelcsv_ebp=Exportar para EBP Modelcsv_cogilog=Exportar para Cogilog +Modelcsv_agiris=Exportar para Agiris +Modelcsv_configurable=Exportação configurável +ChartofaccountsId=ID do gráfico de contas InitAccountancy=Contabilidade Inicial InitAccountancyDesc=Esta página pode ser usado para inicializar um código de barras em objetos que não têm código de barras definidas. Verifique que o módulo de código de barras tenha sido instalado antes. DefaultBindingDesc=Esta página pode ser usada para definir a conta padrão a ser usada para conectar o registro das transações sobre o pagamento de salários, doações, taxas e o ICMS quando nenhuma conta da Contabilidade específica tiver sido definida. @@ -123,7 +195,13 @@ OptionModeProductSellDesc=Exibir todos os produtos sem uma conta da Contabilidad OptionModeProductBuyDesc=Exibir todos os produtos sem uma conta da Contabilidade definida para compras. CleanFixHistory=Remover o código contábil de linhas que não existem nos gráficos de conta CleanHistory=Redefinir todas as vinculações para o ano selecionado +PredefinedGroups=Grupos predefinidos +WithoutValidAccount=Sem conta dedicada válida +ValueNotIntoChartOfAccount=Este valor da conta contábil não existe no gráfico de conta Range=Faixa da conta da Contabilidade +SomeMandatoryStepsOfSetupWereNotDone=Algumas etapas obrigatórias de configuração não foram feitas, preencha-as ErrorNoAccountingCategoryForThisCountry=Nenhum Plano de Contas Contábil disponível para este país %s (Veja Home - Configurações- Dicionário) ExportNotSupported=O formato de exportação definido não é suportado nesta página BookeppingLineAlreayExists=Linhas já existentes na Contabilidade +UseMenuToSetBindindManualy=A detecção automática não é possível, use o menu %s para fazer a ligação manualmente +WarningReportNotReliable=Aviso, este relatório não é baseado no Livro de Registro, portanto, não contém transação modificada manualmente no Livro de Registro. Se o seu livro está atualizado, a visão da contabilidade é mais precisa. diff --git a/htdocs/langs/pt_BR/admin.lang b/htdocs/langs/pt_BR/admin.lang index 13a39d6bb8b..d686d50cace 100644 --- a/htdocs/langs/pt_BR/admin.lang +++ b/htdocs/langs/pt_BR/admin.lang @@ -37,6 +37,8 @@ WebUserGroup=Servidor Web para usuário/grupo NoSessionFound=Seu PHP parece não permitir listar as sessões ativas. Diretório usado para salvar sessões (%s) pode ser protegido (por exemplo, pelas permissões do sistema operacional ou por diretiva PHP "open_basedir"). DBStoringCharset=Charset base de dados para armazenamento de dados (Database charset to store data) DBSortingCharset=Charset base de dados para classificar os dados (Database charset to sort data) +ClientCharset=Conjunto de clientes +ClientSortingCharset=Conferência de Clientes WarningModuleNotActive=Módulo %s deve ser Ativado! WarningOnlyPermissionOfActivatedModules=Somente as permissões relacionadas com os módulos ativados que aparecem aqui. DolibarrSetup=Instalação/Atualização do Dolibarr @@ -112,6 +114,7 @@ CurrentSessionTimeOut=A sessão expirou YouCanEditPHPTZ=Para definir um fuso horário diferente no PHP (não exigido), você pode tentar adicionar um arquivo .htaccess com uma linha como esta : "SetEnv TZ Europe/Paris" HoursOnThisPageAreOnServerTZ=Atenção, ao contrário de outras telas, o horário nesta página não está no seu fuso horário local, mas no fuso horário do servidor. MaxNbOfLinesForBoxes=Número máximo de linahs para os widgets +AllWidgetsWereEnabled=Todos as ferramentas disponíveis estão habilitadas PositionByDefault=Posição Padrão(default) MenusDesc=O Gerenciador de Menu, define o conteúdo das barras de menu (Horizontal e Vertical). MenusEditorDesc=O editor do menu permite que você defina entradas personalizadas. Use-o com cuidado para evitar instabilidade e entradas no menu que não serão encontradas.
Alguns módulos adicionam entradas no menu (na maioria das vezes, em menu Tudo). Se remover algumas dessas entradas por engano, você poderá restaurá-las desabilitando e reabilitando o módulo. @@ -222,7 +225,7 @@ MAIN_MAIL_SMTP_SERVER=Servidor SMTP/SMTPS (Como padrão em php.ini: %s) MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Porta SMTP/SMTPS (Não definido no PHP nos sistemas tipo Unix) MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Servidor SMTP/SMTPS (Não definido no PHP nos sistemas tipo Unix) MAIN_MAIL_EMAIL_FROM=E-mail de envio para os e-mails automáticos (Como padrão no php.ini: %s) -MAIN_MAIL_ERRORS_TO=E-mail de envio usado para o retorno de erros dos e-mails enviados +MAIN_MAIL_ERRORS_TO=Email usado como 'Erros-Para' campo em e-mails enviados MAIN_MAIL_AUTOCOPY_TO=Enviar sistematicamente uma cópia carbono oculta de todos os e-mails enviados para MAIN_DISABLE_ALL_MAILS=Desabilitar todos os envios de e-mail (com o objetivo de teste ou demonstração) MAIN_MAIL_SENDMODE=Método usado para o envio de E-Mails @@ -269,7 +272,7 @@ LastActivationIP=Último IP de ativação UpdateServerOffline=Atualização de servidor off-line WithCounter=Gerenciar um contador 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
-GenericMaskCodes2={cccc} o código do cliente com n caracteres
{cccc000} o código do cliente com n caracteres é seguido por um contador dedicado ao cliente. Este contador dedicado ao cliente é redefinido ao mesmo tempo do contador global.
{tttt} O código do tipo de terceiros com n caracteres (veja menu Início - Configuração - Dicionário - Tipos de terceiros). Se você adicionar esta etiqueta (tag), o contador será diferente para cada tipo de terceiro.
+GenericMaskCodes2= {cccc} o código do cliente em n caracteres
{cccc000} o código do cliente em n caracteres é seguido por um contador dedicado ao cliente. Este contador dedicado ao cliente é reiniciado ao mesmo tempo que o contador global.
{tttt} O código de tipo de terceiros em n caracteres (consulte o menu Início - Configuração - Dicionário - Tipos de terceiros) . Se você adicionar esta etiqueta, o contador será diferente para cada tipo de terceiro.
GenericMaskCodes3=Não é permitido espaços.
Mascara fixa, basta colocar uma letra ou número sem {} ex:CLI,FOR

GenericMaskCodes4a=Exemplo com o 99º %s do terceiro ACompanhia, com data 2007-01-31:
GenericMaskCodes4b=Ex: CLI{dd}{mm}{yy}.{000} -> CLI280715.001
@@ -342,13 +345,13 @@ ExtrafieldCheckBox=Caixas de seleção ExtrafieldCheckBoxFromList=Caixas de seleção da tabela ExtrafieldLink=Link para um objeto ComputedFormula=Campo computado -ComputedFormulaDesc=Aqui você pode inserir um fórmula usando outras propriedades do objeto ou qualquer código PHP para obter um valor dinamicamente computado. Você pode usar quaisquer fórmulas compatíveis com PHP, incluindo o operador de condição "?" e os seguintes objetos globais : $db, $conf, $langs, $mysoc, $user, $object.
ATENÇÃO: Somente algumas propriedades do $object podem estar disponíveis. Se você precisar de propriedades não carregadas, basta buscar o objeto na sua fórmula como no segundo exemplo.
Usando um campo computado, significa que você mesmo não pode inserir qualquer valor a partir da interface. Além disso, se houver um erro de sintaxe, a fórmula pode retornar nada.

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

Exemplo para recarregar o objeto
(($reloadedobj = 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'

Outro exemplo de fórmula para forçar o carregamento do objeto e do seu objeto pai (superior):
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Projeto pai não encontrado' -ExtrafieldParamHelpselect=A lista dos valores de ser linhas com o formato key,value (onde key 'chave' não pode ser '0')

por exemplo :
1,value1
2,value2
code3,value3
...

A fim de ter a lista dependendo de uma outra lista de atributos complementares :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

A fim de ter a lista dependente de uma outra lista :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key +ComputedFormulaDesc=Você pode inserir aqui uma fórmula usando outras propriedades do objeto ou qualquer codificação PHP para obter um valor calculado dinâmico. Você pode usar todas as fórmulas compatíveis com PHP, incluindo o "?" operador de condição e seguinte objeto global: $ db, $ conf, $ langs, $ mysoc, $ user, $ object .
AVISO : Somente algumas propriedades de $ O objeto pode estar disponível. Se você precisar de propriedades não carregadas, basta buscar o objeto na sua fórmula, como no segundo exemplo.
Por usar um campo calculado, você não pode entrar qualquer valor da interface. Além disso, se houver um erro de sintaxe, a fórmula pode não retornar nada.

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

Exemplo para recarregar 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'

Outro exemplo de fórmula para forçar carga de objeto e seu objeto pai:
(($ reloadedobj = new Task ($ db)) && ($ reloadedobj-> fetch ($ object-> id)> 0) && ($ secondloadedobj = new Project ($ db)) && ($ secondloadedobj-> fetch ($ reloadedobj-> fk_project )> 0))? $ secondloadedobj-> ref: 'Projeto pai não encontrado' +ExtrafieldParamHelpselect=A lista de valores deve ser linhas com chave de formato, valor (onde a chave não pode ser '0')

por exemplo:
1, value1
2, value2
code3, value3
...

Para ter a lista dependendo de outra lista de atributos complementares:
1, value1 | options_ parent_list_code : parent_key
2, value2 | options_ parent_list_code : parent_key

Para ter a lista dependendo de outra lista:
1, value1 | parent_list_code : parent_key
2, value2 | parent_list_code : parent_key ExtrafieldParamHelpcheckbox=A lista dos valores deve ser linhas com o formato key,value (onde key 'chave' não pode ser '0')

por exemplo :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=A lista dos valores deve ser linhas com o formato key,value (onde key 'chave' não pode ser '0')

por exemplo :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpsellist=Lista de valores oriundos de uma tabela
Sintaxe : table_name:label_field:id_field::filter
Exemplo : c_typent:libelle:id::filter

- idfilter é necessariamente uma chave interna primária
- filter pode ser um teste simples (ex. active=1) para exibir somente valores ativos
Você também pode usar $ID$ no filtro que é a id atual do objeto atual
Para realizar uma SELEÇÃO no filtro, use $SEL$
Se você deseja filtrar nos campos extras, use a sintaxe extra.fieldcode=... (onde o código do campo é o código do campo extra)

A fim de ter a lista dependendo de uma outra lista de atributos complementares:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

A fim de ter a lista dependendo de uma outra lista:
c_typent:libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelpchkbxlst=A lista de valores oriundos de uma tabela
Sintaxe : table_name:label_field:id_field::filter
Exemplo : c_typent:libelle:id::filter

o filtro pode ser um teste simples (ex. ativo=1) para exibir somente valores ativos
Você também pode usar $ID$ no filtro que é a id atual do objeto atual
Para realizar uma SELEÇÃO no filtro, use $SEL$
Se você deseja filtrar nos campos extras, use a sintaxe extra.fieldcode=... (onde o código do campo é o código do campo extra)

A fim de ter a lista dependendo de uma outra lista de atributos complementares :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

A fim de ter a lista dependendo de uma outra lista :
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Os parâmetros devem ser ObjectName:Classpath
Sintaxe : ObjectName:Classpath
Exemplo : Sociedade:sociedade/class/sociedade.class.php +ExtrafieldParamHelplink=Os parâmetros devem ser ObjectName:Classpath
Sintaxe: ObjectName:Classpath
Exemplos:
Societe:societe/class/societe.class.php
Contact:contact/class/contact.class.php LibraryToBuildPDF=Biblioteca usada para a geração de PDF WarningUsingFPDF=Aviso: Sua conf.php Contém diretrize dolibarr_pdf_force_fpdf=1. Isso significa que você usa a biblioteca FPDF para gerar arquivos em PDF. Essa biblioteca é velha e não suporta muitas novas funções (Unicode, imagem transparente, cyrillic, línguas arábicas e asiáticas,...), portanto pode ocorrer alguns erros durante a geração de PDF.
Para corrigir esse problema e ter todo o suporte na geração de PDF, baixe Biblioteca TCPDF, então comente ou remova essa linha $dolibarr_pdf_force_fpdf=1, e adicione essa $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' LocalTaxDesc=Alguns paises aplicam de 2 a 3 taxas em cada linha de fatura. Se for esse caso, escolha o tipo de segunda e terceira taxa. Os possíveis tipos são:
1 : Taxa local aplicam em produtos e serviços sem ICMS (ICMS não é aplicada em taxa local)
2 : Taxa local aplicam em produtos e serviços antes do ICMS (ICMS é calculado no montante + taxa local)
3 : Taxa local aplicam em produtos sem o ICMS (ICMS não é aplicada na taxa local)
4 : Taxa local aplicam nos produtos antes do ICMS (ICMS é calculado no montante + taxa local)
5 : Taxa local aplicam no serviço sem o ICMS (ICMS não é aplicado em taxa local)
6 : Taxa local aplicam em serviços antes do ICMS (ICMS é calculado no montante + taxa local) @@ -381,8 +384,8 @@ Use3StepsApproval=Por padrão, os Pedidos de Compra necessitam ser criados e apr UseDoubleApproval=Usar uma aprovação de 3 etapas quando o valor (sem taxa) é maior do que ... WarningPHPMail=ALERTA: Alguns provedores de e-mail (como o Yahoo) não permite que você envie um e-mail de um outro servidor que não seja o servidor do Yahoo, se o endereço de e-mail usado como remetente é o seu e-mail do Yahoo (como myemail@yahoo.com, myemail@yahoo.fr, ...). A sua configuração atual usa o servidor do aplicativo para enviar e-mails, assim alguns destinatários (os que forem compatíveis com o protocolo restritivo DMARC), perguntarão ao Yahoo se eles podem aceitar o seu e-mail e o Yahoo responderá "não", pois o servidor não é um servidor de propriedade do Yahoo, assim alguns dos seus E-mails enviados poderão não ser aceitos.
Se o seu provedor de E-mail (como o Yahoo) possui esta restrição, você deve mudar a configuração do E-mail para escolher o outro método "Servidor SMTP" e inserir o servidor SMTP e as credenciais fornecidas pelo seu provedor de E-mail (peça ao seu provedor de EMail para obter as credenciais SMTP para a sua conta). ClickToShowDescription=Clique para exibir a descrição -DependsOn=Este módulo necessita do(s) módulo(s) -RequiredBy=Este módulo é exigido pelo(s) módulo(s) +DependsOn=Este módulo precisa de módulo(s) +RequiredBy=Este módulo é exigido por módulo(s) TheKeyIsTheNameOfHtmlField=Este é o nome do campo HTML. Ele precisa ter conhecimentos técnicos para ler o conteúdo da página HTML para obter o nome da chave de um campo. PageUrlForDefaultValues=Você deve inserir aqui a URL relativa da sua página. Se você incluir parâmetros na URL, os valores padrão serão efetivos se todos os parâmetros são definidos no mesmo valor. Exemplos : PageUrlForDefaultValuesCreate=
Para o formulário que cria um novo terceiro, isto é %s,
Se você deseja apenas o valor padrão se a URL tem algum parâmetro, você pode usar %s @@ -408,7 +411,7 @@ Module25Name=Pedidos de Clientes Module25Desc=Gestor de Pedidos de Clientes Module30Desc=Gestor de Faturas e Notas de Créditos para Clientes. Gestor de faturas para Fornecedores Module40Desc=Gestor de Fornecedores e Compra (Pedidos e Faturas) -Module42Name=Registros +Module42Name=Notas de depuração Module42Desc=Recursos de registro (arquivo, syslog, ...). Tais registros são para propósitos técnicos/debug. Module49Desc=Gestor de Editores Module50Desc=Gestor de Produtos @@ -449,6 +452,7 @@ Module320Desc=Adiciona um RSS feed dentro das páginas de tela do Dolibarr Module330Name=Marcadores de Página Module330Desc=Gerenciamento de agendamentos Module400Name=Projetos +Module400Desc=Gestão de projetos, oportunidades / espera e / ou tarefas. Você também pode atribuir qualquer elemento (fatura, ordem, proposta, intermediação, ...) a um projeto e obter uma visão panorâmica do projeto. Module410Desc=Integração do Webcalendar Module500Name=Taxas, Contribuições Sociais e Dividendos Module500Desc=Gestor Taxas, Contribuições Sociais e Dividentos @@ -458,6 +462,8 @@ Module520Desc=Gestão dos empréstimos Module600Name=Notificações sobre eventos de negócio Module600Desc=Enviar notificações por EMail (disparadas por alguns eventos de negócio) para usuários (configuração definida em cada usuário), para contatos de terceiros (configuração definida em cada terceiro) ou para emails fixos Module600Long=Note que este módulo é dedicado a enviar e-mails em tempo real quando um evento de negócio dedicado ocorre. Se você está buscando uma função para enviar avisos por e-mail sobre os eventos da sua agenda, vá para a configuração do módulo Agenda. +Module610Name=Variáveis de produtos +Module610Desc=Permite a criação de variável de produtos com base em atributos (cor, tamanho, ...) Module700Name=Doações Module700Desc=Gestor de Doações Module770Desc=Gestão e reivindicação de relatórios de despesas (transporte, refeição, ...) @@ -474,8 +480,8 @@ Module2200Desc=Habilitar o uso de expressões matemáticas para os preços Module2300Desc=Gerenciamento dos trabalhos agendados (alias cron ou tabela chrono) Module2400Name=Eventos / Agenda Module2400Desc=Acompanhe os eventos realizados e futuros. Deixe o aplicativo registrar eventos automáticos para fins de rastreamento ou gravar eventos manuais ou reuniões. -Module2500Name=Gerenciamento de Conteúdo Eletrônico -Module2500Desc=Salve e compartilhe documentos +Module2500Name=SGBD / GCE +Module2500Desc=Sistema de Gerenciamento de Documentos / Gerenciamento de Conteúdo Eletrônico. Organização automática de seus documentos gerados ou armazenados. Compartilhe-os quando precisar. Module2600Name=Serviços API/Web (Servidor SOAP) Module2600Desc=Ativa o servidor de serviços web do Dolibarr Module2610Desc=Permitir que o servidor prestação de serviços de API REST do Dolibarr @@ -484,8 +490,8 @@ Module2660Desc=Habilitar o webservices do Dolibarr (pode ser usado para empurrar Module2700Desc=Usar serviço online do Gravatar (www.gravatar.com) para mostrar foto de usuários/membros (achado pelos emails deles). Precisa de acesso a internet Module2900Desc=Capacidade de conversão com o GeoIP Maxmind Module3100Desc=Adicionar um botão Skype nos cartões dos usuários / terceiros / contatos membros -Module3200Name=Registros Não Reversíveis -Module3200Desc=Ativa o registro de alguns eventos de negócio em um registro não reversível. Os eventos são arquivados em tempo real. O registro é uma tabela de eventos em cadeia que podem ser lidos e exportados. Este módulo pode ser obrigatório em alguns países. +Module3200Name=Arquivos inalteráveis +Module3200Desc=Ative gerador de log de alguns eventos comerciais em um registro inalterável. Os eventos são arquivados em tempo real. O gerador de log é uma tabela de eventos encadeados que podem ser lidos e exportados somente. Este módulo pode ser obrigatório para alguns países. Module4000Name=RH Module4000Desc=Gerenciamento de recursos humanos (gerenciamento do departamento, contratos dos funcionários e benefícios) Module5000Name=Multi-Empresas @@ -496,8 +502,10 @@ Module10000Desc=Crie sites públicos com um editor WYSIWYG. Basta configurar seu Module20000Name=Gerenciamento de folgas e férias Module20000Desc=Autorizar e acompanhar solicitações de licença de funcionários Module39000Desc=Lote ou número de serie, para compra e venda administrado produtos +Module50000Desc=Módulo para oferecer uma página de pagamento on-line aceitando pagamentos com cartão de crédito / débito via PayBox. Isso pode ser usado para permitir que seus clientes façam pagamentos gratuitos ou para um pagamento em um determinado objeto Dolibarr (fatura, pedido, ...) Module50100Name=Ponto de Vendas Module50100Desc=Módulo ponto de vendas (PDV) +Module50200Desc=Módulo para oferecer uma página de pagamento on-line aceitando pagamentos usando o PayPal (cartão de crédito ou crédito PayPal). Isso pode ser usado para permitir que seus clientes façam pagamentos gratuitos ou para um pagamento em um determinado objeto Dolibarr (fatura, pedido, ...) Module50400Desc=Gerenciamento da contabilidade (entradas duplicadas, suporta livros contábeis gerais e auxiliares) Module54000Name=ImprimirIPP Module54000Desc=Imprima via Cups IPP @@ -762,10 +770,12 @@ DictionaryTypeContact=Tipos Contato / Endereço DictionaryEcotaxe=Ecotaxa (REEE) DictionaryPaperFormat=Formatos de papel DictionaryFormatCards=Formatos dos cartões +DictionaryFees=Relatório de despesas - Tipos de linhas de relatório de despesas DictionarySendingMethods=Métodos do transporte DictionaryStaff=Pessoal DictionaryOrderMethods=Métodos de compra DictionarySource=Origem das propostas / ordens +DictionaryAccountancyCategory=Grupos personalizados para relatórios DictionaryAccountancysystem=Modelos para o plano de contas DictionaryAccountancyJournal=Relatórios da contabilidade DictionaryEMailTemplates=Modelos de E-mails @@ -775,6 +785,7 @@ DictionaryOpportunityStatus=Status oportunidade para projeto / lead SetupSaved=Configurações Salvas SetupNotSaved=Configuração não salva BackToDictionaryList=Voltar para a lista de dicionários +TypeOfRevenueStamp=Tipo de selo de receita VATManagement=Gestor de ICMS VATIsUsedDesc=Como padrão, quando da criação de orçamentos, faturas, pedidos, etc. a taxa do ICMS acompanha a regra padrão ativa:
se o vendedor não estiver sujeito ao ICMS, então o padrão do ICMS é 0. Fim da regra.
Se o (país da venda= país da compra), então o ICMS por padrão é igual ao ICMS do produto no país da venda. Fim da regra.
Se o vendedor e o comprador estão na Comunidade Europeia e os produtos são meios de transporte (carro, navio, avião), o VAT padrão é 0 (O VAT deverá ser pago pelo comprador à receita federal do seu país e não ao vendedor). Fim da regra.
Se o vendedor e o comprador estão na Comunidade Europeia e o comprador não é uma pessoa jurídica, então o VAT por padrão é o VAT do produto vendido. Fim da regra.
Se o vendedor e o comprador estão na Comunidade Europeia e o comprador é uma pessoa jurídica, então o VAT é 0 por padrão . Fim da regra.
Em qualquer outro caso o padrão proposto é ICMS=0. Fim da regra. VATIsNotUsedDesc=Por padrão o ICMS sugerido é 0, o que pode ser usado em casos tipo associações, pessoas ou pequenas empresas. @@ -955,7 +966,7 @@ PathToDocuments=Caminho para documentos SendmailOptionMayHurtBuggedMTA=Função para envios de correspondência usando o método "PHP mail direct" irá gerar uma mensagem na correspondência que pode não estar corretamente analisada por algum servidor de recepção de correspondência. Resultando que essa correspondência não pode ser lida pela pessoa hostiada por essa plataforma bugada. É caso de alguns provedores de internet (Ex: Orange na França). Isso não é um problema para o Dolibarr nem dentro PHP mas para servidor receptor de correspondência. Você pode contudo adicionar a opção MAIN_FIX_FOR_BUGGED_MTA para 1 dentro da configuração, outra modificação do Dolibarr para evitar isso. Contudo você pode sofrer problemas com outros servidores que respeitão estritamente os padrões SMTP. A outra solução (RECOMENDADA) é usar o método "SMTP socket library" que não tem desvantagens. TranslationKeySearch=Buscar uma chave ou variável de tradução TranslationOverwriteKey=Sobrescrever uma variável de tradução -TranslationDesc=Como definir o idioma do aplicativo exibido: 1 * Sistema inteiro: menu 2 Home - Configuração - Exibição 2 3 * Por usuário: Use a guia 4 Configuração da exibição do usuário 4 no cartão do usuário (clique no nome de usuário na parte superior da tela). +TranslationDesc=Como definir o idioma do aplicativo exibido:
* Systemwide: menu Início - Configuração - Exibição
* Por usuário: use a guia Configuração da tela do usuário no cartão do usuário ( clique no nome de usuário na parte superior da tela). TranslationOverwriteDesc=Você também pode sobrescrever as variáveis preenchendo a tabela a seguir. Escolha o seu idioma a partir do "%s" dropdown, insira a variável com a chave da transação em "%s" e a sua nova tradução em "%s" TranslationOverwriteDesc2=Você pode usar a outra aba para lhe ajudar a conhecer a chave de tradução a ser empregada TranslationString=Variável de tradução @@ -1288,6 +1299,8 @@ AGENDA_USE_EVENT_TYPE_DEFAULT=Definido automaticamente esse valor padrão para o AGENDA_DEFAULT_FILTER_TYPE=Use automaticamente este tipo de evento no filtro de busca da agenda AGENDA_DEFAULT_FILTER_STATUS=Use automaticamente este estado no filtro das buscas da agenda AGENDA_DEFAULT_VIEW=Qual aba voçê quer abrir por padrão quando o menu Agenda e selecionado +AGENDA_REMINDER_EMAIL=Ativar lembrete de evento por emails (A opção de lembrar / atraso pode ser definida em cada evento). Nota: Módulo 1 %s deve ser habilitado e configurado corretamente para que o lembrete seja enviado na freqüência correta. +AGENDA_REMINDER_BROWSER=Ativar lembrete de envento no navegador de usuários (quando a data do evento é atingida, cada usuário pode recusar isso a partir da pergunta de confirmação do navegador) AGENDA_REMINDER_BROWSER_SOUND=Habilitar a notificação sonora AGENDA_SHOW_LINKED_OBJECT=Exibir objeto conectado na visualização da agenda ClickToDialSetup=Configurações do módulo clique para discar @@ -1442,7 +1455,7 @@ activateModuleDependNotSatisfied=O módulo "%s" depende do módulo "%s" que est CommandIsNotInsideAllowedCommands=O comando que você tenta executar não está na lista de comandos permitidos definidos no parâmetro $dolibarr_main_restrict_os_commands no arquivo conf.php. LandingPage=Página de destino SamePriceAlsoForSharedCompanies=Se você usa um módulo de múltiplas empresas, com a escolha de "Preço único", o preço será também o mesmo para todas as empresas se os produtos são compartilhados entre os ambientes. -ModuleEnabledAdminMustCheckRights=O módulo foi ativado. As permissões para o(s) módulo(s) ativado(s) são atribuídas apenas pelos usuários administradores. Você pode precisar atribuir permissões para outros usuários ou grupos manualmente. +ModuleEnabledAdminMustCheckRights=O módulo foi ativado. As permissões para módulo(s) ativado foram fornecidas apenas aos usuários de administração. Talvez seja necessário conceder permissões para outros usuários ou grupos manualmente, se necessário. UserHasNoPermissions=Este usuário não possui permissões definidas TypeCdr=Use "Nenhum" se a data do prazo de pagamento da fatura mais um delta em dias (delta é o campo "Nº de dias")
Use "No fim do mês", se, após o delta, a data deve ser aumentada para alcançar o fim do mês (+ um "Prazo" opcional em dias)
Use "Atual/Próximo" para ter a data do prazo de pagamento sendo o primeiro Nº do mês (N é armazenado no campo "Nº de dias") BaseCurrency=Moeda de referência da companhia (ir para a configuração da companhia para alterá-la) diff --git a/htdocs/langs/pt_BR/banks.lang b/htdocs/langs/pt_BR/banks.lang index 187347403bc..41e59b35c22 100644 --- a/htdocs/langs/pt_BR/banks.lang +++ b/htdocs/langs/pt_BR/banks.lang @@ -1,5 +1,7 @@ # Dolibarr language file - Source file is en_US - banks MenuBankCash=Banco/Caixa +MenuVariousPayment=Pagamentos diversos +MenuNewVariousPayment=Novo pagamento diverso BankAccounts=Contas bancárias ShowAccount=Mostrar conta AccountRef=Ref. da conta financeira @@ -20,6 +22,10 @@ ShowAllTimeBalance=Mostrar saldo desde o início AllTime=Desde o início Reconciliation=Reconciliação RIB=Número da conta bancária +SwiftValid=Código de identificação bancária / Sociedade para Telecomunicações Financeiras Interbancárias Internacionais válido +SwiftVNotalid=Código de identificação bancária / Sociedade para Telecomunicações Financeiras Interbancárias Internacionais inválido +IbanValid=Numero de conta bancária valida +IbanNotValid=Numero de conta bancária inválida AccountStatement=Extrato da conta AccountStatementShort=Extrato AccountStatements=Extratos da conta @@ -122,3 +128,10 @@ 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=Novos pagamentos diversos +VariousPayment=Pagamentos diversos +VariousPayments=Pagamentos diversos +ShowVariousPayment=Mostrar pagamentos diversos +AddVariousPayment=Adicionar pagamentos diversos +YourSEPAMandate=Seu mandato Área Única de Pagamentos em Euros +FindYourSEPAMandate=Este é o seu mandato da SEPA (Área Única de Pagamentos em Euros) para autorizar a nossa empresa a fazer uma ordem de débito direto para o seu banco. Obrigado em devolvê-lo assinado (digitalização do documento assinado) ou enviado por correio para diff --git a/htdocs/langs/pt_BR/bills.lang b/htdocs/langs/pt_BR/bills.lang index 817faa03b93..f8532a3fd3b 100644 --- a/htdocs/langs/pt_BR/bills.lang +++ b/htdocs/langs/pt_BR/bills.lang @@ -3,14 +3,19 @@ BillsCustomers=Faturas a clientes BillsCustomer=Fatura de cliente BillsSuppliers=Faturas de fornecedores BillsCustomersUnpaid=Faturas de clientes não pagos +BillsCustomersUnpaidForCompany=Faturas de clientes não pagas para %s BillsSuppliersUnpaid=Faturas de fornecedores não pagos +BillsSuppliersUnpaidForCompany=Faturas de fornecedores não pagas para %s BillsLate=Pagamentos atrasados BillsStatistics=Estatísticas de faturas de clientes BillsStatisticsSuppliers=Estatísticas faturas de Fornecedores +DisabledBecauseDispatchedInBookkeeping=Desativado porque a nota fiscal foi despachada na contabilidade +DisabledBecauseNotLastInvoice=Desativado porque a fatura não é apagável. Algumas faturas foram gravadas após esta e ele criará buracos no balcão. DisabledBecauseNotErasable=Desativada já que não pode ser apagada InvoiceStandard=Fatura padrão InvoiceStandardAsk=Fatura padrão InvoiceStandardDesc=Esse tipo de fatura é a fatura comum. +InvoiceDepositDesc=Este tipo de fatura é feita quando um pagamento inicial foi recebido. InvoiceProForma=Fatura pro-forma InvoiceProFormaAsk=Fatura pro-forma InvoiceProFormaDesc=Fatura pro-forma é uma imagem verdadeira de fatura porem não tem valor contábil. @@ -33,6 +38,7 @@ UsedByInvoice=Usado para pagar fatura %s NotConsumed=Não consumida NoReplacableInvoice=Nenhuma fatura substituida NoInvoiceToCorrect=Nenhuma fatura para corrigir +InvoiceHasAvoir=Foi fonte de uma ou várias notas de crédito CardBill=Ficha da fatura PredefinedInvoices=Faturas predefinidas Invoice=Fatura @@ -51,6 +57,7 @@ paymentInInvoiceCurrency=na moeda das faturas PaidBack=Reembolso pago DeletePayment=Deletar pagamento ConfirmDeletePayment=Você tem certeza que deseja excluir este pagamento? +ConfirmConvertToReduc=Deseja converter este %s em um desconto absoluto?
O valor será salvo entre todos os descontos e poderá ser usado como um desconto para uma fatura corrente ou futura para este cliente. SupplierPayments=Pagamentos a fornecedores ReceivedCustomersPayments=Pagamentos recebidos de cliente PayedSuppliersPayments=Pagamentos pago ao fornecedores @@ -60,7 +67,9 @@ PaymentsAlreadyDone=Pagamentos já feitos PaymentsBackAlreadyDone=Reembolsos de pagamentos já feitos PaymentRule=Regra de pagamento PaymentMode=Forma de Pagamento +PaymentTypeDC=Cartão de débito / crédito IdPaymentMode=Tipo de pagamento (id) +CodePaymentMode=Tipo de pagamento (código) LabelPaymentMode=Tipo de pagamento (rótulo) PaymentModeShort=Forma de Pagamento PaymentTerm=Termo de pagamento @@ -72,6 +81,7 @@ HelpPaymentHigherThanReminderToPay=Atenção, o valor do pagamento de uma ou mai HelpPaymentHigherThanReminderToPaySupplier=Atenção, o valor do pagamento de uma ou mais contas é maior do que o resto a pagar.
Edite sua entrada, caso contrário, confirmar. ClassifyPaid=Classificar 'pago' ClassifyPaidPartially=Classificar 'parcialmente pago' +ClassifyCanceled=Classificar 'Abandonado' ClassifyClosed=Classificar 'fechado' ClassifyUnBilled=Classificar "à faturar" CreateBill=Criar fatura @@ -82,7 +92,10 @@ SearchACustomerInvoice=Procurar fatura de cliente SearchASupplierInvoice=Procurar fatura de fornecedor CancelBill=Cancelar uma fatura SendRemindByMail=Enviar Lembrete por e-mail +DoPayment=Digite o pagamento +DoPaymentBack=Insira o reembolso ConvertToReduc=Converter em um desconto futuro +ConvertExcessReceivedToReduc=Converta o excesso recebido em desconto futuro EnterPaymentReceivedFromCustomer=Entrar pagamento recebido de cliente EnterPaymentDueToCustomer=Realizar pagamento devido para cliente DisabledBecauseRemainderToPayIsZero=Desabilitado porque o restante a pagar é zero @@ -91,17 +104,21 @@ BillStatus=Status de fatura StatusOfGeneratedInvoices=Situação das faturas geradas BillStatusDraft=Rascunho (precisa ser validada) BillStatusPaid=Pago +BillStatusPaidBackOrConverted=Reembolso de nota de crédito ou convertido em desconto BillStatusConverted=Pago (pronto para fatura final) BillStatusValidated=Validado (precisa ser pago) BillStatusStarted=Iniciado BillStatusNotPaid=Não pago +BillStatusNotRefunded=Não reembolsado BillStatusClosedUnpaid=Fechado (não pago) BillStatusClosedPaidPartially=Pago (parcialmente) BillShortStatusPaid=Pago +BillShortStatusPaidBackOrConverted=Reembolsar ou converter BillShortStatusCanceled=Abandonado BillShortStatusValidated=Validado BillShortStatusStarted=Iniciado BillShortStatusNotPaid=Não pago +BillShortStatusNotRefunded=Não reembolsado BillShortStatusClosedUnpaid=Fechado BillShortStatusClosedPaidPartially=Pago (parcialmente) PaymentStatusToValidShort=Para validar @@ -114,15 +131,26 @@ ErrorDiscountAlreadyUsed=Erro, desconto já utilizado ErrorInvoiceAvoirMustBeNegative=Erro, fatura atual precisa ter um valor negativo ErrorInvoiceOfThisTypeMustBePositive=Erro, esse tipo de fatura deve ter um valor positivo ErrorCantCancelIfReplacementInvoiceNotValidated=Erro, não se pode cancelar uma fatura que foi substituida por outra fatura que ainda esta como rascunho +ErrorThisPartOrAnotherIsAlreadyUsedSoDiscountSerieCantBeRemoved=Esta parte ou outra já é usada, de modo que a série de desconto não pode ser removida. BillFrom=De BillTo=Para ActionsOnBill=Ações na fatura +RecurringInvoiceTemplate=Modelo / nota fiscal recorrente NoQualifiedRecurringInvoiceTemplateFound=Nenhum tema de fatura recorrente qualificado para a geração FoundXQualifiedRecurringInvoiceTemplate=Encontrado(s) %s tema(s) de fatura(s) recorrente(s) qualificado(s) para a geração. NotARecurringInvoiceTemplate=Não é um tema de fatura recorrente NewBill=Nova fatura +LastBills=Últimas notas %s +LatestTemplateInvoices=Últimas faturas do modelo %s +LatestCustomerTemplateInvoices=Últimas faturas do modelo de cliente %s +LatestSupplierTemplateInvoices=Últimas faturas de modelo de fornecedor %s +LastCustomersBills=Últimas notas de clientes %s +LastSuppliersBills=Últimas faturas de fornecedor %s AllBills=Todas faturas +AllCustomerTemplateInvoices=Todas as faturas do modelo DraftBills=Rascunho de faturas +CustomersDraftInvoices=Faturas de rascunho do cliente +SuppliersDraftInvoices=Faturas de rascunho do fornecedor Unpaid=Não pago ConfirmDeleteBill=Você tem certeza que deseja excluir esta fatura? ConfirmValidateBill=Você tem certeza que deseja validar esta fatura com referência %s? @@ -133,6 +161,7 @@ ConfirmCancelBillQuestion=Por quê você deseja classificar esta fatura 'abandon ConfirmClassifyPaidPartially=Você tem certeza que deseja mudar a situação da fatura %s para paga? ConfirmClassifyPaidPartiallyQuestion=Esta fatura não foi completamente paga. Quais são os motivos para você fechar esta fatura? ConfirmClassifyPaidPartiallyReasonAvoir=Restante para pagar (%s %s) é um desconto concedido porque o pagamento foi feito antes do prazo. Eu regularizei o ICMS com uma nota de crédito. +ConfirmClassifyPaidPartiallyReasonDiscount=Restante não remunerado (%s %s) é um desconto concedido porque o pagamento foi feito antes do prazo. ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Restante para pagar (%s %s) é um desconto concedido porque o pagamento foi feito antes do prazo. Eu aceitei perder o ICMS neste desconto. ConfirmClassifyPaidPartiallyReasonDiscountVat=Restante para pagar (%s %s) é um desconto concedido porque o pagamento foi feito antes do prazo. Eu recuperei o ICMS neste desconto sem uma nota de crédito. ConfirmClassifyPaidPartiallyReasonBadCustomer=Cliente mau @@ -159,11 +188,13 @@ ShowBill=Mostrar fatura ShowInvoice=Mostrar fatura ShowInvoiceReplace=Mostrar fatura de substituição ShowInvoiceAvoir=Mostrar nota de crédito +ShowInvoiceDeposit=Mostrar fatura de pagamento ShowInvoiceSituation=Exibir a situação da fatura AlreadyPaid=Já está pago AlreadyPaidBack=Já está estornado RemainderToPay=Restante para pagar RemainderToTake=Restante para pegar +RemainderToPayBack=Valor restante a reembolsar Rest=Pedente AmountExpected=Quantidade reivindicada ExcessReceived=Excesso recebido @@ -183,6 +214,7 @@ SendReminderBillByMail=Enviar o restante por e-mail RelatedCommercialProposals=Orçamentos relacionados RelatedRecurringCustomerInvoices=Faturas recorrentes relacionadas ao cliente MenuToValid=Validar +DateMaxPayment=Pagamento devido em DateInvoice=Data da fatura DatePointOfTax=Ponto de imposto NoInvoice=Nenhuma fatura @@ -216,12 +248,17 @@ ShowReduc=Mostrar o desconto GlobalDiscount=Desconto global CreditNote=Nota de crédito CreditNotes=Notas de crédito +Deposit=Depósito +Deposits=Depósitos DiscountFromCreditNote=Desconto de nota de crédito %s +DiscountFromDeposit=Pagamentos a partir de depósito na fatura %s +DiscountFromExcessReceived=Pagamentos do excesso recebido da fatura %s AbsoluteDiscountUse=Esse tipo de crédito pode ser usado na fatura antes da validação CreditNoteDepositUse=A fatura deve ser validada para utilizar este tipo de crédito NewGlobalDiscount=Novo desconto fixo NewRelativeDiscount=Novo desconto relativo DiscountOfferedBy=Concedido por +DiscountAlreadyCounted=Descontos aplicados BillAddress=Endereço de cobrança HelpEscompte=Esse desconto é um desconto concedido para cliente porque o pagamento foi feito antes do prazo. HelpAbandonBadCustomer=Essa quantia foi abandonada (cliente mencionou a ser um mau cliente) e é considerado uma perca excepcional. @@ -262,15 +299,25 @@ ListOfNextSituationInvoices=Lista das faturas na próxima situação FrequencyPer_d=A cada %s dias FrequencyPer_m=A cada %s meses FrequencyPer_y=A cada %s anos +FrequencyUnit=Unidade de frequência +toolTipFrequency=Exemplos:
fixar 7, Day : dê uma nova fatura a cada 7 dias
Set 3, Month : dê uma nova fatura a cada 3 meses NextDateToExecution=Data para a próxima geração de fatura +NextDateToExecutionShort=Data da próxima geração. DateLastGeneration=Data da última geração +DateLastGenerationShort=Data da última geração. MaxPeriodNumber=Nº máximo de geração de faturas NbOfGenerationDone=Nº de geração de fatura já alcançado +NbOfGenerationDoneShort=Numero de geração feito MaxGenerationReached=Nº máximo de gerações alcançado InvoiceAutoValidate=Validar as faturas automaticamente GeneratedFromRecurringInvoice=Gerar a partir do tem de fatura recorrente %s DateIsNotEnough=Data ainda não alcançada InvoiceGeneratedFromTemplate=Fatura %s gerada a partir do tema de fatura recorrente %s +WarningInvoiceDateInFuture=Atenção, a data da fatura é superior à data atual +WarningInvoiceDateTooFarInFuture=Atenção, a data da fatura está muito longe da data atual +ViewAvailableGlobalDiscounts=Ver descontos disponíveis +PaymentConditionShortRECEP=Após o recebimento +PaymentConditionRECEP=Após o recebimento PaymentConditionShort30DENDMONTH=30 dias do fim do mês PaymentCondition30DENDMONTH=Dentro de 30 dias após o fim do mês PaymentConditionShort60DENDMONTH=60 dias do fim do mês @@ -278,6 +325,14 @@ PaymentCondition60DENDMONTH=Dentro de 60 dias após o fim do mês PaymentConditionShortPT_DELIVERY=Na entrega PaymentConditionPT_ORDER=No pedido PaymentConditionPT_5050=50%% adiantado e 50%% na entrega +PaymentConditionShort10D=10 dias +PaymentCondition10D=10 dias +PaymentConditionShort10DENDMONTH=10 dias do final do mês +PaymentCondition10DENDMONTH=Dentro de 10 dias após o final do mês +PaymentConditionShort14D=14 dias +PaymentCondition14D=14 dias +PaymentConditionShort14DENDMONTH=14 dias do final do mês +PaymentCondition14DENDMONTH=Dentro de 14 dias após o final do mês FixAmount=Corrigir valor VarAmount=Variavel valor (%% total) PaymentTypePRE=Pedido com pagamento em Débito direto @@ -332,16 +387,19 @@ ChequesArea=Área de cheques depositados ChequeDeposits=depósitos de cheques DepositId=Depósito Id NbCheque=Número de cheques +CreditNoteConvertedIntoDiscount=Este %s foi convertido em %s UsBillingContactAsIncoiveRecipientIfExist=Usar o endereço do contato de faturamento do cliente ao invés do endereço de terceiro como recibo das faturas ShowUnpaidAll=Mostras todas as faturas não pagas ShowUnpaidLateOnly=Mostrar todas as faturas atrasadas não pagas PaymentInvoiceRef=Pagamento de fatura %s ValidateInvoice=validar fatura +ValidateInvoices=Validar faturas Cash=DinheiroCash DisabledBecausePayments=Não é possivel devido alguns pagamentos CantRemovePaymentWithOneInvoicePaid=Não posso remover pagamento ao menos que o última fatura sejá classificada como pago ExpectedToPay=Esperando pagamento CantRemoveConciliatedPayment=Não pode remover a conciliação de pagamento +ClosePaidInvoicesAutomatically=Classifique "pago" todas as faturas padrão, antecipadas ou de substituição integralmente pagas. ClosePaidCreditNotesAutomatically=Classificar "pago" todas notas de crédito inteiramente pago de volta. ClosePaidContributionsAutomatically=Classificar como "Pagas" todas as contribuições sociais ou fiscais quitadas. AllCompletelyPayedInvoiceWillBeClosed=Todas faturas sem permanencia para pagar será automaticamente fechada com status "pago". @@ -354,7 +412,9 @@ YouMustCreateStandardInvoiceFirstDesc=Você deve criar antes uma fatura padrão PDFCrabeDescription=Template PDF de fatura Caranguejo. Um completo template de fatura (template recomendado) PDFCrevetteDescription=Tema Crevette para fatura em PDF. Um tema completo para a situação das faturas TerreNumRefModelDesc1=Retorna número com formato %syymm-nnnn para padrão de faturas e %syymm-nnnn para notas de crédito onde yy é ano, mm é mês e nnnn é uma sequência numérica sem quebra e sem retorno para 0 +MarsNumRefModelDesc1=Número de retorno com o formato %syymm-nnnn para faturas padrão, %syymm-nnnn para faturas de substituição, %syymm-nnnn para faturas de adiantamento e %syymm-nnnn para notas de crédito onde yy é ano, mm é mês e nnnn é uma seqüência sem interrupção e não retornar para 0 TerreNumRefModelError=Uma conta começa com %syymm já existe e não é compatível com esse modelo de sequência. Remova ou renomeie ele para ativar esse módulo. +CactusNumRefModelDesc1=Número de retorno com o formato %syymm-nnnn para faturas padrão, %syymm-nnnn para notas de crédito e %syymm-nnnn para faturas de adiantamento, onde yy é ano, mm é mês e nnnn é uma seqüência sem quebra e sem retorno para 0 TypeContact_facture_internal_SALESREPFOLL=Representativo seguindo de fatura de cliente TypeContact_facture_external_BILLING=Contato de fatura de cliente TypeContact_facture_external_SHIPPING=Contato de envio de cliente @@ -388,3 +448,8 @@ ToCreateARecurringInvoiceGene=Para gerar as futuras faturas regular e manualment ToCreateARecurringInvoiceGeneAuto=Se você deseja ter tais faturas sendo geradas automaticamente, peça ao seu Administrador para habilitar e configurar o módulo %s. Note que ambos os métodos (manual e automático) podem ser usados em conjunto sem o risco de duplicação. DeleteRepeatableInvoice=Excluir tema de fatura ConfirmDeleteRepeatableInvoice=Você tem certeza que deseja excluir o tema de fatura? +CreateOneBillByThird=Crie uma fatura por terceiro (caso contrário, uma fatura por pedido) +BillCreated=%s conta(s) criada(s) +StatusOfGeneratedDocuments=Status da geração de documentos +DoNotGenerateDoc=Não gere arquivo de documento +AutogenerateDoc=Auto gerar arquivo de documento diff --git a/htdocs/langs/pt_BR/bookmarks.lang b/htdocs/langs/pt_BR/bookmarks.lang index 4fd7b981f71..1e62b9def06 100644 --- a/htdocs/langs/pt_BR/bookmarks.lang +++ b/htdocs/langs/pt_BR/bookmarks.lang @@ -1,8 +1,10 @@ # Dolibarr language file - Source file is en_US - bookmarks +AddThisPageToBookmarks=Adicione a página atual aos marcadores ListOfBookmarks=Lista de marcadores OpenANewWindow=Abrir uma nova janela ReplaceWindow=Substituir atual janela BookmarkTargetReplaceWindowShort=Atual janela +BehaviourOnClick=Comportamento quando a URL de marcador é selecionada SetHereATitleForLink=Colocar título para o marcador UseAnExternalHttpLinkOrRelativeDolibarrLink=Usar uma URL externa ou uma URL do Dolibarr ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Escolha se página vinculada deve abrir em uma nova janela ou não diff --git a/htdocs/langs/pt_BR/boxes.lang b/htdocs/langs/pt_BR/boxes.lang index 10ebf7833fc..fddbf14a683 100644 --- a/htdocs/langs/pt_BR/boxes.lang +++ b/htdocs/langs/pt_BR/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Informações de login BoxLastProducts=Últimos %s produtos/serviços BoxProductsAlertStock=Alertas de estoque para produtos BoxLastProductsInContract=Últimos %s produtos/serviços contratados @@ -20,6 +21,8 @@ BoxTitleLastSuppliers=Últimos %s fornecedores registrados BoxTitleLastModifiedSuppliers=Últimos %s fornecedores modificados BoxTitleLastModifiedCustomers=Últimos %s clientes modificados BoxTitleLastCustomersOrProspects=Últimos %s clientes ou prospectos de cliente +BoxTitleLastCustomerBills=Últimas notas de clientes %s +BoxTitleLastSupplierBills=Últimas faturas de fornecedor %s BoxTitleLastModifiedProspects=Últimos %s prospectos de cliente modificados BoxTitleLastModifiedMembers=Últimos %s membros BoxTitleLastFicheInter=Últimas %s intervenções modificadas @@ -42,7 +45,12 @@ LastRefreshDate=Ultima data atualizacao NoRecordedBookmarks=Nenhum marcador definido. NoRecordedContacts=Nenhum contato registrado NoActionsToDo=Nenhuma ação para fazer +NoRecordedOrders=Sem pedidos de clientes registrados NoRecordedProposals=Nenhum possível cliente registrado +NoRecordedInvoices=Nenhuma nota fiscal registrada +NoUnpaidCustomerBills=Não há notas fiscais de clientes não pagas +NoUnpaidSupplierBills=Não há notas fiscais de fornecedores não pagas +NoModifiedSupplierBills=Não há notas fiscais registradas do fornecedor NoRecordedProducts=Nenhum registro de produtos/serviços NoRecordedProspects=Nenhum registro de possíveis clientes NoContractedProducts=Nenhum produtos/serviços contratados @@ -63,3 +71,4 @@ ForCustomersInvoices=Faturas de clientes ForCustomersOrders=Pedidos de clientes LastXMonthRolling=Ultima %s mensal ChooseBoxToAdd=Adicionar widget para sua area de notificacoes +BoxAdded=A ferramenta foi adicionada no seu painel diff --git a/htdocs/langs/pt_BR/categories.lang b/htdocs/langs/pt_BR/categories.lang index 04e0fb49582..e622b9b09e2 100644 --- a/htdocs/langs/pt_BR/categories.lang +++ b/htdocs/langs/pt_BR/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Categoria Rubriques=Tags/Categorias +RubriquesTransactions=Tags/Categorias de transações categories=tags/categorias NoCategoryYet=Nenhuma tag/categoria deste tipo foi criada In=Em diff --git a/htdocs/langs/pt_BR/commercial.lang b/htdocs/langs/pt_BR/commercial.lang index 7c4282502d2..41a08423970 100644 --- a/htdocs/langs/pt_BR/commercial.lang +++ b/htdocs/langs/pt_BR/commercial.lang @@ -10,6 +10,7 @@ CardAction=Ficha de evento ActionOnContact=Contato relacionado ShowAction=Mostrar evento ActionsReport=Relatório de eventos +SaleRepresentativesOfThirdParty=Representantes de vendas de terceiros SalesRepresentative=Representante comercial SalesRepresentatives=Representantes comerciais SalesRepresentativeFollowUp=Representante comercial (seguindo) @@ -50,3 +51,8 @@ ActionAC_OTH=Outros Stats=Estatísticas de vendas StatusProsp=Status de prospecto de cliente DraftPropals=Minutas de orçamentos +ToOfferALinkForOnlineSignature=Link para assinatura on-line +WelcomeOnOnlineSignaturePage=Bem-vindo à página para aceitar orçamentos / propostas comerciais de %s +ThisScreenAllowsYouToSignDocFrom=Esta tela permite que você aceite e assine ou recuse um orçamento / proposta comercial +SignatureProposalRef=Assinatura do orçamento / proposta comercial %s +FeatureOnlineSignDisabled=Recurso para assinatura on-line desabilitado ou documento gerado antes que o recurso fosse ativado diff --git a/htdocs/langs/pt_BR/companies.lang b/htdocs/langs/pt_BR/companies.lang index 43bedf4b3a0..04a9a5b6fb2 100644 --- a/htdocs/langs/pt_BR/companies.lang +++ b/htdocs/langs/pt_BR/companies.lang @@ -25,6 +25,7 @@ AliasNames=Nome de fantasia (nome comercial, marca registrada etc.) AliasNameShort=Nome de fantasia CountryIsInEEC=O país integra a Comunidade Econômica Europeia ThirdPartyName=Nome do terceiro +ThirdPartyEmail=Email de terceiros ThirdPartyProspects=Prospectos de cliente ThirdPartyProspectsStats=Prospectos de cliente ThirdPartyCustomersWithIdProf12=Clientes com %s ou %s @@ -94,11 +95,26 @@ ProfId3CH=Prof Id 1 (Número federal) ProfId4CH=Prof Id 2 (Número gravado comercial) ProfId2ES=Prof Id 2 (Número de seguro social) ProfId4ES=Prof Id 4 (Número do colegial) +ProfId1FR=SIREN +ProfId2FR=SIRET +ProfId3FR=NAF (Ex APE) +ProfId4FR=RCS/RM ProfId1GB=Número do registro ProfId4IN=ID prof. 4 ProfId5IN=ID prof. 5 ProfId1LU=Id. prof. 1 (R.C.S. Luxemburgo) ProfId2LU=Id. prof. 2 (Permissão para negócios) +ProfId1PT=NIPC +ProfId2PT=Núm. Segurança Social +ProfId3PT=Num. Reg. Comercial +ProfId4PT=Conservatória +ProfId1TN=RC +ProfId2TN=Matrícula Fiscal +ProfId3TN=Código na Alfandega +ProfId4TN=CCC +ProfId1US=ID do Prof. +ProfId3DZ=Numero de Contribuinte +ProfId4DZ=Numero de Identificação Social VATIntra=Número ICMS VATIntraShort=Núm ICMS VATIntraSyntaxIsValid=Sintaxe é válida @@ -109,6 +125,8 @@ CustomerRelativeDiscountShort=Desconto relativo CustomerAbsoluteDiscountShort=Desconto fixo CompanyHasRelativeDiscount=Esse cliente tem um desconto padrão de %s%% CompanyHasNoRelativeDiscount=Esse cliente não tem desconto relativo por padrão +CompanyHasAbsoluteDiscount=Este cliente possui desconto disponível (notas de créditos ou adiantamentos) para %s %s +CompanyHasDownPaymentOrCommercialDiscount=Este cliente possui desconto disponível (comercial, adiantamentos) para %s %s CompanyHasCreditNote=Esse cliente ainda tem notas de crédito por %s %s CompanyHasNoAbsoluteDiscount=Esse cliente não tem desconto de crédito disponível CustomerAbsoluteDiscountAllUsers=Desconto fixo (concedido para todos usuários) @@ -219,6 +237,7 @@ LastModifiedThirdParties=Últimos %s terceiros modificados UniqueThirdParties=Total de terceiros InActivity=Aberto ActivityCeased=Inativo +ThirdPartyIsClosed=O terceiro está fechado ProductsIntoElements=Lista de produtos/serviços em %s CurrentOutstandingBill=Notas aberta correntes OutstandingBill=Conta excelente @@ -228,6 +247,7 @@ LeopardNumRefModelDesc=O código é livre. Esse código pode ser modificado a qu ManagingDirectors=Nome do Representante(CEO,Diretor,Presidente...) MergeOriginThirdparty=Duplicar terceiros (terceiros que deseja excluir) MergeThirdparties=Mesclar terceiros +ConfirmMergeThirdparties=Tem certeza de que deseja juntar esse terceiro no atual? Todos os objetos vinculados (faturas, pedidos, ...) serão movidos para o terceiro atual, então a terceira parte será excluída. ThirdpartiesMergeSuccess=Terceiros foram mesclados SaleRepresentativeLogin=Login para o representante de vendas SaleRepresentativeLastname=Sobrenome do representante de vendas diff --git a/htdocs/langs/pt_BR/compta.lang b/htdocs/langs/pt_BR/compta.lang index 3af2e0bfe22..794c3e64a9a 100644 --- a/htdocs/langs/pt_BR/compta.lang +++ b/htdocs/langs/pt_BR/compta.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - compta +MenuFinancial=Faturamento | Forma de pagamento TaxModuleSetupToModifyRules=Vá para configuração do módulo Impostos para modificar regras de cálculo TaxModuleSetupToModifyRulesLT=Vá até Configuração >> Empresa para modificar as regras de cálculo OptionMode=Opção de Administração Contabilidade @@ -10,24 +11,48 @@ VATReportBuildWithOptionDefinedInModule=Os valores aqui apresentados são calcul LTReportBuildWithOptionDefinedInModule=Valores mostrados aqui são calculados usando as regras definidas nas configurações da empresa. Param=Configuração RemainingAmountPayment=Pagamento montante remanescente: +Accountparent=Conta principal +Accountsparent=Conta principal Income=Rendimentos MenuReportInOut=Rendimentos/Despesas +ReportInOut=Saldo de receitas e despesas ReportTurnover=Faturamento PaymentsNotLinkedToInvoice=pagamentos vinculados a Nenhuma fatura, por o que nenhum Fornecedor PaymentsNotLinkedToUser=pagamentos não vinculados a um usuário Profit=Lucro AccountingResult=Resultado contábil +BalanceBefore=Balanço (antes) Piece=Doc. contábil AmountHTVATRealPaid=líquido pago VATToPay=ICMS a pagar +VATReceived=Imposto recebido +VATToCollect=Compras fiscais +VATSummary=balanço de impostos +VATPaid=Imposto pago +LT1Summary=Resumo da taxa 2 +LT2Summary=Resumo taxa 3 LT1SummaryES=RE Balançete LT2SummaryES=Saldo de IRPF +LT1SummaryIN=Balanço fiscal +LT2SummaryIN=Balanço Fiscal +LT1Paid=Taxa 2 pago +LT2Paid=Taxa 3 pago LT1PaidES=RE Pago LT2PaidES=IRPF pago +LT1PaidIN=CGST pago +LT2PaidIN=SGST pago +LT1Customer=2 vendas de taxas +LT1Supplier=Compra de taxas 2 compras LT1CustomerES=RE vendas LT1SupplierES=RE compras +LT1CustomerIN=CGST vendas +LT1SupplierIN=Compras do CGST +LT2Customer=Taxa 3 vendas +LT2Supplier=3 compras de taxas LT2CustomerES=IRPF de vendas LT2SupplierES=IRPF de compras +LT2CustomerIN=Vendas de SGST +LT2SupplierIN=Compras SGST VATCollected=ICMS recuperado SocialContribution=Contribuição fiscal ou social SocialContributions=Encargos sociais e fiscais @@ -38,6 +63,7 @@ TypeContrib=Tipo de contribuição MenuSpecialExpenses=Despesas especiais MenuSocialContributions=Contribuições fiscais/sociais NewSocialContribution=Nova contribuição fiscal/social +AddSocialContribution=Adicionar imposto social / fiscal ContributionsToPay=Encargos sociais / fiscais para pagar PaymentCustomerInvoice=Pagamento de fatura de cliente PaymentSupplierInvoice=Pagamento de fatura de fornecedor @@ -59,10 +85,14 @@ LT2PaymentES=Pagamento de IRPF LT2PaymentsES=Pagamentos de IRPF VATPayment=Pagamento da taxa de venda VATPayments=Pagamentos da taxa de venda +VATRefund=Reembolso da taxa sobre vendas Refund=Reembolso SocialContributionsPayments=Pagamentos de impostos sociais / fiscais ShowVatPayment=Ver Pagamentos ICMS TotalToPay=Total a pagar +BalanceVisibilityDependsOnSortAndFilters=O saldo é visível nessa lista somente se a tabela for ordenada ascendendo em %s e filtrada por 1 conta bancária +CustomerAccountancyCode=Código contábil do cliente +SupplierAccountancyCode=Código contábil do fornecedor CustomerAccountancyCodeShort=Cod. cont. cli. SupplierAccountancyCodeShort=Cod. cont. forn. AccountNumber=Número da conta @@ -87,6 +117,7 @@ CalcModeVATDebt=Modo% S VAT compromisso da contabilidade% s. CalcModeVATEngagement=Modo% SVAT sobre os rendimentos e as despesas% s. CalcModeDebt=Modo % s declarações de dívidas% s diz Compromisso da contabilidade . CalcModeEngagement=Modo % s rendimentos e as despesas% s contabilidade do caixa > +CalcModeBookkeeping=Análise de dados periodizados na tabela Razão da Contabilidade CalcModeLT1=Modo %sRE nas faturas dos clientes - faturas dos fornecedores%s CalcModeLT1Debt=Modo %sRE nas faturas dos clientes%s CalcModeLT1Rec=Modo %sRE nas faturas dos fornecedores%s @@ -95,11 +126,20 @@ CalcModeLT2Debt=Modo %sIRPF nas faturas de clientes%s CalcModeLT2Rec=Modo %sIRPF nas faturas de fornecedores%s AnnualSummaryDueDebtMode=Balanço de receitas e despesas, resumo anual AnnualSummaryInputOutputMode=Balanço de receitas e despesas, resumo anual +AnnualByCompanies=Saldo de receitas e despesas, por grupos de conta predefinidos +AnnualByCompaniesDueDebtMode=Saldo de receitas e despesas, detalhe por grupos predefinidos, modo %sClaims-Debts%s disse Contabilidade de Compromisso . +AnnualByCompaniesInputOutputMode=Saldo de receitas e despesas, detalhe por grupos predefinidos, modo %sIncomes-Expenses%s chamada fluxo de caixa . +SeeReportInBookkeepingMode=Consulte o relatório %sBookeeping%s para um cálculo em análise da tabela de contabilidade RulesAmountWithTaxIncluded=- Valores apresentados estão com todos os impostos incluídos RulesResultDue=- Isto inclui as faturas vencidas, despesas, ICMS (VAT), doações, pagas ou não. Isto também inclui os salários pagos.
- Isto isto baseado na data de validação das faturas e ICMS (VAT) e nas datas devidas para as despesas. Para os salários definidos com o módulo Salário, é usado o valor da data do pagamento. RulesResultInOut=- Isto inclui os pagamentos reais feitos nas faturas, despesas, ICMS (VAT) e salários.
- Isto é baseado nas datas de pagamento das faturas, despesas, ICMS (VAT) e salários. A data de doação para a doação. RulesCADue=- Isto inclui as faturas vencidas do cliente, pagas ou não.
- Isto é baseado na data de validação destas faturas.
RulesCAIn=- Inclui os pagamentos efetuados das faturas a clientes.
- Baseia-se na data de pagamento das mesmas
+RulesAmountOnInOutBookkeepingRecord=Inclui registro em seu Ledger com contas contábeis que tem o grupo "DESPESAS" ou "RENDIMENTO" +RulesResultBookkeepingPredefined=Inclui registro em seu Ledger com contas contábeis que tem o grupo "DESPESAS" ou "RENDIMENTO" +RulesResultBookkeepingPersonalized=Mostra registro em seu Livro de Registro com contas contábeis agrupadas por grupos personalizados +SeePageForSetup=Consulte o menu %s para configurar +DepositsAreNotIncluded=- As faturas de adiantamento nem estão incluídas LT2ReportByCustomersInInputOutputModeES=Relatório de fornecedores do IRPF LT1ReportByCustomersInInputOutputModeES=Relatorio por terceiro RE VATReport=Relatório de ICMS @@ -139,14 +179,24 @@ CalculationRuleDesc=Para calcular o total do VAT, há dois métodos:
Métod CalculationRuleDescSupplier=De acordo com o fornecedor, escolher o método adequado aplicar mesma regra de cálculo e obter mesmo resultado esperado pelo seu fornecedor. TurnoverPerProductInCommitmentAccountingNotRelevant=Relatório Volume de negócios por produto, quando se usa um modo de contabilidade de caixa não é relevante. Este relatório está disponível somente quando utilizar o modo de contabilidade engajamento (ver configuração do módulo de contabilidade). CalculationMode=Forma de cálculo +AccountancyJournal=código do Livro de Registro contábil +ACCOUNTING_VAT_SOLD_ACCOUNT=Conta contabilística por padrão para cobrança de IVA - IVA sobre vendas (usado se não definido na configuração do dicionário de IVA) +ACCOUNTING_VAT_BUY_ACCOUNT=Conta contabilística por padrão para IVA recuperado - IVA sobre compras (usado se não definido na configuração do Dicionário de IVA) ACCOUNTING_VAT_PAY_ACCOUNT=Conta da contabilidade padrão para o pagamento de ICMS +ACCOUNTING_ACCOUNT_CUSTOMER=Conta contábil usada para terceiros de clientes +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=A conta contábil dedicada definida no cartão de terceiros será usada somente para o uso exclusivo do Sub Livro de Registro. Este será usado para o Razão Geral e como valor padrão da contabilidade do Sub Livro de Registro se a conta de acesso ao cliente dedicada em terceiros não estiver definida. +ACCOUNTING_ACCOUNT_SUPPLIER=Conta contábil utilizada para fornecedores de terceiros +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=A conta contábil dedicada definida no cartão de terceiros será usada somente para o uso exclusivo do Sub Livro de registro. Este será usado para o Razão Geral e como valor padrão da contabilidade de Sub livro de registro se a conta de participação de fornecedores dedicada em terceiros não estiver definida. CloneTax=Clonar uma taxa social / fiscal ConfirmCloneTax=Confirme o clone de um pagamento de taxa social / fiscal CloneTaxForNextMonth=Clonar para o proximo mes +AddExtraReport=Relatórios extra (adicionar relatório de clientes estrangeiros e nacionais) OtherCountriesCustomersReport=Relação de clientes estrangeiros BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Com base nas duas primeiras letras do número de IVA sendo diferente do código de país da sua própria empresa SameCountryCustomersWithVAT=Informar os clientes nacionais BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Com base nas duas primeiras letras do número de IVA sendo o mesmo que o código do país da sua própria empresa LinkedFichinter=Vincular a uma intervenção ImportDataset_tax_contrib=Contribuições fiscais/sociais +ImportDataset_tax_vat=Pagamentos de IVA ErrorBankAccountNotFound=Erro: conta bancária não encontrada +ListSocialContributionAssociatedProject=Lista de contribuições sociais associadas ao projeto diff --git a/htdocs/langs/pt_BR/contracts.lang b/htdocs/langs/pt_BR/contracts.lang index 8e8d44596f5..7d563c08514 100644 --- a/htdocs/langs/pt_BR/contracts.lang +++ b/htdocs/langs/pt_BR/contracts.lang @@ -15,6 +15,7 @@ MenuRunningServices=Serviços em vigência MenuExpiredServices=Serviços vencidos ConfirmDeleteAContract=Você tem certeza que deseja excluir este contrato e todos os seus serviços? ConfirmValidateContract=Você tem certeza que deseja validar este contrato sob o mesmo nome %s? +ConfirmActivateAllOnContract=Isso abrirá todos os serviços (ainda não ativos). Tem certeza de que deseja abrir todos os serviços? ConfirmCloseContract=Isto fechará todos os serviços (ativos ou não). Você tem certeza que deseja fechar este contrato? ConfirmCloseService=Você tem certeza que deseja fechar este serviço com a data %s? ValidateAContract=Confirmar um contrato @@ -41,6 +42,7 @@ BoardRunningServices=Serviços Ativos Expirados ServiceStatus=Estado do Serviço DraftContracts=Contratos Rascunho CloseRefusedBecauseOneServiceActive=O contrato não pode ser encerrado já que contém ao menos um serviço aberto. +ActivateAllContracts=Ative todas as linhas de contrato CloseAllContracts=Fechar Todos os Contratos DeleteContractLine=Eliminar a linha do contrato ConfirmDeleteContractLine=Você tem certeza que deseja excluir esta linha do contrato? @@ -56,6 +58,10 @@ NoteListOfYourExpiredServices=Esta lista contém apenas contratos de serviços d StandardContractsTemplate=Modelo de contratos simples ContactNameAndSignature=Para %s, nome e assinatura: OnlyLinesWithTypeServiceAreUsed=Somente as linhas com o tipo de "serviço" será clonado. +CloneContract=Clonagem do contrato +ConfirmCloneContract=Tem certeza de que deseja clonar o contrato %s ? +LowerDateEndPlannedShort=Menor data de término planejada dos serviços ativos +SendContractRef=Informações do contrato __REF__ TypeContact_contrat_internal_SALESREPSIGN=Comercial assinante do contrato TypeContact_contrat_internal_SALESREPFOLL=Comercial seguimento do contrato TypeContact_contrat_external_BILLING=Contato cliente de faturação do contrato diff --git a/htdocs/langs/pt_BR/cron.lang b/htdocs/langs/pt_BR/cron.lang index cf52027886e..ff7e7caf1c0 100644 --- a/htdocs/langs/pt_BR/cron.lang +++ b/htdocs/langs/pt_BR/cron.lang @@ -7,15 +7,21 @@ CronSetup=Configuração do gerenciamento de trabalho agendado URLToLaunchCronJobs=URL para verificar e iniciar os cron jobs qualificados OrToLaunchASpecificJob=Ou checkar e iniciar um specifico trabalho KeyForCronAccess=Chave seguranca para URL que lanca tarefas cron +FileToLaunchCronJobs=Linha de comando para checar e iniciar tarefas cron qualificadas CronExplainHowToRunUnix=No ambiente Unix você deve usar a seguinte entrada crontab para executar a linha de comando a cada 5 minutos CronExplainHowToRunWin=Em ambiente Microsoft (tm) Windows, Você PODE USAR Ferramentas de Tarefa agendada Para executar a Linha de Comando de Cada 5 Minutos CronMethodDoesNotExists=A classe %s não contém método %s algum +CronJobDefDesc=Os perfis de trabalho do Cron são definidos no arquivo do descritor do módulo. Quando o módulo é ativado, eles são carregados e disponíveis para que você possa administrar os trabalhos no menu de ferramentas de administração %s. +CronJobProfiles=Lista de perfis de tarefa cron predefinidas EnabledAndDisabled=Ativado e desativado +CronLastOutput=Saída da última execução +CronLastResult=Código do último resultado CronList=As tarefas agendadas CronDelete=Excluir tarefas agendadas CronConfirmDelete=Você tem certeza que deseja excluir esses cron jobs agendados? CronExecute=Lançar Tarefas agendadas CronConfirmExecute=Você tem certeza que deseja executar agora estas tarefas agendadas? +CronInfo=O módulo de Tarefa Agendada permite agendar tarefas para executá-las automaticamente. As tarefas também podem ser iniciadas manualmente. CronNone=Nenhum CronDtStart=Não antes CronDtEnd=Não depois @@ -33,14 +39,24 @@ CronObject=Instância/Objeto a se criar CronSaveSucess=Salvo com sucesso CronFieldMandatory=O campo %s é obrigatório CronErrEndDateStartDt=A data final não pode ser anterior a data de início +StatusAtInstall=Status na instalação do módulo CronStatusActiveBtn=Ativar CronStatusInactiveBtn=Desativar CronTaskInactive=Está tarefa está desativada +CronClassFile=Nome de arquivo com classe +CronModuleHelp=Nome do diretório do módulo Dolibarr (também funciona com o módulo externo Dolibarr).
Por exemplo, chamar o método de busca do objeto de produto Dolibarr /htdocs/product/class/product.class.php, o valor para o módulo é
produto +CronClassFileHelp=O caminho relativo e o nome do arquivo para carregar (o caminho é relativo ao diretório raiz do servidor web).
Por exemplo, para chamar o método de busca do objeto de produto Dolibarr htdocs / product / class / product.class.php , o valor para o nome do arquivo da classe é
product / class / product.class.php +CronObjectHelp=O nome do objeto para carregar.
Por exemplo, para chamar o método de busca do objeto de produto Dolibarr /htdocs/product/class/product.class.php, o valor para o nome do arquivo de classe é
Produto +CronMethodHelp=O método do objeto para o lançamento.
Por exemplo, para chamar o método de busca do objeto de produto Dolibarr /htdocs/product/class/product.class.php, o valor para o método é
buscar +CronArgsHelp=Os argumentos do método.
Por exemplo, chamar o método de busca do objeto de produto Dolibarr /htdocs/product/class/product.class.php, o valor para parâmetros pode ser
0, ProductRef CronCommandHelp=A linha de comando de sistema que deve ser executada. CronCreateJob=Criar uma nova Tarefa agendada CronType=Tipo de tarefa +CronType_method=Chamar método de uma Classe PHP CronType_command=Comando Shell CronCannotLoadClass=Nao e possivel carregar a classe %s ou o objeto %s UseMenuModuleToolsToAddCronJobs=Vá até o menu "Home >> Ferramentas administrativas >> Tarefas agendadas" para visualizar e editar as tarefas agendadas. JobDisabled=Tarefa desativada MakeLocalDatabaseDumpShort=Backup do banco de dados local +MakeLocalDatabaseDump=Crie um despejo de banco de dados local. Os parâmetros são: compressão ('gz' ou 'bz' ou 'none'), tipo de backup ('mysql' ou 'pgsql'), 1, 'auto' ou nome do arquivo para construir, nb de arquivos de backup para manter +WarningCronDelayed=Atenção, para fins de desempenho, seja qual for a próxima data de execução de tarefas habilitadas, suas tarefas podem ser atrasadas em até um máximo de %s horas, antes de serem executadas. diff --git a/htdocs/langs/pt_BR/deliveries.lang b/htdocs/langs/pt_BR/deliveries.lang index 083399c4e58..8a56722c9f9 100644 --- a/htdocs/langs/pt_BR/deliveries.lang +++ b/htdocs/langs/pt_BR/deliveries.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - deliveries DeliveryRef=Ref. entrega +DeliveryCard=Recibo de recebimento DeliveryStateSaved=Estado de entrega salvo SetDeliveryDate=Indicar a Data de Envio ValidateDeliveryReceipt=Confirmar a Nota de Entrega diff --git a/htdocs/langs/pt_BR/dict.lang b/htdocs/langs/pt_BR/dict.lang index b1eae1f0bf5..bbd41bf0266 100644 --- a/htdocs/langs/pt_BR/dict.lang +++ b/htdocs/langs/pt_BR/dict.lang @@ -92,3 +92,19 @@ PaperFormatCAP3=Formato P3, Canadá PaperFormatCAP4=Formato P4, Canadá PaperFormatCAP5=Formato P5, Canadá PaperFormatCAP6=Formato P6, Canadá +ExpMotoCat=Motocicleta +ExpAuto3PCV=3 CV e mais +ExpAuto4PCV=4 CV e mais +ExpAuto5PCV=5 CV e mais +ExpAuto6PCV=6 CV e mais +ExpAuto7PCV=7 CV e mais +ExpAuto8PCV=8 CV e mais +ExpAuto9PCV=9 CV e mais +ExpAuto10PCV=10 CV e mais +ExpAuto11PCV=11 CV e mais +ExpAuto12PCV=12 CV e mais +ExpAuto13PCV=13 CV e mais +ExpCyclo=Capacidade abaixo de 50cm3 +ExpMoto12CV=Motocicleta 1 ou 2 CV +ExpMoto345CV=Motocicleta 3, 4 ou 5 CV +ExpMoto5PCV=Motocicleta 5 CV e mais diff --git a/htdocs/langs/pt_BR/ecm.lang b/htdocs/langs/pt_BR/ecm.lang index 84d677e2529..b37cab38257 100644 --- a/htdocs/langs/pt_BR/ecm.lang +++ b/htdocs/langs/pt_BR/ecm.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - ecm ECMNbOfDocs=Nr. de documentos +ECMRoot=Raiz ECM ECMNewSection=Criar pasta ECMAddSection=Adicionar pasta ECMCreationDate=Data criação @@ -7,8 +8,8 @@ ECMNbOfFilesInDir=Número de arquivos na pasta ECMNbOfSubDir=Número de subpastas ECMNbOfFilesInSubDir=Numero de arquivos nos subpastas ECMCreationUser=Criado por -ECMArea=Área GED -ECMAreaDesc=O GED (Gestão Eletrônica de Documentos) permite salvar, compartilhar e pesquisar rapidamente todos os tipos de documentos contidos no Dolibarr. +ECMArea=Área DMS / ECM +ECMAreaDesc=A área DMS / ECM (Gerenciamento de documentos / Gerenciamento de conteúdo eletrônico) permite salvar, compartilhar e pesquisar rapidamente todos os tipos de documentos no Dolibarr. ECMAreaDesc2=* As pastas automáticas são geradas automaticamente quando algum arquivo é adicionado a algum ficheiro do sistema.
* As pastas manuais podem ser usados ​​para guardar documentos sem ligação a um cadastro do sistema. ECMSectionWasRemoved=A pasta %s foi eliminada ECMSearchByKeywords=Busca usando palavras chave @@ -28,3 +29,8 @@ ECMDirectoryForFiles=Relação de pasta para arquivos CannotRemoveDirectoryContainsFiles=Não foi possível apagar, porque contém alguns arquivos ECMFileManager=Gerenciador de arquivos ECMSelectASection=Selecione uma pasta na árvore a esquerda... +DirNotSynchronizedSyncFirst=Este diretório parece ser criado ou modificado fora do módulo ECM. Você deve clicar no botão "Sincronizar" primeiro para sincronizar o disco do banco de dados para obter o conteúdo desse diretório. +ReSyncListOfDir=Sincronizar lista de diretórios +HashOfFileContent=Hash do conteúdo do arquivo +FileNotYetIndexedInDatabase=Arquivo ainda não indexado no banco de dados (tente voltar a carregá-lo) +FileSharedViaALink=Arquivo compartilhado via um link diff --git a/htdocs/langs/pt_BR/exports.lang b/htdocs/langs/pt_BR/exports.lang index 4dc2c779628..7512f5f8883 100644 --- a/htdocs/langs/pt_BR/exports.lang +++ b/htdocs/langs/pt_BR/exports.lang @@ -85,9 +85,16 @@ Enclosure=Recinto SpecialCode=Código especial ExportStringFilter=Permite substituir um ou mais caracteres no texto ExportDateFilter=AAAA, AAAAMM, AAAAMMDD : filtros por um ano / mês / dia
AAAA+AAAA, AAAAMM+AAAAMM, AAAAMMDD+AAAAMMDD : filtros mais de uma gama de ano / mês / dia inicial
> AAAA, > AAAAMM, > AAAAMMDD : filtros em todos seguindo anos / meses / dias
< AAAA, < AAAAMM, < AAAAMMDD : filtros em todos os anos / meses / dias anteriores +ExportNumericFilter=filtros NNNNN por um valor
filtros NNNNN+NNNNN acima de uma faixa de valores
< filtros NNNNN por valores mais baixos
> filtros NNNNN por valores mais elevados ImportFromLine=Importar iniciando da linha número +ImportFromToLine=Importar números de linhas (de -para) SetThisValueTo2ToExcludeFirstLine=Por exemplo, coloque 3 para este valor para excluir as 2 primeiras linhas KeepEmptyToGoToEndOfFile=Manter este campo em branco para ir até o fim do arquivo +UpdateNotYetSupportedForThisImport=Atualizar não é suportado para este tipo de importação (apenas inserir) +NoUpdateAttempt=Nenhuma tentativa de atualização foi realizada, apenas insira +ImportDataset_user_1=Usuários (funcionários ou não) e propriedades ComputedField=Campo computado SelectFilterFields=Se você deseja filtrar alguns valores, apenas os valores de entrada aqui. FilteredFieldsValues=Valor para o filtro +KeysToUseForUpdates=Chave para atualizar dados +MultipleRecordFoundWithTheseFilters=Múltiplos registros foram encontrados com esses filtros: %s diff --git a/htdocs/langs/pt_BR/holiday.lang b/htdocs/langs/pt_BR/holiday.lang index 9f39557e934..9daa4e6079d 100644 --- a/htdocs/langs/pt_BR/holiday.lang +++ b/htdocs/langs/pt_BR/holiday.lang @@ -57,7 +57,10 @@ FirstDayOfHoliday=Primeiro dia de folga LastDayOfHoliday=Último dia de folga BoxTitleLastLeaveRequests=Últimas %s solicitações de licença modificadas HolidaysCancelation=Cancelamento da solicitação de licença +EmployeeLastname=Sobrenome do empregado +EmployeeFirstname=Nome do empregado TypeWasDisabledOrRemoved=A licença do tipo (id %s) foi desabilitada ou removida +LastHolidays=Últimos pedidos de licença %s LastUpdateCP=Última atualização automática de fixação de licenças MonthOfLastMonthlyUpdate=Mês da última atualização automática de fixação de licenças Module27130Name=Gestão de solicitações de licença diff --git a/htdocs/langs/pt_BR/install.lang b/htdocs/langs/pt_BR/install.lang index f20f11d8118..8f3cda7ce34 100644 --- a/htdocs/langs/pt_BR/install.lang +++ b/htdocs/langs/pt_BR/install.lang @@ -46,6 +46,7 @@ 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=Caixa de seleção se o proprietário do banco de dados não existir, assim deve ser criado, ou se ele existe, mas o banco de dados não existe e as permissões devem ser concedidas.
Neste caso, você deve escolher seu login e senha e também preencher o login / senha para a conta do superusuário na parte inferior desta página. Se esta caixa estiver desmarcada, o banco de dados do proprietário e suas senhas devem existir. 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 @@ -114,6 +115,9 @@ KeepDefaultValuesWamp=Se você usa o DoliWamp Setup Wizard, então os valores pr KeepDefaultValuesDeb=Voce esta usando o assistente de configuração do Dolibarr do pacote Linux (Ubuntu, Debian, Fedora...), portanto os valores propostos aqui ja estao otimizados. O unico parametro a informar e a senha do administrador de banco de dados. Mude outros parametros somente se voce sabe o que esta fazendo. KeepDefaultValuesMamp=Você usa o DoliMamp Setup Wizard, para valores propostos aqui já estão otimizados. Alterá-los apenas se souber o que está fazendo. KeepDefaultValuesProxmox=Voçê esta usando o asistente de configuração do Dolibarr da aplicação virtual Proxmox , portanto os valores propostos aqui ja estão otimizados. Mude-os somente se você sabe o que esta fazendo. +UpgradeExternalModule=Execute um processo de atualização dedicado de módulos externos +SetAtLeastOneOptionAsUrlParameter=Defina pelo menos uma opção como um parâmetro no URL. Por exemplo: '... repair.php?standard=confirmed' +NothingToDelete=Nada para limpar / excluir MigrationFixData=Correção para dados não normalizados MigrationOrder=Migração de dados para ordens de clientes MigrationProposal=Migração de dados de propostas comerciais @@ -122,6 +126,7 @@ MigrationSuccessfullUpdate=Atualizado com sucesso MigrationUpdateFailed=Falha no processo de upgrade/atualização MigrationRelationshipTables=Migração de dados para as tabelas de relação (%s) MigrationPaymentsUpdate=Correção de dados de pagamento +MigrationPaymentsNumberToUpdate=%s pagamento (s) para atualizar MigrationProcessPaymentUpdate=Atualização de pagamento (s) %s MigrationPaymentsNothingUpdatable=Não mais pagamentos que podem ser corrigidos MigrationContractsUpdate=Correção de dados de contrato @@ -153,8 +158,10 @@ MigrationProjectTaskTime=Atualizar tempo gasto em segundos MigrationActioncommElement=Atualizar dados nas ações MigrationPaymentMode=Migração de dados para o modo de pagamento MigrationEvents=Migração de eventos para adicionar proprietário do evento na tabela de atribuição +MigrationEventsContact=Migração de eventos para adicionar contato de evento na tabela de atribuição MigrationRemiseEntity=Atulizacao do valor da tabela llx_societe_remise MigrationRemiseExceptEntity=Atualizacao do valor no campo da tabela llx_societe_remise_except +MigrationResetBlockedLog=Redefinir o módulo BlockedLog para o algoritmo v7 ShowNotAvailableOptions=Mostrar as opções não disponíveis HideNotAvailableOptions=Esconder opções não disponíveis ErrorFoundDuringMigration=O erro será reportado durante o processo de migração então o próximo passo não está disponível. Para ignorar os erros, você pode clicar aqui, mas a aplicação de algumas funcionalidade não irão funcionar corretamente até que sejam consertadas. diff --git a/htdocs/langs/pt_BR/interventions.lang b/htdocs/langs/pt_BR/interventions.lang index 5208a2af8c8..a597c318f7c 100644 --- a/htdocs/langs/pt_BR/interventions.lang +++ b/htdocs/langs/pt_BR/interventions.lang @@ -25,13 +25,17 @@ InterventionDeletedInDolibarr=Intervenção %s excluída InterventionsArea=Área intervenções DraftFichinter=Rascunho de intervenções LastModifiedInterventions=Últimas %s intervenções modificadas +FichinterToProcess=Intermediações para processar TypeContact_fichinter_external_CUSTOMER=Contato do cliente do seguimento da intervenção PrintProductsOnFichinter=Imprima também linhas do tipo "produto" (e não apenas serviços) na ficha de intervenção PrintProductsOnFichinterDetails=intervenções gerados a partir de ordens UseServicesDurationOnFichinter=duração de uso de serviços para intervenções geradas a partir de ordens +UseDurationOnFichinter=Esconde o campo de duração para os registros de intermediações +UseDateWithoutHourOnFichinter=Oculta horas e minutos fora do campo de data para registros de intermediação InterventionStatistics=Estatística de intervenções NbOfinterventions=Nº de fichas de intervenção NumberOfInterventionsByMonth=Nº de fichas de intervenção por mês (data de validação) +AmountOfInteventionNotIncludedByDefault=A quantidade de intervenção não é incluída por padrão no lucro (na maioria dos casos, as planilhas de tempo são usadas para contar o tempo gasto). Adicione a opção PROJECT_INCLUDE_INTERVENTION_AMOUNT_IN_PROFIT para 1 em home-setup-other para incluí-los. InterId=ID de intervenção InterRef=Intervenção ref. InterDateCreation=Intervenção data de criação diff --git a/htdocs/langs/pt_BR/languages.lang b/htdocs/langs/pt_BR/languages.lang index 4c03fdcccae..a71836b34bb 100644 --- a/htdocs/langs/pt_BR/languages.lang +++ b/htdocs/langs/pt_BR/languages.lang @@ -8,5 +8,6 @@ Language_he_IL=Hebraico Language_ka_GE=Georgiano Language_lo_LA=Laosiano Language_mk_MK=Macedônio +Language_mn_MN=mongol Language_nl_NL=Holandês (Holanda) Language_pl_PL=Polonês diff --git a/htdocs/langs/pt_BR/ldap.lang b/htdocs/langs/pt_BR/ldap.lang index ea11ca3ce03..fdfb449bcfb 100644 --- a/htdocs/langs/pt_BR/ldap.lang +++ b/htdocs/langs/pt_BR/ldap.lang @@ -4,8 +4,11 @@ YouMustChangePassNextLogon=A senha de %s ao domínio %s deve de se UserMustChangePassNextLogon=O usuário deve alterar de senha na próxima login LDAPInformationsForThisContact=Informação da base de dados LDAP deste contato LDAPInformationsForThisUser=Informação da base de dados LDAP deste usuário +LDAPInformationsForThisMemberType=Informação no banco de dados LDAP para esse tipo de membro LDAPUsers=Usuário na base de dados LDAP LDAPFieldFirstSubscriptionAmount=Valor da Primeira Adesão +LDAPFieldLastSubscriptionDate=Data da última adesão +LDAPFieldLastSubscriptionAmount=Valor da última adesão LDAPFieldSkypeExample=Exemplo : nomeskype UserSynchronized=Usuário Sincronizado ErrorFailedToReadLDAP=Erro na leitura do anuário LDAP. Verificar a configuração do módulo LDAP e a acessibilidade do anuário. diff --git a/htdocs/langs/pt_BR/loan.lang b/htdocs/langs/pt_BR/loan.lang index cddd78288b4..5e4f157c4ac 100644 --- a/htdocs/langs/pt_BR/loan.lang +++ b/htdocs/langs/pt_BR/loan.lang @@ -5,6 +5,9 @@ PaymentLoan=Pagamento de empréstimo LoanPayment=Pagamento de empréstimo ShowLoanPayment=Mostrar pagamento de empréstimo Interest=Juro +LoanAccountancyCapitalCode=Capital contabilístico +LoanAccountancyInsuranceCode=Seguro contabilístico +LoanAccountancyInterestCode=Interesse contabilístico ConfirmDeleteLoan=Confirme a exclusão deste empréstimo LoanDeleted=Empréstimo excluído com sucesso ConfirmPayLoan=Confirmar este empréstimo como pago @@ -32,3 +35,9 @@ LoanCalcDesc=Esta calculadora de hipoteca pode ser usada para mostrar os GoToInterest=%s será destinado a JUROS GoToPrincipal=%s será destinado ao PRINCIPAL YouWillSpend=Você gastará %s no ano de %s +ListLoanAssociatedProject=Lista de empréstimos associados ao projeto +AddLoan=Criar empréstimo +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Capital contabilístico por padrão +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Interesse contabilístico por padrão +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Seguro contabilístico por padrão +CreateCalcSchedule=Criar / alterar horário de empréstimo diff --git a/htdocs/langs/pt_BR/main.lang b/htdocs/langs/pt_BR/main.lang index bf8a3fee71d..3dd6489c0db 100644 --- a/htdocs/langs/pt_BR/main.lang +++ b/htdocs/langs/pt_BR/main.lang @@ -71,7 +71,6 @@ InformationLastAccessInError=Informação do último erro de acesso ao banco de PrecisionUnitIsLimitedToXDecimals=Dolibarr está configurado para limitar a precisão dos preços unitários a %s Decimais. NoFilter=Nenhum filtro WarningYouHaveAtLeastOneTaskLate=Atenção, tem um elemento a menos que passou a data de tolerância. -yes=sim no=não OnlineHelp=Ajuda online PageWiki=Pagina wiki diff --git a/htdocs/langs/pt_BR/margins.lang b/htdocs/langs/pt_BR/margins.lang index dccb194f19a..216c573e0f9 100644 --- a/htdocs/langs/pt_BR/margins.lang +++ b/htdocs/langs/pt_BR/margins.lang @@ -26,3 +26,4 @@ rateMustBeNumeric=Rata deve ser um valor numerico markRateShouldBeLesserThan100=Rata marcada teria que ser menor do que 100 ShowMarginInfos=Mostrar informações sobre margens CheckMargins=Detalhes das margens +MarginPerSaleRepresentativeWarning=O relatório de margem por usuário usa o link entre terceiros e representantes de vendas para calcular a margem de cada venda representativa. Por causa que alguns terceiros não terem um representante de vendas dedicado e alguns terceiros podem estar ligados a vários, alguns montantes podem não ser incluídos neste relatório (se não houver representante de venda) e alguns podem aparecer em diferentes linhas (para cada representante de venda). diff --git a/htdocs/langs/pt_BR/members.lang b/htdocs/langs/pt_BR/members.lang index 772834e0394..4197d9375a0 100644 --- a/htdocs/langs/pt_BR/members.lang +++ b/htdocs/langs/pt_BR/members.lang @@ -77,6 +77,9 @@ LinkToGeneratedPages=Gerar cartões de visitas LinkToGeneratedPagesDesc=Esta tela permite gerar arquivos PDF com cartões de visita para todos os seus membros ou um membro particular. DocForAllMembersCards=Gerar cartões de visita para todos os membros DocForLabels=Gerar folhas de endereço +LastSubscriptionDate=Data da última adesão +LastSubscriptionAmount=Valor da última adesão +MembersStatisticsByTown=Membros estatísticas por cidade MembersStatisticsByRegion=Membros por região estatísticas NoValidatedMemberYet=Nenhum membro validados encontrado MembersByCountryDesc=Esta tela mostrará estatísticas sobre usuários por países. Gráfico depende, contudo, do Google serviço gráfico on-line e está disponível apenas se uma conexão à Internet é está funcionando. @@ -84,6 +87,7 @@ MembersByStateDesc=Esta tela mostrará estatísticas sobre usuários por estado MembersByTownDesc=Esta tela mostrará estatísticas sobre usuários por cidade. MembersStatisticsDesc=Escolha as estatísticas que você quer ler ... MenuMembersStats=Estatísticas +LatestSubscriptionDate=Data da última adesão Nature=Tipo de produto Public=Informações são públicas NewMemberbyWeb=Novo membro adicionado. Aguardando aprovação diff --git a/htdocs/langs/pt_BR/oauth.lang b/htdocs/langs/pt_BR/oauth.lang index 90aaec44e07..073c5e06cf9 100644 --- a/htdocs/langs/pt_BR/oauth.lang +++ b/htdocs/langs/pt_BR/oauth.lang @@ -1,13 +1,19 @@ # Dolibarr language file - Source file is en_US - oauth ConfigOAuth=Configuração Oauth ManualTokenGeneration=Geração manual do token +TokenManager=Gerenciador de Token +IsTokenGenerated=O token está gerado? NoAccessToken=Nenhum token de acesso guardado na base de dados local HasAccessToken=Um token foi gerado e salvo no banco de dados local +NewTokenStored=Token recebido e salvo +ToCheckDeleteTokenOnProvider=Clique aqui para verificar/apagar autorização salva pelo provedor OAuth %s TokenDeleted=Token excluído RequestAccess=Clique aqui para solicitar/renovar o acesso e receber um novo token para salvar DeleteAccess=Clique aqui para apagar o token UseTheFollowingUrlAsRedirectURI=Utilize o seguinte URL como o URI de redirecionamento ao criar a sua credencial de seu provedor de OAuth: ListOfSupportedOauthProviders=Forneça aqui a credencial fornecida pelo seu provedor OAuth2. Apenas provedores OAuth2 suportados estão visíveis aqui. Esta configuração talvez seja usada por outros módulos que necessitem de autenticação OAuth2. +SeePreviousTab=Ver aba anterior +OAuthIDSecret=Identificação OAuth e Senha TOKEN_REFRESH=Token Atualizar Presente TOKEN_EXPIRED=Token vencido TOKEN_EXPIRE_AT=Token expira no diff --git a/htdocs/langs/pt_BR/opensurvey.lang b/htdocs/langs/pt_BR/opensurvey.lang index c7b097c44ba..d44486228c3 100644 --- a/htdocs/langs/pt_BR/opensurvey.lang +++ b/htdocs/langs/pt_BR/opensurvey.lang @@ -46,3 +46,4 @@ ErrorInsertingComment=Houve um erro ao inserir o seu comentário MoreChoices=Digite mais opções para os votos SurveyExpiredInfo=A enquete foi encerrada ou o período de votação expirou. EmailSomeoneVoted=%s preencheu uma linha.\nVocê pode encontrar sua enquete no link:\n%s +ShowSurvey=Mostrar pesquisa diff --git a/htdocs/langs/pt_BR/orders.lang b/htdocs/langs/pt_BR/orders.lang index 46bcca6444e..8c32323ced4 100644 --- a/htdocs/langs/pt_BR/orders.lang +++ b/htdocs/langs/pt_BR/orders.lang @@ -35,6 +35,7 @@ StatusOrderToProcessShort=A processar StatusOrderOnProcess=Pedido - Aguardando Recebimento StatusOrderOnProcessWithValidation=Ordenada - recepção Standby ou validação StatusOrderToBill=A Faturar +StatusOrderReceivedAll=Todos os produtos recebidos ShippingExist=Existe envio QtyOrdered=Quant. Pedida ProductQtyInDraft=Quantidade do produto em projetos de ordens @@ -122,5 +123,7 @@ OrderCreated=Seus pedidos foram criados OrderFail=Um erro ocorreu durante a criação de seus pedidos CreateOrders=Criar pedidos ToBillSeveralOrderSelectCustomer=Para criar uma nota fiscal para várias encomendas, clique primeiro no cliente, em seguida, escolha "%s". +OptionToSetOrderBilledNotEnabled=A opção (a partir do módulo de Fluxo de Trabalho) para definir a ordem para 'Faturado' automaticamente quando a fatura é validada está desativada, então você terá que definir o status do pedido como 'Faturado' manualmente. +IfValidateInvoiceIsNoOrderStayUnbilled=Se a validação da fatura for 'Não', a ordem permanecerá no status 'Não faturado' até que a fatura seja validada. CloseReceivedSupplierOrdersAutomatically=Fechar automaticamente o pedido como "%s" se todos os produtos foram recebidos. SetShippingMode=Definir modo de envio diff --git a/htdocs/langs/pt_BR/paybox.lang b/htdocs/langs/pt_BR/paybox.lang index 2a3d512f552..49ab60c63fd 100644 --- a/htdocs/langs/pt_BR/paybox.lang +++ b/htdocs/langs/pt_BR/paybox.lang @@ -6,6 +6,7 @@ WelcomeOnPaymentPage=Bem Vindos a Nossos serviços de pagamento on-line ThisScreenAllowsYouToPay=Esta página lhe permite fazer seu pagamento on-line destinado a %s. ThisIsInformationOnPayment=Aqui está a informação sobre o pagamento a realizar Creditor=Beneficiário +PayBoxDoPayment=Pagar com Cartão de Débito ou Crédito (Paybox) ToPay=Realizar pagamento YouWillBeRedirectedOnPayBox=Va a ser redirecionado a a página segura de Paybox para indicar seu cartão de crédito ToOfferALinkForOnlinePayment=URL para %s pagamento diff --git a/htdocs/langs/pt_BR/paypal.lang b/htdocs/langs/pt_BR/paypal.lang index 863799482a7..e7c70788b1b 100644 --- a/htdocs/langs/pt_BR/paypal.lang +++ b/htdocs/langs/pt_BR/paypal.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - paypal PaypalSetup=Configuração do módulo PayPal PaypalDesc=Este modulo oferece paginas que permitem o pagamento no PayPal aos clientes. Pode ser usado para o pagamento livre ou para o pagamento de algum objeto Dolibarr (fatura, pedido, ...) +PaypalOrCBDoPayment=Pagar com PayPal (Cartão de Crédito ou Paypal) PaypalDoPayment=Pagar com Paypal PAYPAL_API_SANDBOX=Modo teste/caixa de areia PAYPAL_API_USER=API usuario @@ -13,8 +14,12 @@ PaypalModeOnlyPaypal=PayPal apenas ThisIsTransactionId=Eis o id da transação: %s PAYPAL_ADD_PAYMENT_URL=Adicionar URL do pagamento Paypal quando se envia o documento por e-mail PredefinedMailContentLink=Clique no link seguro abaixo para fazer o pagamento (PayPal) se nao esta ainda effetuado.⏎\n⏎\n%s⏎\n⏎\n +YouAreCurrentlyInSandboxMode=No momento você está no %s modo "caixa de areia" +NewOnlinePaymentFailed=Foi tentado novo pagamento online, mas sem hêxito ONLINE_PAYMENT_SENDEMAIL=Endereço e-mail para aviso apos o pagamento (positivo ou nao) ReturnURLAfterPayment=Retornar ao URL após o pagamento +ValidationOfOnlinePaymentFailed=A validação do pagamento online falhou +PaymentSystemConfirmPaymentPageWasCalledButFailed=A página de confirmação de pagamento, que foi chamada pelo sistema de pagamento, retornou um erro SetExpressCheckoutAPICallFailed=Falha ao chamar a API: SetExpressCheckout. DoExpressCheckoutPaymentAPICallFailed=Falha ao chamar a API: DoExpressCheckoutPayment. DetailedErrorMessage=Mensagem de erro detalhada diff --git a/htdocs/langs/pt_BR/productbatch.lang b/htdocs/langs/pt_BR/productbatch.lang index 9656f370eb8..2bb52ffeea0 100644 --- a/htdocs/langs/pt_BR/productbatch.lang +++ b/htdocs/langs/pt_BR/productbatch.lang @@ -18,3 +18,4 @@ ProductDoesNotUseBatchSerial=Este produto não utiliza Lote / número de série ProductLotSetup=Configuração do módulo lote/nº de série ShowCurrentStockOfLot=Exibir o estoque atual para o produto/lote ShowLogOfMovementIfLot=Exibir o registro de movimentações para o produto/lote +StockDetailPerBatch=Detalhes do estoque por lote diff --git a/htdocs/langs/pt_BR/propal.lang b/htdocs/langs/pt_BR/propal.lang index 1e451132e38..82ffe0d9f4d 100644 --- a/htdocs/langs/pt_BR/propal.lang +++ b/htdocs/langs/pt_BR/propal.lang @@ -9,6 +9,7 @@ LastModifiedProposals=Últimas %s propostas modificadas NoProposal=Sem propostas AmountOfProposalsByMonthHT=Valor por Mês (sem ICMS) PropalsOpened=Aberto +PropalStatusValidated=Validado (a proposta esta em aberto) PropalStatusSigned=Assinado (A Faturar) PropalStatusNotSigned=Sem Assinar (Encerrado) PropalStatusBilled=Faturado diff --git a/htdocs/langs/pt_BR/resource.lang b/htdocs/langs/pt_BR/resource.lang index 9916c0f1bc2..4c388946936 100644 --- a/htdocs/langs/pt_BR/resource.lang +++ b/htdocs/langs/pt_BR/resource.lang @@ -14,3 +14,4 @@ ConfirmDeleteResource=Confirme para remover este recurso RessourceSuccessfullyDeleted=Recurso removido com sucesso DictionaryResourceType=Tipo de recurso SelectResource=Selecionar recurso +IdResource=Recurso de identificação diff --git a/htdocs/langs/pt_BR/sendings.lang b/htdocs/langs/pt_BR/sendings.lang index 8110ae95b74..64c08d5cd39 100644 --- a/htdocs/langs/pt_BR/sendings.lang +++ b/htdocs/langs/pt_BR/sendings.lang @@ -8,6 +8,7 @@ LastSendings=Últimas %s remessas SendingCard=Cartão de embarque QtyReceived=Quant. Recibida KeepToShip=Permaneça para enviar +SendingsAndReceivingForSameOrder=Envios e recibos para esse pedido StatusSendingValidated=Validado (produtos a enviar o enviados) SendingSheet=Folha de embarque ConfirmDeleteSending=Tem certeza que quer remover este envio? diff --git a/htdocs/langs/pt_BR/sms.lang b/htdocs/langs/pt_BR/sms.lang index 4cebb058809..29d52940c8b 100644 --- a/htdocs/langs/pt_BR/sms.lang +++ b/htdocs/langs/pt_BR/sms.lang @@ -32,3 +32,4 @@ ThisIsATestMessage=Isto e uma mensagem de teste SmsInfoCharRemain=Nr de caracteres restantes SmsInfoNumero=(formato internacional ex: +33899701761) SmsNoPossibleSenderFound=Nenhum expedidor disponível. Verifique a configuração do seu provedor de SMS. +DisableStopIfSupported=Desabilitar mensagem PARAR (se suportado) diff --git a/htdocs/langs/pt_PT/admin.lang b/htdocs/langs/pt_PT/admin.lang index 210186695db..39874e70b8e 100644 --- a/htdocs/langs/pt_PT/admin.lang +++ b/htdocs/langs/pt_PT/admin.lang @@ -574,8 +574,8 @@ Module2300Name=Tarefas agendadas Module2300Desc=Gestão de trabalhos agendados (alias cron ou tabela chrono) Module2400Name=Eventos/Agenda Module2400Desc=Seguir eventos terminados e que estão para ocorrer. Permitir que a aplicação registe eventos automáticos ou eventos manuais ou encontros. -Module2500Name=DMS / ECM -Module2500Desc=Document Management System / Electronic Content Management. Automatic organization of your generated or stored documents. Share them when you need. +Module2500Name=SGD / GEC +Module2500Desc=Sistema de Gestão de Documentos / Gestão de Conteúdo Eletrónico. Organização automática dos seus documentos gerados ou armazenados. Compartilhe-os quando precisar. Module2600Name=Serviços API/Web (servidor SOAP) Module2600Desc=Ativar o servidor SOAP do Dolibarr, fornecendo serviços API Module2610Name=Serviços API/Web (servidor REST) diff --git a/htdocs/langs/pt_PT/bills.lang b/htdocs/langs/pt_PT/bills.lang index 2494bcf61c2..740d54aac6f 100644 --- a/htdocs/langs/pt_PT/bills.lang +++ b/htdocs/langs/pt_PT/bills.lang @@ -92,11 +92,11 @@ ValidatePayment=Validar pagamento PaymentHigherThanReminderToPay=Pagamento superior ao valor a pagar HelpPaymentHigherThanReminderToPay=Atenção, o montante do pagamento de uma ou mais letras é maior do que o resto a pagar.
Edite sua entrada, caso contrário, confirmar e pensar sobre como criar uma nota de crédito do excesso recebido para cada factura paga em excesso. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay.
Edit your entry, otherwise confirm. -ClassifyPaid=Classificar 'Pago' -ClassifyPaidPartially=Classificar 'Pago Parcialmente' -ClassifyCanceled=Classificar 'Abandonado' -ClassifyClosed=Classificar 'Fechado' -ClassifyUnBilled=Classify 'Unbilled' +ClassifyPaid=Classificar como 'Pago' +ClassifyPaidPartially=Classificar como 'Pago Parcialmente' +ClassifyCanceled=Classificar como 'Abandonado' +ClassifyClosed=Classificar como 'Fechado' +ClassifyUnBilled=Classificar como 'Não faturado' CreateBill=Criar Factura CreateCreditNote=Criar nota de crédito AddBill=Criar Factura ou Nota de Crédito @@ -463,7 +463,7 @@ CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Pago por esse pagamento ClosePaidInvoicesAutomatically=Classificar como "Paga" todas as faturas padrão, adiantamentos ou de substituição completamente pagas. ClosePaidCreditNotesAutomatically=Classificar como "Paga" todas as notas de crédito totalmente reembolsadas. -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. +ClosePaidContributionsAutomatically=Classificar como "Pago" todas as contribuições sociais ou fiscais totalmente pagas. AllCompletelyPayedInvoiceWillBeClosed=Todas as faturas sem pagamentos em falta serão automaticamente fechadas e classificadas como "Pagas". ToMakePayment=Pagar ToMakePaymentBack=Reembolsar diff --git a/htdocs/langs/pt_PT/companies.lang b/htdocs/langs/pt_PT/companies.lang index 416f91339a9..410786da89b 100644 --- a/htdocs/langs/pt_PT/companies.lang +++ b/htdocs/langs/pt_PT/companies.lang @@ -396,7 +396,7 @@ YouMustCreateContactFirst=Para adicionar a funcionalidade de notificações por ListSuppliersShort=Lista de fornecedores ListProspectsShort=Lista das perspectivas ListCustomersShort=Lista de clientes -ThirdPartiesArea=Terceiros e árrea de contacto +ThirdPartiesArea=Área de Terceiros e Contactos LastModifiedThirdParties=Os últimos %s terceiros modificados UniqueThirdParties=Total de originais terceiros InActivity=Abrir diff --git a/htdocs/langs/pt_PT/compta.lang b/htdocs/langs/pt_PT/compta.lang index 9d5cc66c463..163aa818f4d 100644 --- a/htdocs/langs/pt_PT/compta.lang +++ b/htdocs/langs/pt_PT/compta.lang @@ -129,7 +129,7 @@ NoWaitingChecks=No checks awaiting deposit. DateChequeReceived=Data introdução de dados de recepção cheque NbOfCheques=Nº de Cheques PaySocialContribution=Pay a social/fiscal tax -ConfirmPaySocialContribution=Are you sure you want to classify this social or fiscal tax as paid? +ConfirmPaySocialContribution=Tem certeza de que deseja classificar este imposto social ou fiscal como pago? DeleteSocialContribution=Delete a social or fiscal tax payment ConfirmDeleteSocialContribution=Tem certeza de que deseja eliminar este pagamento de imposto social/fiscal? ExportDataset_tax_1=Social and fiscal taxes and payments diff --git a/htdocs/langs/pt_PT/ecm.lang b/htdocs/langs/pt_PT/ecm.lang index 304535ae0a0..4d5e7fd6f10 100644 --- a/htdocs/langs/pt_PT/ecm.lang +++ b/htdocs/langs/pt_PT/ecm.lang @@ -6,7 +6,7 @@ ECMSectionAuto=Pasta automática ECMSectionsManual=Pastas manuais ECMSectionsAuto=Pastas automáticas ECMSections=Pastas -ECMRoot=Raiz do ECM +ECMRoot=Raiz do GCE ECMNewSection=Nova pasta manual ECMAddSection=Adicionar pasta manual ECMCreationDate=Data de criação @@ -14,8 +14,8 @@ ECMNbOfFilesInDir=Número de ficheiros na pasta ECMNbOfSubDir=Número de sub-pastas ECMNbOfFilesInSubDir=Número de ficheiros em sub-pastas ECMCreationUser=Criador -ECMArea=DMS/ECM area -ECMAreaDesc=The DMS/ECM (Document Management System / Electronic Content Management) area allows you to save, share and search quickly all kind of documents in Dolibarr. +ECMArea=A área de SGD/GCE +ECMAreaDesc=A área de SGD/GCE (Sistema de Gestão de Documentos/Gestão de Conteúdo Eletrónico) permite salvar, compartilhar e pesquisar rapidamente todos os tipos de documentos no Dolibarr. ECMAreaDesc2=* As diretorias automáticas são preenchidas automaticamente ao adicionar documentos a partir de uma ficha de um elemento.
* As diretorias manuais podem ser utlizadas para guardar documentos não associados a um elemento específico. ECMSectionWasRemoved=A pasta %s foi eliminada. ECMSectionWasCreated=O diretório %s foi criado. @@ -42,7 +42,7 @@ ECMDirectoryForFiles=Pasta relativa para ficheiros CannotRemoveDirectoryContainsFiles=Não se pode eliminar porque contem ficheiros ECMFileManager=Explorador de Ficheiros ECMSelectASection=Seleccione uma pasta na árvore da esquerda -DirNotSynchronizedSyncFirst=Este diretório parece ter sido ser criado ou modificado fora do módulo ECM. Você deve clicar no botão "Voltar a sincronizar" primeiro para sincronizar o disco e a base de dados para obter o conteúdo desse diretório. +DirNotSynchronizedSyncFirst=Este diretório parece ter sido ser criado ou modificado fora do módulo GCE. Você deve clicar no botão "Voltar a sincronizar" primeiro para sincronizar o disco e a base de dados para obter o conteúdo desse diretório. ReSyncListOfDir=Voltar a sincronizar a lista de diretórios HashOfFileContent=Hash do conteúdo do ficheiro FileNotYetIndexedInDatabase=Ficheiro ainda não indexado na base de dados (tente voltar a carregá-lo) diff --git a/htdocs/langs/pt_PT/interventions.lang b/htdocs/langs/pt_PT/interventions.lang index 37fa3e3c3b8..9023acc9e1d 100644 --- a/htdocs/langs/pt_PT/interventions.lang +++ b/htdocs/langs/pt_PT/interventions.lang @@ -24,9 +24,9 @@ NameAndSignatureOfInternalContact=Nome e Assinatura do Participante: NameAndSignatureOfExternalContact=Nome e Assinatura do Cliente: DocumentModelStandard=Modelo da Norma Intervenção InterventionCardsAndInterventionLines=Fichas e Linhas de Intervenção -InterventionClassifyBilled=Classificar "Faturado" -InterventionClassifyUnBilled=Classify "Unbilled" -InterventionClassifyDone=Classify "Done" +InterventionClassifyBilled=Classificar como "Faturado" +InterventionClassifyUnBilled=Classificar como "Não faturado" +InterventionClassifyDone=Classificar como "Efetuado" StatusInterInvoiced=Faturados SendInterventionRef=Submission of intervention %s SendInterventionByMail=Send intervention by Email diff --git a/htdocs/langs/pt_PT/loan.lang b/htdocs/langs/pt_PT/loan.lang index 92320ffdbbc..11db1661026 100644 --- a/htdocs/langs/pt_PT/loan.lang +++ b/htdocs/langs/pt_PT/loan.lang @@ -15,7 +15,7 @@ LoanAccountancyInsuranceCode=Accounting account insurance LoanAccountancyInterestCode=Accounting account interest ConfirmDeleteLoan=Confirme a eliminação deste empréstimo LoanDeleted=Empréstimo Apagado Com Sucesso -ConfirmPayLoan=Confirm classify paid this loan +ConfirmPayLoan=Confirmar classificação deste empréstimo como pago LoanPaid=Empréstimo Liquidado # Calc LoanCalc=Bank Loans Calculator @@ -27,7 +27,7 @@ AnnualInterestRate=Taxa de Juros Anual ExplainCalculations=Explain Calculations ShowMeCalculationsAndAmortization=Mostrar-me os cálculos e a amortização MortgagePaymentInformation=Informação do Pagamento da Hipoteca -DownPayment=Down Payment +DownPayment=Adiantamento DownPaymentDesc=The down payment = The price of the home multiplied by the percentage down divided by 100 (for 5% down becomes 5/100 or 0.05) InterestRateDesc=The interest rate = The annual interest percentage divided by 100 MonthlyFactorDesc=The monthly factor = The result of the following formula diff --git a/htdocs/langs/pt_PT/main.lang b/htdocs/langs/pt_PT/main.lang index 7a3f80394ee..2d006a126a0 100644 --- a/htdocs/langs/pt_PT/main.lang +++ b/htdocs/langs/pt_PT/main.lang @@ -116,7 +116,7 @@ DoTest=Teste ToFilter=Filtrar NoFilter=Sem filtro WarningYouHaveAtLeastOneTaskLate=Atenção, tem um elemento a menos que passou a data de tolerencia. -yes=Sim +yes=sim Yes=Sim no=Não No=Não @@ -807,7 +807,7 @@ ShowTempMassFilesArea=Mostrar área para os ficheiros criados através de açõe ConfirmMassDeletion=Confirmação de eliminação em massa ConfirmMassDeletionQuestion=Are you sure you want to delete the %s selected record ? RelatedObjects=Objetos relacionados -ClassifyBilled=Classificar Facturado +ClassifyBilled=Classificar como faturado Progress=Progresso ClickHere=Clique aqui FrontOffice=Front office diff --git a/htdocs/langs/pt_PT/trips.lang b/htdocs/langs/pt_PT/trips.lang index ea6311f8213..f3a63e21817 100644 --- a/htdocs/langs/pt_PT/trips.lang +++ b/htdocs/langs/pt_PT/trips.lang @@ -19,7 +19,7 @@ ConfirmDeleteTrip=Tem certeza de que deseja eliminar este relatório de despesas ListTripsAndExpenses=Lista de relatórios de despesas ListToApprove=A aguardar aprovação ExpensesArea=Expense reports area -ClassifyRefunded=Classificar 'Reembolsado' +ClassifyRefunded=Classificar como 'Reembolsado' ExpenseReportWaitingForApproval=A new expense report has been submitted for approval ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval diff --git a/htdocs/langs/pt_PT/withdrawals.lang b/htdocs/langs/pt_PT/withdrawals.lang index f691035a7b1..06b24cb1c45 100644 --- a/htdocs/langs/pt_PT/withdrawals.lang +++ b/htdocs/langs/pt_PT/withdrawals.lang @@ -26,8 +26,8 @@ LastWithdrawalReceipt=Latest %s direct debit receipts MakeWithdrawRequest=Make a direct debit payment request WithdrawRequestsDone=%s direct debit payment requests recorded ThirdPartyBankCode=Código Banco do Terceiro -NoInvoiceCouldBeWithdrawed=Não há factura de débito directo com sucesso. Verifique se a factura da empresa tem um válido IBAN. -ClassCredited=Classificar creditados +NoInvoiceCouldBeWithdrawed=No invoice withdrawed with success. Check that invoices are on companies with a valid default BAN and that BAN has a RUM with mode %s. +ClassCredited=Classificar como creditado ClassCreditedConfirm=Está seguro de querer classificar este débito directo como realizado sobre a sua conta bancaria? TransData=Data de Envio TransMetod=Método de transmissão diff --git a/htdocs/langs/pt_PT/workflow.lang b/htdocs/langs/pt_PT/workflow.lang index 81681f9a598..adc8112cb89 100644 --- a/htdocs/langs/pt_PT/workflow.lang +++ b/htdocs/langs/pt_PT/workflow.lang @@ -9,12 +9,12 @@ descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Criar automaticamente uma fatura de cli descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed (new invoice will have same amount than order) # Autoclassify customer proposal or order 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_CLASSIFY_BILLED_PROPAL=Classifique os orçamentos de clientes vinculados como faturados quando a fatura do cliente é validada (e se o valor da fatura for igual ao montante total dos orçamentos, assinados, vinculados) 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 customer order to shipped when a shipment is validated (and if quantity shipped by all shipments is the same as in the order to update) +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classifique a encomenda do cliente vinculada como enviada quando uma expedição é validada (e se a quantidade enviada por todas as expedições for idêntica à da encomenda a atualizar) # Autoclassify supplier order -descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Classify linked source supplier proposal(s) to billed when supplier invoice is validated (and if amount of the invoice is same than total amount of linked proposals) -descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classify linked source supplier order(s) to billed when supplier invoice is validated (and if amount of the invoice is same than total amount of linked orders) +descWORKFLOW_ORDER_CLASSIFY_BILLED_SUPPLIER_PROPOSAL=Classifique os pedidos de orçamento do fornecedor vinculados como faturados quando a fatura do fornecedor é validada (e se o montante da fatura for igual ao montante total dos pedidos de orçamento vinculados) +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_SUPPLIER_ORDER=Classifique as notas de encomenda de fornecedores vinculadas como faturadas quando a fatura do fornecedor é validada (e se o valor da fatura for igual ao total das notas de encomenda vinculadas) AutomaticCreation=Criação automática AutomaticClassification=Classificação automática From bab5c41b980d5d39759d87b84914c7240d067a86 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 15 Feb 2018 00:24:15 +0100 Subject: [PATCH 29/49] Fix duplicate html tag --- htdocs/core/lib/website.lib.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/website.lib.php b/htdocs/core/lib/website.lib.php index b2e723e0c0c..ddc4201427e 100644 --- a/htdocs/core/lib/website.lib.php +++ b/htdocs/core/lib/website.lib.php @@ -452,8 +452,8 @@ function dolSavePageContent($filetpl, $object, $objectpage) $tplcontent.= ''."\n"; $tplcontent.= ''."\n"; $tplcontent.= 'ref.'/htmlheader.html"); ?>'."\n"; - $tplcontent.= ''."\n"; - $tplcontent.= $objectpage->htmlheader."\n"; + $tplcontent.= ''."\n"; + $tplcontent.= preg_match('/<\/?html>/', '', $objectpage->htmlheader)."\n"; $tplcontent.= ''."\n"; $tplcontent.= ''."\n"; From b789a50ce652d4f525d1eacb978d4d3c06c3ad4f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 15 Feb 2018 00:38:11 +0100 Subject: [PATCH 30/49] Fix duplicate html tag --- htdocs/core/lib/website.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/website.lib.php b/htdocs/core/lib/website.lib.php index ddc4201427e..6608475f1fb 100644 --- a/htdocs/core/lib/website.lib.php +++ b/htdocs/core/lib/website.lib.php @@ -453,7 +453,7 @@ function dolSavePageContent($filetpl, $object, $objectpage) $tplcontent.= ''."\n"; $tplcontent.= 'ref.'/htmlheader.html"); ?>'."\n"; $tplcontent.= ''."\n"; - $tplcontent.= preg_match('/<\/?html>/', '', $objectpage->htmlheader)."\n"; + $tplcontent.= preg_replace('/<\/?html>/', '', $objectpage->htmlheader)."\n"; $tplcontent.= ''."\n"; $tplcontent.= ''."\n"; From dde5c186e7340197c6febdfdc834e24691bf778c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 15 Feb 2018 00:53:03 +0100 Subject: [PATCH 31/49] Fix duplicate html tag --- htdocs/core/lib/website.lib.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/website.lib.php b/htdocs/core/lib/website.lib.php index 6608475f1fb..8a7e14f8b0d 100644 --- a/htdocs/core/lib/website.lib.php +++ b/htdocs/core/lib/website.lib.php @@ -451,9 +451,9 @@ function dolSavePageContent($filetpl, $object, $objectpage) $tplcontent.= ''."\n"; $tplcontent.= ''."\n"; $tplcontent.= ''."\n"; - $tplcontent.= 'ref.'/htmlheader.html"); ?>'."\n"; + $tplcontent.= '/ims\', \'\', file_get_contents(DOL_DATA_ROOT."/website/'.$object->ref.'/htmlheader.html")); ?>'."\n"; $tplcontent.= ''."\n"; - $tplcontent.= preg_replace('/<\/?html>/', '', $objectpage->htmlheader)."\n"; + $tplcontent.= preg_replace('/<\/?html>/ims', '', $objectpage->htmlheader)."\n"; $tplcontent.= ''."\n"; $tplcontent.= ''."\n"; From 18acff5e578a7b50023bfa9df0790383dee36332 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 15 Feb 2018 01:29:51 +0100 Subject: [PATCH 32/49] Fix avoid error when homepage not set --- htdocs/langs/en_US/website.lang | 1 + htdocs/theme/eldy/style.css.php | 6 +++--- htdocs/theme/md/style.css.php | 4 ++-- htdocs/website/index.php | 17 ++++++++++++++--- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/htdocs/langs/en_US/website.lang b/htdocs/langs/en_US/website.lang index e96e60f14f9..dd90533ba28 100644 --- a/htdocs/langs/en_US/website.lang +++ b/htdocs/langs/en_US/website.lang @@ -64,5 +64,6 @@ BackToListOfThirdParty=Back to list for Third Party DisableSiteFirst=Disable website first MyContainerTitle=My web site title AnotherContainer=Another container +YouMustDefineTheHomePage=You must first define the default Home page OnlyEditionOfSourceForGrabbedContentFuture=Note: only edition of HTML source will be possible when a page content is intiliazed by grabbing it from an external page (WYSIWYG editor will not be available) OnlyEditionOfSourceForGrabbedContent=Only edition of HTML source is possible when content was grabber from an external site \ No newline at end of file diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php index 385863de840..c5a49a9fd7e 100644 --- a/htdocs/theme/eldy/style.css.php +++ b/htdocs/theme/eldy/style.css.php @@ -3546,14 +3546,14 @@ tr.visible { .websiteiframenoborder { border: 0px; } -a.websitebuttonsitepreview { +span.websitebuttonsitepreview, a.websitebuttonsitepreview { vertical-align: middle; } -a.websitebuttonsitepreview img { +span.websitebuttonsitepreview img, a.websitebuttonsitepreview img { width: 26px; display: inline-block; } -a.websitebuttonsitepreviewdisabled img { +span.websitebuttonsitepreviewdisabled img, a.websitebuttonsitepreviewdisabled img { opacity: 0.2; } .websitehelp { diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index e54da2bdc92..0cd0023a46b 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -3599,11 +3599,11 @@ tr.visible { .websiteiframenoborder { border: 0px; } -a.websitebuttonsitepreview img { +span.websitebuttonsitepreview img, a.websitebuttonsitepreview img { width: 26px; display: inline-block; } -a.websitebuttonsitepreviewdisabled img { +span.websitebuttonsitepreviewdisabled img, a.websitebuttonsitepreviewdisabled img { opacity: 0.2; } .websiteiframenoborder { diff --git a/htdocs/website/index.php b/htdocs/website/index.php index 26c4243d382..8db771113ca 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -1388,9 +1388,18 @@ if (count($object->records) > 0) $urlext=$virtualurl; $urlint=$urlwithroot.'/public/website/index.php?website='.$website; - print 'transnoentitiesnoconv("Site"), $langs->transnoentitiesnoconv("Site"), $dataroot, $urlext)).'">'; - print $form->textwithpicto('', $langs->trans("PreviewSiteServedByWebServer", $langs->transnoentitiesnoconv("Site"), $langs->transnoentitiesnoconv("Site"), $dataroot, $urlext?$urlext:''.$langs->trans("VirtualHostUrlNotDefined").''), 1, 'preview_ext'); - print ''; + if (empty($object->fk_default_home)) + { + print 'transnoentitiesnoconv("Site"), $langs->transnoentitiesnoconv("Site"), $dataroot, $urlext)).'">'; + print $form->textwithpicto('', ''.$langs->trans("YouMustDefineTheHomePage").'
'.$langs->trans("PreviewSiteServedByWebServer", $langs->transnoentitiesnoconv("Site"), $langs->transnoentitiesnoconv("Site"), $dataroot, $urlext?$urlext:''.$langs->trans("VirtualHostUrlNotDefined").''), 1, 'preview_ext'); + print '
'; + } + else + { + print 'transnoentitiesnoconv("Site"), $langs->transnoentitiesnoconv("Site"), $dataroot, $urlext)).'">'; + print $form->textwithpicto('', $langs->trans("PreviewSiteServedByWebServer", $langs->transnoentitiesnoconv("Site"), $langs->transnoentitiesnoconv("Site"), $dataroot, $urlext?$urlext:''.$langs->trans("VirtualHostUrlNotDefined").''), 1, 'preview_ext'); + print ''; + } } if (in_array($action, array('editcss','editmenu','file_manager'))) @@ -1587,6 +1596,8 @@ if (count($object->records) > 0) console.log("Website external url modified "+jQuery("#previewsiteurl").val()); if (jQuery("#previewsiteurl").val() != "") jQuery("a.websitebuttonsitepreviewdisabled img").css({ opacity: 1 }); else jQuery("a.websitebuttonsitepreviewdisabled img").css({ opacity: 0.2 }); + '; + print ' }); jQuery("#previewsiteext,#previewpageext").click(function() { newurl=jQuery("#previewsiteurl").val(); From a4384b1921c5074160a1e5c0b56ca40e285661df Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 15 Feb 2018 02:02:32 +0100 Subject: [PATCH 33/49] Fix date start/end of project are day not hours --- htdocs/projet/card.php | 4 ++-- htdocs/projet/contact.php | 40 ++++++++++++++++---------------- htdocs/projet/element.php | 4 ++-- htdocs/projet/ganttview.php | 4 ++-- htdocs/projet/tasks.php | 4 ++-- htdocs/projet/tasks/comment.php | 11 +++++---- htdocs/projet/tasks/contact.php | 9 ++++--- htdocs/projet/tasks/document.php | 9 ++++--- htdocs/projet/tasks/note.php | 9 ++++--- htdocs/projet/tasks/task.php | 9 ++++--- htdocs/projet/tasks/time.php | 9 ++++--- 11 files changed, 65 insertions(+), 47 deletions(-) diff --git a/htdocs/projet/card.php b/htdocs/projet/card.php index b5646e37128..ddfa1733f8c 100644 --- a/htdocs/projet/card.php +++ b/htdocs/projet/card.php @@ -917,9 +917,9 @@ elseif ($object->id > 0) // Date start - end print ''.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; - $start = dol_print_date($object->date_start,'dayhour'); + $start = dol_print_date($object->date_start,'day'); print ($start?$start:'?'); - $end = dol_print_date($object->date_end,'dayhour'); + $end = dol_print_date($object->date_end,'day'); print ' - '; print ($end?$end:'?'); if ($object->hasDelay()) print img_warning("Late"); diff --git a/htdocs/projet/contact.php b/htdocs/projet/contact.php index 72b82ac2bb0..fde0ed45288 100644 --- a/htdocs/projet/contact.php +++ b/htdocs/projet/contact.php @@ -150,26 +150,26 @@ if ($id > 0 || ! empty($ref)) // Project card - + $linkback = ''.$langs->trans("BackToList").''; - + $morehtmlref='
'; // Title $morehtmlref.=$object->title; // Thirdparty - if ($object->thirdparty->id > 0) + if ($object->thirdparty->id > 0) { $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); @@ -178,7 +178,7 @@ if ($id > 0 || ! empty($ref)) print '
'; print ''; - + // Visibility print ''; - + // Opportunity percent print ''; } - + // Date start - end print '
'.$langs->trans("Visibility").''; if ($object->public) print $langs->trans('SharedProject'); @@ -192,7 +192,7 @@ if ($id > 0 || ! empty($ref)) $code = dol_getIdFromCode($db, $object->opp_status, 'c_lead_status', 'rowid', 'code'); if ($code) print $langs->trans("OppStatus".$code); print '
'.$langs->trans("OpportunityProbability").''; if (strcmp($object->opp_percent,'')) print price($object->opp_percent,'',$langs,1,0).' %'; @@ -203,12 +203,12 @@ if ($id > 0 || ! empty($ref)) if (strcmp($object->opp_amount,'')) print price($object->opp_amount,'',$langs,0,0,0,$conf->currency); print '
'.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; - $start = dol_print_date($object->date_start,'dayhour'); + $start = dol_print_date($object->date_start,'day'); print ($start?$start:'?'); - $end = dol_print_date($object->date_end,'dayhour'); + $end = dol_print_date($object->date_end,'day'); print ' - '; print ($end?$end:'?'); if ($object->hasDelay()) print img_warning("Late"); @@ -222,40 +222,40 @@ if ($id > 0 || ! empty($ref)) // Other attributes $cols = 2; include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php'; - + 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(); - + print '
'; - + // Contacts lines (modules that overwrite templates must declare this into descriptor) $dirtpls=array_merge($conf->modules_parts['tpl'],array('/core/tpl')); foreach($dirtpls as $reldir) diff --git a/htdocs/projet/element.php b/htdocs/projet/element.php index d4829d8e839..2b753a50468 100644 --- a/htdocs/projet/element.php +++ b/htdocs/projet/element.php @@ -185,9 +185,9 @@ if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES)) // Date start - end print ''.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; -$start = dol_print_date($object->date_start,'dayhour'); +$start = dol_print_date($object->date_start,'day'); print ($start?$start:'?'); -$end = dol_print_date($object->date_end,'dayhour'); +$end = dol_print_date($object->date_end,'day'); print ' - '; print ($end?$end:'?'); if ($object->hasDelay()) print img_warning("Late"); diff --git a/htdocs/projet/ganttview.php b/htdocs/projet/ganttview.php index dd9d03b25b1..0c1e86c8ab5 100644 --- a/htdocs/projet/ganttview.php +++ b/htdocs/projet/ganttview.php @@ -140,9 +140,9 @@ if (($id > 0 && is_numeric($id)) || ! empty($ref)) // Date start - end print ''.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; - $start = dol_print_date($object->date_start,'dayhour'); + $start = dol_print_date($object->date_start,'day'); print ($start?$start:'?'); - $end = dol_print_date($object->date_end,'dayhour'); + $end = dol_print_date($object->date_end,'day'); print ' - '; print ($end?$end:'?'); if ($object->hasDelay()) print img_warning("Late"); diff --git a/htdocs/projet/tasks.php b/htdocs/projet/tasks.php index 4d43b6e4bc2..47de9ce2b19 100644 --- a/htdocs/projet/tasks.php +++ b/htdocs/projet/tasks.php @@ -281,9 +281,9 @@ if ($id > 0 || ! empty($ref)) // Date start - end print ''.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; - $start = dol_print_date($object->date_start,'dayhour'); + $start = dol_print_date($object->date_start,'day'); print ($start?$start:'?'); - $end = dol_print_date($object->date_end,'dayhour'); + $end = dol_print_date($object->date_end,'day'); print ' - '; print ($end?$end:'?'); if ($object->hasDelay()) print img_warning("Late"); diff --git a/htdocs/projet/tasks/comment.php b/htdocs/projet/tasks/comment.php index e4250bad062..49072299ac4 100644 --- a/htdocs/projet/tasks/comment.php +++ b/htdocs/projet/tasks/comment.php @@ -152,9 +152,12 @@ if ($id > 0 || ! empty($ref)) // Date start - end print ''.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; - print dol_print_date($projectstatic->date_start,'day'); - $end=dol_print_date($projectstatic->date_end,'day'); - if ($end) print ' - '.$end; + $start = dol_print_date($projectstatic->date_start,'day'); + print ($start?$start:'?'); + $end = dol_print_date($projectstatic->date_end,'day'); + print ' - '; + print ($end?$end:'?'); + if ($projectstatic->hasDelay()) print img_warning("Late"); print ''; // Budget @@ -263,7 +266,7 @@ if ($id > 0 || ! empty($ref)) dol_fiche_end(); - + // Include comment tpl view include DOL_DOCUMENT_ROOT . '/core/tpl/bloc_comment.tpl.php'; diff --git a/htdocs/projet/tasks/contact.php b/htdocs/projet/tasks/contact.php index d3baba4d5fb..a2bb784c062 100644 --- a/htdocs/projet/tasks/contact.php +++ b/htdocs/projet/tasks/contact.php @@ -228,9 +228,12 @@ if ($id > 0 || ! empty($ref)) // Date start - end print ''.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; - print dol_print_date($projectstatic->date_start,'day'); - $end=dol_print_date($projectstatic->date_end,'day'); - if ($end) print ' - '.$end; + $start = dol_print_date($projectstatic->date_start,'day'); + print ($start?$start:'?'); + $end = dol_print_date($projectstatic->date_end,'day'); + print ' - '; + print ($end?$end:'?'); + if ($projectstatic->hasDelay()) print img_warning("Late"); print ''; // Budget diff --git a/htdocs/projet/tasks/document.php b/htdocs/projet/tasks/document.php index f6f206f90ec..7fc0b981902 100644 --- a/htdocs/projet/tasks/document.php +++ b/htdocs/projet/tasks/document.php @@ -172,9 +172,12 @@ if ($object->id > 0) // Date start - end print ''.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; - print dol_print_date($projectstatic->date_start,'day'); - $end=dol_print_date($projectstatic->date_end,'day'); - if ($end) print ' - '.$end; + $start = dol_print_date($projectstatic->date_start,'day'); + print ($start?$start:'?'); + $end = dol_print_date($projectstatic->date_end,'day'); + print ' - '; + print ($end?$end:'?'); + if ($projectstatic->hasDelay()) print img_warning("Late"); print ''; // Budget diff --git a/htdocs/projet/tasks/note.php b/htdocs/projet/tasks/note.php index 87d949eb645..da33b8b7607 100644 --- a/htdocs/projet/tasks/note.php +++ b/htdocs/projet/tasks/note.php @@ -150,9 +150,12 @@ if ($object->id > 0) // Date start - end print ''.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; - print dol_print_date($projectstatic->date_start,'day'); - $end=dol_print_date($projectstatic->date_end,'day'); - if ($end) print ' - '.$end; + $start = dol_print_date($projectstatic->date_start,'day'); + print ($start?$start:'?'); + $end = dol_print_date($projectstatic->date_end,'day'); + print ' - '; + print ($end?$end:'?'); + if ($projectstatic->hasDelay()) print img_warning("Late"); print ''; // Budget diff --git a/htdocs/projet/tasks/task.php b/htdocs/projet/tasks/task.php index 71d487da2d6..479366ab586 100644 --- a/htdocs/projet/tasks/task.php +++ b/htdocs/projet/tasks/task.php @@ -262,9 +262,12 @@ if ($id > 0 || ! empty($ref)) // Date start - end print ''.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; - print dol_print_date($projectstatic->date_start,'day'); - $end=dol_print_date($projectstatic->date_end,'day'); - if ($end) print ' - '.$end; + $start = dol_print_date($projectstatic->date_start,'day'); + print ($start?$start:'?'); + $end = dol_print_date($projectstatic->date_end,'day'); + print ' - '; + print ($end?$end:'?'); + if ($projectstatic->hasDelay()) print img_warning("Late"); print ''; // Budget diff --git a/htdocs/projet/tasks/time.php b/htdocs/projet/tasks/time.php index 45018d79742..ce2e1c32889 100644 --- a/htdocs/projet/tasks/time.php +++ b/htdocs/projet/tasks/time.php @@ -349,9 +349,12 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0) // Date start - end print ''.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; - print dol_print_date($projectstatic->date_start,'day'); - $end=dol_print_date($projectstatic->date_end,'day'); - if ($end) print ' - '.$end; + $start = dol_print_date($projectstatic->date_start,'day'); + print ($start?$start:'?'); + $end = dol_print_date($projectstatic->date_end,'day'); + print ' - '; + print ($end?$end:'?'); + if ($projectstatic->hasDelay()) print img_warning("Late"); print ''; // Budget From 51028c845de6e827f48ae26fe2de1d14c3eec682 Mon Sep 17 00:00:00 2001 From: Gerhard Stephan Date: Thu, 15 Feb 2018 10:15:27 +0100 Subject: [PATCH 34/49] Export to PDF using LibreOffice 5 command line --- htdocs/includes/odtphp/odf.php | 143 ++++++++++++++++++--------------- 1 file changed, 78 insertions(+), 65 deletions(-) diff --git a/htdocs/includes/odtphp/odf.php b/htdocs/includes/odtphp/odf.php index 19fd3390937..0b3501be6be 100644 --- a/htdocs/includes/odtphp/odf.php +++ b/htdocs/includes/odtphp/odf.php @@ -574,85 +574,98 @@ IMG; dol_syslog(get_class($this).'::exportAsAttachedPDF $name='.$name, LOG_DEBUG); $this->saveToDisk($name); - $execmethod=(empty($conf->global->MAIN_EXEC_USE_POPEN)?1:2); // 1 or 2 - // Method 1 sometimes hang the server. - - if (preg_match('/unoconv/', $conf->global->MAIN_ODT_AS_PDF)) + // Export to PDF using LibreOffice + if ($conf->global->MAIN_ODT_AS_PDF == 'libreoffice') { - // If issue with unoconv, see https://github.com/dagwieers/unoconv/issues/87 - - // MAIN_ODT_AS_PDF should be "sudo -u unoconv /usr/bin/unoconv" and userunoconv must have sudo to be root by adding file /etc/sudoers.d/unoconv with content www-data ALL=(unoconv) NOPASSWD: /usr/bin/unoconv . - - // Try this with www-data user: /usr/bin/unoconv -vvvv -f pdf /tmp/document-example.odt - // It must return: - //Verbosity set to level 4 - //Using office base path: /usr/lib/libreoffice - //Using office binary path: /usr/lib/libreoffice/program - //DEBUG: Connection type: socket,host=127.0.0.1,port=2002;urp;StarOffice.ComponentContext - //DEBUG: Existing listener not found. - //DEBUG: Launching our own listener using /usr/lib/libreoffice/program/soffice.bin. - //LibreOffice listener successfully started. (pid=9287) - //Input file: /tmp/document-example.odt - //unoconv: file `/tmp/document-example.odt' does not exist. - //unoconv: RuntimeException during import phase: - //Office probably died. Unsupported URL : "type detection failed" - //DEBUG: Terminating LibreOffice instance. - //DEBUG: Waiting for LibreOffice instance to exit - - // It fails: - // - set shel of user to bash instead of nologin. - // - set permission to read/write to user on home directory /var/www so user can create the libreoffice , dconf and .cache dir and files then set permission back - - $command = $conf->global->MAIN_ODT_AS_PDF.' '.escapeshellcmd($name); - //$command = '/usr/bin/unoconv -vvv '.escapeshellcmd($name); + // Executing convert to PDF using libreoffice 5 (using windows libreoffice must be in path) + $command ='soffice.exe -headless -convert-to pdf -outdir '. escapeshellarg(dirname($name)). " ".escapeshellarg($name); + exec($command, $output_arr, $retval); + + // Split extension from name to allow deleting the source using MAIN_ODT_AS_PDF_DEL_SOURCE + $name=preg_replace('/\.odt/i', '', $name); } else { - // deprecated old method - $name=preg_replace('/\.odt/i', '', $name); + $execmethod=(empty($conf->global->MAIN_EXEC_USE_POPEN)?1:2); // 1 or 2 + // Method 1 sometimes hang the server. - if (!empty($conf->global->MAIN_DOL_SCRIPTS_ROOT)) + if (preg_match('/unoconv/', $conf->global->MAIN_ODT_AS_PDF)) { - $command = $conf->global->MAIN_DOL_SCRIPTS_ROOT.'/scripts/odt2pdf/odt2pdf.sh '.escapeshellcmd($name).' '.(is_numeric($conf->global->MAIN_ODT_AS_PDF)?'jodconverter':$conf->global->MAIN_ODT_AS_PDF); + // If issue with unoconv, see https://github.com/dagwieers/unoconv/issues/87 + + // MAIN_ODT_AS_PDF should be "sudo -u unoconv /usr/bin/unoconv" and userunoconv must have sudo to be root by adding file /etc/sudoers.d/unoconv with content www-data ALL=(unoconv) NOPASSWD: /usr/bin/unoconv . + + // Try this with www-data user: /usr/bin/unoconv -vvvv -f pdf /tmp/document-example.odt + // It must return: + //Verbosity set to level 4 + //Using office base path: /usr/lib/libreoffice + //Using office binary path: /usr/lib/libreoffice/program + //DEBUG: Connection type: socket,host=127.0.0.1,port=2002;urp;StarOffice.ComponentContext + //DEBUG: Existing listener not found. + //DEBUG: Launching our own listener using /usr/lib/libreoffice/program/soffice.bin. + //LibreOffice listener successfully started. (pid=9287) + //Input file: /tmp/document-example.odt + //unoconv: file `/tmp/document-example.odt' does not exist. + //unoconv: RuntimeException during import phase: + //Office probably died. Unsupported URL : "type detection failed" + //DEBUG: Terminating LibreOffice instance. + //DEBUG: Waiting for LibreOffice instance to exit + + // It fails: + // - set shel of user to bash instead of nologin. + // - set permission to read/write to user on home directory /var/www so user can create the libreoffice , dconf and .cache dir and files then set permission back + + $command = $conf->global->MAIN_ODT_AS_PDF.' '.escapeshellcmd($name); + //$command = '/usr/bin/unoconv -vvv '.escapeshellcmd($name); } else { - dol_syslog(get_class($this).'::exportAsAttachedPDF is used but the constant MAIN_DOL_SCRIPTS_ROOT with path to script directory was not defined.', LOG_WARNING); - $command = '../../scripts/odt2pdf/odt2pdf.sh '.escapeshellcmd($name).' '.(is_numeric($conf->global->MAIN_ODT_AS_PDF)?'jodconverter':$conf->global->MAIN_ODT_AS_PDF); - } - } + // deprecated old method + $name=preg_replace('/\.odt/i', '', $name); - //$dirname=dirname($name); - //$command = DOL_DOCUMENT_ROOT.'/includes/odtphp/odt2pdf.sh '.$name.' '.$dirname; - - dol_syslog(get_class($this).'::exportAsAttachedPDF $execmethod='.$execmethod.' Run command='.$command,LOG_DEBUG); - if ($execmethod == 1) - { - exec($command, $output_arr, $retval); - } - if ($execmethod == 2) - { - $outputfile = DOL_DATA_ROOT.'/odt2pdf.log'; - - $ok=0; - $handle = fopen($outputfile, 'w'); - if ($handle) - { - dol_syslog(get_class($this)."Run command ".$command,LOG_DEBUG); - fwrite($handle, $command."\n"); - $handlein = popen($command, 'r'); - while (!feof($handlein)) + if (!empty($conf->global->MAIN_DOL_SCRIPTS_ROOT)) { - $read = fgets($handlein); - fwrite($handle, $read); - $output_arr[]=$read; + $command = $conf->global->MAIN_DOL_SCRIPTS_ROOT.'/scripts/odt2pdf/odt2pdf.sh '.escapeshellcmd($name).' '.(is_numeric($conf->global->MAIN_ODT_AS_PDF)?'jodconverter':$conf->global->MAIN_ODT_AS_PDF); + } + else + { + dol_syslog(get_class($this).'::exportAsAttachedPDF is used but the constant MAIN_DOL_SCRIPTS_ROOT with path to script directory was not defined.', LOG_WARNING); + $command = '../../scripts/odt2pdf/odt2pdf.sh '.escapeshellcmd($name).' '.(is_numeric($conf->global->MAIN_ODT_AS_PDF)?'jodconverter':$conf->global->MAIN_ODT_AS_PDF); } - pclose($handlein); - fclose($handle); } - if (! empty($conf->global->MAIN_UMASK)) @chmod($outputfile, octdec($conf->global->MAIN_UMASK)); - } + //$dirname=dirname($name); + //$command = DOL_DOCUMENT_ROOT.'/includes/odtphp/odt2pdf.sh '.$name.' '.$dirname; + + dol_syslog(get_class($this).'::exportAsAttachedPDF $execmethod='.$execmethod.' Run command='.$command,LOG_DEBUG); + if ($execmethod == 1) + { + exec($command, $output_arr, $retval); + } + if ($execmethod == 2) + { + $outputfile = DOL_DATA_ROOT.'/odt2pdf.log'; + + $ok=0; + $handle = fopen($outputfile, 'w'); + if ($handle) + { + dol_syslog(get_class($this)."Run command ".$command,LOG_DEBUG); + fwrite($handle, $command."\n"); + $handlein = popen($command, 'r'); + while (!feof($handlein)) + { + $read = fgets($handlein); + fwrite($handle, $read); + $output_arr[]=$read; + } + pclose($handlein); + fclose($handle); + } + if (! empty($conf->global->MAIN_UMASK)) @chmod($outputfile, octdec($conf->global->MAIN_UMASK)); + } + } + if ($retval == 0) { dol_syslog(get_class($this).'::exportAsAttachedPDF $ret_val='.$retval, LOG_DEBUG); From 3ffc67105260f2fdc875ec70b291abf34e6500c7 Mon Sep 17 00:00:00 2001 From: dolibarr95 <24292300+dolibarr95@users.noreply.github.com> Date: Thu, 15 Feb 2018 10:47:32 +0100 Subject: [PATCH 35/49] Add phone format for several countries --- htdocs/core/lib/functions.lib.php | 254 +++++++++++++++++++++++++++++- 1 file changed, 252 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 457f8068c0e..89e31d00703 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -2223,13 +2223,263 @@ function dol_print_phone($phone,$countrycode='',$cid=0,$socid=0,$addlink='',$sep } } - if (strtoupper($countrycode) == "CA") + elseif (strtoupper($countrycode) == "CA") { if (dol_strlen($phone) == 10) { $newphone=($separ!=''?'(':'').substr($newphone,0,3).($separ!=''?')':'').$separ.substr($newphone,3,3).($separ!=''?'-':'').substr($newphone,6,4); } } - + elseif (strtoupper($parameters['countrycode']) == "PT" ) + {//Portugal + if (dol_strlen($object) == 13) + {//ex: +351_ABC_DEF_GHI + $newphone= substr($newphone,0,4).$separ.substr($newphone,4,3).$separ.substr($newphone,7,3).$separ.substr($newphone,10,3); + } + } + elseif (strtoupper($parameters['countrycode']) == "SR" ) + {//Suriname + if (dol_strlen($object) == 10) + {//ex: +597_ABC_DEF + $newphone= substr($newphone,0,4).$separ.substr($newphone,4,3).$separ.substr($newphone,7,3); + } + elseif (dol_strlen($object) == 11) + {//ex: +597_ABC_DEFG + $newphone= substr($newphone,0,4).$separ.substr($newphone,4,3).$separ.substr($newphone,7,4); + } + } + elseif (strtoupper($parameters['countrycode']) == "DE" ) + {//Allemagne + if (dol_strlen($object) == 14) + {//ex: +49_ABCD_EFGH_IJK + $newphone= substr($newphone,0,3).$separ.substr($newphone,3,4).$separ.substr($newphone,7,4).$separ.substr($newphone,11,3); + } + elseif (dol_strlen($object) == 13) + {//ex: +49_ABC_DEFG_HIJ + $newphone= substr($newphone,0,3).$separ.substr($newphone,3,3).$separ.substr($newphone,6,4).$separ.substr($newphone,10,3); + } + } + elseif (strtoupper($parameters['countrycode']) == "ES") + {//Espagne + if (dol_strlen($object) == 12) + {//ex: +34_ABC_DEF_GHI + $newphone= substr($newphone,0,3).$separ.substr($newphone,3,3).$separ.substr($newphone,6,3).$separ.substr($newphone,9,3); + } + } + elseif (strtoupper($parameters['countrycode']) == "BF") + {// Burkina Faso + if (dol_strlen($newphone) == 12) + {//ex : +22 A BC_DE_FG_HI + $newphone= substr($newphone,0,3).$separ.substr($newphone,3,1).$separ.substr($newphone,4,2).$separ.substr($newphone,6,2).$separ.substr($newphone,8,2).$separ.substr($newphone,10,2); + } + } + elseif (strtoupper($parameters['countrycode']) == "RO") + {// Roumanie + if (dol_strlen($newphone) == 12) + {//ex : +40 AB_CDE_FG_HI + $newphone= substr($newphone,0,3).$separ.substr($newphone,3,2).$separ.substr($newphone,5,3).$separ.substr($newphone,8,2).$separ.substr($newphone,10,2); + } + } + elseif (strtoupper($parameters['countrycode']) == "TR") + {//Turquie + if (dol_strlen($object) == 13) + {//ex : +90 ABC_DEF_GHIJ + $newphone= substr($newphone,0,3).$separ.substr($newphone,3,3).$separ.substr($newphone,6,3).$separ.substr($newphone,9,4); + } + } + elseif (strtoupper($parameters['countrycode']) == "US") + {//Etat-Unis + if (dol_strlen($newphone) == 12) + {//ex: +1 ABC_DEF_GHIJ + $newphone= substr($newphone,0,2).$separ.substr($newphone,2,3).$separ.substr($newphone,5,3).$separ.substr($newphone,8,4); + } + } + elseif (strtoupper($parameters['countrycode']) == "MX") + {//Mexique + if (dol_strlen($newphone) == 12) + {//ex: +52 ABCD_EFG_HI + $newphone = substr($newphone,0,3).$separ.substr($newphone,3,4).$separ.substr($newphone,7,3).$separ.substr($newphone,10,2); + } + elseif (dol_strlen($newphone) == 11) + {//ex: +52 AB_CD_EF_GH + $newphone = substr($newphone,0,3).$separ.substr($newphone,3,2).$separ.substr($newphone,5,2).$separ.substr($newphone,7,2).$separ.substr($newphone,9,2); + } + elseif (dol_strlen($newphone) == 13) + {//ex: +52 ABC_DEF_GHIJ + $newphone = substr($newphone,0,3).$separ.substr($newphone,3,3).$separ.substr($newphone,6,3).$separ.substr($newphone,9,4); + } + } + elseif (strtoupper($parameters['countrycode']) == "ML") + {//Mali + if(dol_strlen($newphone) == 12) + {//ex: +223 AB_CD_EF_GH + $newphone = substr($newphone,0,4).$separ.substr($newphone,4,2).$separ.substr($newphone,6,2).$separ.substr($newphone,8,2).$separ.substr($newphone,10,2); + } + } + elseif (strtoupper($parameters['countrycode']) == "TH") + {//Thaïlande + if(dol_strlen($newphone) == 11) + {//ex: +66_ABC_DE_FGH + $newphone = substr($newphone,0,3).$separ.substr($newphone,3,3).$separ.substr($newphone,6,2).$separ.substr($newphone,8,3); + } + elseif(dol_strlen($newphone) == 12) + {//ex: +66_A_BCD_EF_GHI + $newphone = substr($newphone,0,3).$separ.substr($newphone,3,1).$separ.substr($newphone,4,3).$separ.substr($newphone,7,2).$separ.substr($newphone,9,3); + } + } + elseif (strtoupper($parameters['countrycode']) == "MU") + {//Maurice + if(dol_strlen($newphone) == 11) + {//ex: +230_ABC_DE_FG + $newphone = substr($newphone,0,4).$separ.substr($newphone,4,3).$separ.substr($newphone,7,2).$separ.substr($newphone,9,2); + } + elseif(dol_strlen($newphone) == 12) + {//ex: +230_ABCD_EF_GH + $newphone = substr($newphone,0,4).$separ.substr($newphone,4,4).$separ.substr($newphone,8,2).$separ.substr($newphone,10,2); + } + } + elseif (strtoupper($parameters['countrycode']) == "ZA") + {//Afrique du sud + if(dol_strlen($newphone) == 12) + {//ex: +27_AB_CDE_FG_HI + $newphone = substr($newphone,0,3).$separ.substr($newphone,3,2).$separ.substr($newphone,5,3).$separ.substr($newphone,8,2).$separ.substr($newphone,10,2); + } + } + elseif (strtoupper($parameters['countrycode']) == "SY") + {//Syrie + if(dol_strlen($newphone) == 12) + {//ex: +963_AB_CD_EF_GH + $newphone = substr($newphone,0,4).$separ.substr($newphone,4,2).$separ.substr($newphone,6,2).$separ.substr($newphone,8,2).$separ.substr($newphone,10,2); + } + elseif(dol_strlen($newphone) == 13) + {//ex: +963_AB_CD_EF_GHI + $newphone = substr($newphone,0,4).$separ.substr($newphone,4,2).$separ.substr($newphone,6,2).$separ.substr($newphone,8,2).$separ.substr($newphone,10,3); + } + } + elseif (strtoupper($parameters['countrycode']) == "AE") + {//Emirats Arabes Unis + if(dol_strlen($newphone) == 12) + {//ex: +971_ABC_DEF_GH + $newphone = substr($newphone,0,4).$separ.substr($newphone,4,3).$separ.substr($newphone,7,3).$separ.substr($newphone,10,2); + } + elseif(dol_strlen($newphone) == 13) + {//ex: +971_ABC_DEF_GHI + $newphone = substr($newphone,0,4).$separ.substr($newphone,4,3).$separ.substr($newphone,7,3).$separ.substr($newphone,10,3); + } + elseif(dol_strlen($newphone) == 14) + {//ex: +971_ABC_DEF_GHIK + $newphone = substr($newphone,0,4).$separ.substr($newphone,4,3).$separ.substr($newphone,7,3).$separ.substr($newphone,10,4); + } + } + elseif (strtoupper($parameters['countrycode']) == "DZ") + {//Algérie + if(dol_strlen($newphone) == 13) + {//ex: +213_ABC_DEF_GHI + $newphone = substr($newphone,0,4).$separ.substr($newphone,4,3).$separ.substr($newphone,7,3).$separ.substr($newphone,10,3); + } + } + elseif (strtoupper($parameters['countrycode']) == "BE") + {//Belgique + if(dol_strlen($newphone) == 11) + {//ex: +32_ABC_DE_FGH + $newphone = substr($newphone,0,3).$separ.substr($newphone,3,3).$separ.substr($newphone,6,2).$separ.substr($newphone,8,3); + } + elseif(dol_strlen($newphone) == 12) + {//ex: +32_ABC_DEF_GHI + $newphone = substr($newphone,0,3).$separ.substr($newphone,3,3).$separ.substr($newphone,6,3).$separ.substr($newphone,9,3); + } + } + elseif (strtoupper($parameters['countrycode']) == "PF") + {//Polynésie française + if(dol_strlen($newphone) == 12) + {//ex: +689_AB_CD_EF_GH + $newphone = substr($newphone,0,4).$separ.substr($newphone,4,2).$separ.substr($newphone,6,2).$separ.substr($newphone,8,2).$separ.substr($newphone,10,2); + } + } + elseif (strtoupper($parameters['countrycode']) == "CO") + {//Colombie + if(dol_strlen($newphone) == 13) + {//ex: +57_ABC_DEF_GH_IJ + $newphone = substr($newphone,0,3).$separ.substr($newphone,3,3).$separ.substr($newphone,6,3).$separ.substr($newphone,9,2).$separ.substr($newphone,11,2); + } + } + elseif (strtoupper($parameters['countrycode']) == "JO") + {//Jordanie + if(dol_strlen($newphone) == 12) + {//ex: +962_A_BCD_EF_GH + $newphone = substr($newphone,0,4).$separ.substr($newphone,4,1).$separ.substr($newphone,5,3).$separ.substr($newphone,7,2).$separ.substr($newphone,9,2); + } + } + elseif (strtoupper($parameters['countrycode']) == "MG") + {//Madagascar + if(dol_strlen($newphone) == 13) + {//ex: +261_AB_CD_EF_GHI + $newphone = substr($newphone,0,4).$separ.substr($newphone,4,2).$separ.substr($newphone,6,2).$separ.substr($newphone,8,2).$separ.substr($newphone,10,3); + } + } + elseif (strtoupper($parameters['countrycode']) == "GB") + {//Royaume uni + if(dol_strlen($newphone) == 13) + {//ex: +44_ABCD_EFG_HIJ + $newphone = substr($newphone,0,3).$separ.substr($newphone,3,4).$separ.substr($newphone,7,3).$separ.substr($newphone,10,3); + } + } + elseif (strtoupper($parameters['countrycode']) == "CH") + {//Suisse + if(dol_strlen($newphone) == 12) + {//ex: +41_AB_CDE_FG_HI + $newphone = substr($newphone,0,3).$separ.substr($newphone,3,2).$separ.substr($newphone,5,3).$separ.substr($newphone,8,2).$separ.substr($newphone,10,2); + } + elseif(dol_strlen($newphone) == 15) + {// +41_AB_CDE_FGH_IJKL + $newphone =$newphone = substr($newphone,0,3).$separ.substr($newphone,3,2).$separ.substr($newphone,5,3).$separ.substr($newphone,8,3).$separ.substr($newphone,11,4); + } + } + elseif (strtoupper($parameters['countrycode']) == "TN") + {//Tunisie + if(dol_strlen($newphone) == 12) + {//ex: +216_AB_CDE_FGH + $newphone = substr($newphone,0,4).$separ.substr($newphone,4,2).$separ.substr($newphone,6,3).$separ.substr($newphone,9,3); + } + } + elseif (strtoupper($parameters['countrycode']) == "GF") + {//Guyane francaise + if(dol_strlen($newphone) == 13) + {//ex: +594_ABC_DE_FG_HI (ABC=594 de nouveau) + $newphone = substr($newphone,0,4).$separ.substr($newphone,4,3).$separ.substr($newphone,7,2).$separ.substr($newphone,9,2).$separ.substr($newphone,11,2); + } + } + elseif (strtoupper($parameters['countrycode']) == "GP") + {//Guadeloupe + if(dol_strlen($newphone) == 13) + {//ex: +590_ABC_DE_FG_HI (ABC=590 de nouveau) + $newphone = substr($newphone,0,4).$separ.substr($newphone,4,3).$separ.substr($newphone,7,2).$separ.substr($newphone,9,2).$separ.substr($newphone,11,2); + } + } + elseif (strtoupper($parameters['countrycode']) == "MQ") + {//Martinique + if(dol_strlen($newphone) == 13) + {//ex: +596_ABC_DE_FG_HI (ABC=596 de nouveau) + $newphone = substr($newphone,0,4).$separ.substr($newphone,4,3).$separ.substr($newphone,7,2).$separ.substr($newphone,9,2).$separ.substr($newphone,11,2); + } + } + elseif (strtoupper($parameters['countrycode']) == "IT") + {//Italie + if(dol_strlen($newphone) == 12) + {//ex: +39_ABC_DEF_GHI + $newphone = substr($newphone,0,3).$separ.substr($newphone,3,3).$separ.substr($newphone,6,3).$separ.substr($newphone,9,3); + } + elseif(dol_strlen($newphone) == 13) + {//ex: +39_ABC_DEF_GH_IJ + $newphone = substr($newphone,0,3).$separ.substr($newphone,3,3).$separ.substr($newphone,6,3).$separ.substr($newphone,9,2).$separ.substr($newphone,11,2); + } + } + elseif(strtoupper($parameters['countrycode']) == "AU") + {//Australie + if(dol_strlen($newphone) == 12) + {//ex: +61_A_BCDE_FGHI + $newphone = substr($newphone,0,3).$separ.substr($newphone,3,1).$separ.substr($newphone,4,4).$separ.substr($newphone,8,4); + } + } if (! empty($addlink)) // Link on phone number (+ link to add action if conf->global->AGENDA_ADDACTIONFORPHONE set) { if (! empty($conf->browser->phone) || (! empty($conf->clicktodial->enabled) && ! empty($conf->global->CLICKTODIAL_USE_TEL_LINK_ON_PHONE_NUMBERS))) // If phone or option for, we use link of phone From f0855da0fb6ca49328dcbdcc5844e567316db6bc Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 15 Feb 2018 12:57:04 +0100 Subject: [PATCH 36/49] Fix responsive --- htdocs/comm/index.php | 34 +++++++++++++++++------ htdocs/comm/propal/index.php | 20 +++++++++---- htdocs/core/class/html.formfile.class.php | 2 +- htdocs/core/lib/functions.lib.php | 3 +- htdocs/hrm/index.php | 6 +++- htdocs/langs/en_US/ecm.lang | 2 +- htdocs/product/list.php | 1 - htdocs/societe/card.php | 4 +-- htdocs/societe/class/societe.class.php | 2 +- htdocs/societe/index.php | 6 ++++ htdocs/theme/eldy/style.css.php | 13 ++++++++- htdocs/theme/md/style.css.php | 12 +++++++- 12 files changed, 81 insertions(+), 24 deletions(-) diff --git a/htdocs/comm/index.php b/htdocs/comm/index.php index c394ef69d8d..91004c86f67 100644 --- a/htdocs/comm/index.php +++ b/htdocs/comm/index.php @@ -156,6 +156,7 @@ if (! empty($conf->propal->enabled) && $user->rights->propal->lire) $total = 0; $num = $db->num_rows($resql); + print '
'; print ''; print ''; print ''; @@ -201,7 +202,7 @@ if (! empty($conf->propal->enabled) && $user->rights->propal->lire) print ''; } - print "
'.$langs->trans("ProposalsDraft").($num?' '.$num.'':'').'
'.$langs->trans("NoProposal").'

"; + print "

"; $db->free($resql); } @@ -237,6 +238,7 @@ if (! empty($conf->supplier_proposal->enabled) && $user->rights->supplier_propos $total = 0; $num = $db->num_rows($resql); + print '
'; print ''; print ''; print ''; @@ -281,7 +283,7 @@ if (! empty($conf->supplier_proposal->enabled) && $user->rights->supplier_propos print ''; } - print "
'.$langs->trans("SupplierProposalsDraft").($num?' '.$num.'':'').'
'.$langs->trans("NoProposal").'

"; + print "

"; $db->free($resql); } @@ -316,6 +318,7 @@ if (! empty($conf->commande->enabled) && $user->rights->commande->lire) $total = 0; $num = $db->num_rows($resql); + print '
'; print ''; print ''; print ''; @@ -361,7 +364,8 @@ if (! empty($conf->commande->enabled) && $user->rights->commande->lire) print ''; } - print "
'.$langs->trans("DraftOrders").($num?' '.$num.'':'').'
'.$langs->trans("NoOrder").'

"; + print ""; + print "

"; $db->free($resql); } @@ -397,6 +401,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->commande $total = 0; $num = $db->num_rows($resql); + print '
'; print ''; print ''; print ''; @@ -442,7 +447,8 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->commande print ''; } - print "
'.$langs->trans("DraftSuppliersOrders").($num?' '.$num.'':'').'
'.$langs->trans("NoSupplierOrder").'

"; + print ""; + print "

"; $db->free($resql); } else { @@ -482,6 +488,7 @@ if (! empty($conf->societe->enabled) && $user->rights->societe->lire) $num = $db->num_rows($resql); $i = 0; + print '
'; print ''; print ''; print ''; } - print "
'; @@ -520,7 +527,8 @@ if (! empty($conf->societe->enabled) && $user->rights->societe->lire) { print '
'.$langs->trans("None").'

"; + print ""; + print "

"; } } @@ -546,6 +554,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->societe->lire) $num = $db->num_rows($result); $i = 0; + print '
'; print ''; print ''; print ''; @@ -574,7 +583,8 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->societe->lire) { print ''; } - print '
'.$langs->trans("BoxTitleLastModifiedSuppliers",min($max,$num)).'
'.$langs->trans("None").'

'; + print ''; + print '

'; } } @@ -626,6 +636,7 @@ if (! empty($conf->contrat->enabled) && $user->rights->contrat->lire && 0) // TO if ($num > 0) { + print '
'; print ''; print ''; $i = 0; @@ -648,7 +659,8 @@ if (! empty($conf->contrat->enabled) && $user->rights->contrat->lire && 0) // TO $i++; } - print "
'.$langs->trans("LastContracts",5).'

"; + print ""; + print "

"; } } else @@ -684,6 +696,7 @@ if (! empty($conf->propal->enabled) && $user->rights->propal->lire) $i = 0; if ($num > 0) { + print '
'; print ''; print ''; @@ -745,7 +758,8 @@ if (! empty($conf->propal->enabled) && $user->rights->propal->lire) { print '"; } - print "
'.$langs->trans("ProposalsOpened").' '.$num.'
'.$langs->trans("Total")."".price($total)." 

"; + print ""; + print "

"; } } else @@ -781,6 +795,7 @@ if (! empty($conf->commande->enabled) && $user->rights->commande->lire) $i = 0; if ($num > 0) { + print '
'; print ''; print ''; @@ -842,7 +857,8 @@ if (! empty($conf->commande->enabled) && $user->rights->commande->lire) { print '"; } - print "
'.$langs->trans("OrdersOpened").' '.$num.'
'.$langs->trans("Total")."".price($total)." 

"; + print ""; + print "

"; } } else diff --git a/htdocs/comm/propal/index.php b/htdocs/comm/propal/index.php index 42a7bb4b448..a313ab299f0 100644 --- a/htdocs/comm/propal/index.php +++ b/htdocs/comm/propal/index.php @@ -172,6 +172,7 @@ if (! empty($conf->propal->enabled)) $resql=$db->query($sql); if ($resql) { + print '
'; print ''; print ''; print ''; @@ -199,7 +200,8 @@ if (! empty($conf->propal->enabled)) $i++; } } - print "
'.$langs->trans("DraftPropals").'

"; + print ""; + print "

"; } } @@ -230,6 +232,7 @@ $sql.= $db->plimit($max, 0); $resql=$db->query($sql); if ($resql) { + print '
'; print ''; print ''; print ''; @@ -278,7 +281,8 @@ if ($resql) $i++; } } - print "
'.$langs->trans("LastModifiedProposals",$max).'

"; + print ""; + print "

"; } else dol_print_error($db); @@ -311,6 +315,7 @@ if (! empty($conf->propal->enabled) && $user->rights->propale->lire) $i = 0; if ($num > 0) { + print '
'; print ''; print ''; @@ -365,7 +370,8 @@ if (! empty($conf->propal->enabled) && $user->rights->propale->lire) { print '"; } - print "
'.$langs->trans("ProposalsOpened").' '.$num.'
'.$langs->trans("Total")."".price($total)." 

"; + print ""; + print "

"; } } else @@ -396,6 +402,7 @@ if (! empty($conf->propal->enabled)) { $num = $db->num_rows($resql); + print '
'; print ''; print ''; print ''; @@ -440,7 +447,8 @@ if (! empty($conf->propal->enabled)) } } - print "
'.$langs->trans("ProposalsToProcess").' '.$num.'

"; + print ""; + print "

"; } else dol_print_error($db); } @@ -467,6 +475,7 @@ if (! empty($conf->propal->enabled)) { $num = $db->num_rows($resql); + print '
'; print ''; print ''; print ''; @@ -510,7 +519,8 @@ if (! empty($conf->propal->enabled)) $i++; } } - print "
'.$langs->trans("OnProcessOrders").' '.$num.'

"; + print ""; + print "

"; } else dol_print_error($db); } diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php index ba1520e9a81..74ea44c84e7 100644 --- a/htdocs/core/class/html.formfile.class.php +++ b/htdocs/core/class/html.formfile.class.php @@ -586,7 +586,7 @@ class FormFile } } - // Set headershown to avoit to have table opened a second time later + // Set headershown to avoid to have table opened a second time later $headershown=1; $buttonlabeltoshow=$buttonlabel; diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 3fc40ab8af6..8f2fb50b0dc 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -3800,7 +3800,8 @@ function print_barre_liste($titre, $page, $file, $options='', $sortfield='', $so { if ($totalnboflines) // If we know total nb of lines { - $maxnbofpage=(empty($conf->dol_optimize_smallscreen) ? 4 : 1); // page nb before and after selected page + ... + first or last + // Define nb of extra page links before and after selected page + ... + first or last + $maxnbofpage=(empty($conf->dol_optimize_smallscreen) ? 4 : 1); if ($limit > 0) $nbpages=ceil($totalnboflines/$limit); else $nbpages=1; diff --git a/htdocs/hrm/index.php b/htdocs/hrm/index.php index e21db6a1dd1..f0e279bb848 100644 --- a/htdocs/hrm/index.php +++ b/htdocs/hrm/index.php @@ -265,6 +265,7 @@ if (! empty($conf->deplacement->enabled) && $user->rights->deplacement->lire) $i = 0; + print '
'; print ''; print ''; print ''; @@ -309,7 +310,8 @@ if (! empty($conf->deplacement->enabled) && $user->rights->deplacement->lire) { print ''; } - print '
'.$langs->trans("BoxTitleLastModifiedExpenses",min($max,$num)).'
'.$langs->trans("None").'

'; + print ''; + print '
'; } else dol_print_error($db); } @@ -336,6 +338,7 @@ if (! empty($conf->expensereport->enabled) && $user->rights->expensereport->lire $i = 0; + print '
'; print ''; print ''; print ''; @@ -381,6 +384,7 @@ if (! empty($conf->expensereport->enabled) && $user->rights->expensereport->lire print ''; } print '
'.$langs->trans("BoxTitleLastModifiedExpenses",min($max,$num)).'
'.$langs->trans("None").'
'; + print '
'; } else dol_print_error($db); } diff --git a/htdocs/langs/en_US/ecm.lang b/htdocs/langs/en_US/ecm.lang index 95318155813..fe5600004ed 100644 --- a/htdocs/langs/en_US/ecm.lang +++ b/htdocs/langs/en_US/ecm.lang @@ -41,7 +41,7 @@ ConfirmDeleteSection=Can you confirm you want to delete the directory %s? ECMDirectoryForFiles=Relative directory for files CannotRemoveDirectoryContainsFiles=Removed not possible because it contains some files ECMFileManager=File manager -ECMSelectASection=Select a directory on left tree... +ECMSelectASection=Select a directory in the tree... DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Resync" button first to synchronize disk and database to get content of this directory. ReSyncListOfDir=Resync list of directories HashOfFileContent=Hash of file content diff --git a/htdocs/product/list.php b/htdocs/product/list.php index fb9b9672015..ebb2c0a421a 100644 --- a/htdocs/product/list.php +++ b/htdocs/product/list.php @@ -269,7 +269,6 @@ else $sql.= ' p.fk_product_type, p.duration, p.tosell, p.tobuy, p.seuil_stock_alerte, p.desiredstock,'; $sql.= ' p.tobatch, p.accountancy_code_sell, p.accountancy_code_buy,'; $sql.= ' p.datec as date_creation, p.tms as date_update, p.pmp,'; - //$sql.= ' pfp.ref_fourn as ref_supplier, '; $sql.= ' MIN(pfp.unitprice) as minsellprice'; if (!empty($conf->variants->enabled) && $search_hidechildproducts && ($search_type === 0)) { $sql .= ', pac.rowid prod_comb_id'; diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index 67abb030b09..a4b1b6eb8a7 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -1018,13 +1018,13 @@ else print '
'; print $langs->trans("ThirdPartyType").':     '; print '
'; - print '