From b072b5a1815295111c7b835073946e6abb793dd9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 26 Feb 2016 10:38:42 +0100 Subject: [PATCH 1/9] Fix remove some warnings Conflicts: htdocs/core/lib/pdf.lib.php --- htdocs/core/class/commonobject.class.php | 6 ++-- htdocs/core/lib/pdf.lib.php | 39 ++++++++++++------------ 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 743b26ecc67..5f41976236c 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -768,9 +768,10 @@ abstract class CommonObject * @param int $statut Status of links to get (-1=all) * @param string $source Source of contact: external or thirdparty (llx_socpeople) or internal (llx_user) * @param int $list 0:Return array contains all properties, 1:Return array contains just id + * @param string $code Filter on this code of contact type ('SHIPPING', 'BILLING', ...) * @return array Array of contacts */ - function liste_contact($statut=-1,$source='external',$list=0) + function liste_contact($statut=-1,$source='external',$list=0,$code='') { global $langs; @@ -788,6 +789,7 @@ abstract class CommonObject $sql.= " WHERE ec.element_id =".$this->id; $sql.= " AND ec.fk_c_type_contact=tc.rowid"; $sql.= " AND tc.element='".$this->element."'"; + if ($code) $sql.= " AND tc.code = '".$this->db->escape($code)."'"; if ($source == 'internal') $sql.= " AND tc.source = 'internal'"; if ($source == 'external' || $source == 'thirdparty') $sql.= " AND tc.source = 'external'"; $sql.= " AND tc.active=1"; @@ -825,7 +827,7 @@ abstract class CommonObject } else { - $this->error=$this->db->error(); + $this->error=$this->db->lasterror(); dol_print_error($this->db); return -1; } diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index a4d5a734472..ad584e21d86 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -1879,29 +1879,30 @@ function pdf_getLinkedObjects($object,$outputlangs) { $outputlangs->load('orders'); $outputlangs->load('sendings'); - foreach($objects as $x => $elementobject) + foreach($objects as $elementobject) { $elementobject->fetchObjectLinked(); - - $order = reset($elementobject->linkedObjects['commande']); - // We concat this record info into fields xxx_value. title is overwrote. - if (! empty($object->linkedObjects['commande']) || $object->element == 'commande') // There is already a link to order or object is the order, so we show only info of shipment + if (isset($elementobject->linkedObjects['commande']) && count($elementobject->linkedObjects['commande']) > 0) { - $linkedobjects[$objecttype]['ref_title'] = $outputlangs->transnoentities("RefSending"); - if (! empty($linkedobjects[$objecttype]['ref_value'])) $linkedobjects[$objecttype]['ref_value'].=' / '; - $linkedobjects[$objecttype]['ref_value'].= $outputlangs->transnoentities($elementobject->ref); - $linkedobjects[$objecttype]['date_title'] = $outputlangs->transnoentities("DateSending"); - $linkedobjects[$objecttype]['date_value'].= dol_print_date($elementobject->date_delivery,'day','',$outputlangs); - } - else // We show both info of order and shipment. - { - $linkedobjects[$objecttype]['ref_title'] = $outputlangs->transnoentities("RefOrder") . ' / ' . $outputlangs->transnoentities("RefSending"); - if (empty($linkedobjects[$objecttype]['ref_value'])) $linkedobjects[$objecttype]['ref_value'] = $outputlangs->convToOutputCharset($order->ref) . ($order->ref_client ? ' ('.$order->ref_client.')' : ''); - $linkedobjects[$objecttype]['ref_value'].= ' / ' . $outputlangs->transnoentities($elementobject->ref); - $linkedobjects[$objecttype]['date_title'] = $outputlangs->transnoentities("OrderDate") . ($elementobject->date_delivery ? ' / ' . $outputlangs->transnoentities("DateSending") : ''); - if (empty($linkedobjects[$objecttype]['date_value'])) $linkedobjects[$objecttype]['date_value'] = dol_print_date($order->date,'day','',$outputlangs); - $linkedobjects[$objecttype]['date_value'].= ($elementobject->date_delivery ? ' / ' . dol_print_date($elementobject->date_delivery,'day','',$outputlangs) : ''); + $order = reset($elementobject->linkedObjects['commande']); // Get first order + + if (! empty($object->linkedObjects['commande'])) // There is already a link to order so we show only info of shipment + { + $linkedobjects[$objecttype]['ref_title'] = $outputlangs->transnoentities("RefSending"); + $linkedobjects[$objecttype]['ref_value'].= $outputlangs->transnoentities($elementobject->ref); + $linkedobjects[$objecttype]['date_title'] = $outputlangs->transnoentities("DateSending"); + $linkedobjects[$objecttype]['date_value'].= dol_print_date($elementobject->date_delivery,'day','',$outputlangs); + } + else // We show both info of order and shipment + { + $linkedobjects[$objecttype]['ref_title'] = $outputlangs->transnoentities("RefOrder") . ' / ' . $outputlangs->transnoentities("RefSending"); + $linkedobjects[$objecttype]['ref_value'] = $outputlangs->convToOutputCharset($order->ref) . ($order->ref_client ? ' ('.$order->ref_client.')' : ''); + $linkedobjects[$objecttype]['ref_value'].= ' / ' . $outputlangs->transnoentities($elementobject->ref); + $linkedobjects[$objecttype]['date_title'] = $outputlangs->transnoentities("OrderDate") . ($elementobject->date_delivery ? ' / ' . $outputlangs->transnoentities("DateSending") : ''); + $linkedobjects[$objecttype]['date_value'] = dol_print_date($order->date,'day','',$outputlangs); + $linkedobjects[$objecttype]['date_value'].= ($elementobject->date_delivery ? ' / ' . dol_print_date($elementobject->date_delivery,'day','',$outputlangs) : ''); + } } } } From 7567336680653dee460e4651bb3cae74b4ed69ea Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 26 Feb 2016 10:51:06 +0100 Subject: [PATCH 2/9] FIX #4683 --- htdocs/compta/facture/list.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php index a680886827a..3855e2525c4 100644 --- a/htdocs/compta/facture/list.php +++ b/htdocs/compta/facture/list.php @@ -448,7 +448,7 @@ $facturestatic=new Facture($db); $sql = 'SELECT'; if ($sall || $search_product_category > 0) $sql = 'SELECT DISTINCT'; -$sql.= ' f.rowid as facid, f.facnumber, f.ref_client, f.type, f.note_private, f.increment, f.fk_mode_reglement, f.total as total_ht, f.tva as total_tva, f.total_ttc,'; +$sql.= ' f.rowid as facid, f.facnumber, f.ref_client, f.type, f.note_private, f.note_public, f.increment, f.fk_mode_reglement, f.total as total_ht, f.tva as total_tva, f.total_ttc,'; $sql.= ' f.datef as df, f.date_lim_reglement as datelimite,'; $sql.= ' f.paye as paye, f.fk_statut,'; $sql.= ' s.nom as name, s.rowid as socid, s.code_client, s.client '; @@ -527,7 +527,7 @@ if ($search_user > 0) } if (! $sall) { - $sql.= ' GROUP BY f.rowid, f.facnumber, ref_client, f.type, f.note_private, f.increment, f.total, f.tva, f.total_ttc,'; + $sql.= ' GROUP BY f.rowid, f.facnumber, ref_client, f.type, f.note_private, f.note_public, f.increment, f.total, f.tva, f.total_ttc,'; $sql.= ' f.datef, f.date_lim_reglement,'; $sql.= ' f.paye, f.fk_statut,'; $sql.= ' s.nom, s.rowid, s.code_client, s.client'; @@ -810,7 +810,7 @@ if ($resql) $facturestatic->type=$objp->type; $facturestatic->statut=$objp->fk_statut; $facturestatic->date_lim_reglement=$db->jdate($objp->datelimite); - $notetoshow=dol_string_nohtmltag(($user->societe_id>0?$objp->note_public:$objp->note),1); + $notetoshow=dol_string_nohtmltag(($user->societe_id>0?$objp->note_public:$objp->note_private),1); $paiement = $facturestatic->getSommePaiement(); print ''; From 2e25c7969b4b3dc1d9f809c1f7ae3562d1c14110 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 26 Feb 2016 12:22:32 +0100 Subject: [PATCH 3/9] Fix when setting a price for a product, selection of product must not show any price --- htdocs/core/class/html.form.class.php | 31 +++++++++++++++------------ 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 73b401025e9..be1bfc0c7fc 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -1834,14 +1834,15 @@ class Form /** * constructProductListOption * - * @param resultset $objp Resultset of fetch - * @param string $opt Option - * @param string $optJson Option - * @param int $price_level Price level - * @param string $selected Preselected value + * @param resultset $objp Resultset of fetch + * @param string $opt Option (var used for returned value in string option format) + * @param string $optJson Option (var used for returned value in json format) + * @param int $price_level Price level + * @param string $selected Preselected value + * @param int $hidepriceinlabel Hide price in label * @return void */ - private function constructProductListOption(&$objp, &$opt, &$optJson, $price_level, $selected) + private function constructProductListOption(&$objp, &$opt, &$optJson, $price_level, $selected, $hidepriceinlabel=0) { global $langs,$conf,$user,$db; @@ -1888,7 +1889,7 @@ class Form $found=0; // Multiprice - if ($price_level >= 1 && $conf->global->PRODUIT_MULTIPRICES) // If we need a particular price level (from 1 to 6) + if (empty($hidepriceinlabel) && $price_level >= 1 && $conf->global->PRODUIT_MULTIPRICES) // If we need a particular price level (from 1 to 6) { $sql = "SELECT price, price_ttc, price_base_type, tva_tx"; $sql.= " FROM ".MAIN_DB_PREFIX."product_price"; @@ -1929,7 +1930,7 @@ class Form } // Price by quantity - if (!empty($objp->quantity) && $objp->quantity >= 1 && ! empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY)) + if (empty($hidepriceinlabel) && !empty($objp->quantity) && $objp->quantity >= 1 && ! empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY)) { $found = 1; $outqty=$objp->quantity; @@ -1954,20 +1955,22 @@ class Form $outpricebasetype=$objp->price_base_type; $outtva_tx=$objp->tva_tx; } - if (!empty($objp->quantity) && $objp->quantity >= 1) + if (empty($hidepriceinlabel) && !empty($objp->quantity) && $objp->quantity >= 1) { $opt.=" (".price($objp->unitprice,1,$langs,0,0,-1,$conf->currency)."/".$langs->trans("Unit").")"; // Do not use strtolower because it breaks utf8 encoding $outval.=" (".price($objp->unitprice,0,$langs,0,0,-1,$conf->currency)."/".$langs->transnoentities("Unit").")"; // Do not use strtolower because it breaks utf8 encoding } - if (!empty($objp->remise_percent) && $objp->remise_percent >= 1) + if (empty($hidepriceinlabel) && !empty($objp->remise_percent) && $objp->remise_percent >= 1) { $opt.=" - ".$langs->trans("Discount")." : ".vatrate($objp->remise_percent).' %'; $outval.=" - ".$langs->transnoentities("Discount")." : ".vatrate($objp->remise_percent).' %'; } - //Price by customer - if (!empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { - if (!empty($objp->idprodcustprice)) { + // Price by customer + if (empty($hidepriceinlabel) && !empty($conf->global->PRODUIT_CUSTOMER_PRICES)) + { + if (!empty($objp->idprodcustprice)) + { $found = 1; if ($objp->custprice_base_type == 'HT') @@ -1989,7 +1992,7 @@ class Form } // If level no defined or multiprice not found, we used the default price - if (! $found) + if (empty($hidepriceinlabel) && ! $found) { if ($objp->price_base_type == 'HT') { From 4250fe155ac46b9b146c9d655e62f1ca2eb82c36 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 26 Feb 2016 15:42:07 +0100 Subject: [PATCH 4/9] Fix showing ref of shipment on orders (lines too long) --- htdocs/core/lib/pdf.lib.php | 50 +++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index ad584e21d86..09c8acb5b38 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -1879,31 +1879,33 @@ function pdf_getLinkedObjects($object,$outputlangs) { $outputlangs->load('orders'); $outputlangs->load('sendings'); - foreach($objects as $elementobject) + foreach($objects as $x => $elementobject) { - $elementobject->fetchObjectLinked(); - - if (isset($elementobject->linkedObjects['commande']) && count($elementobject->linkedObjects['commande']) > 0) - { - $order = reset($elementobject->linkedObjects['commande']); // Get first order - - if (! empty($object->linkedObjects['commande'])) // There is already a link to order so we show only info of shipment - { - $linkedobjects[$objecttype]['ref_title'] = $outputlangs->transnoentities("RefSending"); - $linkedobjects[$objecttype]['ref_value'].= $outputlangs->transnoentities($elementobject->ref); - $linkedobjects[$objecttype]['date_title'] = $outputlangs->transnoentities("DateSending"); - $linkedobjects[$objecttype]['date_value'].= dol_print_date($elementobject->date_delivery,'day','',$outputlangs); - } - else // We show both info of order and shipment - { - $linkedobjects[$objecttype]['ref_title'] = $outputlangs->transnoentities("RefOrder") . ' / ' . $outputlangs->transnoentities("RefSending"); - $linkedobjects[$objecttype]['ref_value'] = $outputlangs->convToOutputCharset($order->ref) . ($order->ref_client ? ' ('.$order->ref_client.')' : ''); - $linkedobjects[$objecttype]['ref_value'].= ' / ' . $outputlangs->transnoentities($elementobject->ref); - $linkedobjects[$objecttype]['date_title'] = $outputlangs->transnoentities("OrderDate") . ($elementobject->date_delivery ? ' / ' . $outputlangs->transnoentities("DateSending") : ''); - $linkedobjects[$objecttype]['date_value'] = dol_print_date($order->date,'day','',$outputlangs); - $linkedobjects[$objecttype]['date_value'].= ($elementobject->date_delivery ? ' / ' . dol_print_date($elementobject->date_delivery,'day','',$outputlangs) : ''); - } - } + $order=null; + // We concat this record info into fields xxx_value. title is overwrote. + if (empty($object->linkedObjects['commande']) && $object->element != 'commande') // There is not already a link to order and object is not the order, so we show also info with order + { + $elementobject->fetchObjectLinked(); + if (! empty($elementobject->linkedObjects['commande'])) $order = reset($elementobject->linkedObjects['commande']); + } + if (! is_object($order)) + { + $linkedobjects[$objecttype]['ref_title'] = $outputlangs->transnoentities("RefSending"); + if (! empty($linkedobjects[$objecttype]['ref_value'])) $linkedobjects[$objecttype]['ref_value'].=' / '; + $linkedobjects[$objecttype]['ref_value'].= $outputlangs->transnoentities($elementobject->ref); + //$linkedobjects[$objecttype]['date_title'] = $outputlangs->transnoentities("DateSending"); + //if (! empty($linkedobjects[$objecttype]['date_value'])) $linkedobjects[$objecttype]['date_value'].=' / '; + //$linkedobjects[$objecttype]['date_value'].= dol_print_date($elementobject->date_delivery,'day','',$outputlangs); + } + else + { + $linkedobjects[$objecttype]['ref_title'] = $outputlangs->transnoentities("RefOrder") . ' / ' . $outputlangs->transnoentities("RefSending"); + if (empty($linkedobjects[$objecttype]['ref_value'])) $linkedobjects[$objecttype]['ref_value'] = $outputlangs->convToOutputCharset($order->ref) . ($order->ref_client ? ' ('.$order->ref_client.')' : ''); + $linkedobjects[$objecttype]['ref_value'].= ' / ' . $outputlangs->transnoentities($elementobject->ref); + //$linkedobjects[$objecttype]['date_title'] = $outputlangs->transnoentities("OrderDate") . ($elementobject->date_delivery ? ' / ' . $outputlangs->transnoentities("DateSending") : ''); + //if (empty($linkedobjects[$objecttype]['date_value'])) $linkedobjects[$objecttype]['date_value'] = dol_print_date($order->date,'day','',$outputlangs); + //$linkedobjects[$objecttype]['date_value'].= ($elementobject->date_delivery ? ' / ' . dol_print_date($elementobject->date_delivery,'day','',$outputlangs) : ''); + } } } } From 9a0af064bf6533e9c476a606624c365cc85b32e1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 26 Feb 2016 19:05:02 +0100 Subject: [PATCH 5/9] Prepare rc2 --- build/makepack-dolibarr.pl | 14 +++++++------- htdocs/filefunc.inc.php | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/build/makepack-dolibarr.pl b/build/makepack-dolibarr.pl index c8b3c7664e2..0983ec5d0ef 100755 --- a/build/makepack-dolibarr.pl +++ b/build/makepack-dolibarr.pl @@ -148,9 +148,9 @@ $FILENAMEEXEDOLIWAMP = "DoliWamp-$MAJOR.$MINOR.$BUILD"; $ARCH='noarch'; $newbuild = $BUILD; $newbuild =~ s/(dev|alpha)/0.1.a/gi; # dev (fedora) -$newbuild =~ s/beta/0.2.beta1/gi; # beta (fedora) -$newbuild =~ s/rc./0.3.rc1/gi; # rc (fedora) -if ($newbuild !~ /-/) { $newbuild.='-0.3'; } # finale (fedora) +$newbuild =~ s/beta(.?)/0.2.beta/gi; # beta (fedora) (we want beta1, beta2, betax to be same package name) +$newbuild =~ s/rc(.?)/0.3.rc/gi; # rc (fedora) (we want rc1, rc2, rcx to be same package name) +if ($newbuild !~ /-/) { $newbuild.='-0.4'; } # finale (fedora) #$newbuild =~ s/(dev|alpha)/0/gi; # dev #$newbuild =~ s/beta/1/gi; # beta #$newbuild =~ s/rc./2/gi; # rc @@ -162,10 +162,10 @@ $FILENAMERPM=$FILENAMETGZ2."-".$RPMSUBVERSION.".".$ARCH.".rpm"; # For Deb $newbuild = $BUILD; $newbuild =~ s/(dev|alpha)/1/gi; # dev -$newbuild =~ s/beta/2/gi; # beta -$newbuild =~ s/rc./3/gi; # rc -if ($newbuild !~ /-/) { $newbuild.='-3'; } # finale is same than rc. -# now newbuild is 0-1 or 0-3 for example. Note that for native package (see debian/source/format), we should not use a dash part but to get a better version management +$newbuild =~ s/beta(.?)/2/gi; # beta (we want beta1, beta2, betax to be same package name) +$newbuild =~ s/rc(.?)/3/gi; # rc (we want rc1, rc2, rcx to be same package name) +if ($newbuild !~ /-/) { $newbuild.='-4'; } # finale is same than rc. +# now newbuild is 0-1 or 0-4 for example. Note that for native package (see debian/source/format), we should not use a dash part but to get a better version management $build = $newbuild; $build =~ s/-.*$//g; # now build is 0 for example diff --git a/htdocs/filefunc.inc.php b/htdocs/filefunc.inc.php index 84cb17669da..498572fffe1 100644 --- a/htdocs/filefunc.inc.php +++ b/htdocs/filefunc.inc.php @@ -31,7 +31,7 @@ */ if (! defined('DOL_APPLICATION_TITLE')) define('DOL_APPLICATION_TITLE','Dolibarr'); -if (! defined('DOL_VERSION')) define('DOL_VERSION','3.9.0-rc'); +if (! defined('DOL_VERSION')) define('DOL_VERSION','3.9.0-rc2'); if (! defined('EURO')) define('EURO',chr(128)); From 4cf59d3f9b66ca03076fce06936e49285bf07ff2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 26 Feb 2016 19:13:25 +0100 Subject: [PATCH 6/9] Fix if option WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER is on, we must not show unpaid orders. --- htdocs/compta/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/index.php b/htdocs/compta/index.php index 70e2564829e..c39b585d7b1 100644 --- a/htdocs/compta/index.php +++ b/htdocs/compta/index.php @@ -628,7 +628,7 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) /* * Customers orders to be billed */ -if (! empty($conf->facture->enabled) && ! empty($conf->commande->enabled) && $user->rights->commande->lire) +if (! empty($conf->facture->enabled) && ! empty($conf->commande->enabled) && $user->rights->commande->lire && empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) { $commandestatic=new Commande($db); $langs->load("orders"); From 7691e8c01891396f4419c5af1dc3cb4e75eeb61b Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Fri, 26 Feb 2016 22:17:22 +0100 Subject: [PATCH 7/9] FIX : Improve and add missing translations As is not the branch develop, instead of transifex, we use GIT --- htdocs/langs/en_US/projects.lang | 1 + htdocs/langs/es_ES/boxes.lang | 6 +++--- htdocs/langs/es_ES/companies.lang | 4 ++-- htdocs/langs/es_ES/projects.lang | 1 + htdocs/langs/fr_FR/projects.lang | 1 + 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/htdocs/langs/en_US/projects.lang b/htdocs/langs/en_US/projects.lang index 6fa62f96905..979fd4670bb 100644 --- a/htdocs/langs/en_US/projects.lang +++ b/htdocs/langs/en_US/projects.lang @@ -192,3 +192,4 @@ OppStatusNEGO=Negociation OppStatusPENDING=Pending OppStatusWIN=Won OppStatusLOST=Lost +Budget=Budget \ No newline at end of file diff --git a/htdocs/langs/es_ES/boxes.lang b/htdocs/langs/es_ES/boxes.lang index bedacd37bb5..28241fdb79a 100644 --- a/htdocs/langs/es_ES/boxes.lang +++ b/htdocs/langs/es_ES/boxes.lang @@ -45,13 +45,13 @@ BoxTitleLastModifiedProspects=Los %s últimos clientes potenciales modificados BoxTitleLastProductsInContract=Los %s últimos productos/servicios contratados BoxTitleLastModifiedMembers=Últimos %s miembros BoxTitleLastFicheInter=Las %s últimas intervenciones modificadas -BoxTitleOldestUnpaidCustomerBills=%s facturas a clientes más antiguras pendientes de cobro -BoxTitleOldestUnpaidSupplierBills=%s facturas de proveedores más antiguas pendientes de pago +BoxTitleOldestUnpaidCustomerBills=Las %s facturas a clientes más antiguras pendientes de cobro +BoxTitleOldestUnpaidSupplierBills=Las %s facturas de proveedores más antiguas pendientes de pago BoxTitleCurrentAccounts=Balance de cuentas abiertas BoxTitleSalesTurnover=Volumen de ventas realizado BoxTitleTotalUnpaidCustomerBills=Facturas a clientes pendientes de cobro BoxTitleTotalUnpaidSuppliersBills=Facturas de proveedores pendientes de pago -BoxTitleLastModifiedContacts=Los %s últimos contactos/direcciones modificadas +BoxTitleLastModifiedContacts=Los %s últimos contactos/direcciones modificados BoxMyLastBookmarks=Mis %s últimos marcadores BoxOldestExpiredServices=Servicios antiguos expirados BoxLastExpiredServices=Los %s contratos más antiguos con servicios activos expirados diff --git a/htdocs/langs/es_ES/companies.lang b/htdocs/langs/es_ES/companies.lang index 22f46c2c4dc..7e2fea3d2af 100644 --- a/htdocs/langs/es_ES/companies.lang +++ b/htdocs/langs/es_ES/companies.lang @@ -266,8 +266,8 @@ CustomerRelativeDiscountShort=Descuento relativo CustomerAbsoluteDiscountShort=Descuento fijo CompanyHasRelativeDiscount=Este cliente tiene un descuento por defecto de %s%% CompanyHasNoRelativeDiscount=Este cliente no tiene descuentos relativos por defecto -CompanyHasAbsoluteDiscount=Este cliente tiene %s %s descuentos disponibles (descuentos, anticipos...) -CompanyHasCreditNote=Este cliente tiene %s %s anticipos disponibles +CompanyHasAbsoluteDiscount=Este cliente tiene %s %s en descuentos o anticipos disponibles +CompanyHasCreditNote=Este cliente tiene %s %s en anticipos disponibles CompanyHasNoAbsoluteDiscount=Este cliente no tiene más descuentos fijos disponibles CustomerAbsoluteDiscountAllUsers=Descuentos fijos en curso (acordado por todos los usuarios) CustomerAbsoluteDiscountMy=Descuentos fijos en curso (acordados personalmente) diff --git a/htdocs/langs/es_ES/projects.lang b/htdocs/langs/es_ES/projects.lang index c1fdad6cb99..0c68fbd1cf5 100644 --- a/htdocs/langs/es_ES/projects.lang +++ b/htdocs/langs/es_ES/projects.lang @@ -198,3 +198,4 @@ OppStatusNEGO=Negociación OppStatusPENDING=Pendiente OppStatusWIN=Ganado OppStatusLOST=Perdido +Budget=Presupuesto diff --git a/htdocs/langs/fr_FR/projects.lang b/htdocs/langs/fr_FR/projects.lang index d9e0c374dda..13bc1fc4765 100644 --- a/htdocs/langs/fr_FR/projects.lang +++ b/htdocs/langs/fr_FR/projects.lang @@ -198,3 +198,4 @@ OppStatusNEGO=Négociation OppStatusPENDING=En attente OppStatusWIN=Gagné OppStatusLOST=Perdu +Budget=Budget \ No newline at end of file From b34459c94947ee7ba85f313c9308db37dd152a76 Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Fri, 26 Feb 2016 22:31:36 +0100 Subject: [PATCH 8/9] FIX : Improve and add missing translations As is not the branch develop, instead of transifex, we use GIT --- htdocs/langs/es_ES/admin.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang index 64a71bfaf52..3223320d657 100644 --- a/htdocs/langs/es_ES/admin.lang +++ b/htdocs/langs/es_ES/admin.lang @@ -1091,7 +1091,7 @@ SendmailOptionMayHurtBuggedMTA=La funcionalidad de enviar correo electrónico a TranslationSetup=Configuración traducción TranslationDesc=La elección del idioma mostrado en pantalla se modifica:
* A nivel global desde el menú Inicio - Configuración - Entorno
* De manera específica al usuario desde la pestaña Interfaz usuario de su ficha de usuario (hacer clic en su login en la parte superior izquierda de la pantalla). TranslationOverwriteDesc=También puede sobreescribir algún valor completando/editando la tabla siguiente. Debe utilizar "%s" para el código de idioma, "%s" para la clave que encuentra en el archivo langs/xx_XX/somefile.lang y "%s" para el nuevo valor que desea utilizar como nueva traducción. -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TotalNumberOfActivatedModules=Número total de módulos activados: %s / %s YouMustEnableOneModule=Debe activar al menos un módulo. ClassNotFoundIntoPathWarning=No se ha encontrado la clase %s en su path PHP YesInSummer=Sí en verano From c2c6d77caa67c46b2144c04fec739c25eaedb7c8 Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Fri, 26 Feb 2016 22:43:25 +0100 Subject: [PATCH 9/9] FIX : Improve and add missing translations As is not the branch develop, instead of transifex, we use GIT --- htdocs/langs/es_ES/cron.lang | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/langs/es_ES/cron.lang b/htdocs/langs/es_ES/cron.lang index eef866fdbea..1997727d542 100644 --- a/htdocs/langs/es_ES/cron.lang +++ b/htdocs/langs/es_ES/cron.lang @@ -40,8 +40,8 @@ CronNone=Ninguna CronDtStart=No antes de CronDtEnd=No después de CronDtNextLaunch=Sig. ejec. -CronDtLastLaunch=Start date of last execution -CronDtLastResult=End date of last execution +CronDtLastLaunch=Fecha inicio última ejec. +CronDtLastResult=Fecha finalización última ejec. CronFrequency=Frecuencia CronClass=Clase CronMethod=Metodo