From 024ba2ee422cc31764c789956dae681c0d97ccd4 Mon Sep 17 00:00:00 2001 From: BENKE Charles Date: Tue, 6 Aug 2013 21:31:32 +0200 Subject: [PATCH 01/31] Update index.php Add quarter report of sell service/product --- htdocs/product/index.php | 111 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) diff --git a/htdocs/product/index.php b/htdocs/product/index.php index 247ddf7d5ff..b1d2209d94c 100644 --- a/htdocs/product/index.php +++ b/htdocs/product/index.php @@ -258,10 +258,121 @@ else dol_print_error($db); } +// ici le récap des ventes par trimestre de service et de produit +if (! empty($conf->product->enabled)) + activitytrim(0); + +if (! empty($conf->service->enabled)) + activitytrim(1); + //print ''; print ''; llxFooter(); $db->close(); + +function activitytrim($product_type) +{ + global $conf,$langs,$db; + + // on affiche les 3 dernières années + $begindate=date('Y',dol_time_plus_duree(time(), -3, "y")); + + // ventilation par trimestre + $sql = "SELECT DATE_FORMAT(p.datep,'%Y') as annee, DATE_FORMAT(p.datep,'%m') as mois, sum(fd.total_ht) as Mnttot"; + $sql.= " FROM ".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f, ".MAIN_DB_PREFIX."facturedet as fd"; + $sql.= " , ".MAIN_DB_PREFIX."paiement as p,".MAIN_DB_PREFIX."paiement_facture as pf"; + $sql.= " WHERE f.fk_soc = s.rowid"; + $sql.= " AND f.rowid = fd.fk_facture"; + $sql.= " AND pf.fk_facture = f.rowid"; + $sql.= " AND pf.fk_paiement= p.rowid"; + $sql.= " AND fd.product_type=".$product_type; + $sql.= " AND s.entity = ".$conf->entity; + $sql.= " AND DATE_FORMAT(p.datep,'%Y') > ".date('Y',$begindate)." and paye=1"; + $sql.= " GROUP BY annee, mois "; + $sql.= " ORDER BY annee, mois "; + + $result = $db->query($sql); + if ($result) + { + $tmpyear=$beginyear; + $trim1=0; + $trim2=0; + $trim3=0; + $trim4=0; + $lgn = 0; + $num = $db->num_rows($result); + + if ($num > 0 ) + { + print '
'; + print ''; + + if ($product_type==1) + print ''; + else + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + } + $i = 0; + + while ($i < $num) + { + $objp = $db->fetch_object($result); + if ($tmpyear != $objp->annee) + { + if ($trim1+$trim2+$trim3+$trim4 > 0) + { + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + $lgn++; + } + // on passe à l'année suivante + $tmpyear = $objp->annee; + $trim1=0; + $trim2=0; + $trim3=0; + $trim4=0; + } + + if ($objp->mois == "01" || $objp->mois == "02" || $objp->mois == "03") + $trim1 += $objp->Mnttot; + + if ($objp->mois == "04" || $objp->mois == "05" || $objp->mois == "06") + $trim2 += $objp->Mnttot; + + if ($objp->mois == "07" || $objp->mois == "08" || $objp->mois == "09") + $trim3 += $objp->Mnttot; + + if ($objp->mois == "10" || $objp->mois == "11" || $objp->mois == "12") + $trim4 += $objp->Mnttot; + + $i++; + } + if ($trim1+$trim2+$trim3+$trim4 > 0) + { + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + } + if ($num > 0 ) + print '
'.$langs->trans("ProductSellByQuarterHT").'
'.$langs->trans("SerciceSellByQuarterHT").''.$langs->trans("Quarter1").''.$langs->trans("Quarter2").''.$langs->trans("Quarter3").''.$langs->trans("Quarter4").''.$langs->trans("Total").'
'.$tmpyear.''.price($trim1).''.price($trim2).''.price($trim3).''.price($trim4).''.price($trim1+$trim2+$trim3+$trim4).'
'.$tmpyear.''.price($trim1).''.price($trim2).''.price($trim3).''.price($trim4).''.price($trim1+$trim2+$trim3+$trim4).'
'; + } +} + ?> From 54d2f1161d1d84a95b03c15cf0c731bf87902d2f Mon Sep 17 00:00:00 2001 From: BENKE Charles Date: Wed, 7 Aug 2013 07:15:09 +0200 Subject: [PATCH 02/31] Update index.php change datep --- htdocs/product/index.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/product/index.php b/htdocs/product/index.php index b1d2209d94c..46c220e9503 100644 --- a/htdocs/product/index.php +++ b/htdocs/product/index.php @@ -277,7 +277,7 @@ function activitytrim($product_type) global $conf,$langs,$db; // on affiche les 3 dernières années - $begindate=date('Y',dol_time_plus_duree(time(), -3, "y")); + $yearofbegindate=date('Y',dol_time_plus_duree(time(), -3, "y")); // ventilation par trimestre $sql = "SELECT DATE_FORMAT(p.datep,'%Y') as annee, DATE_FORMAT(p.datep,'%m') as mois, sum(fd.total_ht) as Mnttot"; @@ -289,7 +289,7 @@ function activitytrim($product_type) $sql.= " AND pf.fk_paiement= p.rowid"; $sql.= " AND fd.product_type=".$product_type; $sql.= " AND s.entity = ".$conf->entity; - $sql.= " AND DATE_FORMAT(p.datep,'%Y') > ".date('Y',$begindate)." and paye=1"; + $sql.= " AND p.datep >= '".$db->idate(dol_get_first_day($yearofbegindate),1)."'"; $sql.= " GROUP BY annee, mois "; $sql.= " ORDER BY annee, mois "; From 12479a946a7a2f151a212b16c7a8d101af2be484 Mon Sep 17 00:00:00 2001 From: BENKE Charles Date: Wed, 7 Aug 2013 07:28:37 +0200 Subject: [PATCH 03/31] Update index.php Error on column titles --- htdocs/product/index.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/product/index.php b/htdocs/product/index.php index 46c220e9503..f9eb16e23de 100644 --- a/htdocs/product/index.php +++ b/htdocs/product/index.php @@ -309,10 +309,10 @@ function activitytrim($product_type) print '
'; print ''; - if ($product_type==1) + if ($product_type==0) print ''; else - print ''; + print ''; print ''; print ''; print ''; From 2548274c10325524e557e2636b09825e4e2fe237 Mon Sep 17 00:00:00 2001 From: BENKE Charles Date: Wed, 7 Aug 2013 07:32:27 +0200 Subject: [PATCH 04/31] Update products.lang add header translation --- htdocs/langs/fr_FR/products.lang | 2 ++ 1 file changed, 2 insertions(+) diff --git a/htdocs/langs/fr_FR/products.lang b/htdocs/langs/fr_FR/products.lang index bb444584721..916d4d9e6ff 100644 --- a/htdocs/langs/fr_FR/products.lang +++ b/htdocs/langs/fr_FR/products.lang @@ -199,3 +199,5 @@ CostPmpHT=Cout à l'achat HT ProductUsedForBuild=Consommé automatiquement par la fabrication ProductBuilded=Fabrication terminée ProductsMultiPrice=Produits multi-prix +ProductSellByQuarterHT=Chiffre d'affaire trimestrielle HT des produits +ServiceSellByQuarterHT=Chiffre d'affaire trimestrielle HT des services From 3156f8cae0fe0f4939849310fb4f52e3b2cc61e2 Mon Sep 17 00:00:00 2001 From: lalaina rasamoelina Date: Tue, 27 Aug 2013 10:17:28 +0200 Subject: [PATCH 05/31] Fix: [ bug #1043 ] Bad interventions ref numbering --- .../boxes/box_graph_product_distribution.php | 24 +++++++++---------- htdocs/core/class/dolgraph.class.php | 18 +++++++------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/htdocs/core/boxes/box_graph_product_distribution.php b/htdocs/core/boxes/box_graph_product_distribution.php index 2c63690e547..0cff88d41b4 100644 --- a/htdocs/core/boxes/box_graph_product_distribution.php +++ b/htdocs/core/boxes/box_graph_product_distribution.php @@ -95,10 +95,10 @@ class box_graph_product_distribution extends ModeleBoxes $nowarray=dol_getdate(dol_now(),true); $year=(GETPOST($param_year,'',4)?GETPOST($param_year,'int',4):$nowarray['year']); - $nbofgraph=0; - if ($showinvoicenb) $nbofgraph++; - if ($showpropalnb) $nbofgraph++; - if ($showordernb) $nbofgraph++; + $nbofgraph=0; + if ($showinvoicenb) $nbofgraph++; + if ($showpropalnb) $nbofgraph++; + if ($showordernb) $nbofgraph++; $paramtitle=$langs->trans("Products").'/'.$langs->trans("Services"); if (empty($conf->produit->enabled)) $paramtitle=$langs->trans("Services"); @@ -322,18 +322,18 @@ class box_graph_product_distribution extends ModeleBoxes $stringtoshow.='
'; if ($showinvoicenb) $stringtoshow.=$px1->show(); else if ($showpropalnb) $stringtoshow.=$px2->show(); - $stringtoshow.='
'; + $stringtoshow.='
'; if ($showordernb) $stringtoshow.=$px3->show(); else if ($showpropalnb) $stringtoshow.=$px2->show(); - $stringtoshow.='
'; + $stringtoshow.=''; } - if ($nbofgraph == 3) + if ($nbofgraph == 3) { - $stringtoshow.='
'; - $stringtoshow.=$px1->show(); - $stringtoshow.='
'; - $stringtoshow.=$px2->show(); - $stringtoshow.='
'; + $stringtoshow.='
'; + $stringtoshow.=$px1->show(); + $stringtoshow.='
'; + $stringtoshow.=$px2->show(); + $stringtoshow.='
'; $stringtoshow.='
'; $stringtoshow.=$px3->show(); $stringtoshow.='
'; diff --git a/htdocs/core/class/dolgraph.class.php b/htdocs/core/class/dolgraph.class.php index ac603837240..612c73a01bb 100644 --- a/htdocs/core/class/dolgraph.class.php +++ b/htdocs/core/class/dolgraph.class.php @@ -244,15 +244,15 @@ class DolGraph $this->data = $data; } - /** - * Set data - * - * @param array $datacolor Data color array(array(R,G,B),array(R,G,B)...) - * @return void - */ - function SetDataColor($datacolor) - { - $this->datacolor = $datacolor; + /** + * Set data + * + * @param array $datacolor Data color array(array(R,G,B),array(R,G,B)...) + * @return void + */ + function SetDataColor($datacolor) + { + $this->datacolor = $datacolor; } /** From fcd6985196bf7ca15b696af0b04e90c383076036 Mon Sep 17 00:00:00 2001 From: lalaina rasamoelina Date: Wed, 7 Aug 2013 10:17:18 +0200 Subject: [PATCH 06/31] T966-develop : Put the poste of the contact in the list In the list of contact when we send a mail,i added the post of person in () after the name htdocs/commande/fiche.php?id=481&action=presend&mode=init --- htdocs/societe/class/societe.class.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index 9127adc3a8f..c424f2bc2fa 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -1581,8 +1581,7 @@ class Societe extends CommonObject $contact_property = array(); - - $sql = "SELECT rowid, email, statut, phone_mobile, lastname, firstname"; + $sql = "SELECT rowid, email, phone_mobile, lastname, poste, firstname"; $sql.= " FROM ".MAIN_DB_PREFIX."socpeople"; $sql.= " WHERE fk_soc = '".$this->id."'"; @@ -1604,6 +1603,12 @@ class Societe extends CommonObject { $contact_property[$obj->rowid] = trim(dolGetFirstLastname($obj->firstname,$obj->lastname))." <".$property.">"; + if(!empty($obj->poste)){ + $contact_property[$obj->rowid] = trim(dolGetFirstLastname($obj->firstname,$obj->lastname))."(".$obj->poste.")"." <".$property.">"; + } + else + { + $contact_property[$obj->rowid] = trim(dolGetFirstLastname($obj->firstname,$obj->lastname))." <".$property.">"; } $i++; } From 2a8aa50163d0ac171d5d536681ed44ba2dcd1049 Mon Sep 17 00:00:00 2001 From: simnandez Date: Thu, 29 Aug 2013 12:12:02 +0200 Subject: [PATCH 07/31] Fix: Intervention box links to contracts id Conflicts: htdocs/core/boxes/box_ficheinter.php --- ChangeLog | 1 + htdocs/core/boxes/box_ficheinter.php | 10 ++++++---- htdocs/langs/ca_ES/boxes.lang | 1 + htdocs/langs/en_US/boxes.lang | 3 ++- htdocs/langs/es_ES/boxes.lang | 1 + htdocs/langs/fr_FR/boxes.lang | 3 ++- 6 files changed, 13 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index c30c9c54360..c1b6443fa18 100644 --- a/ChangeLog +++ b/ChangeLog @@ -118,6 +118,7 @@ Fix: If only service module is activated, it's impossible to delete service Fix: [ bug #1043 ] Bad interventions ref numbering Fix: Mailing module : if an email is already in destinaires list all other email from selector was not inserted Fix: Localtaxes balance not showing +Fix: Intervention box links to contracts id ***** ChangeLog for 3.4 compared to 3.3.* ***** For users: diff --git a/htdocs/core/boxes/box_ficheinter.php b/htdocs/core/boxes/box_ficheinter.php index 4d199c3d642..245ea4cbc13 100644 --- a/htdocs/core/boxes/box_ficheinter.php +++ b/htdocs/core/boxes/box_ficheinter.php @@ -1,5 +1,6 @@ + * Copyright (C) 2013 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 @@ -95,11 +96,11 @@ class box_ficheinter extends ModeleBoxes $this->info_box_contents[$i][0] = array('td' => 'align="left" width="16"', 'logo' => $this->boximg, - 'url' => DOL_URL_ROOT."/ficheinter/fiche.php?id=".$objp->rowid); + 'url' => DOL_URL_ROOT."/fichinter/fiche.php?id=".$objp->rowid); $this->info_box_contents[$i][1] = array('td' => 'align="left"', - 'text' => ($objp->ref?$objp->ref:$objp->rowid), // Some contracts have no ref - 'url' => DOL_URL_ROOT."/contrat/fiche.php?id=".$objp->rowid); + 'text' => ($objp->ref?$objp->ref:$objp->rowid), // Some interventions have no ref + 'url' => DOL_URL_ROOT."/fichinter/fiche.php?id=".$objp->rowid); $this->info_box_contents[$i][2] = array('td' => 'align="left" width="16"', 'logo' => 'company', @@ -120,9 +121,10 @@ class box_ficheinter extends ModeleBoxes $i++; } - if ($num==0) $this->info_box_contents[$i][0] = array('td' => 'align="center"','text'=>$langs->trans("NoRecordedContracts")); + if ($num==0) $this->info_box_contents[$i][0] = array('td' => 'align="center"','text'=>$langs->trans("NoRecordedInterventions")); $db->free($resql); + } else { diff --git a/htdocs/langs/ca_ES/boxes.lang b/htdocs/langs/ca_ES/boxes.lang index a37876da522..0b6f186c798 100644 --- a/htdocs/langs/ca_ES/boxes.lang +++ b/htdocs/langs/ca_ES/boxes.lang @@ -75,6 +75,7 @@ NoRecordedProducts=Sense productes/serveis registrats NoRecordedProspects=Sense clients potencials registrats NoContractedProducts=Sense productes/serveis contractats NoRecordedContracts=Sense contractes registrats +NoRecordedInterventions=Sense intervencions registrades BoxLatestSupplierOrders=Últimes comandes a proveïdors BoxTitleLatestSupplierOrders=Les %s últimes comandes a proveïdors NoSupplierOrder=Sense comandes a proveïdors diff --git a/htdocs/langs/en_US/boxes.lang b/htdocs/langs/en_US/boxes.lang index 65fd3dec7cd..9e924c0de72 100644 --- a/htdocs/langs/en_US/boxes.lang +++ b/htdocs/langs/en_US/boxes.lang @@ -75,6 +75,7 @@ NoRecordedProducts=No recorded products/services NoRecordedProspects=No recorded prospects NoContractedProducts=No products/services contracted NoRecordedContracts=No recorded contracts +NoRecordedInterventions=No recorded interventions BoxLatestSupplierOrders=Latest supplier orders BoxTitleLatestSupplierOrders=%s latest supplier orders NoSupplierOrder=No recorded supplier order @@ -88,4 +89,4 @@ BoxProductDistribution=Products/Services distribution BoxProductDistributionFor=Distribution of %s for %s ForCustomersInvoices=Customers invoices ForCustomersOrders=Customers orders -ForProposals=Proposals \ No newline at end of file +ForProposals=Proposals diff --git a/htdocs/langs/es_ES/boxes.lang b/htdocs/langs/es_ES/boxes.lang index 6494fd234df..7734edea817 100644 --- a/htdocs/langs/es_ES/boxes.lang +++ b/htdocs/langs/es_ES/boxes.lang @@ -75,6 +75,7 @@ NoRecordedProducts=Sin productos/servicios registrados NoRecordedProspects=Sin clientes potenciales registrados NoContractedProducts=Sin productos/servicios contratados NoRecordedContracts=Sin contratos registrados +NoRecordedInterventions=Sin intervenciones registradas BoxLatestSupplierOrders=Últimos pedidos a proveedores BoxTitleLatestSupplierOrders=Los %s últimos pedidos a proveedores NoSupplierOrder=Sin pedidos a proveedores diff --git a/htdocs/langs/fr_FR/boxes.lang b/htdocs/langs/fr_FR/boxes.lang index 48f8459c1bc..ae394cbe719 100644 --- a/htdocs/langs/fr_FR/boxes.lang +++ b/htdocs/langs/fr_FR/boxes.lang @@ -75,6 +75,7 @@ NoRecordedProducts=Pas de produit/service enregistré NoRecordedProspects=Pas de prospect enregistré NoContractedProducts=Pas de produit/service contracté NoRecordedContracts=Pas de contrat enregistré +NoRecordedInterventions=Pas fiche d'intervention enregistrée BoxLatestSupplierOrders=Dernières commandes fournisseur BoxTitleLatestSupplierOrders=Les %s dernières commandes fournisseur enregistrées NoSupplierOrder=Pas de commande fournisseur enregistrée @@ -88,4 +89,4 @@ BoxProductDistribution=Répartition des produis/services BoxProductDistributionFor=Répartition des %s pour les %s ForCustomersInvoices=Factures clients ForCustomersOrders=Commandes clients -ForProposals=Propositions \ No newline at end of file +ForProposals=Propositions From a8096c7359d791c7556f0215cd5766450425d7e1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 31 Aug 2013 12:43:41 +0200 Subject: [PATCH 08/31] New: Export/import profile include state. --- htdocs/core/modules/modAdherent.class.php | 10 ++++++---- htdocs/core/modules/modSociete.class.php | 7 ++++--- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/htdocs/core/modules/modAdherent.class.php b/htdocs/core/modules/modAdherent.class.php index 8cd63fb37c7..6dc8f90a803 100644 --- a/htdocs/core/modules/modAdherent.class.php +++ b/htdocs/core/modules/modAdherent.class.php @@ -175,9 +175,9 @@ class modAdherent extends DolibarrModules $this->export_code[$r]=$this->rights_class.'_'.$r; $this->export_label[$r]='MembersAndSubscriptions'; $this->export_permission[$r]=array(array("adherent","export")); - $this->export_fields_array[$r]=array('a.rowid'=>'Id','a.civilite'=>"UserTitle",'a.lastname'=>"Lastname",'a.firstname'=>"Firstname",'a.login'=>"Login",'a.morphy'=>'Nature','a.societe'=>'Company','a.address'=>"Address",'a.zip'=>"Zip",'a.town'=>"Town",'a.country'=>"Country",'a.phone'=>"PhonePro",'a.phone_perso'=>"PhonePerso",'a.phone_mobile'=>"PhoneMobile",'a.email'=>"Email",'a.birth'=>"Birthday",'a.statut'=>"Status",'a.photo'=>"Photo",'a.note'=>"Note",'a.datec'=>'DateCreation','a.datevalid'=>'DateValidation','a.tms'=>'DateLastModification','a.datefin'=>'DateEndSubscription','ta.rowid'=>'MemberTypeId','ta.libelle'=>'MemberTypeLabel','c.rowid'=>'SubscriptionId','c.dateadh'=>'DateSubscription','c.cotisation'=>'Amount'); - $this->export_TypeFields_array[$r]=array('a.civilite'=>"Text",'a.lastname'=>"Text",'a.firstname'=>"Text",'a.login'=>"Text",'a.morphy'=>'Text','a.societe'=>'Text','a.address'=>"Text",'a.zip'=>"Text",'a.town'=>"Text",'a.country'=>"Text",'a.phone'=>"Text",'a.phone_perso'=>"Text",'a.phone_mobile'=>"Text",'a.email'=>"Text",'a.birth'=>"Date",'a.statut'=>"Status",'a.note'=>"Text",'a.datec'=>'Date','a.datevalid'=>'Date','a.tms'=>'Date','a.datefin'=>'Date','ta.rowid'=>'List:fk_adherent_type:libelle','ta.libelle'=>'Text','c.dateadh'=>'Date','c.cotisation'=>'Number'); - $this->export_entities_array[$r]=array('a.rowid'=>'member','a.civilite'=>"member",'a.lastname'=>"member",'a.firstname'=>"member",'a.login'=>"member",'a.morphy'=>'member','a.societe'=>'member','a.address'=>"member",'a.zip'=>"member",'a.town'=>"member",'a.country'=>"member",'a.phone'=>"member",'a.phone_perso'=>"member",'a.phone_mobile'=>"member",'a.email'=>"member",'a.birth'=>"member",'a.statut'=>"member",'a.photo'=>"member",'a.note'=>"member",'a.datec'=>'member','a.datevalid'=>'member','a.tms'=>'member','a.datefin'=>'member','ta.rowid'=>'member_type','ta.libelle'=>'member_type','c.rowid'=>'subscription','c.dateadh'=>'subscription','c.cotisation'=>'subscription'); + $this->export_fields_array[$r]=array('a.rowid'=>'Id','a.civilite'=>"UserTitle",'a.lastname'=>"Lastname",'a.firstname'=>"Firstname",'a.login'=>"Login",'a.morphy'=>'Nature','a.societe'=>'Company','a.address'=>"Address",'a.zip'=>"Zip",'a.town'=>"Town",'d.nom'=>"State",'p.code'=>"CountryCode",'p.libelle'=>"Country",'a.phone'=>"PhonePro",'a.phone_perso'=>"PhonePerso",'a.phone_mobile'=>"PhoneMobile",'a.email'=>"Email",'a.birth'=>"Birthday",'a.statut'=>"Status",'a.photo'=>"Photo",'a.note'=>"Note",'a.datec'=>'DateCreation','a.datevalid'=>'DateValidation','a.tms'=>'DateLastModification','a.datefin'=>'DateEndSubscription','ta.rowid'=>'MemberTypeId','ta.libelle'=>'MemberTypeLabel','c.rowid'=>'SubscriptionId','c.dateadh'=>'DateSubscription','c.cotisation'=>'Amount'); + $this->export_TypeFields_array[$r]=array('a.civilite'=>"Text",'a.lastname'=>"Text",'a.firstname'=>"Text",'a.login'=>"Text",'a.morphy'=>'Text','a.societe'=>'Text','a.address'=>"Text",'a.zip'=>"Text",'a.town'=>"Text",'d.nom'=>"Text",'p.code'=>'Text','p.libelle'=>"Text",'a.phone'=>"Text",'a.phone_perso'=>"Text",'a.phone_mobile'=>"Text",'a.email'=>"Text",'a.birth'=>"Date",'a.statut'=>"Status",'a.note'=>"Text",'a.datec'=>'Date','a.datevalid'=>'Date','a.tms'=>'Date','a.datefin'=>'Date','ta.rowid'=>'List:fk_adherent_type:libelle','ta.libelle'=>'Text','c.dateadh'=>'Date','c.cotisation'=>'Number'); + $this->export_entities_array[$r]=array('a.rowid'=>'member','a.civilite'=>"member",'a.lastname'=>"member",'a.firstname'=>"member",'a.login'=>"member",'a.morphy'=>'member','a.societe'=>'member','a.address'=>"member",'a.zip'=>"member",'a.town'=>"member",'d.nom'=>"member",'p.code'=>"member",'p.libelle'=>"member",'a.phone'=>"member",'a.phone_perso'=>"member",'a.phone_mobile'=>"member",'a.email'=>"member",'a.birth'=>"member",'a.statut'=>"member",'a.photo'=>"member",'a.note'=>"member",'a.datec'=>'member','a.datevalid'=>'member','a.tms'=>'member','a.datefin'=>'member','ta.rowid'=>'member_type','ta.libelle'=>'member_type','c.rowid'=>'subscription','c.dateadh'=>'subscription','c.cotisation'=>'subscription'); // Add extra fields $sql="SELECT name, label FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'adherent' AND entity = ".$conf->entity; $resql=$this->db->query($sql); @@ -193,6 +193,8 @@ class modAdherent extends DolibarrModules $this->export_sql_end[$r] =' FROM ('.MAIN_DB_PREFIX.'adherent_type as ta, '.MAIN_DB_PREFIX.'adherent as a)'; $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'adherent_extrafields as extra ON a.rowid = extra.fk_object'; $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'cotisation as c ON c.fk_adherent = a.rowid'; + $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_departements as d ON a.state_id = d.rowid'; + $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_pays as p ON a.country = p.rowid'; $this->export_sql_end[$r] .=' WHERE a.fk_adherent_type = ta.rowid'; $this->export_dependencies_array[$r]=array('subscription'=>'c.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them @@ -210,7 +212,7 @@ class modAdherent extends DolibarrModules $this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon $this->import_tables_array[$r]=array('a'=>MAIN_DB_PREFIX.'adherent','extra'=>MAIN_DB_PREFIX.'adherent_extrafields'); $this->import_tables_creator_array[$r]=array('a'=>'fk_user_author'); // Fields to store import user id - $this->import_fields_array[$r]=array('a.civilite'=>"UserTitle",'a.lastname'=>"Lastname*",'a.firstname'=>"Firstname",'a.login'=>"Login*","a.pass"=>"Password","a.fk_adherent_type"=>"MemberType*",'a.morphy'=>'Nature*','a.societe'=>'Company','a.address'=>"Address",'a.zip'=>"Zip",'a.town'=>"Town",'a.country'=>"Country",'a.phone'=>"PhonePro",'a.phone_perso'=>"PhonePerso",'a.phone_mobile'=>"PhoneMobile",'a.email'=>"Email",'a.birth'=>"Birthday",'a.statut'=>"Status*",'a.photo'=>"Photo",'a.note'=>"Note",'a.datec'=>'DateCreation','a.datefin'=>'DateEndSubscription'); + $this->import_fields_array[$r]=array('a.civilite'=>"UserTitle",'a.lastname'=>"Lastname*",'a.firstname'=>"Firstname",'a.login'=>"Login*","a.pass"=>"Password","a.fk_adherent_type"=>"MemberType*",'a.morphy'=>'Nature*','a.societe'=>'Company','a.address'=>"Address",'a.zip'=>"Zip",'a.town'=>"Town",'a.state_id'=>'StateId','a.country'=>"CountryId",'a.phone'=>"PhonePro",'a.phone_perso'=>"PhonePerso",'a.phone_mobile'=>"PhoneMobile",'a.email'=>"Email",'a.birth'=>"Birthday",'a.statut'=>"Status*",'a.photo'=>"Photo",'a.note'=>"Note",'a.datec'=>'DateCreation','a.datefin'=>'DateEndSubscription'); // Add extra fields $sql="SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'adherent' AND entity = ".$conf->entity; $resql=$this->db->query($sql); diff --git a/htdocs/core/modules/modSociete.class.php b/htdocs/core/modules/modSociete.class.php index ed07d70ba93..20494adfc8a 100644 --- a/htdocs/core/modules/modSociete.class.php +++ b/htdocs/core/modules/modSociete.class.php @@ -313,8 +313,8 @@ class modSociete extends DolibarrModules $this->export_label[$r]='ExportDataset_company_2'; $this->export_icon[$r]='contact'; $this->export_permission[$r]=array(array("societe","contact","export")); - $this->export_fields_array[$r]=array('c.rowid'=>"IdContact",'c.civilite'=>"CivilityCode",'c.lastname'=>'Lastname','c.firstname'=>'Firstname','c.poste'=>'PostOrFunction','c.datec'=>"DateCreation",'c.tms'=>"DateLastModification",'c.priv'=>"ContactPrivate",'c.address'=>"Address",'c.zip'=>"Zip",'c.town'=>"Town",'c.phone'=>"Phone",'c.fax'=>"Fax",'c.phone_mobile'=>"Mobile",'c.email'=>"EMail",'p.libelle'=>"Country",'p.code'=>"CountryCode",'s.rowid'=>"IdCompany",'s.nom'=>"CompanyName",'s.status'=>"Status",'s.code_client'=>"CustomerCode",'s.code_fournisseur'=>"SupplierCode"); - $this->export_TypeFields_array[$r]=array('c.civilite'=>"List:c_civilite:civilite:code",'c.name'=>'Text','c.firstname'=>'Text','c.poste'=>'Text','c.datec'=>"Date",'c.priv'=>"Boolean",'c.address'=>"Text",'c.cp'=>"Text",'c.ville'=>"Text",'c.phone'=>"Text",'c.fax'=>"Text",'c.email'=>"Text",'p.libelle'=>"List:c_pays:libelle:rowid",'p.code'=>"Text",'s.rowid'=>"List:societe:nom",'s.nom'=>"Text",'s.status'=>"Status",'s.code_client'=>"Text",'s.code_fournisseur'=>"Text"); + $this->export_fields_array[$r]=array('c.rowid'=>"IdContact",'c.civilite'=>"CivilityCode",'c.lastname'=>'Lastname','c.firstname'=>'Firstname','c.poste'=>'PostOrFunction','c.datec'=>"DateCreation",'c.tms'=>"DateLastModification",'c.priv'=>"ContactPrivate",'c.address'=>"Address",'c.zip'=>"Zip",'c.town'=>"Town",'d.nom'=>'State','p.libelle'=>"Country",'p.code'=>"CountryCode",'c.phone'=>"Phone",'c.fax'=>"Fax",'c.phone_mobile'=>"Mobile",'c.email'=>"EMail",'s.rowid'=>"IdCompany",'s.nom'=>"CompanyName",'s.status'=>"Status",'s.code_client'=>"CustomerCode",'s.code_fournisseur'=>"SupplierCode"); + $this->export_TypeFields_array[$r]=array('c.civilite'=>"List:c_civilite:civilite:code",'c.lastname'=>'Text','c.firstname'=>'Text','c.poste'=>'Text','c.datec'=>"Date",'c.priv'=>"Boolean",'c.address'=>"Text",'c.cp'=>"Text",'c.ville'=>"Text",'d.nom'=>'Text','p.libelle'=>"List:c_pays:libelle:rowid",'p.code'=>"Text",'c.phone'=>"Text",'c.fax'=>"Text",'c.email'=>"Text",'s.rowid'=>"List:societe:nom",'s.nom'=>"Text",'s.status'=>"Status",'s.code_client'=>"Text",'s.code_fournisseur'=>"Text"); $this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>"company",'s.code_client'=>"company",'s.code_fournisseur'=>"company"); // We define here only fields that use another picto if (empty($conf->fournisseur->enabled)) { @@ -358,6 +358,7 @@ class modSociete extends DolibarrModules $this->export_sql_start[$r]='SELECT DISTINCT '; $this->export_sql_end[$r] =' FROM '.MAIN_DB_PREFIX.'socpeople as c'; $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'societe as s ON c.fk_soc = s.rowid'; + $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_departements as d ON c.fk_departement = d.rowid'; $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_pays as p ON c.fk_pays = p.rowid'; $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'socpeople_extrafields as extra ON extra.fk_object = c.rowid'; $this->export_sql_end[$r] .=' WHERE c.entity IN ('.getEntity("societe", 1).')'; @@ -374,7 +375,7 @@ class modSociete extends DolibarrModules $this->import_icon[$r]='company'; $this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon $this->import_tables_array[$r]=array('s'=>MAIN_DB_PREFIX.'societe','extra'=>MAIN_DB_PREFIX.'societe_extrafields'); // List of tables to insert into (insert done in same order) - $this->import_fields_array[$r]=array('s.nom'=>"Name*",'s.status'=>"Status",'s.client'=>"Customer*",'s.fournisseur'=>"Supplier*",'s.code_client'=>"CustomerCode",'s.code_fournisseur'=>"SupplierCode",'s.code_compta'=>"CustomerAccountancyCode",'s.code_compta_fournisseur'=>"SupplierAccountancyCode",'s.address'=>"Address",'s.zip'=>"Zip",'s.town'=>"Town",'s.fk_pays'=>"CountryCode",'s.phone'=>"Phone",'s.fax'=>"Fax",'s.url'=>"Url",'s.email'=>"Email",'s.siret'=>"ProfId1",'s.siren'=>"ProfId2",'s.ape'=>"ProfId3",'s.idprof4'=>"ProfId4",'s.tva_intra'=>"VATIntraShort",'s.capital'=>"Capital",'s.note_private'=>"NotePrivate",'s.note_public'=>"NotePublic",'s.fk_typent'=>"ThirdPartyType",'s.fk_effectif'=>"Staff","s.fk_forme_juridique"=>"JuridicalStatus",'s.fk_prospectlevel'=>'ProspectLevel','s.fk_stcomm'=>'ProspectStatus','s.default_lang'=>'DefaultLanguage','s.barcode'=>'BarCode','s.datec'=>"DateCreation"); + $this->import_fields_array[$r]=array('s.nom'=>"Name*",'s.status'=>"Status",'s.client'=>"Customer*",'s.fournisseur'=>"Supplier*",'s.code_client'=>"CustomerCode",'s.code_fournisseur'=>"SupplierCode",'s.code_compta'=>"CustomerAccountancyCode",'s.code_compta_fournisseur'=>"SupplierAccountancyCode",'s.address'=>"Address",'s.zip'=>"Zip",'s.town'=>"Town",'s.fk_departement'=>"StateId",'s.fk_pays'=>"CountryCode",'s.phone'=>"Phone",'s.fax'=>"Fax",'s.url'=>"Url",'s.email'=>"Email",'s.siret'=>"ProfId1",'s.siren'=>"ProfId2",'s.ape'=>"ProfId3",'s.idprof4'=>"ProfId4",'s.tva_intra'=>"VATIntraShort",'s.capital'=>"Capital",'s.note_private'=>"NotePrivate",'s.note_public'=>"NotePublic",'s.fk_typent'=>"ThirdPartyType",'s.fk_effectif'=>"Staff","s.fk_forme_juridique"=>"JuridicalStatus",'s.fk_prospectlevel'=>'ProspectLevel','s.fk_stcomm'=>'ProspectStatus','s.default_lang'=>'DefaultLanguage','s.barcode'=>'BarCode','s.datec'=>"DateCreation"); // Add extra fields $sql="SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'societe' AND entity = ".$conf->entity; $resql=$this->db->query($sql); From dad2200a45fe46c1d0b60e95cac52df2bdb4a25e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 31 Aug 2013 12:43:52 +0200 Subject: [PATCH 09/31] More screenshot --- doc/images/dolibarr_screenshot1_640x400.png | Bin 0 -> 113517 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/images/dolibarr_screenshot1_640x400.png diff --git a/doc/images/dolibarr_screenshot1_640x400.png b/doc/images/dolibarr_screenshot1_640x400.png new file mode 100644 index 0000000000000000000000000000000000000000..9ed384263adaca2a680ec852f84e988b55d121ec GIT binary patch literal 113517 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

Npfx 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 Date: Sat, 31 Aug 2013 16:58:25 +0200 Subject: [PATCH 10/31] Fix: Missing class --- htdocs/mailmanspip/class/mailmanspip.class.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/htdocs/mailmanspip/class/mailmanspip.class.php b/htdocs/mailmanspip/class/mailmanspip.class.php index 6ec3ecae8bf..248035c65ef 100644 --- a/htdocs/mailmanspip/class/mailmanspip.class.php +++ b/htdocs/mailmanspip/class/mailmanspip.class.php @@ -395,6 +395,8 @@ class MailmanSpip if ($listes=='' && ! empty($conf->global->ADHERENT_MAILMAN_LISTS)) $lists=explode(',',$conf->global->ADHERENT_MAILMAN_LISTS); else $lists=explode(',',$listes); + $categstatic=new Categorie($this->db); + foreach ($lists as $list) { // Filter on type something (ADHERENT_MAILMAN_LISTS = "mailinglist0,TYPE:typevalue:mailinglist1,CATEG:categvalue:mailinglist2") From 8cd1563f588f6e4d96d4ea74ee350068f57bfa8e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 1 Sep 2013 20:55:59 +0200 Subject: [PATCH 11/31] More test --- htdocs/core/class/dolgraph.class.php | 62 +++++++++++++++++----------- 1 file changed, 37 insertions(+), 25 deletions(-) diff --git a/htdocs/core/class/dolgraph.class.php b/htdocs/core/class/dolgraph.class.php index ac603837240..7c368437ffc 100644 --- a/htdocs/core/class/dolgraph.class.php +++ b/htdocs/core/class/dolgraph.class.php @@ -71,7 +71,7 @@ class DolGraph var $showlegend=1; var $showpointvalue=1; var $showpercent=0; - + var $graph; // Objet Graph (Artichow, Phplot...) var $error; @@ -254,7 +254,7 @@ class DolGraph { $this->datacolor = $datacolor; } - + /** * Set type * @@ -395,7 +395,7 @@ class DolGraph /** * Show legend or not - * + * * @param int $showlegend 1=Show legend (default), 0=Hide legend * @return void */ @@ -406,7 +406,7 @@ class DolGraph /** * Show pointvalue or not - * + * * @param int $showpointvalue 1=Show value for each point, as tooltip or inline (default), 0=Hide value * @return void */ @@ -414,10 +414,10 @@ class DolGraph { $this->showpointvalue=$showpointvalue; } - + /** * Show percent or not - * + * * @param int $showpercent 1=Show percent for each point, as tooltip or inline, 0=Hide percent (default) * @return void */ @@ -425,9 +425,9 @@ class DolGraph { $this->showpercent=$showpercent; } - - - + + + /** * Define background color of complete image * @@ -590,12 +590,18 @@ class DolGraph /** * Build a graph onto disk using correct library * - * @param string $file Image file name to use if we save onto disk + * @param string $file Image file name to use to save onto disk (also used as javascript unique id) * @param string $fileurl Url path to show image if saved onto disk * @return void */ function draw($file,$fileurl='') { + if (empty($file)) + { + $this->error="Call to draw method was made with empty value for parameter file."; + dol_syslog(get_class($this)."::draw ".$this->error, LOG_ERR); + return -2; + } if (! is_array($this->data) || count($this->data) < 1) { $this->error="Call to draw method was made but SetData was not called or called with an empty dataset for parameters"; @@ -796,8 +802,8 @@ class DolGraph * $this->mode = 'depth' ??? * $this->bgcolorgrid * $this->datacolor - * - * @param string $file Image file name to use if we save onto disk + * + * @param string $file Image file name to use to save onto disk (also used as javascript unique id) * @param string $fileurl Url path to show image if saved onto disk * @return void */ @@ -807,6 +813,12 @@ class DolGraph dol_syslog(get_class($this)."::draw_jflot this->type=".join(',',$this->type)); + if (empty($this->width) && empty($this->height)) + { + print 'Error width or height not set'; + return; + } + $legends=array(); $nblot=count($this->data[0])-1; // -1 to remove legend if ($nblot < 0) dol_print_error('Bad value for property ->data. Must be set by mydolgraph->SetData before callinf mydolgrapgh->draw'); @@ -823,7 +835,7 @@ class DolGraph // Fill array $values $x=0; - foreach($this->data as $valarray) // Loop on each x + foreach($this->data as $valarray) // Loop on each x { $legends[$x] = $valarray[0]; $values[$x] = (is_numeric($valarray[$i+1]) ? $valarray[$i+1] : null); @@ -839,12 +851,12 @@ class DolGraph { foreach($values as $x => $y) { if (isset($y)) $serie[$i].='d'.$i.'.push(['.$x.', '.$y.']);'."\n"; } } - + unset($values); $i++; } $tag=dol_escape_htmltag(dol_string_unaccent(dol_string_nospecial(basename($file),'_',array('-','.')))); - + $this->_stringtoshow =''."\n"; if (! empty($this->title)) $this->_stringtoshow.='

'.$this->title.'
'; $this->_stringtoshow.='
'."\n"; @@ -868,7 +880,7 @@ class DolGraph $showlegend=$this->showlegend; $showpointvalue=$this->showpointvalue; $showpercent=$this->showpercent; - + $this->_stringtoshow.= ' function plotWithOptions_'.$tag.'() { $.plot($("#placeholder_'.$tag.'"), d0, @@ -933,16 +945,16 @@ class DolGraph opacity: 0.80 }).appendTo("body").fadeIn(20); } - + var previousPoint = null; $("#placeholder_'.$tag.'").bind("plothover", function (event, pos, item) { $("#x").text(pos.x.toFixed(2)); $("#y").text(pos.y.toFixed(2)); - + if (item) { if (previousPoint != item.dataIndex) { previousPoint = item.dataIndex; - + $("#tooltip").remove(); /* console.log(item); */ var x = item.datapoint[0].toFixed(2); @@ -962,9 +974,9 @@ class DolGraph } }); '; - + $this->_stringtoshow.='var stack = null, steps = false;'."\n"; - + $this->_stringtoshow.='function plotWithOptions_'.$tag.'() {'."\n"; $this->_stringtoshow.='$.plot($("#placeholder_'.$tag.'"), [ '."\n"; $i=$firstlot; @@ -979,7 +991,7 @@ class DolGraph $i++; } $this->_stringtoshow.="\n".' ], { series: { stack: stack, lines: { fill: false, steps: steps }, bars: { barWidth: 0.6 } }'."\n"; - + // Xaxis $this->_stringtoshow.=', xaxis: { ticks: ['."\n"; $x=0; @@ -990,10 +1002,10 @@ class DolGraph $x++; } $this->_stringtoshow.='] }'."\n"; - + // Yaxis $this->_stringtoshow.=', yaxis: { min: '.$this->MinValue.', max: '.($this->MaxValue).' }'."\n"; - + // Background color $color1=sprintf("%02x%02x%02x",$this->bgcolorgrid[0],$this->bgcolorgrid[0],$this->bgcolorgrid[2]); $color2=sprintf("%02x%02x%02x",$this->bgcolorgrid[0],$this->bgcolorgrid[1],$this->bgcolorgrid[2]); @@ -1001,7 +1013,7 @@ class DolGraph //$this->_stringtoshow.=', shadowSize: 20'."\n"; TODO Uncommet this $this->_stringtoshow.='});'."\n"; $this->_stringtoshow.='}'."\n"; - + } $this->_stringtoshow.='plotWithOptions_'.$tag.'();'."\n"; From 51cc957b97b13cb449660f1c5ccd53d88ab6f34c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 2 Sep 2013 00:34:41 +0200 Subject: [PATCH 12/31] Fix: select list on external table --- htdocs/core/class/extrafields.class.php | 58 +++++++++++++------------ 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index 051c9950fd2..d21037faa2b 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -683,9 +683,9 @@ class ExtraFields } elseif ($type == 'sellist') { - $out=''; -print ''; +print ''; print '
\n"; @@ -502,10 +502,10 @@ print ''; $var=!$var; print "
"; print ''; -print ""; +print ""; print '
\n"; diff --git a/htdocs/core/modules/contract/doc/pdf_strato.modules.php b/htdocs/core/modules/contract/doc/pdf_strato.modules.php index 9591fd173e9..6976754285a 100644 --- a/htdocs/core/modules/contract/doc/pdf_strato.modules.php +++ b/htdocs/core/modules/contract/doc/pdf_strato.modules.php @@ -433,9 +433,9 @@ class pdf_strato extends ModelePDFContract pdf_pagehead($pdf,$outputlangs,$this->page_hauteur); //Affiche le filigrane brouillon - Print Draft Watermark - if($object->statut==0 && (! empty($conf->global->CONTRAT_DRAFT_WATERMARK)) ) + if($object->statut==0 && (! empty($conf->global->CONTRACT_DRAFT_WATERMARK)) ) { - pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',$conf->global->CONTRAT_DRAFT_WATERMARK); + pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',$conf->global->CONTRACT_DRAFT_WATERMARK); } //Prepare la suite @@ -601,7 +601,7 @@ class pdf_strato extends ModelePDFContract */ function _pagefoot(&$pdf,$object,$outputlangs,$hidefreetext=0) { - return pdf_pagefoot($pdf,$outputlangs,'CONTRAT_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,0,$hidefreetext); + return pdf_pagefoot($pdf,$outputlangs,'CONTRACT_FREE_TEXT',$this->emetteur,$this->marge_basse,$this->marge_gauche,$this->page_hauteur,$object,0,$hidefreetext); } } diff --git a/htdocs/core/modules/contract/modules_contract.php b/htdocs/core/modules/contract/modules_contract.php index 341aa4daefc..35a03dd8337 100644 --- a/htdocs/core/modules/contract/modules_contract.php +++ b/htdocs/core/modules/contract/modules_contract.php @@ -25,7 +25,7 @@ /** * \file htdocs/core/modules/contract/modules_contract.php * \ingroup contract - * \brief Fichier contenant la classe mere de generation des fiches interventions en PDF and File of class to manage contract numbering + * \brief File with parent class for generating contracts to PDF and File of class to manage contract numbering */ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php'; @@ -105,7 +105,7 @@ class ModelNumRefContracts /** * Test if existing numbers make problems with numbering * - * @return boolean false if conflit, true if ok + * @return boolean false if conflict, true if ok */ function canBeActivated() { From 7f762fdbf843d7c5e5526036d69488e657257e54 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 3 Sep 2013 00:06:42 +0200 Subject: [PATCH 20/31] Fix: doc --- dev/translation/txpull.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/translation/txpull.sh b/dev/translation/txpull.sh index fdd59729791..a572de9bdb9 100755 --- a/dev/translation/txpull.sh +++ b/dev/translation/txpull.sh @@ -11,7 +11,7 @@ if [ "x$1" = "x" ] then echo "This pull remote transifex files to local dir." - echo "Note: If you push a language file (not source), file will be skipped if transifex file is newer." + echo "Note: If you pull a language file (not source), file will be skipped if local file is newer." echo " Using -f will overwrite local file (does not work with 'all')." echo "Usage: txpull.sh (all|xx_XX) [-r dolibarr.file] [-f]" exit From b02bf5a2a7348f578b454449c80aff68d2574ddb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 3 Sep 2013 00:42:54 +0200 Subject: [PATCH 21/31] Syn with transifex --- htdocs/langs/de_DE/admin.lang | 16 +++--- htdocs/langs/de_DE/bookmarks.lang | 2 +- htdocs/langs/de_DE/dict.lang | 2 +- htdocs/langs/de_DE/holiday.lang | 16 +++--- htdocs/langs/de_DE/mailmanspip.lang | 10 ++-- htdocs/langs/de_DE/main.lang | 4 +- htdocs/langs/de_DE/opensurvey.lang | 10 ++-- htdocs/langs/de_DE/sms.lang | 2 +- htdocs/langs/el_GR/admin.lang | 6 +-- htdocs/langs/es_ES/categories.lang | 5 +- htdocs/langs/es_ES/contracts.lang | 4 +- htdocs/langs/es_ES/errors.lang | 6 ++- htdocs/langs/es_ES/mails.lang | 4 ++ htdocs/langs/es_ES/projects.lang | 6 +-- htdocs/langs/es_ES/sendings.lang | 3 ++ htdocs/langs/es_ES/suppliers.lang | 82 ++++++++++++++--------------- htdocs/langs/et_EE/admin.lang | 18 +++---- htdocs/langs/et_EE/bookmarks.lang | 18 +++---- 18 files changed, 113 insertions(+), 101 deletions(-) diff --git a/htdocs/langs/de_DE/admin.lang b/htdocs/langs/de_DE/admin.lang index 25fddbc652d..48d779c37a4 100644 --- a/htdocs/langs/de_DE/admin.lang +++ b/htdocs/langs/de_DE/admin.lang @@ -65,7 +65,7 @@ PreviewNotAvailable=Vorschau nicht verfügbar ThemeCurrentlyActive=Derzeit aktivierte Oberfläche CurrentTimeZone=Aktuelle Zeitzone des PHP-Servers Space=Raum -# Table=Table +Table=Tabelle Fields=Felder # Index=Index Mask=Maske @@ -176,7 +176,7 @@ FullPathToPostgreSQLdumpCommand=Vollständiger Pfad zum pg_dump-Befehl ExportOptions=Exportoptionen AddDropDatabase=DROP DATABASE Befehl hinzufügen AddDropTable=DROP TABLE Befehl hinzufügen -# ExportStructure=Structure +ExportStructure=Struktur Datas=Daten NameColumn=Name der Spalten ExtendedInsert=Erweiterte INSERTS @@ -271,7 +271,7 @@ ModuleFamilyFinancial=Finanzmodule (Rechnungswesen/Finanzen) ModuleFamilyECM=Inhaltsverwaltung (ECM) MenuHandlers=Menü-Handler MenuAdmin=Menü-Editor -# DoNotUseInProduction=Do not use in production +DoNotUseInProduction=Nicht in Produktion nutzen ThisIsProcessToFollow=So führen Sie die Installation/Aktualisierung des Systems durch: StepNb=Schritt %s FindPackageFromWebSite=Finden Sie ein Paket, das die gewünschten Funktionen beinhaltet (zum Beispiel auf der offiziellen Website %s). @@ -281,7 +281,7 @@ SetupIsReadyForUse=Die Installation ist abgeschlossen und das System zur Verwend # NotExistsDirect=The alternative root directory is not defined.
# InfDirAlt=Since version 3 it is possible to define an alternative root directory.This allows you to store, same place, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
# InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
*These lines are commented with "#", to uncomment only remove the character. -# YouCanSubmitFile=Select module: +YouCanSubmitFile=Modul wählen: CurrentVersion=Aktuelle dolibarr-Version CallUpdatePage=Zur Aktualisierung der Daten und Datenbankstrukturen gehen Sie zur Seite %s. LastStableVersion=Letzte stabile Version @@ -358,7 +358,7 @@ String=Zeichenkette # Boolean=Boolean (Checkbox) ExtrafieldPhone = Telefon ExtrafieldPrice = Preis -# ExtrafieldMail = Email +ExtrafieldMail = E-Mail # ExtrafieldSelect = Select list # ExtrafieldSelectList = Select from table # ExtrafieldSeparator=Separator @@ -371,7 +371,7 @@ ExtrafieldPrice = Preis # LibraryToBuildPDF=Library used to build PDF # WarningUsingFPDF=Warning: Your conf.php contains directive dolibarr_pdf_force_fpdf=1. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.
To solve this and have a full support of PDF generation, please download TCPDF library, then comment or remove the line $dolibarr_pdf_force_fpdf=1, and add instead $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' # LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:
1 : local tax apply on products and services without vat (vat is not applied on local tax)
2 : local tax apply on products and services before vat (vat is calculated on amount + localtax)
3 : local tax apply on products without vat (vat is not applied on local tax)
4 : local tax apply on products before vat (vat is calculated on amount + localtax)
5 : local tax apply on services without vat (vat is not applied on local tax)
6 : local tax apply on services before vat (vat is calculated on amount + localtax) -# SMS=SMS +SMS=SMS # LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s # RefreshPhoneLink=Refresh link # LinkToTest=Clickable link generated for user %s (click phone number to test) @@ -487,7 +487,7 @@ Module2900Name= GeoIPMaxmind Module2900Desc= GeoIP Maxmind Konvertierung Module5000Name=Mandantenfähigkeit Module5000Desc=Ermöglicht Ihnen die Verwaltung mehrerer Firmen -# Module20000Name=Holidays +Module20000Name=Ferien # Module20000Desc=Declare and follow employees holidays Module50000Name=PayBox Module50000Desc=Über dieses Modul können Sie online Kreditkartenzahlungen entgegennehmen @@ -793,7 +793,7 @@ PhpConf=Config PhpWebLink=PHP Web-Link Pear=Pear PearPackages=Pear Packages -# Browser=Browser +Browser=Browser Server=Server Database=Datenbank DatabaseServer=Datenbankserver diff --git a/htdocs/langs/de_DE/bookmarks.lang b/htdocs/langs/de_DE/bookmarks.lang index 384861f0a04..3347c41d1fb 100644 --- a/htdocs/langs/de_DE/bookmarks.lang +++ b/htdocs/langs/de_DE/bookmarks.lang @@ -11,7 +11,7 @@ ReplaceWindow=Aktuelles Fenster ersetzen BookmarkTargetNewWindowShort=Neues Fenster BookmarkTargetReplaceWindowShort=Aktuelles Fenster BookmarkTitle=Titel des Lesezeichens -UrlOrLink=URL oder Link +UrlOrLink=URL BehaviourOnClick=Verhalten bei Klick auf den Link CreateBookmark=Erstelle Lesezeichen SetHereATitleForLink=Geben Sie hier einen Linktitel ein diff --git a/htdocs/langs/de_DE/dict.lang b/htdocs/langs/de_DE/dict.lang index 3fb4774b6b7..e06281db46a 100644 --- a/htdocs/langs/de_DE/dict.lang +++ b/htdocs/langs/de_DE/dict.lang @@ -304,7 +304,7 @@ DemandReasonTypeSRC_COMM=Kaufmännischer Ansprechpartner DemandReasonTypeSRC_SHOP=Shop-Kontakt # DemandReasonTypeSRC_WOM=Word of mouth # DemandReasonTypeSRC_PARTNER=Partner -# DemandReasonTypeSRC_EMPLOYEE=Employee +DemandReasonTypeSRC_EMPLOYEE=Angestellter # DemandReasonTypeSRC_SPONSORING=Sponsorship #### Paper formats #### diff --git a/htdocs/langs/de_DE/holiday.lang b/htdocs/langs/de_DE/holiday.lang index e21ea5474b0..fac17e73254 100644 --- a/htdocs/langs/de_DE/holiday.lang +++ b/htdocs/langs/de_DE/holiday.lang @@ -2,8 +2,8 @@ CHARSET= UTF-8 # HRM=HRM -# Holidays=Holidays -# CPTitreMenu=Holidays +Holidays=Ferien +CPTitreMenu=Ferien # MenuReportMonth=Monthly statement # MenuAddCP=Apply for holidays # NotActiveModCP=You must enable the module holidays to view this page. @@ -11,7 +11,7 @@ CHARSET= UTF-8 # NoCPforUser=You don't have a demand for holidays. # AddCP=Apply for holidays # CPErrorSQL=An SQL error occurred: -# Employe=Employee +Employe=Angestellter DateDebCP=Vertragsbeginn DateFinCP=Vertragsende DateCreateCP=Erstellungsdatum @@ -23,7 +23,7 @@ RefuseCP=Abgelehnt # ValidatorCP=Approbator # ListeCP=List of holidays # ReviewedByCP=Will be reviewed by -DescCP=Titel +DescCP=Beschreibung # SendRequestCP=Creating demand for holidays # DelayToRequestCP=Applications for holidays must be made at least %s day(s) before them. # MenuConfCP=Edit balance of holidays @@ -79,12 +79,12 @@ UserCP=Benutzer # MenuLogCP=View logs of holidays # LogCP=Log of updates of holidays # ActionByCP=Performed by -# UserUpdateCP=For the user +UserUpdateCP=Für den Benutzer # PrevSoldeCP=Previous Balance # NewSoldeCP=New Balance # alreadyCPexist=A request for holidays has already been done on this period. UserName=Nachname -# Employee=Employee +Employee=Angestellter # FirstDayOfHoliday=First day of holiday # LastDayOfHoliday=Last day of holiday # HolidaysMonthlyUpdate=Monthly update @@ -129,11 +129,11 @@ DeleteEventOptionCP=Lösche Gruppe UpdateEventOptionCP=Aktualisieren # ErrorMailNotSend=An error occurred while sending email: # NoCPforMonth=No leave this month. -# nbJours=Number days +nbJours=Anzahl der Tage # TitleAdminCP=Configuration of Holidays #Messages -# Hello=Hello +Hello=Hallo # HolidaysToValidate=Validate holidays # HolidaysToValidateBody=Below is a request for holidays to validate # HolidaysToValidateDelay=This request for holidays will take place within a period of less than %s days. diff --git a/htdocs/langs/de_DE/mailmanspip.lang b/htdocs/langs/de_DE/mailmanspip.lang index 84bb01ae447..a0854dff81c 100644 --- a/htdocs/langs/de_DE/mailmanspip.lang +++ b/htdocs/langs/de_DE/mailmanspip.lang @@ -12,11 +12,11 @@ CHARSET=UTF-8 # DescADHERENT_MAILMAN_URL=URL for Mailman subscriptions # DescADHERENT_MAILMAN_UNSUB_URL=URL for Mailman unsubscriptions # DescADHERENT_MAILMAN_LISTS=List(s) for automatic inscription of new members (separated by a comma) -# SPIPTitle=SPIP Content Management System -# DescADHERENT_SPIP_SERVEUR=SPIP Server -# DescADHERENT_SPIP_DB=SPIP database name -# DescADHERENT_SPIP_USER=SPIP database login -# DescADHERENT_SPIP_PASS=SPIP database password +SPIPTitle=SPIP Content Management System +DescADHERENT_SPIP_SERVEUR=SPIP-Server +DescADHERENT_SPIP_DB=SPIP-Datenbankname +DescADHERENT_SPIP_USER=SPIP-Datenbankkennung +DescADHERENT_SPIP_PASS=SPIP-Datenbankpasswort # AddIntoSpip=Add into SPIP # AddIntoSpipConfirmation=Are you sure you want to add this member into SPIP? # AddIntoSpipError=Failed to add the user in SPIP diff --git a/htdocs/langs/de_DE/main.lang b/htdocs/langs/de_DE/main.lang index 008ee980036..8b4e22fec86 100644 --- a/htdocs/langs/de_DE/main.lang +++ b/htdocs/langs/de_DE/main.lang @@ -5,8 +5,8 @@ DIRECTION=ltr # msungstdlight or cid0ct are for traditionnal chinese (traditionnal does not render with ubuntu pdf reader) # stsongstdlight or cid0cs are for simplified chinese # To read chinese pdf with linux: sudo apt-get install poppler-data -FONTFORPDF=helvetica -FONTSIZEFORPDF=10 +# FONTFORPDF=helvetica +# FONTSIZEFORPDF=10 SeparatorDecimal=, SeparatorThousand=. FormatDateShort=%d/%m/%Y diff --git a/htdocs/langs/de_DE/opensurvey.lang b/htdocs/langs/de_DE/opensurvey.lang index 47727758759..47b2d8766f9 100644 --- a/htdocs/langs/de_DE/opensurvey.lang +++ b/htdocs/langs/de_DE/opensurvey.lang @@ -7,11 +7,11 @@ CHARSET=UTF-8 # NoSurveysInDatabase=%s survey(s) into database. # OpenSurveyArea=Surveys area # AddACommentForPoll=You can add a comment into survey... -# AddComment=Add comment +AddComment=Kommentar hinzufügen # CreatePoll=Create poll # PollTitle=Poll title -# OpenSurveyYourName=Your name -# OpenSurveyYourEMail=Your email address +OpenSurveyYourName=Ihr Name +OpenSurveyYourEMail=Ihre E-Mail-Adresse # VotersCanModify=Voters can modify vote of others # ToReceiveEMailForEachVote=To receive an email for each vote # TypeDate=Type date @@ -19,7 +19,7 @@ CHARSET=UTF-8 # YouAreInPollCreateArea=You are in the poll creation section # FieldMandatory=Field mandatory # OpenSurveyDesc=Online service to plan a rendez-vous or do a survey quickly and easily. -# OpenSurveyNoRegistration=No registration required. +OpenSurveyNoRegistration=Keine Registrierung benötigt. # OpenSurveyStep2=Select your dates amoung the free days (green). The selected days are in blue. You can unselect a day previously selected by clicking again on it # RemoveAllDays=Remove all days # CopyHoursOfFirstDay=Copy hours of first day @@ -27,7 +27,7 @@ CHARSET=UTF-8 # SelectedDays=Selected days # TheBestChoice=The best choice currently is # TheBestChoices=The best choices currently are -# with=with +with=mit # OpenSurveyHowTo=If you agree to vote in this poll, you have to give your name, choose the values that fit best for you (without paying attention to the choices of the other voters) and validate with the plus button at the end of the line. # InitiatorOfPoll=Initiator of the poll # CommentsOfVoters=Comments of voters diff --git a/htdocs/langs/de_DE/sms.lang b/htdocs/langs/de_DE/sms.lang index aa4800f09c3..d19685d80de 100644 --- a/htdocs/langs/de_DE/sms.lang +++ b/htdocs/langs/de_DE/sms.lang @@ -11,7 +11,7 @@ SmsRecipient=Empfänger SmsTitle=Titel SmsFrom=Absender SmsTo=Ziel -SmsTopic=SMS Thema +SmsTopic=Thema der SMS SmsText=Nachricht SmsMessage=SMS Nachricht ShowSms=SMS Anzeigen diff --git a/htdocs/langs/el_GR/admin.lang b/htdocs/langs/el_GR/admin.lang index 4810fb089c4..7e0b480c291 100644 --- a/htdocs/langs/el_GR/admin.lang +++ b/htdocs/langs/el_GR/admin.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - admin CHARSET=UTF-8 -Foundation=Ίδρυμα +Foundation=Οργανισμός Version=Έκδοση VersionProgram=Έκδοση Προγράμματος VersionLastInstall=Έκδοση Τελευταίας Εγκατάστασης @@ -8,7 +8,7 @@ VersionLastUpgrade=Έκδοση Τελευταίας Ενημέρωσης VersionExperimental=Πειραματική VersionDevelopment=Υπό ανάπτυξη VersionUnknown=Άγνωστη -VersionRecommanded=Προτινώμενη +VersionRecommanded=Προτεινόμενη SessionId=ID Συνόδου SessionSaveHandler=Φορέα εξυπηρέτησης για να σώσει συνεδρίες SessionSavePath=Αποθήκευση τοπικής προσαρμογής συνεδρίας @@ -18,7 +18,7 @@ NoSessionListWithThisHandler=Save session handler configured in your PHP does no LockNewSessions=Κλειδώσετε τις νέες συνδέσεις ConfirmLockNewSessions=Είστε σίγουροι ότι θέλετε να περιορίσει κάθε νέα σύνδεση Dolibarr για τον εαυτό σας. Μόνο ο χρήστης %s θα είναι σε θέση να συνδεθεί μετά από αυτό. UnlockNewSessions=Κατάργηση κλειδώματος σύνδεσης -YourSession=Η σύνοδός σας +YourSession=Η σύνοδος σας Sessions=Σύνοδοι χρηστών WebUserGroup=Διακομιστή Web χρήστη / ομάδα NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (%s) might be protected (For example, by OS permissions or by PHP directive open_basedir). diff --git a/htdocs/langs/es_ES/categories.lang b/htdocs/langs/es_ES/categories.lang index 869ae87fa38..1eb64a6e38d 100644 --- a/htdocs/langs/es_ES/categories.lang +++ b/htdocs/langs/es_ES/categories.lang @@ -1,4 +1,4 @@ -# Dolibarr language file - Source file is es_ES - categories +# Dolibarr language file - Source file is en_US - categories CHARSET=UTF-8 Category=Categoría Categories=Categorías @@ -102,4 +102,7 @@ CatSupLinks=Proveedores CatCusLinks=Clientes/Clientes potenciales CatProdLinks=Productos CatMemberLinks=Miembros +CatProdLinks=Productos +CatCusLinks=Clientes/Clientes potenciales +CatSupLinks=Proveedores DeleteFromCat=Eliminar de la categoría diff --git a/htdocs/langs/es_ES/contracts.lang b/htdocs/langs/es_ES/contracts.lang index d837b80842e..dc43e5c8cde 100644 --- a/htdocs/langs/es_ES/contracts.lang +++ b/htdocs/langs/es_ES/contracts.lang @@ -1,4 +1,4 @@ -# Dolibarr language file - Source file is es_ES - contracts +# Dolibarr language file - Source file is en_US - contracts CHARSET=UTF-8 ContractsArea=Área contratos ListOfContracts=Listado de contratos @@ -54,6 +54,7 @@ ListOfRunningContractsLines=Listado de líneas de contratos en servicio ListOfRunningServices=Listado de servicios activos NotActivatedServices=Servicios no activados (con los contratos validados) BoardNotActivatedServices=Servicios a activar con los contratos validados +LastContracts=Los % últimos contratos LastActivatedServices=Los %s últimos servicios activados LastModifiedServices=Los %s últimos servicios modificados EditServiceLine=Edición línea del servicio @@ -89,6 +90,7 @@ ListOfServicesToExpireWithDuration=Listado de servicios activos a expirar en %s ListOfServicesToExpireWithDurationNeg=Listado de servicios expirados más de %s días ListOfServicesToExpire=Listado de servicios activos a expirar NoteListOfYourExpiredServices=Este listado contiene solamente los servicios de contratos de terceros de los que usted es comercial + ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Comercial firmante del contrato TypeContact_contrat_internal_SALESREPFOLL=Comercial seguimiento del contrato diff --git a/htdocs/langs/es_ES/errors.lang b/htdocs/langs/es_ES/errors.lang index 5ce45063ec8..4018dffb0a9 100644 --- a/htdocs/langs/es_ES/errors.lang +++ b/htdocs/langs/es_ES/errors.lang @@ -1,7 +1,9 @@ -# Dolibarr language file - Source file is es_ES - errors +# Dolibarr language file - Source file is en_US - errors CHARSET=UTF-8 + # No errors NoErrorCommitIsDone=Sin errores, es válido + # Errors Error=Error Errors=Errores @@ -123,7 +125,7 @@ ErrorToConnectToMysqlCheckInstance=Error de conexión con el servidor de la base ErrorFailedToAddContact=Error en la adición del contacto ErrorDateMustBeBeforeToday=La fecha no puede ser superior a hoy ErrorPaymentModeDefinedToWithoutSetup=Se ha establecido el modo de pago al tipo %s pero en la configuración del módulo de facturas no se ha indicado la información para mostrar de este modo de pago. -ErrorPHPNeedModule=Error, su PHP debe tener instalado el módulo%s para utilizar esta característica. + # Warnings WarningMandatorySetupNotComplete=Los parámetros obligatorios de configuración no están todavía definidos WarningSafeModeOnCheckExecDir=Atención, está activada la opción PHP safe_mode, el comando deberá estar dentro de un directorio declarado dentro del parámetro php safe_mode_exec_dir. diff --git a/htdocs/langs/es_ES/mails.lang b/htdocs/langs/es_ES/mails.lang index 524b7b2ee82..389ba6b3a87 100644 --- a/htdocs/langs/es_ES/mails.lang +++ b/htdocs/langs/es_ES/mails.lang @@ -80,6 +80,7 @@ MailtoEMail=mailto email (hyperlink) ActivateCheckRead=Activar confirmación de lectura y opción de desuscripción ActivateCheckReadKey=Clave usada para encriptar la URL de la confirmación de lectura y la función de desuscripción EMailSentToNRecipients=E-Mail enviado a %s destinatarios. + # Libelle des modules de liste de destinataires mailing MailingModuleDescContactCompanies=Contactos de terceros (clientes potenciales, clientes, proveedores...) MailingModuleDescDolibarrUsers=Usuarios de Dolibarr @@ -92,6 +93,8 @@ MailingModuleDescContactsByCompanyCategory=Contactos de terceros (por categoría MailingModuleDescContactsByCategory=Contactos/direcciones de terceros por categoría MailingModuleDescMembersCategories=Miembros (por categoría) MailingModuleDescContactsByFunction=Contactos de terceros (por puesto/función) + + LineInFile=Línea %s en archivo RecipientSelectionModules=Módulos de selección de los destinatarios MailSelectedRecipients=Destinatarios seleccionados @@ -119,6 +122,7 @@ TagCheckMail=Seguimiento de la apertura del email TagUnsubscribe=Link de desuscripción TagSignature=Firma del usuario remitente TagMailtoEmail=Email del destinatario + # Module Notifications Notifications=Notificaciones NoNotificationsWillBeSent=Ninguna notificación por e-mail está prevista para este evento y empresa diff --git a/htdocs/langs/es_ES/projects.lang b/htdocs/langs/es_ES/projects.lang index 0131c9bfae2..c50e458c327 100644 --- a/htdocs/langs/es_ES/projects.lang +++ b/htdocs/langs/es_ES/projects.lang @@ -95,8 +95,6 @@ ProjectReportDate=Cambiar las fechas de las tareas en función de la fecha de in ErrorShiftTaskDate=Se ha producido un error en el cambio de las fechas de las tareas ProjectsAndTasksLines=Proyectos y tareas ProjectCreatedInDolibarr=Proyecto %s creado -SelectElement=Elementos vinculables al proyecto: -AddElement=Vincular ##### Types de contacts ##### TypeContact_project_internal_PROJECTLEADER=Jefe de proyecto TypeContact_project_external_PROJECTLEADER=Jefe de proyecto @@ -108,6 +106,6 @@ TypeContact_project_task_internal_CONTRIBUTOR=Participante TypeContact_project_task_external_CONTRIBUTOR=Participante # Documents models DocumentModelBaleine=Modelo de informe de proyecto completo (logo...) -PlannedWorkload=Carga de trabajo prevista -WorkloadOccupation=Porcentaje afectado +PlannedWorkload = Carga de trabajo prevista +WorkloadOccupation= Porcentaje afectado ProjectReferers=Objetos vinculados diff --git a/htdocs/langs/es_ES/sendings.lang b/htdocs/langs/es_ES/sendings.lang index 687e8909e5c..3ce62d11099 100644 --- a/htdocs/langs/es_ES/sendings.lang +++ b/htdocs/langs/es_ES/sendings.lang @@ -61,13 +61,16 @@ ShipmentCreationIsDoneFromOrder=De momento, la creación de una nueva expedició RelatedShippings=Expedición(es) asociada(s) ShipmentLine=Línea de expedición CarrierList=Listado de transportistas + # Sending methods SendingMethodCATCH=Recogido por el cliente SendingMethodTRANS=Transportista SendingMethodCOLSUI=Colissimo + # ModelDocument DocumentModelSirocco=Modelo simple de nota de entrega / recepción DocumentModelTyphon=Modelo completo de nota de entrega / recepción (logo...) + Error_EXPEDITION_ADDON_NUMBER_NotDefined=Constante EXPEDITION_ADDON_NUMBER no definida SumOfProductVolumes=Suma del volumen de los productos SumOfProductWeights=Suma del peso de los productos diff --git a/htdocs/langs/es_ES/suppliers.lang b/htdocs/langs/es_ES/suppliers.lang index 4aec110fbfa..afcd494ee54 100644 --- a/htdocs/langs/es_ES/suppliers.lang +++ b/htdocs/langs/es_ES/suppliers.lang @@ -1,41 +1,41 @@ -# Dolibarr language file - Source file is en_US - suppliers = undefined -CHARSET = UTF-8 -Suppliers = Proveedores -Supplier = Proveedor -AddSupplier = Añadir proveedor -SupplierRemoved = Proveedor eliminado -SuppliersInvoice = Factura proveedor -NewSupplier = Nuevo proveedor -History = Histórico -ListOfSuppliers = Listado de proveedores -ShowSupplier = Mostrar proveedor -OrderDate = Fecha de pedido -BuyingPrice = Precio de compra -BuyingPriceMin = Precio mínimo de compra -BuyingPriceMinShort = Precio mín. compra -AddSupplierPrice = Añadir precio de proveedor -ChangeSupplierPrice = Modificar precio de proveedor -ErrorQtyTooLowForThisSupplier = Cantidad insuficiente para este proveedor -ErrorSupplierCountryIsNotDefined = El país de este proveedor no está definido, corrígalo en su ficha -ProductHasAlreadyReferenceInThisSupplier = Este producto ya tiene una referencia en este proveedor -ReferenceSupplierIsAlreadyAssociatedWithAProduct = Esta referencia de proveedor ya está asociada a la referencia: %s -NoRecordedSuppliers = Sin proveedores registrados -SupplierPayment = Pago a proveedor -SuppliersArea = Área proveedores -RefSupplierShort = Ref. proveedor -Availability = Disponibilidad -ExportDataset_fournisseur_1 = Facturas de proveedores y líneas de factura -ExportDataset_fournisseur_2 = Facturas proveedores y pagos -ExportDataset_fournisseur_3 = Pedidos de proveedores y líneas de pedido -ApproveThisOrder = Aprobar este pedido -ConfirmApproveThisOrder = ¿Está seguro de querer aprobar el pedido a proveedor %s? -DenyingThisOrder = Denegar este pedido -ConfirmDenyingThisOrder = ¿Está seguro de querer denegar el pedido a proveedor %s? -ConfirmCancelThisOrder = ¿Está seguro de querer cancelar el pedido a proveedor %s? -AddCustomerOrder = Crear pedido de cliente -AddCustomerInvoice = Crear factura a cliente -AddSupplierOrder = Crear pedido a proveedor -AddSupplierInvoice = Crear factura de proveedor -ListOfSupplierProductForSupplier = Listado de productos y precios del proveedor %s -NoneOrBatchFileNeverRan = Ninguno o lote %s no se ha ejecutado recientemente -SentToSuppliers = Enviado a proveedores +# Dolibarr language file - Source file is en_US - suppliers +CHARSET=UTF-8 +Suppliers=Proveedores +Supplier=Proveedor +AddSupplier=Añadir proveedor +SupplierRemoved=Proveedor eliminado +SuppliersInvoice=Factura proveedor +NewSupplier=Nuevo proveedor +History=Histórico +ListOfSuppliers=Listado de proveedores +ShowSupplier=Mostrar proveedor +OrderDate=Fecha de pedido +BuyingPrice=Precio de compra +BuyingPriceMin=Precio mínimo de compra +BuyingPriceMinShort=Precio mín. compra +AddSupplierPrice=Añadir precio de proveedor +ChangeSupplierPrice=Modificar precio de proveedor +ErrorQtyTooLowForThisSupplier=Cantidad insuficiente para este proveedor +ErrorSupplierCountryIsNotDefined=El país de este proveedor no está definido, corrígalo en su ficha +ProductHasAlreadyReferenceInThisSupplier=Este producto ya tiene una referencia en este proveedor +ReferenceSupplierIsAlreadyAssociatedWithAProduct=Esta referencia de proveedor ya está asociada a la referencia: %s +NoRecordedSuppliers=Sin proveedores registrados +SupplierPayment=Pago a proveedor +SuppliersArea=Área proveedores +RefSupplierShort=Ref. proveedor +Availability=Disponibilidad +ExportDataset_fournisseur_1=Facturas de proveedores y líneas de factura +ExportDataset_fournisseur_2=Facturas proveedores y pagos +ExportDataset_fournisseur_3=Pedidos de proveedores y líneas de pedido +ApproveThisOrder=Aprobar este pedido +ConfirmApproveThisOrder=¿Está seguro de querer aprobar el pedido a proveedor %s? +DenyingThisOrder=Denegar este pedido +ConfirmDenyingThisOrder=¿Está seguro de querer denegar el pedido a proveedor %s? +ConfirmCancelThisOrder=¿Está seguro de querer cancelar el pedido a proveedor %s? +AddCustomerOrder=Crear pedido de cliente +AddCustomerInvoice=Crear factura a cliente +AddSupplierOrder=Crear pedido a proveedor +AddSupplierInvoice=Crear factura de proveedor +ListOfSupplierProductForSupplier=Listado de productos y precios del proveedor %s +NoneOrBatchFileNeverRan=Ninguno o lote %s no se ha ejecutado recientemente +SentToSuppliers=Enviado a proveedores diff --git a/htdocs/langs/et_EE/admin.lang b/htdocs/langs/et_EE/admin.lang index d2e1dce3b51..fbcf1bef14d 100644 --- a/htdocs/langs/et_EE/admin.lang +++ b/htdocs/langs/et_EE/admin.lang @@ -1,18 +1,18 @@ # Dolibarr language file - Source file is en_US - admin CHARSET=UTF-8 -# Foundation=Foundation +Foundation=Sihtasutus Version=Versioon -VersionProgram=Version programm -VersionLastInstall=Version esialgne install -VersionLastUpgrade=Version viimane upgrade +VersionProgram=Programmi versioon +VersionLastInstall=Praeguse paigalduse versioon +VersionLastUpgrade=Viimase uuenduse versioon VersionExperimental=Eksperimentaalne -VersionDevelopment=Areng +VersionDevelopment=Arendusversioon VersionUnknown=Tundmatu VersionRecommanded=Soovitatav -SessionId=Session ID -SessionSaveHandler=Handler päästa istungid -SessionSavePath=Storage istungil lokaliseerimine -PurgeSessions=Purge istungid +SessionId=Sessioni ID +SessionSaveHandler=Sessioonide haldus +SessionSavePath=Salvestuse sesiooni lokaliseerimine +PurgeSessions=Tühjenda sesioonid # ConfirmPurgeSessions=Do you really want to purge all sessions ? This will disconnect every user (except yourself). NoSessionListWithThisHandler=Salvesta sessiooni handler konfigureeritud PHP ei võimalda loetleda kõik töötab istungid. LockNewSessions=Lukustada uusi ühendusi diff --git a/htdocs/langs/et_EE/bookmarks.lang b/htdocs/langs/et_EE/bookmarks.lang index 0e472ff6d14..c49d9795d9b 100644 --- a/htdocs/langs/et_EE/bookmarks.lang +++ b/htdocs/langs/et_EE/bookmarks.lang @@ -5,17 +5,17 @@ AddThisPageToBookmarks=Lisage see leht järjehoidjad Bookmark=Järjehoidja Bookmarks=Järjehoidjad NewBookmark=Uus järjehoidja -ShowBookmark=Näita järjehoidja +ShowBookmark=Näita järjehoidjat OpenANewWindow=Ava uues aknas -ReplaceWindow=Asendada aktiivse akna +ReplaceWindow=Ava praeguses aknas BookmarkTargetNewWindowShort=Uues aknas -BookmarkTargetReplaceWindowShort=Aktiivse akna -BookmarkTitle=Järjehoidja tiitel +BookmarkTargetReplaceWindowShort=Aktiivses aknas +BookmarkTitle=Järjehoidja pealkiri UrlOrLink=URL -BehaviourOnClick=Käitumine kui URL on klõpsatud +BehaviourOnClick=Käitumine kui URL on klikitud CreateBookmark=Loo järjehoidja -SetHereATitleForLink=Set pealkiri järjehoidja -UseAnExternalHttpLinkOrRelativeDolibarrLink=Välise http URL ega sugulane Dolibarr URL -ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Vali kui leht avada link peab olema praeguse või uues aknas -BookmarksManagement=Järjehoidjad juhtimine +SetHereATitleForLink=Sea pealkiri järjehoidjale +UseAnExternalHttpLinkOrRelativeDolibarrLink=Kasutage välise lehe URL-i või siis Dolibarri sisest linki +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Valige, kas leht avaneb uues või olemasolevas aknas +BookmarksManagement=Järjehoidjate haldus ListOfBookmarks=Järjehoidjad From 614f37639206b3097ca1ea84cc571a54eee57e8a Mon Sep 17 00:00:00 2001 From: simnandez Date: Tue, 3 Sep 2013 09:25:14 +0200 Subject: [PATCH 22/31] Trad: Fix bad descriptor --- htdocs/langs/ca_ES/agenda.lang | 2 +- htdocs/langs/es_ES/agenda.lang | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/langs/ca_ES/agenda.lang b/htdocs/langs/ca_ES/agenda.lang index c8cc4592e4b..0c24171b9b8 100644 --- a/htdocs/langs/ca_ES/agenda.lang +++ b/htdocs/langs/ca_ES/agenda.lang @@ -1,4 +1,4 @@ -# Dolibarr language file - Source file is ca_ES - agenda +# Dolibarr language file - Source file is en_US - agenda CHARSET=UTF-8 IdAgenda=ID esdeveniment Actions=Esdeveniments diff --git a/htdocs/langs/es_ES/agenda.lang b/htdocs/langs/es_ES/agenda.lang index 35a2c7f1087..3bf58cb4fdc 100644 --- a/htdocs/langs/es_ES/agenda.lang +++ b/htdocs/langs/es_ES/agenda.lang @@ -1,4 +1,4 @@ -# Dolibarr language file - Source file is es_ES - agenda +# Dolibarr language file - Source file is en_US - agenda CHARSET=UTF-8 IdAgenda=ID evento Actions=Eventos From dfdc9da781fda557038b4293dda79ca10b816732 Mon Sep 17 00:00:00 2001 From: Grand Philippe Date: Tue, 3 Sep 2013 11:15:19 +0200 Subject: [PATCH 23/31] Add an additional description for the category products --- htdocs/core/lib/pdf.lib.php | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index a4b091347d0..621b06965e1 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -1031,7 +1031,23 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl $libelleproduitservice=$prefix_prodserv.$ref_prodserv.$libelleproduitservice; } } - + + // Add an additional description for the category products + if ($conf->categorie->enabled) + { + include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; + $categstatic=new Categorie($db); + // recovering the list of all the categories linked to product + $tblcateg=$categstatic->containing($idprod,0); + foreach ($tblcateg as $cate) + { + // Adding the descriptions if they are filled + $desccateg=$cate->add_description; + if ($desccateg) + $libelleproduitservice.='__N__'.$desccateg; + } + } + if (! empty($object->lines[$i]->date_start) || ! empty($object->lines[$i]->date_end)) { $format='day'; From e40452f3b213307c3a0ccdfee833502d8e622f9d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 3 Sep 2013 11:36:28 +0200 Subject: [PATCH 24/31] Fix: Bug if modules not enabled --- .../boxes/box_graph_product_distribution.php | 31 +++++++++++++------ 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/htdocs/core/boxes/box_graph_product_distribution.php b/htdocs/core/boxes/box_graph_product_distribution.php index 0cff88d41b4..83baee66ff1 100644 --- a/htdocs/core/boxes/box_graph_product_distribution.php +++ b/htdocs/core/boxes/box_graph_product_distribution.php @@ -69,7 +69,6 @@ class box_graph_product_distribution extends ModeleBoxes include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; include_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php'; include_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; - $facturestatic=new Facture($db); $text = $langs->trans("BoxProductDistribution",$max); $this->info_box_head = array( @@ -90,8 +89,11 @@ class box_graph_product_distribution extends ModeleBoxes $showinvoicenb=GETPOST($param_showinvoicenb,'alpha',4); $showpropalnb=GETPOST($param_showpropalnb,'alpha',4); $showordernb=GETPOST($param_showordernb,'alpha',4); - if (empty($showinvoicenb) && empty($showpropalnb) && empty($showordernb)) { $showpropalnb=1; $showinvoicenb=1; $showordernb=1; } + if (empty($conf->facture->enabled) || empty($user->rights->facture->lire)) $showinvoicenb=0; + if (empty($conf->propal->enabled) || empty($user->rights->propal->lire)) $showpropalnb=0; + if (empty($conf->commande->enabled) || empty($user->rights->commande->lire)) $showordernb=0; + $nowarray=dol_getdate(dol_now(),true); $year=(GETPOST($param_year,'',4)?GETPOST($param_year,'int',4):$nowarray['year']); @@ -107,7 +109,7 @@ class box_graph_product_distribution extends ModeleBoxes $socid=empty($user->societe_id)?0:$user->societe_id; $userid=0; // No filter on user creation - if ($user->rights->facture->lire) + if (! empty($conf->facture->enabled) && ! empty($user->rights->facture->lire)) { include_once DOL_DOCUMENT_ROOT.'/core/class/dolgraph.class.php'; @@ -170,7 +172,7 @@ class box_graph_product_distribution extends ModeleBoxes } } - if ($user->rights->propal->lire) + if (! empty($conf->propal->enabled) && ! empty($user->rights->propal->lire)) { // Build graphic number of object. $data = array(array('Lib',val1,val2,val3),...) if ($showpropalnb) @@ -228,7 +230,7 @@ class box_graph_product_distribution extends ModeleBoxes } } - if ($user->rights->commande->lire) + if (! empty($conf->commande->enabled) && ! empty($user->rights->commande->lire)) { // Build graphic number of object. $data = array(array('Lib',val1,val2,val3),...) if ($showordernb) @@ -300,11 +302,20 @@ class box_graph_product_distribution extends ModeleBoxes $stringtoshow.=''; $stringtoshow.=''; $stringtoshow.=''; - $stringtoshow.=' '.$langs->trans("ForCustomersInvoices"); - $stringtoshow.='   '; - $stringtoshow.=' '.$langs->trans("ForProposals"); - $stringtoshow.=' '; - $stringtoshow.=' '.$langs->trans("ForCustomersOrders"); + if (! empty($conf->facture->enabled) || ! empty($user->rights->facture->lire)) + { + $stringtoshow.=' '.$langs->trans("ForCustomersInvoices"); + $stringtoshow.='   '; + } + if (! empty($conf->propal->enabled) || ! empty($user->rights->propal->lire)) + { + $stringtoshow.=' '.$langs->trans("ForProposals"); + $stringtoshow.=' '; + } + if (! empty($conf->commande->enabled) || ! empty($user->rights->commande->lire)) + { + $stringtoshow.=' '.$langs->trans("ForCustomersOrders"); + } $stringtoshow.='
'; $stringtoshow.=$langs->trans("Year").' '; $stringtoshow.=''; From 6d6f30725bf190a40bb20de6b565f38a5ef2b60f Mon Sep 17 00:00:00 2001 From: Grand Philippe Date: Tue, 3 Sep 2013 11:41:33 +0200 Subject: [PATCH 25/31] Add an additional description for the category products --- htdocs/core/lib/pdf.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index 621b06965e1..6be4eaf2a61 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -1033,7 +1033,7 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl } // Add an additional description for the category products - if ($conf->categorie->enabled) + if (! empty($conf->categorie->enabled)) { include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; $categstatic=new Categorie($db); From 397d0e3b8197113400ef3f240aeb3e78b1e6af0c Mon Sep 17 00:00:00 2001 From: Grand Philippe Date: Tue, 3 Sep 2013 15:12:15 +0200 Subject: [PATCH 26/31] Add an additional description for the category products --- htdocs/categories/class/categorie.class.php | 37 +++++++++++++-------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/htdocs/categories/class/categorie.class.php b/htdocs/categories/class/categorie.class.php index fddbefa8d5f..09d8f373543 100644 --- a/htdocs/categories/class/categorie.class.php +++ b/htdocs/categories/class/categorie.class.php @@ -5,7 +5,7 @@ * Copyright (C) 2006-2012 Regis Houssin * Copyright (C) 2006-2012 Laurent Destailleur * Copyright (C) 2007 Patrick Raguin - * Copyright (C) 2013 Juanjo Menent + * Copyright (C) 2013 Philippe Grand * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -44,6 +44,7 @@ class Categorie var $fk_parent; var $label; var $description; + var $add_description; // For taxes like DEEE... var $socid; var $type; // 0=Product, 1=Supplier, 2=Customer/Prospect, 3=Member var $import_key; @@ -73,7 +74,7 @@ class Categorie { global $conf; - $sql = "SELECT rowid, fk_parent, entity, label, description, fk_soc, visible, type"; + $sql = "SELECT rowid, fk_parent, entity, label, description, add_description, fk_soc, visible, type"; $sql.= " FROM ".MAIN_DB_PREFIX."categorie"; if ($id) { @@ -93,14 +94,15 @@ class Categorie { $res = $this->db->fetch_array($resql); - $this->id = $res['rowid']; - $this->fk_parent = $res['fk_parent']; - $this->label = $res['label']; - $this->description = $res['description']; - $this->socid = $res['fk_soc']; - $this->visible = $res['visible']; - $this->type = $res['type']; - $this->entity = $res['entity']; + $this->id = $res['rowid']; + $this->fk_parent = $res['fk_parent']; + $this->label = $res['label']; + $this->description = $res['description']; + $this->add_description = $res['add_description']; + $this->socid = $res['fk_soc']; + $this->visible = $res['visible']; + $this->type = $res['type']; + $this->entity = $res['entity']; $this->db->free($resql); @@ -156,6 +158,7 @@ class Categorie $sql.= "fk_parent,"; $sql.= " label,"; $sql.= " description,"; + $sql.= " add_description,"; if (! empty($conf->global->CATEGORY_ASSIGNED_TO_A_CUSTOMER)) { $sql.= "fk_soc,"; @@ -168,6 +171,7 @@ class Categorie $sql.= $this->fk_parent.","; $sql.= "'".$this->db->escape($this->label)."',"; $sql.= "'".$this->db->escape($this->description)."',"; + $sql.= "'".$this->db->escape($this->add_description)."',"; if (! empty($conf->global->CATEGORY_ASSIGNED_TO_A_CUSTOMER)) { $sql.= ($this->socid != -1 ? $this->socid : 'null').","; @@ -244,7 +248,14 @@ class Categorie $sql = "UPDATE ".MAIN_DB_PREFIX."categorie"; $sql.= " SET label = '".$this->db->escape($this->label)."',"; - $sql.= " description = '".$this->db->escape($this->description)."'"; + if (! empty($this->description)) + { + $sql .= ", description = '".$this->db->escape($this->description)."'"; + } + if (! empty($this->add_description)) + { + $sql .= ", add_description = '".$this->db->escape($this->add_description)."'"; + } if (! empty($conf->global->CATEGORY_ASSIGNED_TO_A_CUSTOMER)) { $sql .= ", fk_soc = ".($this->socid != -1 ? $this->socid : 'null'); @@ -611,8 +622,8 @@ class Categorie $sql = "SELECT fk_parent as id_parent, rowid as id_son"; $sql.= " FROM ".MAIN_DB_PREFIX."categorie"; $sql.= " WHERE fk_parent != 0"; - $sql.= " AND entity IN (".getEntity('category',1).")"; - + $sql.= " AND entity = ".$conf->entity; + dol_syslog(get_class($this)."::load_motherof sql=".$sql); $resql = $this->db->query($sql); if ($resql) From 9f01aa51a3a6498475359c19e60187b9791a1945 Mon Sep 17 00:00:00 2001 From: Grand Philippe Date: Tue, 3 Sep 2013 15:19:03 +0200 Subject: [PATCH 27/31] fix regression --- htdocs/categories/class/categorie.class.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/categories/class/categorie.class.php b/htdocs/categories/class/categorie.class.php index 09d8f373543..b4fa020e2b3 100644 --- a/htdocs/categories/class/categorie.class.php +++ b/htdocs/categories/class/categorie.class.php @@ -5,6 +5,7 @@ * Copyright (C) 2006-2012 Regis Houssin * Copyright (C) 2006-2012 Laurent Destailleur * Copyright (C) 2007 Patrick Raguin + * Copyright (C) 2013 Juanjo Menent * Copyright (C) 2013 Philippe Grand * * This program is free software; you can redistribute it and/or modify @@ -622,7 +623,7 @@ class Categorie $sql = "SELECT fk_parent as id_parent, rowid as id_son"; $sql.= " FROM ".MAIN_DB_PREFIX."categorie"; $sql.= " WHERE fk_parent != 0"; - $sql.= " AND entity = ".$conf->entity; + $sql.= " AND entity IN (".getEntity('category',1).")"; dol_syslog(get_class($this)."::load_motherof sql=".$sql); $resql = $this->db->query($sql); From 222eb18bb9450bfd2d3c5388a37602e5dfded803 Mon Sep 17 00:00:00 2001 From: Grand Philippe Date: Tue, 3 Sep 2013 17:37:22 +0200 Subject: [PATCH 28/31] fix : Fatal error: Call to undefined function dol_time_plus_duree() --- htdocs/product/index.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/product/index.php b/htdocs/product/index.php index f9eb16e23de..6104702f6cd 100644 --- a/htdocs/product/index.php +++ b/htdocs/product/index.php @@ -25,6 +25,7 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; $type=isset($_GET["type"])?$_GET["type"]:(isset($_POST["type"])?$_POST["type"]:''); if ($type =='' && !$user->rights->produit->lire) $type='1'; // Force global page on service page only From 3bfaadc05412155d153745b09ade7983d42dfcc5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 3 Sep 2013 18:08:50 +0200 Subject: [PATCH 29/31] Work on feature to change rule for vat calculation rounding --- htdocs/core/class/html.form.class.php | 6 ++-- htdocs/fourn/facture/fiche.php | 51 ++++++++++++++++----------- htdocs/langs/en_US/compta.lang | 5 +++ htdocs/langs/fr_FR/compta.lang | 5 +++ htdocs/theme/eldy/style.css.php | 6 ---- 5 files changed, 44 insertions(+), 29 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index ff31407b5b8..be4257bd174 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -345,9 +345,9 @@ class Form * * @param string $text Text to show * @param string $htmltext HTML content of tooltip. Must be HTML/UTF8 encoded. - * @param int $tooltipon 1=tooltip sur texte, 2=tooltip sur picto, 3=tooltip sur les 2 - * @param int $direction -1=Le picto est avant, 0=pas de picto, 1=le picto est apres - * @param string $img Code img du picto (use img_xxx() function to get it) + * @param int $tooltipon 1=tooltip on text, 2=tooltip on image, 3=tooltip sur les 2 + * @param int $direction -1=image is before, 0=no image, 1=image is after + * @param string $img Html code for image (use img_xxx() function to get it) * @param string $extracss Add a CSS style to td tags * @param int $notabs 0=Include table and tr tags, 1=Do not include table and tr tags, 2=use div, 3=use span * @param string $incbefore Include code before the text diff --git a/htdocs/fourn/facture/fiche.php b/htdocs/fourn/facture/fiche.php index ebcb324f557..f886a714b92 100644 --- a/htdocs/fourn/facture/fiche.php +++ b/htdocs/fourn/facture/fiche.php @@ -1521,13 +1521,11 @@ else /* * List of payments */ - $nbrows=7; $nbcols=2; + $nbrows=9; $nbcols=2; if (! empty($conf->projet->enabled)) $nbrows++; if (! empty($conf->banque->enabled)) $nbcols++; // Local taxes - // TODO I use here $societe->localtax1_assuj. Before it was $mysoc->localtax1_assuj, but this is a supplier invoice, so made by supplier, so depends on supplier properties - if ($mysoc->country_code=='ES') { if($mysoc->localtax1_assuj=="1") $nbrows++; @@ -1683,8 +1681,21 @@ else $alreadypaid=$object->getSommePaiement(); print '
'; - print ''; - print ''; + print ''; + print ''; // Amount Local Taxes //TODO: Place into a function to control showing by country or study better option @@ -1693,14 +1704,14 @@ else if ($mysoc->localtax1_assuj=="1") //Localtax1 RE { print ''; - print ''; - print ''; + print ''; + print ''; } if ($societe->localtax2_assuj=="1") //Localtax2 IRPF { print ''; - print ''; - print ''; + print ''; + print ''; } } else @@ -1708,17 +1719,17 @@ else if ($societe->localtax1_assuj=="1") //Localtax1 RE { print ''; - print ''; - print ''; + print ''; + print ''; } if ($societe->localtax2_assuj=="1") //Localtax2 IRPF { print ''; - print ''; - print ''; + print ''; + print ''; } } - print ''; + print ''; // Project if (! empty($conf->projet->enabled)) @@ -2132,13 +2143,13 @@ else } - //Make payments + // Make payments if ($action != 'edit' && $object->statut == 1 && $object->paye == 0 && $user->societe_id == 0) { - print ''.$langs->trans('DoPayment').''; + print ''.$langs->trans('DoPayment').''; } - //Classify paid + // Classify paid if ($action != 'edit' && $object->statut == 1 && $object->paye == 0 && $user->societe_id == 0) { print ''.$langs->trans('ClassifyPaid').''; } - //Validate + // Validate if ($action != 'edit' && $object->statut == 0) { if (count($object->lines)) @@ -2165,13 +2176,13 @@ else } } - //Clone + // Clone if ($action != 'edit' && $user->rights->fournisseur->facture->creer) { print 'socid.'">'.$langs->trans('ToClone').''; } - //Delete + // Delete if ($action != 'edit' && $user->rights->fournisseur->facture->supprimer) { print ''.$langs->trans('Delete').''; diff --git a/htdocs/langs/en_US/compta.lang b/htdocs/langs/en_US/compta.lang index fe41e11d08b..d7157286902 100644 --- a/htdocs/langs/en_US/compta.lang +++ b/htdocs/langs/en_US/compta.lang @@ -157,4 +157,9 @@ ByProductsAndServices=By products and services RefExt=External ref ToCreateAPredefinedInvoice=To create a predefined invoice, create a standard invoice then, without validating it, click onto button "Convert to predefined invoice". LinkedOrder=linked to command +ReCalculate=Recalculate +Mode1=Methode 1 +Mode2=Method 2 +CalculationRuleDesc=To calculate total VAT, there is two methods:
Method 1 is rounding vat on each line, then summing them.
Method 2 is summing all vat on each line, then rounding result.
Final result may differs from few cents. Default mode is mode %s. +CalculationRuleDescSupplier=according to supplier, choose appropriate method to apply same calculation rule and get same result expected by your supplier. diff --git a/htdocs/langs/fr_FR/compta.lang b/htdocs/langs/fr_FR/compta.lang index 362d38ffc8b..6a752b69e10 100644 --- a/htdocs/langs/fr_FR/compta.lang +++ b/htdocs/langs/fr_FR/compta.lang @@ -157,4 +157,9 @@ ByProductsAndServices=Par produits et services RefExt=Référence externe ToCreateAPredefinedInvoice=Pour créer une facture prédéfinie, créer une facture standard puis sans la valider, cliquer sur le bouton "Convertir en facture prédéfine". LinkedOrder=Lier à une commande +ReCalculate=Recalculer +Mode1=Mode 1 +Mode2=Mode 2 +CalculationRuleDesc=Pour calculer le total de TVA, il existe 2 modes:
Le mode 1 consiste à arrondir la tva de chaque ligne et à sommer cet arrondi.
Le mode 2 consiste à sommer la tva de chaque ligne puis à l'arrondir.
Les résultats peuvent différer de quelques centimes. Le mode par défaut est le mode %s. +CalculationRuleDescSupplier=Selon le mode utilisé par le fournisseur, choisissez le mode adéquant afin d'appliquer la même règle et obtenir un résultat identique au mode appliqué par votre fournisseur. diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php index f71c472f0cd..c01d2995db5 100644 --- a/htdocs/theme/eldy/style.css.php +++ b/htdocs/theme/eldy/style.css.php @@ -1880,12 +1880,6 @@ div.tabBar .noborder { border: 1px solid #AAA; text-align: center; border-radius: 5px; - background-image: linear-gradient(bottom, rgba(255,255,255,.3) 0%, rgba(164,164,164,.3) 100%); - background-image: -o-linear-gradient(bottom, rgba(255,255,255,.3) 0%, rgba(164,164,164,.3) 100%); - background-image: -moz-linear-gradient(bottom, rgba(255,255,255,.3) 0%, rgba(164,164,164,.3) 100%); - background-image: -webkit-linear-gradient(bottom, rgba(255,255,255,.3) 0%, rgba(164,164,164,.3) 100%); - background-image: -ms-linear-gradient(bottom, rgba(255,255,255,.3) 0%, rgba(164,164,164,.3) 100%); - background-image: -webkit-gradient( linear, left bottom, left top, color-stop(0, rgba(255,255,255,.3)), color-stop(1, rgba(164,164,164,.3)) ); } .boxtable { From 6ae360354949afc47b819824edab788a340edd2d Mon Sep 17 00:00:00 2001 From: simnandez Date: Tue, 3 Sep 2013 18:16:30 +0200 Subject: [PATCH 30/31] Trad: Add missing translations --- htdocs/langs/ca_ES/products.lang | 6 ++++++ htdocs/langs/en_US/products.lang | 6 ++++++ htdocs/langs/es_ES/products.lang | 6 ++++++ htdocs/langs/fr_FR/products.lang | 4 ++++ 4 files changed, 22 insertions(+) diff --git a/htdocs/langs/ca_ES/products.lang b/htdocs/langs/ca_ES/products.lang index 1725feac6d2..126a0778e55 100644 --- a/htdocs/langs/ca_ES/products.lang +++ b/htdocs/langs/ca_ES/products.lang @@ -199,3 +199,9 @@ CostPmpHT=Cost de compra ProductUsedForBuild=Auto consumit per producció ProductBuilded=Producció completada ProductsMultiPrice=Producte multi-preu +ProductSellByQuarterHT=Vendes trimestrals de productes +ServiceSellByQuarterHT=Vendes trimestrals de serveis +Quarter1=1er. Trimestre +Quarter2=2on. Trimestre +Quarter3=3er. Trimestre +Quarter4=4at. Trimestre \ No newline at end of file diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang index d527b2bc047..fde34aa52a0 100644 --- a/htdocs/langs/en_US/products.lang +++ b/htdocs/langs/en_US/products.lang @@ -199,3 +199,9 @@ CostPmpHT=Net total VWAP ProductUsedForBuild=Auto consumed by production ProductBuilded=Production completed ProductsMultiPrice=Product multi-price +ProductSellByQuarterHT=Products turnover quarterly VWAP +ServiceSellByQuarterHT=Services turnover quarterly VWAP +Quarter1=1st. Quarter +Quarter2=2nd. Quarter +Quarter3=3rd. Quarter +Quarter4=4th. Quarter \ No newline at end of file diff --git a/htdocs/langs/es_ES/products.lang b/htdocs/langs/es_ES/products.lang index 7ca6a399af5..48d1d32a848 100644 --- a/htdocs/langs/es_ES/products.lang +++ b/htdocs/langs/es_ES/products.lang @@ -199,3 +199,9 @@ CostPmpHT=Coste de compra sin IVA ProductUsedForBuild=Auto consumido por producción ProductBuilded=Producción completada ProductsMultiPrice=Producto multi-precio +ProductSellByQuarterHT=Ventas trimestrales de productos +ServiceSellByQuarterHT=Ventas trimestrales de servicios +Quarter1=1er. Trimestre +Quarter2=2º Trimestre +Quarter3=3er. Trimestre +Quarter4=4º Trimestre \ No newline at end of file diff --git a/htdocs/langs/fr_FR/products.lang b/htdocs/langs/fr_FR/products.lang index 916d4d9e6ff..98bfaad1ae5 100644 --- a/htdocs/langs/fr_FR/products.lang +++ b/htdocs/langs/fr_FR/products.lang @@ -201,3 +201,7 @@ ProductBuilded=Fabrication terminée ProductsMultiPrice=Produits multi-prix ProductSellByQuarterHT=Chiffre d'affaire trimestrielle HT des produits ServiceSellByQuarterHT=Chiffre d'affaire trimestrielle HT des services +Quarter1=1er. Trimestre +Quarter2=2ème. Trimestre +Quarter3=3ème. Trimestre +Quarter4=4ème. Trimestre \ No newline at end of file From c5020056b3786f2c478473dc1423352a355ceed7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 3 Sep 2013 18:18:22 +0200 Subject: [PATCH 31/31] Revert commit. Bug into update function. Also what was difference of new field ? --- htdocs/categories/class/categorie.class.php | 32 +++++++-------------- 1 file changed, 10 insertions(+), 22 deletions(-) diff --git a/htdocs/categories/class/categorie.class.php b/htdocs/categories/class/categorie.class.php index b4fa020e2b3..2690f9de52c 100644 --- a/htdocs/categories/class/categorie.class.php +++ b/htdocs/categories/class/categorie.class.php @@ -45,7 +45,6 @@ class Categorie var $fk_parent; var $label; var $description; - var $add_description; // For taxes like DEEE... var $socid; var $type; // 0=Product, 1=Supplier, 2=Customer/Prospect, 3=Member var $import_key; @@ -75,7 +74,7 @@ class Categorie { global $conf; - $sql = "SELECT rowid, fk_parent, entity, label, description, add_description, fk_soc, visible, type"; + $sql = "SELECT rowid, fk_parent, entity, label, description, fk_soc, visible, type"; $sql.= " FROM ".MAIN_DB_PREFIX."categorie"; if ($id) { @@ -95,15 +94,14 @@ class Categorie { $res = $this->db->fetch_array($resql); - $this->id = $res['rowid']; - $this->fk_parent = $res['fk_parent']; - $this->label = $res['label']; - $this->description = $res['description']; - $this->add_description = $res['add_description']; - $this->socid = $res['fk_soc']; - $this->visible = $res['visible']; - $this->type = $res['type']; - $this->entity = $res['entity']; + $this->id = $res['rowid']; + $this->fk_parent = $res['fk_parent']; + $this->label = $res['label']; + $this->description = $res['description']; + $this->socid = $res['fk_soc']; + $this->visible = $res['visible']; + $this->type = $res['type']; + $this->entity = $res['entity']; $this->db->free($resql); @@ -159,7 +157,6 @@ class Categorie $sql.= "fk_parent,"; $sql.= " label,"; $sql.= " description,"; - $sql.= " add_description,"; if (! empty($conf->global->CATEGORY_ASSIGNED_TO_A_CUSTOMER)) { $sql.= "fk_soc,"; @@ -172,7 +169,6 @@ class Categorie $sql.= $this->fk_parent.","; $sql.= "'".$this->db->escape($this->label)."',"; $sql.= "'".$this->db->escape($this->description)."',"; - $sql.= "'".$this->db->escape($this->add_description)."',"; if (! empty($conf->global->CATEGORY_ASSIGNED_TO_A_CUSTOMER)) { $sql.= ($this->socid != -1 ? $this->socid : 'null').","; @@ -249,14 +245,7 @@ class Categorie $sql = "UPDATE ".MAIN_DB_PREFIX."categorie"; $sql.= " SET label = '".$this->db->escape($this->label)."',"; - if (! empty($this->description)) - { - $sql .= ", description = '".$this->db->escape($this->description)."'"; - } - if (! empty($this->add_description)) - { - $sql .= ", add_description = '".$this->db->escape($this->add_description)."'"; - } + $sql.= " description = '".$this->db->escape($this->description)."'"; if (! empty($conf->global->CATEGORY_ASSIGNED_TO_A_CUSTOMER)) { $sql .= ", fk_soc = ".($this->socid != -1 ? $this->socid : 'null'); @@ -624,7 +613,6 @@ class Categorie $sql.= " FROM ".MAIN_DB_PREFIX."categorie"; $sql.= " WHERE fk_parent != 0"; $sql.= " AND entity IN (".getEntity('category',1).")"; - dol_syslog(get_class($this)."::load_motherof sql=".$sql); $resql = $this->db->query($sql); if ($resql)
'.$langs->trans("ProductSellByQuarterHT").'
'.$langs->trans("SerciceSellByQuarterHT").'
'.$langs->trans("ServiceSellByQuarterHT").''.$langs->trans("Quarter1").''.$langs->trans("Quarter2").''.$langs->trans("Quarter3").'
'; print $langs->trans("FreeLegalTextOnContracts").' ('.$langs->trans("AddCRIfTooLong").')
'; -print ''; +print ''; print '
'; print ''; print "
'; print $langs->trans("WatermarkOnDraftContractCards").'
'; -print ''; +print ''; print '
'; print ''; print "
'.$langs->trans('Status').''.$object->getLibStatut(4,$alreadypaid).'
'.$langs->trans('AmountHT').''.price($object->total_ht).''.$langs->trans('Currency'.$conf->currency).'
'.$langs->trans('AmountVAT').''.price($object->total_tva).''.$langs->trans('Currency'.$conf->currency).'
'.$langs->trans('AmountHT').''.price($object->total_ht,1,$langs,0,-1,-1,$conf->currency).' 
'.$langs->trans('AmountVAT').''.price($object->total_tva,1,$langs,0,-1,-1,$conf->currency).''; + if (! empty($conf->global->MAIN_FEATURES_LEVEL)) + { + if (GETPOST('calculationrule')) $calculationrule=GETPOST('calculationrule','alpha'); + else $calculationrule=(empty($conf->global->MAIN_ROUNDOFTOTAL_NOT_TOTALOFROUND)?'totalofround':'roundoftotal'); + if ($calculationrule == 'totalofround') $calculationrulenum=1; + else $calculationrulenum=2; + $s=$langs->trans("ReCalculate").' '; + $s.=''.$langs->trans("Mode1").''; + $s.=' / '; + $s.=''.$langs->trans("Mode2").''; + print $form->textwithtooltip($s, $langs->trans("CalculationRuleDesc",$calculationrulenum).'
'.$langs->trans("CalculationRuleDescSupplier"), 2, 1, img_picto('','help')); + } + print '
'.$langs->transcountry("AmountLT1",$societe->country_code).''.price($object->total_localtax1).''.$langs->trans("Currency".$conf->currency).'
'.price($object->total_localtax1,1,$langs,0,-1,-1,$conf->currency).' 
'.$langs->transcountry("AmountLT2",$societe->country_code).''.price($object->total_localtax2).''.$langs->trans("Currency".$conf->currency).'
'.price($object->total_localtax2,1,$langs,0,-1,-1,$conf->currency).' 
'.$langs->transcountry("AmountLT1",$societe->country_code).''.price($object->total_localtax1).''.$langs->trans("Currency".$conf->currency).'
'.price($object->total_localtax1,1,$langs,0,-1,-1,$conf->currency).' 
'.$langs->transcountry("AmountLT2",$societe->country_code).''.price($object->total_localtax2).''.$langs->trans("Currency".$conf->currency).'
'.price($object->total_localtax2,1,$langs,0,-1,-1,$conf->currency).' 
'.$langs->trans('AmountTTC').''.price($object->total_ttc).''.$langs->trans('Currency'.$conf->currency).'
'.$langs->trans('AmountTTC').''.price($object->total_ttc,1,$langs,0,-1,-1,$conf->currency).'