From 44746c1899ceddd876f6a775a7e80455ca723691 Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Fri, 15 Apr 2016 13:46:20 +0200 Subject: [PATCH 01/77] Merge remote-tracking branch 'upstream/3.8' into 3.9 Conflicts: htdocs/compta/localtax/quadri_detail.php --- htdocs/compta/localtax/quadri_detail.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/localtax/quadri_detail.php b/htdocs/compta/localtax/quadri_detail.php index a4eaccba35b..925ca7fc592 100644 --- a/htdocs/compta/localtax/quadri_detail.php +++ b/htdocs/compta/localtax/quadri_detail.php @@ -220,9 +220,9 @@ else foreach(array_keys($x_coll) as $my_coll_rate) { $x_both[$my_coll_rate]['coll']['totalht'] = $x_coll[$my_coll_rate]['totalht']; - $x_both[$my_coll_rate]['coll']['vat'] = $x_coll[$my_coll_rate]['vat']; + $x_both[$my_coll_rate]['coll']['localtax'.$local] = $x_coll[$my_coll_rate]['localtax'.$local]; $x_both[$my_coll_rate]['paye']['totalht'] = 0; - $x_both[$my_coll_rate]['paye']['vat'] = 0; + $x_both[$my_coll_rate]['paye']['localtax'.$local] = 0; $x_both[$my_coll_rate]['coll']['links'] = ''; $x_both[$my_coll_rate]['coll']['detail'] = array(); foreach($x_coll[$my_coll_rate]['facid'] as $id=>$dummy) From e2e95641a3198d527fe1b39667dd3eb803aca3b8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 23 May 2016 12:27:02 +0200 Subject: [PATCH 02/77] FIX Search supplier ref on contract --- htdocs/contrat/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/contrat/list.php b/htdocs/contrat/list.php index 669f2b09775..e9a9e2cb8bc 100644 --- a/htdocs/contrat/list.php +++ b/htdocs/contrat/list.php @@ -180,7 +180,7 @@ if ($resql) print ''; print ''; print ''; - print ''; + print ''; print ''; print ''; print ''; From 1ce91bac06f445c955e710d061caab0bb038d0ce Mon Sep 17 00:00:00 2001 From: gauthier Date: Wed, 25 May 2016 11:25:19 +0200 Subject: [PATCH 03/77] FIX : same page added several times on mergepropal option --- htdocs/core/modules/propale/doc/pdf_azur.modules.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/modules/propale/doc/pdf_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php index f8e6874f3b2..54ffdf0c437 100644 --- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php @@ -710,7 +710,7 @@ class pdf_azur extends ModelePDFPropales if (file_exists($infile) && is_readable($infile)) { $pagecount = $pdf->setSourceFile($infile); for($i = 1; $i <= $pagecount; $i ++) { - $tplIdx = $pdf->importPage(1); + $tplIdx = $pdf->importPage($i); if ($tplIdx!==false) { $s = $pdf->getTemplatesize($tplIdx); $pdf->AddPage($s['h'] > $s['w'] ? 'P' : 'L'); From 71ee941cf84f3954b69bd0a6927cc6eb575dc02e Mon Sep 17 00:00:00 2001 From: gauthier Date: Wed, 25 May 2016 12:25:39 +0200 Subject: [PATCH 04/77] FIX : SQL error function on getAvailableDiscounts function, on bill create mode if socid is empty --- htdocs/compta/facture.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index c13d8197801..ccfd057ccde 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -1935,7 +1935,7 @@ if ($action == 'create') $dateinvoice = (empty($dateinvoice)?(empty($conf->global->MAIN_AUTOFILL_DATE)?-1:''):$dateinvoice); // Do not set 0 here (0 for a date is 1970) } - $absolute_discount = $soc->getAvailableDiscounts(); + if(!empty($soc->id)) $absolute_discount = $soc->getAvailableDiscounts(); if (! empty($conf->use_javascript_ajax)) { From 41a41f8931a7cf79299ce9e5150aa3271d4cb1d0 Mon Sep 17 00:00:00 2001 From: Florian HENRY Date: Tue, 31 May 2016 22:55:49 +0200 Subject: [PATCH 05/77] FIX #5209 --- htdocs/societe/consumption.php | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/htdocs/societe/consumption.php b/htdocs/societe/consumption.php index 621a8988a04..e07e13ef751 100644 --- a/htdocs/societe/consumption.php +++ b/htdocs/societe/consumption.php @@ -115,7 +115,7 @@ $head = societe_prepare_head($object); dol_fiche_head($head, 'consumption', $langs->trans("ThirdParty"),0,'company'); dol_banner_tab($object, 'socid', '', ($user->societe_id?0:1), 'rowid', 'nom'); - + print '
'; print '
'; @@ -270,7 +270,7 @@ if ($type_element == 'contract') { // Supplier : Show products from orders. require_once DOL_DOCUMENT_ROOT.'/contrat/class/contrat.class.php'; $documentstatic=new Contrat($db); - $documentstaticline=new ContratLigne($db); + $documentstaticline=new ContratLigne($db); $sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_contrat as dateprint, d.statut as status, '; $tables_from = MAIN_DB_PREFIX."contrat as c,".MAIN_DB_PREFIX."contratdet as d"; $where = " WHERE c.fk_soc = s.rowid AND s.rowid = ".$socid; @@ -304,7 +304,7 @@ if ($month > 0) { $sql.= " AND ".$dateprint." BETWEEN '".$db->idate($start)."' AND '".$db->idate($end)."'"; } if ($sref) $sql.= " AND ".$doc_number." LIKE '%".$sref."%'"; -if ($sprod_fulldescr) +if ($sprod_fulldescr) { $sql.= " AND (d.description LIKE '%".$db->escape($sprod_fulldescr)."%'"; if (GETPOST('type_element') != 'fichinter') $sql.= " OR p.ref LIKE '%".$db->escape($sprod_fulldescr)."%'"; @@ -330,10 +330,10 @@ if ($sql_select) { $resql=$db->query($sql); if (!$resql) dol_print_error($db); - + $var=true; $num = $db->num_rows($resql); - + $param="&socid=".$socid."&type_element=".$type_element; if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; if ($sprod_fulldescr) $param.= "&sprod_fulldescr=".urlencode($sprod_fulldescr); @@ -341,15 +341,15 @@ if ($sql_select) if ($month) $param.= "&month=".$month; if ($year) $param.= "&year=".$year; if ($optioncss != '') $param.='&optioncss='.$optioncss; - + print_barre_liste($langs->trans('ProductsIntoElements').' '.$typeElementString.' '.$button, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder,'',$num, $totalnboflines, '', 0, '', '', $limit); - + print ''."\n"; // Titles with sort buttons print ''; print_liste_field_titre($langs->trans('Ref'),$_SERVER['PHP_SELF'],'doc_number','',$param,'align="left"',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Date'),$_SERVER['PHP_SELF'],'dateprint','',$param,'align="center" width="150"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans('Status'),$_SERVER['PHP_SELF'],'fk_status','',$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans('Status'),$_SERVER['PHP_SELF'],'fk_statut','',$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Product'),$_SERVER['PHP_SELF'],'','',$param,'align="left"',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Quantity'),$_SERVER['PHP_SELF'],'prod_qty','',$param,'align="right"',$sortfield,$sortorder); print "\n"; @@ -384,7 +384,7 @@ if ($sql_select) $documentstatic->statut=$objp->status; $documentstatic->status=$objp->status; $documentstatic->paye=$objp->paid; - + if (is_object($documentstaticline)) $documentstaticline->statut=$objp->status; $var=!$var; @@ -550,7 +550,7 @@ if ($sql_select) } print "
"; - + if ($num > $limit) { print_barre_liste('', $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder,'',$num); } @@ -559,7 +559,7 @@ if ($sql_select) else if (empty($type_element) || $type_element == -1) { print_barre_liste($langs->trans('ProductsIntoElements').' '.$typeElementString.' '.$button, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder,'',$num, '', ''); - + print ''."\n"; // Titles with sort buttons print ''; @@ -569,16 +569,16 @@ else if (empty($type_element) || $type_element == -1) print_liste_field_titre($langs->trans('Product'),$_SERVER['PHP_SELF'],'','',$param,'align="left"',$sortfield,$sortorder); print_liste_field_titre($langs->trans('Quantity'),$_SERVER['PHP_SELF'],'prod_qty','',$param,'align="right"',$sortfield,$sortorder); print "\n"; - + print ''; print "
'.$langs->trans("SelectElementAndClickRefresh").'
"; } else { print_barre_liste($langs->trans('ProductsIntoElements').' '.$typeElementString.' '.$button, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder,'',$num, '', ''); - + print ''."\n"; - + print ''; print "
'.$langs->trans("FeatureNotYetAvailable").'
"; From bf5fbd3a80c180cedba9d451f61cd1c32c389a75 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 1 Jun 2016 21:14:28 +0200 Subject: [PATCH 06/77] FIX Infinite loop on menu tree output for edition FIX Can show tree of entries added by external modules using fk_mainmenu and fk_leftmenu instead of fk_menu. --- htdocs/admin/menus/index.php | 57 +++++++++++++++++++++++++++----- htdocs/core/lib/treeview.lib.php | 23 ++++++++----- 2 files changed, 63 insertions(+), 17 deletions(-) diff --git a/htdocs/admin/menus/index.php b/htdocs/admin/menus/index.php index 7da0673b196..27b8ab74a96 100644 --- a/htdocs/admin/menus/index.php +++ b/htdocs/admin/menus/index.php @@ -289,17 +289,18 @@ if ($conf->use_javascript_ajax) - la chaine a afficher ie: data[]= array (index, index parent, chaine ) */ + //il faut d'abord declarer un element racine de l'arbre - $data[] = array('rowid'=>0,'fk_menu'=>-1,'title'=>"racine",'mainmenu'=>'','leftmenu'=>'','fk_mainmenu'=>'','fk_leftmenu'=>''); - + $data[] = array('rowid'=>0,'fk_menu'=>-1,'title'=>"racine",'mainmenu'=>'','leftmenu'=>'','fk_mainmenu'=>'','fk_leftmenu'=>''); + //puis tous les elements enfants - $sql = "SELECT m.rowid, m.titre, m.langs, m.mainmenu, m.leftmenu, m.fk_menu, m.fk_mainmenu, m.fk_leftmenu"; + $sql = "SELECT m.rowid, m.titre, m.langs, m.mainmenu, m.leftmenu, m.fk_menu, m.fk_mainmenu, m.fk_leftmenu, m.module"; $sql.= " FROM ".MAIN_DB_PREFIX."menu as m"; $sql.= " WHERE menu_handler = '".$menu_handler_to_search."'"; $sql.= " AND entity = ".$conf->entity; - $sql.= " AND fk_menu >= 0"; + //$sql.= " AND fk_menu >= 0"; $sql.= " ORDER BY m.position, m.rowid"; // Order is position then rowid (because we need a sort criteria when position is same) $res = $db->query($sql); @@ -314,9 +315,10 @@ if ($conf->use_javascript_ajax) $titre = $langs->trans($menu['titre']); $data[] = array( 'rowid'=>$menu['rowid'], + 'module'=>$menu['module'], 'fk_menu'=>$menu['fk_menu'], 'title'=>$titre, - 'mainmenu'=>$menu['mainmenu'], + 'mainmenu'=>$menu['mainmenu'], 'leftmenu'=>$menu['leftmenu'], 'fk_mainmenu'=>$menu['fk_mainmenu'], 'fk_leftmenu'=>$menu['fk_leftmenu'], @@ -334,17 +336,54 @@ if ($conf->use_javascript_ajax) } } + global $tree_recur_alreadyadded; // This var was def into tree_recur + // Appelle de la fonction recursive (ammorce) // avec recherche depuis la racine. //var_dump($data); - tree_recur($data,$data[0],0); + tree_recur($data, $data[0], 0, 'iddivjstree'); // $data[0] is virtual record 'racine' + print ''; - + print ''; - + print ''; - + + + // Process remaining records (records that are not linked to root by any path) + $remainingdata = array(); + foreach($data as $datar) + { + if (empty($datar['rowid']) || $tree_recur_alreadyadded[$datar['rowid']]) continue; + $remainingdata[] = $datar; + } + + if (count($remainingdata)) + { + print ''; + + print ''; + print ''; + print ''; + print ''; + + print ''; + print ''; + + print ''; + + print '
'.$langs->trans("NotTopTreeMenuPersonalized").'
'; + + foreach($remainingdata as $datar) + { + $father = array('rowid'=>$datar['rowid'],'title'=>"???",'mainmenu'=>$datar['fk_mainmenu'],'leftmenu'=>$datar['fk_leftmenu'],'fk_mainmenu'=>'','fk_leftmenu'=>''); + //print 'Start with rowid='.$datar['rowid'].' mainmenu='.$father ['mainmenu'].' leftmenu='.$father ['leftmenu'].'
'."\n"; + tree_recur($data, $father, 0, 'iddivjstree'.$datar['rowid'], 1, 1); + } + + print '
'; + } print '
'; diff --git a/htdocs/core/lib/treeview.lib.php b/htdocs/core/lib/treeview.lib.php index 225568fd776..6fc0c9f013f 100644 --- a/htdocs/core/lib/treeview.lib.php +++ b/htdocs/core/lib/treeview.lib.php @@ -109,15 +109,17 @@ function tree_showpad(&$fulltree,$key,$silent=0) * @param int $pere Array with parent ids ('rowid'=>,'mainmenu'=>,'leftmenu'=>,'fk_mainmenu=>,'fk_leftmenu=>) * @param int $rang Level of element * @param string $iddivjstree Id to use for parent ul element + * @param int $donoresetalreadyloaded Do not reset global array $donoresetalreadyloaded used to avoid to go down on an aleady processed record + * @param int $showfk Show fk links to parent into label * @return void */ -function tree_recur($tab, $pere, $rang, $iddivjstree='iddivjstree') +function tree_recur($tab, $pere, $rang, $iddivjstree='iddivjstree', $donoresetalreadyloaded=0, $showfk=0) { global $tree_recur_alreadyadded; - if ($rang == 0) $tree_recur_alreadyadded=array(); + if ($rang == 0 && empty($donoresetalreadyloaded)) $tree_recur_alreadyadded=array(); - if (empty($pere['rowid'])) + if ($rang == 0) { // Test also done with jstree and dynatree (not able to have inside label) print ''; print load_fiche_titre($langs->trans("NewMenu"),'','title_setup'); - + print '
'; print ''; @@ -281,7 +281,7 @@ if ($action == 'create') $parent_rowid = $_GET['menuId']; if ($_GET['menuId']) { - $sql = "SELECT m.rowid, m.mainmenu, m.level, m.langs FROM ".MAIN_DB_PREFIX."menu as m WHERE m.rowid = ".$_GET['menuId']; + $sql = "SELECT m.rowid, m.mainmenu, m.leftmenu, m.level, m.langs FROM ".MAIN_DB_PREFIX."menu as m WHERE m.rowid = ".$_GET['menuId']; $res = $db->query($sql); if ($res) { @@ -290,6 +290,7 @@ if ($action == 'create') { $parent_rowid = $menu['rowid']; $parent_mainmenu = $menu['mainmenu']; + $parent_leftmenu = $menu['leftmenu']; $parent_langs = $menu['langs']; $parent_level = $menu['level']; } @@ -340,7 +341,9 @@ if ($action == 'create') { print ''; } - print ''.$langs->trans('DetailMenuIdParent').''; + print ''.$langs->trans('DetailMenuIdParent'); + print ', '.$langs->trans("Example").': fk_mainmenu=abc&fk_leftmenu=def'; + print ''; // Title print ''.$langs->trans('Title').''.$langs->trans('DetailTitre').''; @@ -418,7 +421,12 @@ elseif ($action == 'edit') print ''.$langs->trans('MenuIdParent').''; //$menu_handler //print ''; - print ''.$menu->fk_menu.''; + print ''; + $valtouse=$menu->fk_menu; + if ($menu->fk_mainmenu) $valtouse='fk_mainmenu='.$menu->fk_mainmenu; + if ($menu->fk_leftmenu) $valtouse.='&fk_leftmenu='.$menu->fk_leftmenu; + print $valtouse; + print ''; print ''.$langs->trans('DetailMenuIdParent').''; // Niveau diff --git a/htdocs/core/class/menubase.class.php b/htdocs/core/class/menubase.class.php index cb370e31d96..bb842bab1aa 100644 --- a/htdocs/core/class/menubase.class.php +++ b/htdocs/core/class/menubase.class.php @@ -264,6 +264,8 @@ class Menubase $sql.= " t.mainmenu,"; $sql.= " t.leftmenu,"; $sql.= " t.fk_menu,"; + $sql.= " t.fk_mainmenu,"; + $sql.= " t.fk_leftmenu,"; $sql.= " t.position,"; $sql.= " t.url,"; $sql.= " t.target,"; @@ -293,6 +295,8 @@ class Menubase $this->mainmenu = $obj->mainmenu; $this->leftmenu = $obj->leftmenu; $this->fk_menu = $obj->fk_menu; + $this->fk_mainmenu = $obj->fk_mainmenu; + $this->fk_leftmenu = $obj->fk_leftmenu; $this->position = $obj->position; $this->url = $obj->url; $this->target = $obj->target; From 19f6aa805be4dac3f5278fe74a68a1a5f02db01c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sat, 30 Apr 2016 18:56:16 +0200 Subject: [PATCH 09/77] select engine for code 128 didn't work --- htdocs/admin/barcode.php | 54 +++++++++++++++------------------------- 1 file changed, 20 insertions(+), 34 deletions(-) diff --git a/htdocs/admin/barcode.php b/htdocs/admin/barcode.php index b7cc6e94bf2..29475d712df 100644 --- a/htdocs/admin/barcode.php +++ b/htdocs/admin/barcode.php @@ -62,21 +62,12 @@ if ($action == 'setcoder') } else if ($action == 'update') { - if (GETPOST('submit_GENBARCODE_LOCATION')) - { - $location = GETPOST('GENBARCODE_LOCATION','alpha'); - $res = dolibarr_set_const($db, "GENBARCODE_LOCATION",$location,'chaine',0,'',$conf->entity); - } - if (GETPOST('submit_PRODUIT_DEFAULT_BARCODE_TYPE')) - { - $coder_id = GETPOST('PRODUIT_DEFAULT_BARCODE_TYPE','alpha'); - $res = dolibarr_set_const($db, "PRODUIT_DEFAULT_BARCODE_TYPE", $coder_id,'chaine',0,'',$conf->entity); - } - if (GETPOST('submit_GENBARCODE_BARCODETYPE_THIRDPARTY')) - { - $coder_id = GETPOST('GENBARCODE_BARCODETYPE_THIRDPARTY','alpha'); - $res = dolibarr_set_const($db, "GENBARCODE_BARCODETYPE_THIRDPARTY", $coder_id,'chaine',0,'',$conf->entity); - } + $location = GETPOST('GENBARCODE_LOCATION','alpha'); + $res = dolibarr_set_const($db, "GENBARCODE_LOCATION",$location,'chaine',0,'',$conf->entity); + $coder_id = GETPOST('PRODUIT_DEFAULT_BARCODE_TYPE','alpha'); + $res = dolibarr_set_const($db, "PRODUIT_DEFAULT_BARCODE_TYPE", $coder_id,'chaine',0,'',$conf->entity); + $coder_id = GETPOST('GENBARCODE_BARCODETYPE_THIRDPARTY','alpha'); + $res = dolibarr_set_const($db, "GENBARCODE_BARCODETYPE_THIRDPARTY", $coder_id,'chaine',0,'',$conf->entity); } else if ($action == 'updateengine') { @@ -195,9 +186,9 @@ $var=true; print '
'; print load_fiche_titre($langs->trans("BarcodeEncodeModule"),'',''); -print ""; -print ''; -print ""; +//print ""; +//print ''; +//print ""; print ''; print ''; @@ -261,7 +252,7 @@ if ($resql) // Build barcode on disk (not used, this is done to make debug easier) $result=$module->writeBarCode($obj->example,$obj->encoding,'Y'); // Generate on the fly and output barcode with generator - $url=DOL_URL_ROOT.'/viewimage.php?modulepart=barcode&generator='.urlencode($obj->coder).'&code='.urlencode($obj->example).'&encoding='.urlencode($obj->encoding); + $url=DOL_URL_ROOT.'/viewimage.php?modulepart=barcode&generator='.urlencode($obj->coder).'&code='.urlencode($obj->example).'&encoding='.urlencode($obj->encoding); //print $url; print ''; } @@ -296,7 +287,7 @@ if (empty($conf->use_javascript_ajax)) // TODO Implement code behind action updateengine //print '
'; } -print ''; +//print ''; print "
"; @@ -331,9 +322,7 @@ if (! isset($_SERVER['WINDIR'])) $langs->load("errors"); print '
'.$langs->trans("ErrorFileNotFound",$conf->global->GENBARCODE_LOCATION).''; } - print ''; - print ''; - print ''; + print ''; } // Module products @@ -344,10 +333,7 @@ if (! empty($conf->product->enabled)) print ''; print '"; - print ''; + print ''; } // Module thirdparty @@ -358,13 +344,13 @@ if (! empty($conf->societe->enabled)) print ''; print '"; - print ''; + print ''; } print "
'.$langs->trans("SetDefaultBarcodeTypeProducts").''; $formbarcode->select_barcode_type($conf->global->PRODUIT_DEFAULT_BARCODE_TYPE,"PRODUIT_DEFAULT_BARCODE_TYPE",1); - print ''; - print ''; - print "
'.$langs->trans("SetDefaultBarcodeTypeThirdParties").''; print $formbarcode->select_barcode_type($conf->global->GENBARCODE_BARCODETYPE_THIRDPARTY,"GENBARCODE_BARCODETYPE_THIRDPARTY",1); - print ''; - print ''; - print "
\n"; +print '
'; +print ''; +print "
"; print ''; print '
'; @@ -419,13 +405,13 @@ if ($conf->produit->enabled) if ($conf->global->BARCODE_PRODUCT_ADDON_NUM == "$file") { - print '
'; + print ''; print img_picto($langs->trans("Activated"),'switch_on'); print ''; } else { - print ''; + print ''; print img_picto($langs->trans("Disabled"),'switch_off'); print ''; } @@ -442,7 +428,7 @@ if ($conf->produit->enabled) print "\n"; } -print ''; +//print ''; print "
"; From ab44adc6d5b7d7fe6d8c926fbe9d45ed225e6cac Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Thu, 2 Jun 2016 12:37:37 +0200 Subject: [PATCH 10/77] Fix SQL error on order stats --- htdocs/commande/class/commandestats.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/commande/class/commandestats.class.php b/htdocs/commande/class/commandestats.class.php index 1ab418a9daa..e38097e4e3a 100644 --- a/htdocs/commande/class/commandestats.class.php +++ b/htdocs/commande/class/commandestats.class.php @@ -206,7 +206,7 @@ class CommandeStats extends Stats $sql = "SELECT product.ref, COUNT(product.ref) as nb, SUM(tl.".$this->field_line.") as total, AVG(tl.".$this->field_line.") as avg"; $sql.= " FROM ".$this->from.", ".$this->from_line.", ".MAIN_DB_PREFIX."product as product"; - //if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; + if (!$user->rights->societe->client->voir && !$user->societe_id) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; $sql.= " WHERE ".$this->where; $sql.= " AND c.rowid = tl.fk_commande AND tl.fk_product = product.rowid"; $sql.= " AND c.date_commande BETWEEN '".$this->db->idate(dol_get_first_day($year,1,false))."' AND '".$this->db->idate(dol_get_last_day($year,12,false))."'"; From 7f98b1ceff0728962d8f9096f04eccf9956219c4 Mon Sep 17 00:00:00 2001 From: Sebastien Bechet Date: Fri, 3 Jun 2016 10:21:37 +0200 Subject: [PATCH 11/77] Regression --- htdocs/user/agenda_extsites.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/user/agenda_extsites.php b/htdocs/user/agenda_extsites.php index 5d60a701779..43386910a95 100644 --- a/htdocs/user/agenda_extsites.php +++ b/htdocs/user/agenda_extsites.php @@ -104,17 +104,17 @@ if (empty($reshook)) { break; } - if (! $error) - { - $result=dol_set_user_param($db, $conf, $object, $tabparam); - if (! $result > 0) $error++; - } + $tabparam['AGENDA_EXT_NAME_'.$id.'_'.$i]=$name; + $tabparam['AGENDA_EXT_SRC_'.$id.'_'.$i]=$src; + $tabparam['AGENDA_EXT_OFFSETTZ_'.$id.'_'.$i]=$offsettz; + $tabparam['AGENDA_EXT_COLOR_'.$id.'_'.$i]=$color; + $tabparam['AGENDA_EXT_ENABLED_'.$id.'_'.$i]=$enabled; $i ++; } if (!$error) { - $result = dol_set_user_param($db, $conf, $fuser, $tabparam); + $result = dol_set_user_param($db, $conf, $object, $tabparam); if (!$result > 0) { $error ++; } From 99a28a9dcd68bc28d3aa4030096c5d67c669e597 Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Fri, 3 Jun 2016 16:15:27 +0200 Subject: [PATCH 12/77] Fix Travis error introduced in commit '236ecf01' --- htdocs/product/stock/replenish.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/htdocs/product/stock/replenish.php b/htdocs/product/stock/replenish.php index aed3f5ed73c..cdbb4cafad3 100644 --- a/htdocs/product/stock/replenish.php +++ b/htdocs/product/stock/replenish.php @@ -1,7 +1,8 @@ - * Copyright (C) 2013-2015 Laurent Destaileur + * Copyright (C) 2013-2016 Laurent Destaileur * Copyright (C) 2014 Regis Houssin + * Copyright (C) 2016 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 @@ -73,7 +74,7 @@ if (!$sortorder) { $virtualdiffersfromphysical=0; if (! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT) || ! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER) -|| ! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE) +|| ! empty($conf->global->STOCK_CALCULATE_ON_SHIPMENT_CLOSE)) { $virtualdiffersfromphysical=1; // According to increase/decrease stock options, virtual and physical stock may differs. } From cd79675f7acb61039e4bbcfbb9f7cd9c892dafdc Mon Sep 17 00:00:00 2001 From: phf Date: Fri, 3 Jun 2016 21:16:25 +0200 Subject: [PATCH 13/77] Fix using extrafield type "link to object" show error on edit card --- htdocs/core/class/extrafields.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index 8d61733e138..283d189377c 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -1133,7 +1133,7 @@ class ExtraFields if ($InfoFieldList[0] && class_exists($InfoFieldList[0])) { $object = new $InfoFieldList[0]($this->db); - $object->fetch($value); + if (!empty($value)) $object->fetch($value); $valuetoshow=$object->ref; if ($object->element == 'societe') $valuetoshow=$object->name; // Special case for thirdparty because ref is id because name is not unique $out.=''; From 776118a1526677dc0edb3ff25385965cfa803fca Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 3 Jun 2016 21:32:12 +0200 Subject: [PATCH 14/77] FIX Translation of lithuania --- htdocs/langs/en_US/dict.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/dict.lang b/htdocs/langs/en_US/dict.lang index bef1f4821b4..8971d8e82d4 100644 --- a/htdocs/langs/en_US/dict.lang +++ b/htdocs/langs/en_US/dict.lang @@ -138,7 +138,7 @@ CountryLS=Lesotho CountryLR=Liberia CountryLY=Libyan CountryLI=Liechtenstein -CountryLT=Lituania +CountryLT=Lithuania CountryLU=Luxembourg CountryMO=Macao CountryMK=Macedonia, the former Yugoslav of From b339dc18f4a3f4f8ffb1f98c0053fdb3b04280a2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 3 Jun 2016 21:32:36 +0200 Subject: [PATCH 15/77] Update changelog --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index 40e427bae1b..1bb297bae79 100644 --- a/ChangeLog +++ b/ChangeLog @@ -121,6 +121,7 @@ NEW: When emailing is not sent completely, show progression. For developers: +NEW: Add a css class style called 'reposition', so when clicking on a link with this class will move scrollbarr to be placed at same page location. NEW: TimeZone can be supplied to mktime NEW: hook in shipment card NEW: Deprecated Societe::set_prospect_level, Societe::set_commnucation_level, Societe::set_OutstandingBill functions From 448c394f2a183a379e04e04b57f66527b63b65b6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 3 Jun 2016 22:10:33 +0200 Subject: [PATCH 16/77] Fix date of recurrin invoice --- htdocs/compta/facture/class/facture-rec.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/facture/class/facture-rec.class.php b/htdocs/compta/facture/class/facture-rec.class.php index 3a19605ee5b..3ef9d716bfb 100644 --- a/htdocs/compta/facture/class/facture-rec.class.php +++ b/htdocs/compta/facture/class/facture-rec.class.php @@ -666,7 +666,7 @@ class FactureRec extends CommonInvoice $facture->fac_rec = $facturerec->id; // We will create $facture from this recurring invoice $facture->type = self::TYPE_STANDARD; $facture->brouillon = 1; - $facture->date = $now; + $facture->date = $facturerec->date_when; // We could also use dol_now here but we prefer date_when so invoice has real date when we would like even if we generate later. $facture->socid = $facturerec->socid; $invoiceidgenerated = $facture->create($user); // This will also update fields of recurring invoice From fb724566f0444810c3cd3b496413b088a4d6dcb8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 3 Jun 2016 22:15:07 +0200 Subject: [PATCH 17/77] FIX #5252 --- htdocs/projet/card.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/projet/card.php b/htdocs/projet/card.php index c489910064d..a8e579c950c 100644 --- a/htdocs/projet/card.php +++ b/htdocs/projet/card.php @@ -886,7 +886,7 @@ else } // Close - if (($object->statut == 0 || $object->statut == 1) && $user->rights->projet->creer) + if ($object->statut == 1 && $user->rights->projet->creer) { if ($userWrite > 0) { @@ -981,9 +981,9 @@ else } // Delete - if ($user->rights->projet->supprimer) + if ($user->rights->projet->supprimer || ($object->statut == 0 && $user->rights->projet->creer)) { - if ($userDelete > 0) + if ($userDelete > 0 || ($object->statut == 0 && $user->rights->projet->creer)) { print ''; } From 149c6916f8bbd686ffb872d5ae43e6efcc212c32 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 3 Jun 2016 22:20:58 +0200 Subject: [PATCH 18/77] FIX ##5263 --- htdocs/comm/propal/class/propal.class.php | 9 ++++++--- htdocs/commande/class/commande.class.php | 9 ++++++--- htdocs/contrat/class/contrat.class.php | 7 +++++-- htdocs/fourn/class/fournisseur.facture.class.php | 7 +++++-- .../supplier_proposal/class/supplier_proposal.class.php | 9 ++++++--- 5 files changed, 28 insertions(+), 13 deletions(-) diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index 56c3839dcb6..9874b14473f 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -2674,9 +2674,12 @@ class Propal extends CommonObject $line->remise_percent=00; } - $prodid = mt_rand(1, $num_prods); - $line->fk_product=$prodids[$prodid]; - + if ($num_prods > 0) + { + $prodid = mt_rand(1, $num_prods); + $line->fk_product=$prodids[$prodid]; + } + $this->lines[$xnbp]=$line; $this->total_ht += $line->total_ht; diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index 40d71775a08..4a2d05e9a92 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -3278,9 +3278,12 @@ class Commande extends CommonOrder $line->total_tva=19.6; $line->remise_percent=0; } - $prodid = mt_rand(1, $num_prods); - $line->fk_product=$prodids[$prodid]; - + if ($num_prods > 0) + { + $prodid = mt_rand(1, $num_prods); + $line->fk_product=$prodids[$prodid]; + } + $this->lines[$xnbp]=$line; $this->total_ht += $line->total_ht; diff --git a/htdocs/contrat/class/contrat.class.php b/htdocs/contrat/class/contrat.class.php index 8f3c87725fa..d2c094fb025 100644 --- a/htdocs/contrat/class/contrat.class.php +++ b/htdocs/contrat/class/contrat.class.php @@ -2147,8 +2147,11 @@ class Contrat extends CommonObject $line->total_ht=90; $line->total_ttc=107.64; // 90 * 1.196 $line->total_tva=17.64; - $prodid = mt_rand(1, $num_prods); - $line->fk_product=$prodids[$prodid]; + if ($num_prods > 0) + { + $prodid = mt_rand(1, $num_prods); + $line->fk_product=$prodids[$prodid]; + } $this->lines[$xnbp]=$line; $xnbp++; } diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index 30296bc2e22..728ff9ac674 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -1708,8 +1708,11 @@ class FactureFournisseur extends CommonInvoice $line->remise_percent=0; } - $prodid = mt_rand(1, $num_prods); - $line->fk_product=$prodids[$prodid]; + if ($num_prods > 0) + { + $prodid = mt_rand(1, $num_prods); + $line->fk_product=$prodids[$prodid]; + } $line->product_type=0; $this->lines[$xnbp]=$line; diff --git a/htdocs/supplier_proposal/class/supplier_proposal.class.php b/htdocs/supplier_proposal/class/supplier_proposal.class.php index f5675db86f3..fd7f266e159 100644 --- a/htdocs/supplier_proposal/class/supplier_proposal.class.php +++ b/htdocs/supplier_proposal/class/supplier_proposal.class.php @@ -2244,9 +2244,12 @@ class SupplierProposal extends CommonObject $line->remise_percent=00; } - $prodid = mt_rand(1, $num_prods); - $line->fk_product=$prodids[$prodid]; - + if ($num_prods > 0) + { + $prodid = mt_rand(1, $num_prods); + $line->fk_product=$prodids[$prodid]; + } + $this->lines[$xnbp]=$line; $this->total_ht += $line->total_ht; From 778b05c3416f9ba7c89792ce7e97a00229280f8f Mon Sep 17 00:00:00 2001 From: phf Date: Fri, 3 Jun 2016 23:06:53 +0200 Subject: [PATCH 19/77] Fix #4632 --- htdocs/societe/soc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/societe/soc.php b/htdocs/societe/soc.php index 76a2c948636..76680649958 100644 --- a/htdocs/societe/soc.php +++ b/htdocs/societe/soc.php @@ -1863,7 +1863,7 @@ else /* * View */ - $res=$object->fetch_optionals($object->id,$extralabels); + if (!empty($object->id)) $res=$object->fetch_optionals($object->id,$extralabels); //if ($res < 0) { dol_print_error($db); exit; } From c9c7045a6f0ed6d925ac89635a45eeccd492b077 Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Fri, 3 Jun 2016 23:34:37 +0200 Subject: [PATCH 20/77] Fix access to project task time spent creation #5249 --- htdocs/projet/tasks/time.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/projet/tasks/time.php b/htdocs/projet/tasks/time.php index e54eef4cf6e..7f820304b60 100644 --- a/htdocs/projet/tasks/time.php +++ b/htdocs/projet/tasks/time.php @@ -359,7 +359,7 @@ if ($id > 0 || ! empty($ref)) /* * Form to add time spent */ - if ($user->rights->projet->creer) + if ($user->rights->projet->lire) { print '
'; From 923952fb250222a379ab83f219caf2dc1c5bebc0 Mon Sep 17 00:00:00 2001 From: phf Date: Fri, 3 Jun 2016 23:36:58 +0200 Subject: [PATCH 21/77] Fix conf useful has been commented --- htdocs/admin/multicurrency.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/htdocs/admin/multicurrency.php b/htdocs/admin/multicurrency.php index bd49265436d..e47b2c9068e 100644 --- a/htdocs/admin/multicurrency.php +++ b/htdocs/admin/multicurrency.php @@ -264,7 +264,6 @@ print '' print ''; print ''; -/* This property seems not used in code, so i comment it $var=!$var; print ''; print ''.$langs->transnoentitiesnoconv("multicurrency_appCurrencySource").''; @@ -290,7 +289,7 @@ print ''; print ''; print ''; -*/ + print ''; print '
'; From 18424812db785ee41eea1284136a14e513efedf8 Mon Sep 17 00:00:00 2001 From: cla Date: Fri, 3 Jun 2016 23:49:08 +0200 Subject: [PATCH 22/77] closes #5192. I deleted the line and moved last_insert_id() functions 3 lines under --- htdocs/fourn/class/fournisseur.commande.class.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index c3f21a15f4c..e0939258ad1 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -1452,12 +1452,10 @@ class CommandeFournisseur extends CommonOrder //print $sql; if ($resql) { - $this->rowid = $this->db->last_insert_id(MAIN_DB_PREFIX.'commande_fournisseurdet'); - if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used { $linetmp = new CommandeFournisseurLigne($this->db); - $linetmp->id=$this->rowid; + $linetmp->id=$this->db->last_insert_id(MAIN_DB_PREFIX.'commande_fournisseurdet'); $linetmp->array_options = $array_options; $result=$linetmp->insertExtraFields(); if ($result < 0) From 8b0b3b1a9dc1ac1db0b0d70a14005c9043945a1d Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Fri, 3 Jun 2016 23:49:34 +0200 Subject: [PATCH 23/77] PMP available only if stock module enabled --- htdocs/fourn/ajax/getSupplierPrices.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/htdocs/fourn/ajax/getSupplierPrices.php b/htdocs/fourn/ajax/getSupplierPrices.php index 664c8a2da4e..ae711d2f01b 100644 --- a/htdocs/fourn/ajax/getSupplierPrices.php +++ b/htdocs/fourn/ajax/getSupplierPrices.php @@ -125,9 +125,11 @@ if ($idprod > 0) } } - // Add price for pmp - $price=$producttmp->pmp; - $prices[] = array("id" => 'pmpprice', "price" => $price, "label" => $langs->trans("PMPValueShort").': '.price($price,0,$langs,0,0,-1,$conf->currency), "title" => $langs->trans("PMPValueShort").': '.price($price,0,$langs,0,0,-1,$conf->currency)); + if(!empty($conf->stock->enabled)) { + // Add price for pmp + $price=$producttmp->pmp; + $prices[] = array("id" => 'pmpprice', "price" => $price, "label" => $langs->trans("PMPValueShort").': '.price($price,0,$langs,0,0,-1,$conf->currency), "title" => $langs->trans("PMPValueShort").': '.price($price,0,$langs,0,0,-1,$conf->currency)); + } } echo json_encode($prices); From 66c73015b2aa8de2f43e494fafe9a1bb84e2f7c8 Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Fri, 3 Jun 2016 23:58:54 +0200 Subject: [PATCH 24/77] Fix issues with strict mode --- htdocs/compta/index.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/index.php b/htdocs/compta/index.php index ea154303d20..37999567738 100644 --- a/htdocs/compta/index.php +++ b/htdocs/compta/index.php @@ -2,7 +2,7 @@ /* Copyright (C) 2001-2005 Rodolphe Quiedeville * Copyright (C) 2004-2013 Laurent Destailleur * Copyright (C) 2005-2015 Regis Houssin - * Copyright (C) 2015 Juanjo Menent + * Copyright (C) 2015-2016 Juanjo Menent * Copyright (C) 2015 Jean-François Ferry * Copyright (C) 2015 Raphaël Doursenaud * Copyright (C) 2016 Marcos García @@ -877,7 +877,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture- if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; if ($socid) $sql.= " AND ff.fk_soc = ".$socid; $sql.= " GROUP BY ff.rowid, ff.ref, ff.fk_statut, ff.libelle, ff.total_ht, ff.tva, ff.total_tva, ff.total_ttc, ff.paye,"; - $sql.= " s.nom, s.rowid, s.code_client, s.code_fournisseur"; + $sql.= " s.nom, s.rowid, s.code_client, s.code_fournisseur, ff.date_lim_reglement"; $sql.= " ORDER BY ff.date_lim_reglement ASC"; $resql=$db->query($sql); From deb7c407adbdb7bb8076fb5755498b8631636d39 Mon Sep 17 00:00:00 2001 From: cla Date: Sat, 4 Jun 2016 00:08:13 +0200 Subject: [PATCH 25/77] FIX #4643 --- htdocs/fourn/commande/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/fourn/commande/list.php b/htdocs/fourn/commande/list.php index 844b7e9f700..8dbddcde2ab 100644 --- a/htdocs/fourn/commande/list.php +++ b/htdocs/fourn/commande/list.php @@ -132,7 +132,7 @@ if ($status) if ($status == '6,7') $title.=' - '.$langs->trans("StatusOrderCanceled"); else $title.=' - '.$langs->trans($commandestatic->statuts[$status]); } -if ($billed) $title.=' - '.$langs->trans("Billed"); +if ($billed > 0) $title.=' - '.$langs->trans("Billed"); llxHeader('',$title); From 8901b99e2dfc1eab203fd40a1a7beae04816d4b7 Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sat, 4 Jun 2016 00:14:08 +0200 Subject: [PATCH 26/77] Fix import model not correctly saved #5185 --- htdocs/install/mysql/migration/3.8.0-3.9.0.sql | 1 + htdocs/install/mysql/tables/llx_import_model.sql | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql index 74f89441f64..35ebf79e1ef 100755 --- a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql +++ b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql @@ -610,3 +610,4 @@ INSERT INTO llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) VALUES (14 -- VMYSQL4.1 ALTER TABLE llx_c_type_resource CHANGE COLUMN rowid rowid integer NOT NULL AUTO_INCREMENT; +ALTER TABLE llx_import_model MODIFY COLUMN type varchar(50); \ No newline at end of file diff --git a/htdocs/install/mysql/tables/llx_import_model.sql b/htdocs/install/mysql/tables/llx_import_model.sql index cb5266a0c41..37ab1c00c12 100644 --- a/htdocs/install/mysql/tables/llx_import_model.sql +++ b/htdocs/install/mysql/tables/llx_import_model.sql @@ -23,6 +23,6 @@ create table llx_import_model rowid integer AUTO_INCREMENT PRIMARY KEY, fk_user integer DEFAULT 0 NOT NULL, label varchar(50) NOT NULL, - type varchar(20) NOT NULL, + type varchar(50) NOT NULL, field text NOT NULL )ENGINE=innodb; \ No newline at end of file From 1227ee5eb68098cf2095720172f65dbc3377db75 Mon Sep 17 00:00:00 2001 From: novalore Date: Sat, 4 Jun 2016 00:14:56 +0200 Subject: [PATCH 27/77] Miscellaneous typos and errors in en_US lang files --- htdocs/adherents/admin/public.php | 2 +- htdocs/langs/en_US/admin.lang | 8 +- htdocs/langs/en_US/banks.lang | 4 +- htdocs/langs/en_US/bills.lang | 26 +++--- htdocs/langs/en_US/boxes.lang | 100 +++++++++++----------- htdocs/langs/en_US/commercial.lang | 8 +- htdocs/langs/en_US/companies.lang | 10 +-- htdocs/langs/en_US/compta.lang | 4 +- htdocs/langs/en_US/contracts.lang | 8 +- htdocs/langs/en_US/cron.lang | 2 +- htdocs/langs/en_US/donations.lang | 2 +- htdocs/langs/en_US/errors.lang | 6 +- htdocs/langs/en_US/holiday.lang | 8 +- htdocs/langs/en_US/install.lang | 10 +-- htdocs/langs/en_US/interventions.lang | 4 +- htdocs/langs/en_US/mailmanspip.lang | 8 +- htdocs/langs/en_US/mails.lang | 4 +- htdocs/langs/en_US/main.lang | 6 +- htdocs/langs/en_US/members.lang | 8 +- htdocs/langs/en_US/orders.lang | 10 +-- htdocs/langs/en_US/products.lang | 12 +-- htdocs/langs/en_US/projects.lang | 4 +- htdocs/langs/en_US/propal.lang | 10 +-- htdocs/langs/en_US/sendings.lang | 2 +- htdocs/langs/en_US/supplier_proposal.lang | 4 +- htdocs/langs/en_US/users.lang | 8 +- htdocs/langs/en_US/withdrawals.lang | 6 +- 27 files changed, 142 insertions(+), 142 deletions(-) diff --git a/htdocs/adherents/admin/public.php b/htdocs/adherents/admin/public.php index 6f5d1de5c87..a23c1f40def 100644 --- a/htdocs/adherents/admin/public.php +++ b/htdocs/adherents/admin/public.php @@ -200,7 +200,7 @@ if (! empty($conf->paybox->enabled) || ! empty($conf->paypal->enabled)) print ''; print $langs->trans("MEMBER_PAYONLINE_SENDEMAIL"); print ''; - print ''; + print ''; print "\n"; } diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index d9b55da40ec..99eb86d633e 100755 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -993,9 +993,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed memb Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=All parameters available in the setup area allow you to setup Dolibarr before starting using it. -SetupDescription2=The 2 most important setup steps are the 2 first ones in the left setup menu, this means Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because input information is used on Dolibarr displays and to modify Dolibarr behaviour (for example for features related to your country). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a fixed ERP/CRM but a sum of several modules, all more or less independant. It's only after activating modules you're interesting in that you will see features appeared in menus. +SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: +SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). +SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. SetupDescription5=Other menu entries manage optional parameters. EventsSetup=Setup for events logs LogEvents=Security audit events @@ -1750,4 +1750,4 @@ AddModels=Add document or numbering templates AddSubstitutions=Add keys substitutions DetectionNotPossible=Detection not possible UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and will be checked on each future access) -ListOfAvailableAPIs=List of available APIs \ No newline at end of file +ListOfAvailableAPIs=List of available APIs diff --git a/htdocs/langs/en_US/banks.lang b/htdocs/langs/en_US/banks.lang index a1e05481be9..8ba28807bca 100644 --- a/htdocs/langs/en_US/banks.lang +++ b/htdocs/langs/en_US/banks.lang @@ -141,9 +141,9 @@ ExportDataset_banque_1=Bank transactions and account statement ExportDataset_banque_2=Deposit slip TransactionOnTheOtherAccount=Transaction on the other account TransactionWithOtherAccount=Account transfer -PaymentNumberUpdateSucceeded=Payment number updated succesfully +PaymentNumberUpdateSucceeded=Payment number updated successfully PaymentNumberUpdateFailed=Payment number could not be updated -PaymentDateUpdateSucceeded=Payment date update succesfully +PaymentDateUpdateSucceeded=Payment date updated successfully PaymentDateUpdateFailed=Payment date could not be updated Transactions=Transactions BankTransactionLine=Bank transaction diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang index a94c192ef4a..c1e61b9d935 100644 --- a/htdocs/langs/en_US/bills.lang +++ b/htdocs/langs/en_US/bills.lang @@ -11,7 +11,7 @@ BillsSuppliersUnpaidForCompany=Unpaid supplier's invoices for %s BillsLate=Late payments BillsStatistics=Customers invoices statistics BillsStatisticsSuppliers=Suppliers invoices statistics -DisabledBecauseNotErasable=Disabled because can not be erased +DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Standard invoice InvoiceStandardAsk=Standard invoice InvoiceStandardDesc=This kind of invoice is the common invoice. @@ -322,24 +322,24 @@ NextDateToExecution=Date for next invoice generation DateLastGeneration=Date of last generation MaxPeriodNumber=Max nb of invoice generation NbOfGenerationDone=Nb of invoice generation already done -InvoiceAutoValidate=Automatically validate invoice +InvoiceAutoValidate=Validate invoices automatically GeneratedFromRecurringInvoice=Generated from template recurring invoice %s -DateIsNotEnough=Date not yet reached +DateIsNotEnough=Date not reached yet InvoiceGeneratedFromTemplate=Invoice %s generated from recurring template invoice %s # PaymentConditions PaymentConditionShortRECEP=Immediate PaymentConditionRECEP=Immediate PaymentConditionShort30D=30 days PaymentCondition30D=30 days -PaymentConditionShort30DENDMONTH=30 days end of month -PaymentCondition30DENDMONTH=30 days end of month +PaymentConditionShort30DENDMONTH=30 days of month-end +PaymentCondition30DENDMONTH=Within 30 days following the end of the month PaymentConditionShort60D=60 days PaymentCondition60D=60 days -PaymentConditionShort60DENDMONTH=60 days end of month -PaymentCondition60DENDMONTH=60 days end of month +PaymentConditionShort60DENDMONTH=60 days of month-end +PaymentCondition60DENDMONTH=Within 60 days following the end of the month PaymentConditionShortPT_DELIVERY=Delivery PaymentConditionPT_DELIVERY=On delivery -PaymentConditionShortPT_ORDER=On order +PaymentConditionShortPT_ORDER=Order PaymentConditionPT_ORDER=On order PaymentConditionShortPT_5050=50-50 PaymentConditionPT_5050=50%% in advance, 50%% on delivery @@ -360,8 +360,8 @@ PaymentTypeTIP=Interbank Payment PaymentTypeShortTIP=Interbank Payment PaymentTypeVAD=On line payment PaymentTypeShortVAD=On line payment -PaymentTypeTRA=Traite -PaymentTypeShortTRA=Traite +PaymentTypeTRA=Bank draft +PaymentTypeShortTRA=Draft PaymentTypeFAC=Factor PaymentTypeShortFAC=Factor BankDetails=Bank details @@ -369,7 +369,7 @@ BankCode=Bank code DeskCode=Desk code BankAccountNumber=Account number BankAccountNumberKey=Key -Residence=Domiciliation +Residence=Direct debit IBANNumber=IBAN number IBAN=IBAN BIC=BIC/SWIFT @@ -425,7 +425,7 @@ ExpectedToPay=Expected payment CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Paid by this payment ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. -ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. +ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid". ToMakePayment=Pay ToMakePaymentBack=Pay back @@ -459,7 +459,7 @@ SituationDeduction=Situation subtraction Progress=Progress ModifyAllLines=Modify all lines CreateNextSituationInvoice=Create next situation -NotLastInCycle=This invoice in not the last in cycle and must not be modified. +NotLastInCycle=This invoice is not the latest in cycle and must not be modified. DisabledBecauseNotLastInCycle=The next situation already exists. DisabledBecauseFinal=This situation is final. CantBeLessThanMinPercent=The progress can't be smaller than its value in the previous situation. diff --git a/htdocs/langs/en_US/boxes.lang b/htdocs/langs/en_US/boxes.lang index db0d757315d..a584802048d 100644 --- a/htdocs/langs/en_US/boxes.lang +++ b/htdocs/langs/en_US/boxes.lang @@ -1,69 +1,69 @@ # Dolibarr language file - Source file is en_US - boxes BoxLastRssInfos=Rss information -BoxLastProducts=Last %s products/services +BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Products in stock alert -BoxLastProductsInContract=Last %s contracted products/services -BoxLastSupplierBills=Last supplier's invoices -BoxLastCustomerBills=Last customer's invoices -BoxOldestUnpaidCustomerBills=Oldest unpaid customer's invoices -BoxOldestUnpaidSupplierBills=Oldest unpaid supplier's invoices -BoxLastProposals=Last commercial proposals -BoxLastProspects=Last modified prospects -BoxLastCustomers=Last modified customers -BoxLastSuppliers=Last modified suppliers -BoxLastCustomerOrders=Last customer orders -BoxLastValidatedCustomerOrders=Last validated customer orders -BoxLastBooks=Last books -BoxLastActions=Last actions -BoxLastContracts=Last contracts -BoxLastContacts=Last contacts/addresses -BoxLastMembers=Last members -BoxFicheInter=Last interventions +BoxLastProductsInContract=Latest %s contracted products/services +BoxLastSupplierBills=Latest supplier invoices +BoxLastCustomerBills=Latest customer invoices +BoxOldestUnpaidCustomerBills=Oldest unpaid customer invoices +BoxOldestUnpaidSupplierBills=Oldest unpaid supplier invoices +BoxLastProposals=Latest commercial proposals +BoxLastProspects=Latest modified prospects +BoxLastCustomers=Latest modified customers +BoxLastSuppliers=Latest modified suppliers +BoxLastCustomerOrders=Latest customer orders +BoxLastValidatedCustomerOrders=Latest validated customer orders +BoxLastBooks=Latest bookmarks +BoxLastActions=Latest actions +BoxLastContracts=Latest contracts +BoxLastContacts=Latest contacts/addresses +BoxLastMembers=Latest members +BoxFicheInter=Latest interventions BoxCurrentAccounts=Open accounts balance BoxSalesTurnover=Sales turnover BoxTotalUnpaidCustomerBills=Total unpaid customer's invoices BoxTotalUnpaidSuppliersBills=Total unpaid supplier's invoices -BoxTitleLastBooks=Last %s recorded books +BoxTitleLastBooks=Latest %s recorded bookmarks BoxTitleNbOfCustomers=Number of clients -BoxTitleLastRssInfos=Last %s news from %s -BoxTitleLastProducts=Last %s modified products/services +BoxTitleLastRssInfos=Latest %s news from %s +BoxTitleLastProducts=Latest %s modified products/services BoxTitleProductsAlertStock=Products in stock alert -BoxTitleLastCustomerOrders=Last %s customer orders -BoxTitleLastModifiedCustomerOrders=Last %s modified customer orders -BoxTitleLastSuppliers=Last %s recorded suppliers -BoxTitleLastCustomers=Last %s recorded customers -BoxTitleLastModifiedSuppliers=Last %s modified suppliers -BoxTitleLastModifiedCustomers=Last %s modified customers -BoxTitleLastCustomersOrProspects=Last %s customers or prospects -BoxTitleLastPropals=Last %s proposals -BoxTitleLastModifiedPropals=Last %s modified proposals -BoxTitleLastCustomerBills=Last %s customer's invoices -BoxTitleLastModifiedCustomerBills=Last %s modified customer invoices -BoxTitleLastSupplierBills=Last %s supplier's invoices -BoxTitleLastModifiedSupplierBills=Last %s modified supplier invoices -BoxTitleLastModifiedProspects=Last %s modified prospects -BoxTitleLastProductsInContract=Last %s products/services in a contract -BoxTitleLastModifiedMembers=Last %s members -BoxTitleLastFicheInter=Last %s modified intervention +BoxTitleLastCustomerOrders=Latest %s customer orders +BoxTitleLastModifiedCustomerOrders=Latest %s modified customer orders +BoxTitleLastSuppliers=Latest %s recorded suppliers +BoxTitleLastCustomers=Latest %s recorded customers +BoxTitleLastModifiedSuppliers=Latest %s modified suppliers +BoxTitleLastModifiedCustomers=Latest %s modified customers +BoxTitleLastCustomersOrProspects=Latest %s customers or prospects +BoxTitleLastPropals=Latest %s proposals +BoxTitleLastModifiedPropals=Latest %s modified proposals +BoxTitleLastCustomerBills=Latest %s customer's invoices +BoxTitleLastModifiedCustomerBills=Latest %s modified customer invoices +BoxTitleLastSupplierBills=Latest %s supplier's invoices +BoxTitleLastModifiedSupplierBills=Latest %s modified supplier invoices +BoxTitleLastModifiedProspects=Latest %s modified prospects +BoxTitleLastProductsInContract=Latest %s products/services in a contract +BoxTitleLastModifiedMembers=Latest %s members +BoxTitleLastFicheInter=Latest %s modified intervention BoxTitleOldestUnpaidCustomerBills=Oldest %s unpaid customer invoices BoxTitleOldestUnpaidSupplierBills=Oldest %s unpaid supplier invoices BoxTitleCurrentAccounts=Open accounts balances BoxTitleSalesTurnover=Sales turnover BoxTitleTotalUnpaidCustomerBills=Unpaid customer invoices BoxTitleTotalUnpaidSuppliersBills=Unpaid supplier invoices -BoxTitleLastModifiedContacts=Last %s modified contacts/addresses -BoxMyLastBookmarks=My last %s bookmarks +BoxTitleLastModifiedContacts=Latest %s modified contacts/addresses +BoxMyLastBookmarks=My latest %s bookmarks BoxOldestExpiredServices=Oldest active expired services -BoxLastExpiredServices=Last %s oldest contacts with active expired services -BoxTitleLastActionsToDo=Last %s actions to do -BoxTitleLastContracts=Last %s contracts -BoxTitleLastModifiedDonations=Last %s modified donations -BoxTitleLastModifiedExpenses=Last %s modified expense reports +BoxLastExpiredServices=Latest %s oldest contacts with active expired services +BoxTitleLastActionsToDo=Latest %s actions to do +BoxTitleLastContracts=Latest %s contracts +BoxTitleLastModifiedDonations=Latest %s modified donations +BoxTitleLastModifiedExpenses=Latest %s modified expense reports BoxGlobalActivity=Global activity (invoices, proposals, orders) BoxGoodCustomers=Good customers BoxTitleGoodCustomers=%s Good customers -FailedToRefreshDataInfoNotUpToDate=Failed to refresh RSS flux. Last successfull refresh date: %s -LastRefreshDate=Last refresh date +FailedToRefreshDataInfoNotUpToDate=Failed to refresh RSS flux. Latest successfull refresh date: %s +LastRefreshDate=Latest refresh date NoRecordedBookmarks=No bookmarks defined. ClickToAdd=Click here to add. NoRecordedCustomers=No recorded customers @@ -82,8 +82,8 @@ NoContractedProducts=No products/services contracted NoRecordedContracts=No recorded contracts NoRecordedInterventions=No recorded interventions BoxLatestSupplierOrders=Latest supplier orders -BoxTitleLatestSupplierOrders=Last %s supplier orders -BoxTitleLatestModifiedSupplierOrders=Last %s modified supplier orders +BoxTitleLatestSupplierOrders=Latest %s supplier orders +BoxTitleLatestModifiedSupplierOrders=Latest %s modified supplier orders NoSupplierOrder=No recorded supplier order BoxCustomersInvoicesPerMonth=Customer invoices per month BoxSuppliersInvoicesPerMonth=Supplier invoices per month @@ -96,5 +96,5 @@ BoxProductDistributionFor=Distribution of %s for %s ForCustomersInvoices=Customers invoices ForCustomersOrders=Customers orders ForProposals=Proposals -LastXMonthRolling=The last %s month rolling +LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard... diff --git a/htdocs/langs/en_US/commercial.lang b/htdocs/langs/en_US/commercial.lang index a5795c402ae..918c3714474 100644 --- a/htdocs/langs/en_US/commercial.lang +++ b/htdocs/langs/en_US/commercial.lang @@ -35,9 +35,9 @@ ShowCustomer=Show customer ShowProspect=Show prospect ListOfProspects=List of prospects ListOfCustomers=List of customers -LastDoneTasks=Last %s completed tasks -LastRecordedTasks=Last recorded tasks -LastActionsToDo=Last %s oldest actions not completed +LastDoneTasks=Latest %s completed tasks +LastRecordedTasks=Latest recorded tasks +LastActionsToDo=Oldest %s not completed actions DoneAndToDoActionsFor=Completed and To do events for %s DoneAndToDoActions=Completed and To do events DoneActions=Completed events @@ -94,4 +94,4 @@ StatusProsp=Prospect status DraftPropals=Draft commercial proposals SearchPropal=Search a commercial proposal CommercialDashboard=Commercial summary -NoLimit=No limit \ No newline at end of file +NoLimit=No limit diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index 6ce5ad43ffc..89a630e26cd 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -302,7 +302,7 @@ RequiredIfCustomer=Required if third party is a customer or prospect RequiredIfSupplier=Required if third party is a supplier ValidityControledByModule=Validity controled by module ThisIsModuleRules=This is rules for this module -LastProspect=Last +LastProspect=Latest ProspectToContact=Prospect to contact CompanyDeleted=Company "%s" deleted from database. ListOfContacts=List of contacts/addresses @@ -328,7 +328,7 @@ NoContactForAnyContract=This contact is not a contact for any contract NoContactForAnyInvoice=This contact is not a contact for any invoice NewContact=New contact NewContactAddress=New contact/address -LastContacts=Last contacts +LastContacts=Latest contacts MyContacts=My contacts Phones=Phones Capital=Capital @@ -421,7 +421,7 @@ ListSuppliersShort=List of suppliers ListProspectsShort=List of prospects ListCustomersShort=List of customers ThirdPartiesArea=Third parties and contact area -LastModifiedThirdParties=Last %s modified third parties +LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Total of unique third parties InActivity=Open ActivityCeased=Closed @@ -441,7 +441,7 @@ ConfirmMergeThirdparties=Are you sure you want to merge this third party into th ThirdpartiesMergeSuccess=Thirdparties have been merged ErrorThirdpartiesMerge=There was an error when deleting the thirdparties. Please check the log. Changes have been reverted. SaleRepresentativeLogin=Login of sale representative -SaleRepresentativeFirstname=Firstname of sale representative -SaleRepresentativeLastname=Lastname of sale representative +SaleRepresentativeFirstname=Firstname of sales representative +SaleRepresentativeLastname=Lastname of sales representative ModelModulesContact=Document Models of contact ModelModulesThirdParties=Document models of third party diff --git a/htdocs/langs/en_US/compta.lang b/htdocs/langs/en_US/compta.lang index 7325c7ed674..23edfae8b05 100644 --- a/htdocs/langs/en_US/compta.lang +++ b/htdocs/langs/en_US/compta.lang @@ -121,7 +121,7 @@ ErrorWrongAccountancyCodeForCompany=Bad customer accountancy code for %s SuppliersProductsSellSalesTurnover=The generated turnover by the sales of supplier's products. CheckReceipt=Check deposit CheckReceiptShort=Check deposit -LastCheckReceiptShort=Last %s check receipts +LastCheckReceiptShort=Latest %s check receipts NewCheckReceipt=New discount NewCheckDeposit=New check deposit NewCheckDepositOn=Create receipt for deposit on account: %s @@ -225,4 +225,4 @@ BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Based on t SameCountryCustomersWithVAT=National customers report BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Based on the two first letters of the VAT number being the same as your own company's country code LinkedFichinter=Link to an intervention -ImportDataset_tax_1=Import social/fiscal taxes \ No newline at end of file +ImportDataset_tax_1=Import social/fiscal taxes diff --git a/htdocs/langs/en_US/contracts.lang b/htdocs/langs/en_US/contracts.lang index a78fc8d285d..620d212c386 100644 --- a/htdocs/langs/en_US/contracts.lang +++ b/htdocs/langs/en_US/contracts.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - contracts ContractsArea=Contracts area ListOfContracts=List of contracts -LastModifiedContracts=Last %s modified contracts +LastModifiedContracts=Latest %s modified contracts AllContracts=All contracts ContractCard=Contract card ContractStatus=Contract status @@ -58,9 +58,9 @@ ListOfRunningContractsLines=List of running contract lines ListOfRunningServices=List of running services NotActivatedServices=Inactive services (among validated contracts) BoardNotActivatedServices=Services to activate among validated contracts -LastContracts=Last %s contracts -LastActivatedServices=Last %s activated services -LastModifiedServices=Last %s modified services +LastContracts=Latest %s contracts +LastActivatedServices=Latest %s activated services +LastModifiedServices=Latest %s modified services EditServiceLine=Edit service line ContractStartDate=Start date ContractEndDate=End date diff --git a/htdocs/langs/en_US/cron.lang b/htdocs/langs/en_US/cron.lang index cd118b26550..456e9562a2f 100644 --- a/htdocs/langs/en_US/cron.lang +++ b/htdocs/langs/en_US/cron.lang @@ -63,7 +63,7 @@ CronHourStart= Start hour and date of job CronEvery=Execute job each CronObject=Instance/Object to create CronArgs=Parameters -CronSaveSucess=Save succesfully +CronSaveSucess=Save successfully CronNote=Comment CronFieldMandatory=Fields %s is mandatory CronErrEndDateStartDt=End date cannot be before start date diff --git a/htdocs/langs/en_US/donations.lang b/htdocs/langs/en_US/donations.lang index 8b4c2ca8756..24ce0cc17b0 100644 --- a/htdocs/langs/en_US/donations.lang +++ b/htdocs/langs/en_US/donations.lang @@ -29,7 +29,7 @@ ValidPromess=Validate promise DonationReceipt=Donation receipt BuildDonationReceipt=Build receipt DonationsModels=Documents models for donation receipts -LastModifiedDonations=Last %s modified donations +LastModifiedDonations=Latest %s modified donations SearchADonation=Search a donation DonationRecipient=Donation recipient ThankYou=Thank You diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang index 56e136f5e52..aeb43525336 100755 --- a/htdocs/langs/en_US/errors.lang +++ b/htdocs/langs/en_US/errors.lang @@ -17,7 +17,7 @@ ErrorFailToCreateFile=Failed to create file '%s'. ErrorFailToRenameDir=Failed to rename directory '%s' into '%s'. ErrorFailToCreateDir=Failed to create directory '%s'. ErrorFailToDeleteDir=Failed to delete directory '%s'. -ErrorFailedToDeleteJoinedFiles=Can not delete environment because there is some joined files. Remove join files first. +ErrorFailedToDeleteJoinedFiles=Cannot delete environment because joined files are present. Remove joined files first. ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type. ErrorCashAccountAcceptsOnlyCashMoney=This bank account is a cash account, so it accepts payments of type cash only. ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be different. @@ -41,7 +41,7 @@ ErrorBadDateFormat=Value '%s' has wrong date format ErrorWrongDate=Date is not correct! ErrorFailedToWriteInDir=Failed to write in directory %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s) -ErrorUserCannotBeDelete=User can not be deleted. May be it is associated on Dolibarr entities. +ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Some required fields were not filled. ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter safe_mode is enabled on this PHP, check that Dolibarr php files owns to web server user (or group). ErrorNoMailDefinedForThisUser=No mail defined for this user @@ -129,7 +129,7 @@ ErrorNewValueCantMatchOldValue=New value can't be equal to old one ErrorFailedToValidatePasswordReset=Failed to reinit password. May be the reinit was already done (this link can be used only one time). If not, try to restart the reinit process. ErrorToConnectToMysqlCheckInstance=Connect to database fails. Check Mysql server is running (in most cases, you can launch it from command line with 'sudo /etc/init.d/mysql start'). ErrorFailedToAddContact=Failed to add contact -ErrorDateMustBeBeforeToday=The date can not be greater than today +ErrorDateMustBeBeforeToday=The date cannot be greater than today ErrorPaymentModeDefinedToWithoutSetup=A payment mode was set to type %s but setup of module Invoice was not completed to define information to show for this payment mode. ErrorPHPNeedModule=Error, your PHP must have module %s installed to use this feature. ErrorOpenIDSetupNotComplete=You setup Dolibarr config file to allow OpenID authentication, but URL of OpenID service is not defined into constant %s diff --git a/htdocs/langs/en_US/holiday.lang b/htdocs/langs/en_US/holiday.lang index f26fdc73cd2..9ff15079900 100644 --- a/htdocs/langs/en_US/holiday.lang +++ b/htdocs/langs/en_US/holiday.lang @@ -80,7 +80,7 @@ alreadyCPexist=A leave request has already been done on this period. UserName=Name FirstDayOfHoliday=First day of vacation LastDayOfHoliday=Last day of vacation -BoxTitleLastLeaveRequests=Last %s modified leave requests +BoxTitleLastLeaveRequests=Latest %s modified leave requests HolidaysMonthlyUpdate=Monthly update ManualUpdate=Manual update HolidaysCancelation=Leave request cancelation @@ -91,8 +91,8 @@ DescOptionCP=Description of the option ValueOptionCP=Value GroupToValidateCP=Group with the ability to approve leave requests ConfirmConfigCP=Validate the configuration -LastUpdateCP=Last automatic update of leaves allocation -MonthOfLastMonthlyUpdate=Month of last automatic update of leaves allocation +LastUpdateCP=Latest automatic update of leaves allocation +MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation UpdateConfCPOK=Updated successfully. ErrorUpdateConfCP=An error occurred during the update, please try again. AddCPforUsers=Please add the balance of leaves allocation of users by clicking here. @@ -143,4 +143,4 @@ NewByMonth=Added per month Affect=Followed by a counter FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.
0: Not followed by a counter. NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter -GoIntoDictionaryHolidayTypes=Go into Home - Setup - Dictionaries - Type of leaves to setup the different types of leaves. \ No newline at end of file +GoIntoDictionaryHolidayTypes=Go into Home - Setup - Dictionaries - Type of leaves to setup the different types of leaves. diff --git a/htdocs/langs/en_US/install.lang b/htdocs/langs/en_US/install.lang index ca2e94686fb..eacd6937e92 100644 --- a/htdocs/langs/en_US/install.lang +++ b/htdocs/langs/en_US/install.lang @@ -82,7 +82,7 @@ SetupEnd=End of setup SystemIsInstalled=This installation is complete. SystemIsUpgraded=Dolibarr has been upgraded successfully. YouNeedToPersonalizeSetup=You need to configure Dolibarr to suit your needs (appearance, features, ...). To do this, please follow the link below: -AdminLoginCreatedSuccessfuly=Dolibarr administrator login '%s' created successfuly. +AdminLoginCreatedSuccessfuly=Dolibarr administrator login '%s' created successfully. GoToDolibarr=Go to Dolibarr GoToSetupArea=Go to Dolibarr (setup area) MigrationNotFinished=Version of your database is not completely up to date, so you'll have to run the upgrade process again. @@ -159,7 +159,7 @@ MigrationSupplierOrder=Data migration for supplier's orders MigrationProposal=Data migration for commercial proposals MigrationInvoice=Data migration for customer's invoices MigrationContract=Data migration for contracts -MigrationSuccessfullUpdate=Upgrade successful +MigrationSuccessfullUpdate=Upgrade successfull MigrationUpdateFailed=Failed upgrade process MigrationRelationshipTables=Data migration for relationship tables (%s) MigrationPaymentsUpdate=Payment data correction @@ -173,7 +173,7 @@ MigrationContractsLineCreation=Create contract line for contract ref %s MigrationContractsNothingToUpdate=No more things to do MigrationContractsFieldDontExist=Field fk_facture does not exists anymore. Nothing to do. MigrationContractsEmptyDatesUpdate=Contract empty date correction -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfuly +MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully MigrationContractsEmptyDatesNothingToUpdate=No contract empty date to correct MigrationContractsEmptyCreationDatesNothingToUpdate=No contract creation date to correct MigrationContractsInvalidDatesUpdate=Bad value date contract correction @@ -181,7 +181,7 @@ MigrationContractsInvalidDateFix=Correct contract %s (Contract date=%s, Starting MigrationContractsInvalidDatesNumber=%s contracts modified MigrationContractsInvalidDatesNothingToUpdate=No date with bad value to correct MigrationContractsIncoherentCreationDateUpdate=Bad value contract creation date correction -MigrationContractsIncoherentCreationDateUpdateSuccess=Bad value contract creation date correction done succesfuly +MigrationContractsIncoherentCreationDateUpdateSuccess=Bad value contract creation date correction done successfully MigrationContractsIncoherentCreationDateNothingToUpdate=No bad value for contract creation date to correct MigrationReopeningContracts=Open contract closed by error MigrationReopenThisContract=Reopen contract %s @@ -205,4 +205,4 @@ MigrationEvents=Migration of events to add event owner into assignement table MigrationReloadModule=Reload module %s ShowNotAvailableOptions=Show not available options HideNotAvailableOptions=Hide not available options -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can click here, but application or some features may not work correctly until fixed. \ No newline at end of file +ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can click here, but application or some features may not work correctly until fixed. diff --git a/htdocs/langs/en_US/interventions.lang b/htdocs/langs/en_US/interventions.lang index cf93bd3d2b1..9df35ba9e38 100644 --- a/htdocs/langs/en_US/interventions.lang +++ b/htdocs/langs/en_US/interventions.lang @@ -7,7 +7,7 @@ AddIntervention=Create intervention ListOfInterventions=List of interventions EditIntervention=Edit intervention ActionsOnFicheInter=Actions on intervention -LastInterventions=Last %s interventions +LastInterventions=Latest %s interventions AllInterventions=All interventions CreateDraftIntervention=Create draft CustomerDoesNotHavePrefix=Customer does not have a prefix @@ -41,7 +41,7 @@ InterventionDeletedInDolibarr=Intervention %s deleted SearchAnIntervention=Search an intervention InterventionsArea=Interventions area DraftFichinter=Draft interventions -LastModifiedInterventions=Last %s modified interventions +LastModifiedInterventions=Latest %s modified interventions ##### Types de contacts ##### TypeContact_fichinter_internal_INTERREPFOLL=Representative following-up intervention TypeContact_fichinter_internal_INTERVENING=Intervening diff --git a/htdocs/langs/en_US/mailmanspip.lang b/htdocs/langs/en_US/mailmanspip.lang index c85b3d60db2..bab4b3576b4 100644 --- a/htdocs/langs/en_US/mailmanspip.lang +++ b/htdocs/langs/en_US/mailmanspip.lang @@ -3,8 +3,8 @@ MailmanSpipSetup=Mailman and SPIP module Setup MailmanTitle=Mailman mailing list system TestSubscribe=To test subscription to Mailman lists TestUnSubscribe=To test unsubscribe from Mailman lists -MailmanCreationSuccess=Subscription test was executed succesfully -MailmanDeletionSuccess=Unsubscription test was executed succesfully +MailmanCreationSuccess=Subscription test was executed successfully +MailmanDeletionSuccess=Unsubscription test was executed successfully SynchroMailManEnabled=A Mailman update will be performed SynchroSpipEnabled=A Spip update will be performed DescADHERENT_MAILMAN_ADMINPW=Mailman administrator password @@ -23,5 +23,5 @@ DeleteIntoSpip=Remove from SPIP DeleteIntoSpipConfirmation=Are you sure you want to remove this member from SPIP? DeleteIntoSpipError=Failed to suppress the user from SPIP SPIPConnectionFailed=Failed to connect to SPIP -SuccessToAddToMailmanList=Add of %s to mailman list %s or SPIP database done -SuccessToRemoveToMailmanList=Removal of %s from mailman list %s or SPIP database done +SuccessToAddToMailmanList=%s successfully added to mailman list %s or SPIP database +SuccessToRemoveToMailmanList=%s successfully removed from mailman list %s or SPIP database diff --git a/htdocs/langs/en_US/mails.lang b/htdocs/langs/en_US/mails.lang index 01ff6c7b486..7eba3525fc1 100644 --- a/htdocs/langs/en_US/mails.lang +++ b/htdocs/langs/en_US/mails.lang @@ -70,7 +70,7 @@ CloneEMailing=Clone Emailing ConfirmCloneEMailing=Are you sure you want to clone this emailing ? CloneContent=Clone message CloneReceivers=Cloner recipients -DateLastSend=Date of last sending +DateLastSend=Date of latest sending DateSending=Date sending SentTo=Sent to %s MailingStatusRead=Read @@ -170,4 +170,4 @@ AdvTgtSaveFilter=Save filter AdvTgtCreateFilter=Create filter AdvTgtOrCreateNewFilter=Name of new filter NoContactWithCategoryFound=No contact/address with a category found -NoContactLinkedToThirdpartieWithCategoryFound=No contact/address with a category found \ No newline at end of file +NoContactLinkedToThirdpartieWithCategoryFound=No contact/address with a category found diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index 150da862bef..041cc0523cc 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -36,8 +36,8 @@ ErrorFieldRequired=Field '%s' is required ErrorFieldFormat=Field '%s' has a bad value ErrorFileDoesNotExists=File %s does not exist ErrorFailedToOpenFile=Failed to open file %s -ErrorCanNotCreateDir=Can not create dir %s -ErrorCanNotReadDir=Can not read dir %s +ErrorCanNotCreateDir=Cannot create dir %s +ErrorCanNotReadDir=Cannot read dir %s ErrorConstantNotDefined=Parameter %s not defined ErrorUnknown=Unknown error ErrorSQL=SQL Error @@ -804,4 +804,4 @@ SearchIntoSupplierProposals=Supplier proposals SearchIntoInterventions=Interventions SearchIntoContracts=Contracts SearchIntoExpenseReports=Expense reports -SearchIntoCustomerShipments=Customer shipments \ No newline at end of file +SearchIntoCustomerShipments=Customer shipments diff --git a/htdocs/langs/en_US/members.lang b/htdocs/langs/en_US/members.lang index 9539c5fd39b..7ebbe1dde4f 100644 --- a/htdocs/langs/en_US/members.lang +++ b/htdocs/langs/en_US/members.lang @@ -114,9 +114,9 @@ EnablePublicSubscriptionForm=Enable the public auto-subscription form MemberPublicLinks=Public links/pages ExportDataset_member_1=Members and subscriptions ImportDataset_member_1=Members -LastMembers=Last %s members -LastMembersModified=Last %s modified members -LastSubscriptionsModified=Last %s modified subscriptions +LastMembers=Latest %s members +LastMembersModified=Latest %s modified members +LastSubscriptionsModified=Latest %s modified subscriptions AttributeName=Attribute name String=String Text=Text @@ -204,4 +204,4 @@ MembersByRegion=This screen show you statistics on members by region. VATToUseForSubscriptions=VAT rate to use for subscriptions NoVatOnSubscription=No TVA for subscriptions MEMBER_PAYONLINE_SENDEMAIL=Email to use for email warning when Dolibarr receive a confirmation of a validated payment for a subscription (Example: paymentdone@example.com) -ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Product used for subscription line into invoice: %s \ No newline at end of file +ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Product used for subscription line into invoice: %s diff --git a/htdocs/langs/en_US/orders.lang b/htdocs/langs/en_US/orders.lang index 46c28f14578..85838a8fce1 100644 --- a/htdocs/langs/en_US/orders.lang +++ b/htdocs/langs/en_US/orders.lang @@ -87,11 +87,11 @@ NoDraftOrders=No draft orders NoOrder=No order NoSupplierOrder=No supplier order OtherOrders=Other orders -LastOrders=Last %s customer orders -LastCustomerOrders=Last %s customer orders -LastSupplierOrders=Last %s supplier orders -LastModifiedOrders=Last %s modified orders -LastClosedOrders=Last %s closed orders +LastOrders=Latest %s customer orders +LastCustomerOrders=Latest %s customer orders +LastSupplierOrders=Latest %s supplier orders +LastModifiedOrders=Latest %s modified orders +LastClosedOrders=Latest %s closed orders AllOrders=All orders NbOfOrders=Number of orders OrdersStatistics=Order's statistics diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang index 96bf0da9bfa..3dd12b2bb41 100644 --- a/htdocs/langs/en_US/products.lang +++ b/htdocs/langs/en_US/products.lang @@ -36,12 +36,12 @@ ServicesOnSell=Services for sale or for purchase ServicesNotOnSell=Services not for sale ServicesOnSellAndOnBuy=Services for sale and for purchase InternalRef=Internal reference -LastRecorded=Last products/services on sell recorded -LastRecordedProductsAndServices=Last %s recorded products/services -LastModifiedProductsAndServices=Last %s modified products/services -LastRecordedProducts=Last %s products recorded -LastRecordedServices=Last %s services recorded -LastProducts=Last products +LastRecorded=Latest recorded products/services on sell +LastRecordedProductsAndServices=Latest %s recorded products/services +LastModifiedProductsAndServices=Latest %s modified products/services +LastRecordedProducts=Latest %s recorded products +LastRecordedServices=Latest %s recorded services +LastProducts=Latest products CardProduct0=Product card CardProduct1=Service card CardContract=Contract card diff --git a/htdocs/langs/en_US/projects.lang b/htdocs/langs/en_US/projects.lang index 42c05d0cd07..2d08f153594 100644 --- a/htdocs/langs/en_US/projects.lang +++ b/htdocs/langs/en_US/projects.lang @@ -28,7 +28,7 @@ DeleteATask=Delete a task ConfirmDeleteAProject=Are you sure you want to delete this project ? ConfirmDeleteATask=Are you sure you want to delete this task ? OfficerProject=Officer project -LastProjects=Last %s projects +LastProjects=Latest %s projects AllProjects=All projects OpenedProjects=Opened projects OpenedTasks=Opened tasks @@ -201,4 +201,4 @@ OppStatusNEGO=Negociation OppStatusPENDING=Pending OppStatusWON=Won OppStatusLOST=Lost -Budget=Budget \ No newline at end of file +Budget=Budget diff --git a/htdocs/langs/en_US/propal.lang b/htdocs/langs/en_US/propal.lang index 15b10e7d92f..cc06aeff937 100644 --- a/htdocs/langs/en_US/propal.lang +++ b/htdocs/langs/en_US/propal.lang @@ -19,11 +19,11 @@ ValidateProp=Validate commercial proposal AddProp=Create proposal ConfirmDeleteProp=Are you sure you want to delete this commercial proposal ? ConfirmValidateProp=Are you sure you want to validate this commercial proposal under name %s ? -LastPropals=Last %s proposals -LastClosedProposals=Last %s closed proposals -LastModifiedProposals=Last %s modified proposals +LastPropals=Latest %s proposals +LastClosedProposals=Latest %s closed proposals +LastModifiedProposals=Latest %s modified proposals AllPropals=All proposals -LastProposals=Last proposals +LastProposals=Latest proposals SearchAProposal=Search a proposal NoProposal=No proposal ProposalsStatistics=Commercial proposal's statistics @@ -102,4 +102,4 @@ DefaultModelPropalCreate=Default model creation DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced) DefaultModelPropalClosed=Default template when closing a business proposal (unbilled) ProposalCustomerSignature=Written acceptance, company stamp, date and signature -ProposalsStatisticsSuppliers=Supplier proposals statistics \ No newline at end of file +ProposalsStatisticsSuppliers=Supplier proposals statistics diff --git a/htdocs/langs/en_US/sendings.lang b/htdocs/langs/en_US/sendings.lang index a118a4d8373..1ec229af6c5 100644 --- a/htdocs/langs/en_US/sendings.lang +++ b/htdocs/langs/en_US/sendings.lang @@ -11,7 +11,7 @@ SendingsArea=Shipments area ListOfSendings=List of shipments SendingMethod=Shipping method SendingReceipt=Shipping receipt -LastSendings=Last %s shipments +LastSendings=Latest %s shipments SearchASending=Search for shipment StatisticsOfSendings=Statistics for shipments NbOfSendings=Number of shipments diff --git a/htdocs/langs/en_US/supplier_proposal.lang b/htdocs/langs/en_US/supplier_proposal.lang index a1ede43437d..988e377d4df 100644 --- a/htdocs/langs/en_US/supplier_proposal.lang +++ b/htdocs/langs/en_US/supplier_proposal.lang @@ -7,7 +7,7 @@ CommRequests=Price requests SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals -LastModifiedRequests=Last %s modified price requests +LastModifiedRequests=Latest %s modified price requests RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal @@ -58,4 +58,4 @@ DefaultModelSupplierProposalToBill=Default template when closing a price request DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) ListOfSupplierProposal=List of supplier proposal requests SupplierProposalsToClose=Supplier proposals to close -SupplierProposalsToProcess=Supplier proposals to process \ No newline at end of file +SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/en_US/users.lang b/htdocs/langs/en_US/users.lang index 47cddfa433f..13f816c7a3e 100644 --- a/htdocs/langs/en_US/users.lang +++ b/htdocs/langs/en_US/users.lang @@ -48,7 +48,7 @@ AdministratorDescEntity=Administrator (for its company) DefaultRights=Default permissions DefaultRightsDesc=Define here default permissions that are automatically granted to a new created user (Go on user card to change permission of an existing user). DolibarrUsers=Dolibarr users -LastName=Name +LastName=Last Name FirstName=First name ListOfGroups=List of groups NewGroup=New group @@ -58,8 +58,8 @@ PasswordChangedAndSentTo=Password changed and sent to %s. PasswordChangeRequestSent=Request to change password for %s sent to %s. MenuUsersAndGroups=Users & Groups MenuMyUserCard=My user card -LastGroupsCreated=Last %s created groups -LastUsersCreated=Last %s users created +LastGroupsCreated=Latest %s created groups +LastUsersCreated=Latest %s users created ShowGroup=Show group ShowUser=Show user NonAffectedUsers=Non assigned users @@ -122,4 +122,4 @@ LoginUsingOpenID=Use OpenID to login WeeklyHours=Weekly hours ColorUser=Color of the user DisabledInMonoUserMode=Disabled in maintenance mode -UserAccountancyCode=User accountancy code \ No newline at end of file +UserAccountancyCode=User accountancy code diff --git a/htdocs/langs/en_US/withdrawals.lang b/htdocs/langs/en_US/withdrawals.lang index 8248042d10c..1b282432a16 100644 --- a/htdocs/langs/en_US/withdrawals.lang +++ b/htdocs/langs/en_US/withdrawals.lang @@ -11,8 +11,8 @@ Withdrawal=Withdrawal WithdrawalsReceipts=Withdrawal receipts WithdrawalReceipt=Withdrawal receipt WithdrawalReceiptShort=Receipt -LastWithdrawalReceipts=Last %s withdrawal receipts -WithdrawedBills=Withdrawn invoices +LastWithdrawalReceipts=Latest %s withdrawal receipts +WithdrawedBills=Withdrawal invoices WithdrawalsLines=Withdrawal lines RequestStandingOrderToTreat=Request for standing orders to process RequestStandingOrderTreated=Request for standing orders processed @@ -29,7 +29,7 @@ ResponsibleUser=Responsible user WithdrawalsSetup=Withdrawal setup WithdrawStatistics=Withdraw's statistics WithdrawRejectStatistics=Withdraw reject's statistics -LastWithdrawalReceipt=Last %s withdrawing receipts +LastWithdrawalReceipt=Latest %s withdrawal receipts MakeWithdrawRequest=Make a withdraw request ThirdPartyBankCode=Third party bank code ThirdPartyDeskCode=Third party desk code From f2e4fdcce45358c90261eeb4b20f6b4bc6ababaf Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sat, 4 Jun 2016 00:16:01 +0200 Subject: [PATCH 28/77] Fix import model not correctly saved #5185 --- htdocs/install/mysql/migration/3.9.0-4.0.0.sql | 2 ++ 1 file changed, 2 insertions(+) diff --git a/htdocs/install/mysql/migration/3.9.0-4.0.0.sql b/htdocs/install/mysql/migration/3.9.0-4.0.0.sql index 6999d2da27b..4aae6de71e6 100644 --- a/htdocs/install/mysql/migration/3.9.0-4.0.0.sql +++ b/htdocs/install/mysql/migration/3.9.0-4.0.0.sql @@ -501,3 +501,5 @@ CREATE TABLE llx_oauth_state ( fk_adherent integer, entity integer )ENGINE=InnoDB; + +ALTER TABLE llx_import_model MODIFY COLUMN type varchar(50); \ No newline at end of file From e2ba9c72a89ff645ff8ed59a9008eab4776bee5e Mon Sep 17 00:00:00 2001 From: novalore Date: Sat, 4 Jun 2016 00:18:15 +0200 Subject: [PATCH 29/77] French string in main.lang --- htdocs/langs/en_US/main.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index 041cc0523cc..548982efb65 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -530,7 +530,7 @@ ReportName=Report name ReportPeriod=Report period ReportDescription=Description Report=Report -Keyword=Mot clé +Keyword=Keyword Legend=Legend FillTownFromZip=Fill city from zip Fill=Fill From e3a5af6ad4884fc8c39d1a8cbc91a7c3c30e0f72 Mon Sep 17 00:00:00 2001 From: phf Date: Sat, 4 Jun 2016 00:42:01 +0200 Subject: [PATCH 30/77] Fix clean multicurrency admin --- htdocs/admin/multicurrency.php | 132 ++++++++++-------- .../class/multicurrency.class.php | 24 +++- 2 files changed, 94 insertions(+), 62 deletions(-) diff --git a/htdocs/admin/multicurrency.php b/htdocs/admin/multicurrency.php index e47b2c9068e..74804b01344 100644 --- a/htdocs/admin/multicurrency.php +++ b/htdocs/admin/multicurrency.php @@ -77,20 +77,20 @@ if (preg_match('/del_(.*)/',$action,$reg)) if ($action == 'add_currency') { - $code = GETPOST('code', 'alpha'); - $name = GETPOST('name', 'alpha'); - $rate = GETPOST('rate', 'alpha'); + $langs->loadCacheCurrencies(''); + $code = GETPOST('code', 'alpha'); + $rate = GETPOST('rate', 'alpha'); $currency = new MultiCurrency($db); $currency->code = $code; - $currency->name = $name; + $currency->name = !empty($langs->cache_currencies[$code]['label']) ? $langs->cache_currencies[$code]['label'].' ('.$langs->getCurrencySymbol($code).')' : $code; if ($currency->create($user) > 0) { if ($currency->addRate($rate)) setEventMessages($langs->trans('RecordSaved'), array()); else setEventMessages($langs->trans('ErrorAddRateFail'), array(), 'errors'); } - else setEventMessages($langs->trans('ErrorAddCurrencyFail'), array()); + else setEventMessages($langs->trans('ErrorAddCurrencyFail'), $currency->errors, 'errors'); } elseif ($action == 'update_currency') { @@ -182,6 +182,7 @@ print ''.$langs->trans("Parameters").''."\n"; print ' '; print ''.$langs->trans("Value").''."\n"; +/* TODO uncomment when the functionality will integrated $var=!$var; print ''; print ''.$langs->transnoentitiesnoconv("multicurrency_useRateOnInvoiceDate").''; @@ -194,6 +195,7 @@ print $form->selectyesno("MULTICURRENCY_USE_RATE_ON_INVOICE_DATE",$conf->global- print ''; print ''; print ''; +*/ $var=!$var; print ''; @@ -208,6 +210,7 @@ print '' print ''; print ''; +/* TODO uncomment when the functionality will integrated $var=!$var; print ''; print ''.$langs->transnoentitiesnoconv("multicurrency_buyPriceInCurrency").''; @@ -220,7 +223,9 @@ print $form->selectyesno("MULTICURRENCY_BUY_PRICE_IN_CURRENCY",$conf->global->MU print ''; print ''; print ''; +*/ +/* TODO uncomment when the functionality will integrated $var=!$var; print ''; print ''.$langs->transnoentitiesnoconv("multicurrency_modifyRateApplication").''; @@ -236,64 +241,68 @@ print ''; print ''; print '
'; +*/ -$var=false; -print ''; -print ''; -print ''."\n"; -print ''; -print ''; +if (!empty($conf->global->MAIN_MULTICURRENCY_ALLOW_SYNCHRONIZATION)) +{ + $var=false; + print '
'.$langs->trans("CurrencyLayerAccount").' '; -print '
'; -print ''; -print ''; -print $langs->trans("Value").' '; -print '
'; -print '
'; + print ''; + print ''."\n"; + print ''; + print ''; + + + $var=!$var; + print ''; + print ''; + print ''; + print ''; + + $var=!$var; + print ''; + print ''; + print ''; + print ''; + + $var=!$var; + print ''; + print ''; + print ''; + print ''; + + print '
'.$langs->trans("CurrencyLayerAccount").' '; + print '
'; + print ''; + print ''; + print $langs->trans("Value").' '; + print '
'; + print '
'.$langs->transnoentitiesnoconv("multicurrency_appId").' '; + print '
'; + print ''; + print ''; + print ' '; + print ''; + print '
'; + print '
'.$langs->transnoentitiesnoconv("multicurrency_appCurrencySource").' '; + print '
'; + print ''; + print ''; + print ' '; // Default: USD + print ''; + print '
'; + print '
'.$langs->transnoentitiesnoconv("multicurrency_alternateCurrencySource").' '; + print '
'; + print ''; + print ''; + print ' '; // Example: EUR + print ''; + print '
'; + print '
'; + print '
'; +} -$var=!$var; -print ''; -print ''.$langs->transnoentitiesnoconv("multicurrency_appId").''; -print ' '; -print ''; -print '
'; -print ''; -print ''; -print ' '; -print ''; -print '
'; -print ''; - -$var=!$var; -print ''; -print ''.$langs->transnoentitiesnoconv("multicurrency_appCurrencySource").''; -print ' '; -print ''; -print '
'; -print ''; -print ''; -print ' '; // Default: USD -print ''; -print '
'; -print ''; - -$var=!$var; -print ''; -print ''.$langs->transnoentitiesnoconv("multicurrency_alternateCurrencySource").''; -print ' '; -print ''; -print '
'; -print ''; -print ''; -print ' '; // Example: EUR -print ''; -print '
'; -print ''; - - -print ''; -print '
'; - print ''; print ''; @@ -306,7 +315,8 @@ print ''; print ''; print ''; print ''; -print ''; +//print ''; +print ''; print ''; print ''; if (! empty($conf->global->AGENDA_USE_EVENT_TYPE)) From 495ce2463dd3dcf61aa27d02ede9c8d5e67ae75e Mon Sep 17 00:00:00 2001 From: phf Date: Sat, 4 Jun 2016 01:13:23 +0200 Subject: [PATCH 32/77] Fix switch currency on document do not get the associate rate --- htdocs/comm/propal/card.php | 2 +- htdocs/core/class/html.form.class.php | 4 ++-- htdocs/multicurrency/class/multicurrency.class.php | 7 ++++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php index 82988dfcb0d..f3ebd32fe95 100644 --- a/htdocs/comm/propal/card.php +++ b/htdocs/comm/propal/card.php @@ -1433,7 +1433,7 @@ if ($action == 'create') print ''; print ''; } diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 64d1538578b..5a8c0440a81 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -3812,7 +3812,7 @@ class Form print ''; print '
- - '.$form->selectCurrency('', 'code').' '; print ' '; diff --git a/htdocs/multicurrency/class/multicurrency.class.php b/htdocs/multicurrency/class/multicurrency.class.php index b4baa550ce7..76238e31906 100644 --- a/htdocs/multicurrency/class/multicurrency.class.php +++ b/htdocs/multicurrency/class/multicurrency.class.php @@ -107,12 +107,19 @@ class MultiCurrency extends CommonObject */ public function create(User $user, $trigger = true) { - global $conf; + global $conf,$langs; dol_syslog('Currency::create', LOG_DEBUG); $error = 0; + if (self::checkCodeAlreadyExists($this->code)) + { + $error++; + $this->errors[] = $langs->trans('multicurrency_code_already_added'); + return -1; + } + if (empty($this->entity) || $this->entity <= 0) $this->entity = $conf->entity; $now=date('Y-m-d H:i:s'); @@ -616,6 +623,21 @@ class MultiCurrency extends CommonObject } } } + + /** + * Check in database if the current code already exists + * + * @param string $code current code to search + * @return true if exists, false if not exists + */ + public static function checkCodeAlreadyExists($code) + { + global $db; + + $currency = new MultiCurrency($db); + if ($currency->fetch('', $code) > 0) return true; + else return false; + } } /** From 9c3365aefcd4c02ad4aed8ce1b7783561267bcc5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 4 Jun 2016 00:52:55 +0200 Subject: [PATCH 31/77] FIX #5163 --- htdocs/comm/action/listactions.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/comm/action/listactions.php b/htdocs/comm/action/listactions.php index 447a247ad56..a9dd8d8f1e5 100644 --- a/htdocs/comm/action/listactions.php +++ b/htdocs/comm/action/listactions.php @@ -1,7 +1,7 @@ * Copyright (C) 2003 Eric Seigne - * Copyright (C) 2004-2015 Laurent Destailleur + * Copyright (C) 2004-2016 Laurent Destailleur * Copyright (C) 2005-2012 Regis Houssin * * This program is free software; you can redistribute it and/or modify @@ -210,7 +210,7 @@ if ($status == 'todo') { $sql.= " AND ((a.percent >= 0 AND a.percent < 100) OR ( if ($filtert > 0 || $usergroup > 0) { $sql.= " AND ("; - if ($filtert > 0) $sql.= "(ar.fk_element = ".$filtert." OR a.fk_user_action=".$filtert.")"; + if ($filtert > 0) $sql.= "(ar.fk_element = ".$filtert." OR (ar.fk_element IS NULL AND a.fk_user_action=".$filtert."))"; // The OR is for backward compatibility if ($usergroup > 0) $sql.= ($filtert>0?" OR ":"")." ugu.fk_usergroup = ".$usergroup; $sql.= ")"; } @@ -350,7 +350,7 @@ if ($resql) $actionstatic->type_code=$obj->type_code; $actionstatic->type_label=$obj->type_label; $actionstatic->label=$obj->label; - print $actionstatic->getNomUrl(1,28); + print $actionstatic->getNomUrl(1,36); print ''.fieldLabel('Currency','multicurrency_code').''; $currency_code = (!empty($soc->multicurrency_code) ? $soc->multicurrency_code : ($object->multicurrency_code ? $object->multicurrency_code : $conf->currency)); - print $form->selectMultiCurrency($currency_code, 'multicurrency_code', 1); + print $form->selectMultiCurrency($currency_code, 'multicurrency_code', 0); print '
'; print ''; print ''; print '
'; - print $this->selectMultiCurrency($selected, $htmlname, 1); + print $this->selectMultiCurrency($selected, $htmlname, 0); print '
'; @@ -4091,7 +4091,7 @@ class Form $out=''; $out.= ''; print '    '.$langs->trans("Enclosure").' : '; print ''; - print ''; + print ''; print ''; print ''; } From 6c126da9a9aac07b26de0d22a462d712f6898a02 Mon Sep 17 00:00:00 2001 From: cla Date: Sat, 4 Jun 2016 01:34:04 +0200 Subject: [PATCH 35/77] FIX #4141 --- htdocs/fichinter/card.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/fichinter/card.php b/htdocs/fichinter/card.php index 71fec224137..b305d718a52 100644 --- a/htdocs/fichinter/card.php +++ b/htdocs/fichinter/card.php @@ -494,7 +494,7 @@ if (empty($reshook)) $desc=GETPOST('np_desc'); $date_intervention = dol_mktime(GETPOST('dihour','int'), GETPOST('dimin','int'), 0, GETPOST('dimonth','int'), GETPOST('diday','int'), GETPOST('diyear','int')); - $duration = empty($conf->global->FICHINTER_WITHOUT_DURATION)?0:convertTime2Seconds(GETPOST('durationhour','int'), GETPOST('durationmin','int')); + $duration = empty($conf->global->FICHINTER_WITHOUT_DURATION)?convertTime2Seconds(GETPOST('durationhour','int'), GETPOST('durationmin','int')) : 0; // Extrafields @@ -1558,7 +1558,7 @@ else if ($id > 0 || ! empty($ref)) $selectmode = 'select'; if (!empty($conf->global->INTERVENTION_ADDLINE_FREEDUREATION)) $selectmode = 'text'; - $form->select_duration('duration', $objp->duree, $selectmode); + $form->select_duration('duration', $objp->duree, 0, $selectmode); } print ''; From b000ccf2e21202a78c3aaeec20a2445892f9551d Mon Sep 17 00:00:00 2001 From: phf Date: Sat, 4 Jun 2016 01:46:10 +0200 Subject: [PATCH 36/77] Fix traduction for multicurrency module --- htdocs/admin/multicurrency.php | 8 ++++---- htdocs/langs/en_US/multicurrency.lang | 17 +++++++++++++++++ 2 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 htdocs/langs/en_US/multicurrency.lang diff --git a/htdocs/admin/multicurrency.php b/htdocs/admin/multicurrency.php index 74804b01344..530f3bff5b7 100644 --- a/htdocs/admin/multicurrency.php +++ b/htdocs/admin/multicurrency.php @@ -239,16 +239,17 @@ print '' print ''; print ''; +*/ + print ''; print '
'; -*/ if (!empty($conf->global->MAIN_MULTICURRENCY_ALLOW_SYNCHRONIZATION)) { $var=false; print ''; print ''; - print ''."\n"; + print ''."\n"; print ''; print '
'.$langs->trans("CurrencyLayerAccount").''.$form->textwithpicto($langs->trans("CurrencyLayerAccount"), $langs->trans("CurrencyLayerAccount_help_to_synchronize")).' '; print '
'; @@ -306,7 +307,7 @@ if (!empty($conf->global->MAIN_MULTICURRENCY_ALLOW_SYNCHRONIZATION)) print ''; print ''; -print ''."\n"; +print ''."\n"; print ''; print ''."\n"; @@ -315,7 +316,6 @@ print ''; print ''; print ''; print ''; -//print ''; print ''; print ''; print ''; print ''; // Mode of payment print ''; // Bank Account if (! empty($conf->global->BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL) && $conf->banque->enabled) { print ''; } // Shipping Method if (! empty($conf->expedition->enabled)) { print ''; } // Delivery date (or manufacturing) print ''; print ''; diff --git a/htdocs/supplier_proposal/tpl/linkedobjectblock.tpl.php b/htdocs/supplier_proposal/tpl/linkedobjectblock.tpl.php index d0b1b19278a..8f72744486a 100644 --- a/htdocs/supplier_proposal/tpl/linkedobjectblock.tpl.php +++ b/htdocs/supplier_proposal/tpl/linkedobjectblock.tpl.php @@ -19,7 +19,7 @@ ?> - + $objectlink) $var=!$var; ?> > - + From 3102981b88774490d4b61b9ad8c9d167f10f9082 Mon Sep 17 00:00:00 2001 From: jean Date: Sat, 4 Jun 2016 11:04:04 +0200 Subject: [PATCH 42/77] maj source --- test/phpunit/CompanyLibTest.php | 171 ++++++++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 test/phpunit/CompanyLibTest.php diff --git a/test/phpunit/CompanyLibTest.php b/test/phpunit/CompanyLibTest.php new file mode 100644 index 00000000000..3dde3f6983d --- /dev/null +++ b/test/phpunit/CompanyLibTest.php @@ -0,0 +1,171 @@ + + * 2014 Jean Heimburger + * +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* or see http://www.gnu.org/ +*/ + +/** + * \file test/phpunit/SocieteTest.php + * \ingroup test + * \brief PHPUnit test + * \remarks To run this script as CLI: phpunit filename.php + */ + +global $conf,$user,$langs,$db; +//define('TEST_DB_FORCE_TYPE','mysql'); // This is to force using mysql driver +require_once 'PHPUnit/Autoload.php'; +require_once dirname(__FILE__).'/../../htdocs/master.inc.php'; +require_once dirname(__FILE__).'/../../htdocs/societe/class/societe.class.php'; +require_once dirname(__FILE__).'/../../htdocs/core/lib/company.lib.php'; + +$langs->load("dict"); + +if (empty($user->id)) +{ + print "Load permissions for admin user nb 1\n"; + $user->fetch(1); + $user->getrights(); +} +$conf->global->MAIN_DISABLE_ALL_MAILS=1; + +/** + * Class for PHPUnit tests + * + * @backupGlobals disabled + * @backupStaticAttributes enabled + * @remarks backupGlobals must be disabled to have db,conf,user and lang not erased. + */ +class CompanyLibTest extends PHPUnit_Framework_TestCase +{ + protected $savconf; + protected $savuser; + protected $savlangs; + protected $savdb; + + /** + * Constructor + * We save global variables into local variables + * + * @return SocieteTest + */ + function __construct() + { + //$this->sharedFixture + global $conf,$user,$langs,$db; + $this->savconf=$conf; + $this->savuser=$user; + $this->savlangs=$langs; + $this->savdb=$db; + + print __METHOD__." db->type=".$db->type." user->id=".$user->id; + //print " - db ".$db->db; + print "\n"; + } + + // Static methods + public static function setUpBeforeClass() + { + global $conf,$user,$langs,$db; + + if ($conf->global->SOCIETE_CODECLIENT_ADDON != 'mod_codeclient_monkey') { print "\n".__METHOD__." third party ref checker must be setup to 'mod_codeclient_monkey' not to '".$conf->global->SOCIETE_CODECLIENT_ADDON."'.\n"; die(); } + + if (! empty($conf->global->MAIN_DISABLEPROFIDRULES)) { print "\n".__METHOD__." constant MAIN_DISABLEPROFIDRULE must be empty (if a module set it, disable module).\n"; die(); } + + $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. + + print __METHOD__."\n"; + } + public static function tearDownAfterClass() + { + global $conf,$user,$langs,$db; + $db->rollback(); + + print __METHOD__."\n"; + } + + /** + * Init phpunit tests + * + * @return void + */ + protected function setUp() + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + print __METHOD__."\n"; + } + + /** + * End phpunit tests + * + * @return void + */ + protected function tearDown() + { + print __METHOD__."\n"; + } + + /** + * testSocieteCreate + * + * @return int + */ + public function testCompanyLibSocieteCreate() + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + $localobject=new Societe($this->savdb); + $localobject->initAsSpecimen(); + $localobject-> + $result=$localobject->create($user); + + print __METHOD__." result=".$result."\n"; + $this->assertLessThanOrEqual($result, 0); + + return $result; + } + + /*** + * + */ + public function testCompanyLibgetState() + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + $localobject=new Societe($this->savdb); + $localobject->initAsSpecimen(); + $result=$localobject->create($user); + + print __METHOD__." result=".$result."\n"; + $this->assertLessThanOrEqual($result, 0); + + return $result; + } + +} +?> \ No newline at end of file From b3504977b0cf4acb4e4090c483db662714302f70 Mon Sep 17 00:00:00 2001 From: jean Date: Sat, 4 Jun 2016 11:28:37 +0200 Subject: [PATCH 43/77] #5224 Adding "Copyof" before invoice label to remind user to change it and avoid label to be the label of cloned invoice --- htdocs/fourn/class/fournisseur.facture.class.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index 728ff9ac674..c85da60dd13 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -1806,6 +1806,7 @@ class FactureFournisseur extends CommonInvoice $object->date = ''; $object->date_echeance = ''; $object->ref_client = ''; + $object->libelle = $langs->trans("CopyOf").' '.$object->libelle; $object->close_code = ''; $object->close_note = ''; From 0f14f5a86fb450cc4432de204d35e764064b0ec4 Mon Sep 17 00:00:00 2001 From: jean Date: Sat, 4 Jun 2016 11:39:05 +0200 Subject: [PATCH 44/77] supp --- test/phpunit/CompanyLibTest.php | 171 -------------------------------- 1 file changed, 171 deletions(-) delete mode 100644 test/phpunit/CompanyLibTest.php diff --git a/test/phpunit/CompanyLibTest.php b/test/phpunit/CompanyLibTest.php deleted file mode 100644 index 3dde3f6983d..00000000000 --- a/test/phpunit/CompanyLibTest.php +++ /dev/null @@ -1,171 +0,0 @@ - - * 2014 Jean Heimburger - * -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 3 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see . -* or see http://www.gnu.org/ -*/ - -/** - * \file test/phpunit/SocieteTest.php - * \ingroup test - * \brief PHPUnit test - * \remarks To run this script as CLI: phpunit filename.php - */ - -global $conf,$user,$langs,$db; -//define('TEST_DB_FORCE_TYPE','mysql'); // This is to force using mysql driver -require_once 'PHPUnit/Autoload.php'; -require_once dirname(__FILE__).'/../../htdocs/master.inc.php'; -require_once dirname(__FILE__).'/../../htdocs/societe/class/societe.class.php'; -require_once dirname(__FILE__).'/../../htdocs/core/lib/company.lib.php'; - -$langs->load("dict"); - -if (empty($user->id)) -{ - print "Load permissions for admin user nb 1\n"; - $user->fetch(1); - $user->getrights(); -} -$conf->global->MAIN_DISABLE_ALL_MAILS=1; - -/** - * Class for PHPUnit tests - * - * @backupGlobals disabled - * @backupStaticAttributes enabled - * @remarks backupGlobals must be disabled to have db,conf,user and lang not erased. - */ -class CompanyLibTest extends PHPUnit_Framework_TestCase -{ - protected $savconf; - protected $savuser; - protected $savlangs; - protected $savdb; - - /** - * Constructor - * We save global variables into local variables - * - * @return SocieteTest - */ - function __construct() - { - //$this->sharedFixture - global $conf,$user,$langs,$db; - $this->savconf=$conf; - $this->savuser=$user; - $this->savlangs=$langs; - $this->savdb=$db; - - print __METHOD__." db->type=".$db->type." user->id=".$user->id; - //print " - db ".$db->db; - print "\n"; - } - - // Static methods - public static function setUpBeforeClass() - { - global $conf,$user,$langs,$db; - - if ($conf->global->SOCIETE_CODECLIENT_ADDON != 'mod_codeclient_monkey') { print "\n".__METHOD__." third party ref checker must be setup to 'mod_codeclient_monkey' not to '".$conf->global->SOCIETE_CODECLIENT_ADDON."'.\n"; die(); } - - if (! empty($conf->global->MAIN_DISABLEPROFIDRULES)) { print "\n".__METHOD__." constant MAIN_DISABLEPROFIDRULE must be empty (if a module set it, disable module).\n"; die(); } - - $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. - - print __METHOD__."\n"; - } - public static function tearDownAfterClass() - { - global $conf,$user,$langs,$db; - $db->rollback(); - - print __METHOD__."\n"; - } - - /** - * Init phpunit tests - * - * @return void - */ - protected function setUp() - { - global $conf,$user,$langs,$db; - $conf=$this->savconf; - $user=$this->savuser; - $langs=$this->savlangs; - $db=$this->savdb; - - print __METHOD__."\n"; - } - - /** - * End phpunit tests - * - * @return void - */ - protected function tearDown() - { - print __METHOD__."\n"; - } - - /** - * testSocieteCreate - * - * @return int - */ - public function testCompanyLibSocieteCreate() - { - global $conf,$user,$langs,$db; - $conf=$this->savconf; - $user=$this->savuser; - $langs=$this->savlangs; - $db=$this->savdb; - - $localobject=new Societe($this->savdb); - $localobject->initAsSpecimen(); - $localobject-> - $result=$localobject->create($user); - - print __METHOD__." result=".$result."\n"; - $this->assertLessThanOrEqual($result, 0); - - return $result; - } - - /*** - * - */ - public function testCompanyLibgetState() - { - global $conf,$user,$langs,$db; - $conf=$this->savconf; - $user=$this->savuser; - $langs=$this->savlangs; - $db=$this->savdb; - - $localobject=new Societe($this->savdb); - $localobject->initAsSpecimen(); - $result=$localobject->create($user); - - print __METHOD__." result=".$result."\n"; - $this->assertLessThanOrEqual($result, 0); - - return $result; - } - -} -?> \ No newline at end of file From cc2b2a0baa32bdbaee237668eb8283b2001ede31 Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sat, 4 Jun 2016 11:52:36 +0200 Subject: [PATCH 45/77] Don't delete link between order and shipment --- htdocs/commande/tpl/linkedobjectblock.tpl.php | 11 ++++++++++- htdocs/expedition/tpl/linkedobjectblock.tpl.php | 14 +++++++++++--- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/htdocs/commande/tpl/linkedobjectblock.tpl.php b/htdocs/commande/tpl/linkedobjectblock.tpl.php index 1968caf2544..98e931db9f8 100644 --- a/htdocs/commande/tpl/linkedobjectblock.tpl.php +++ b/htdocs/commande/tpl/linkedobjectblock.tpl.php @@ -46,7 +46,16 @@ foreach($linkedObjectBlock as $key => $objectlink) echo price($objectlink->total_ht); } ?> - + $objectlink) + } ?> - + + Date: Sat, 4 Jun 2016 12:10:38 +0200 Subject: [PATCH 46/77] Revert "#5224 Adding "Copyof" before invoice label to remind user to change it and avoid label to be the label of cloned invoice " This reverts commit b3504977b0cf4acb4e4090c483db662714302f70. --- htdocs/fourn/class/fournisseur.facture.class.php | 1 - 1 file changed, 1 deletion(-) diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index c85da60dd13..728ff9ac674 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -1806,7 +1806,6 @@ class FactureFournisseur extends CommonInvoice $object->date = ''; $object->date_echeance = ''; $object->ref_client = ''; - $object->libelle = $langs->trans("CopyOf").' '.$object->libelle; $object->close_code = ''; $object->close_note = ''; From baa6dd84cfa89f962adbda7da6fee7ddeb1638f7 Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Sat, 4 Jun 2016 13:12:05 +0200 Subject: [PATCH 47/77] Fix better perfomance in for --- htdocs/admin/receiptprinter.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/htdocs/admin/receiptprinter.php b/htdocs/admin/receiptprinter.php index 87fce1f6087..b86023aa49a 100644 --- a/htdocs/admin/receiptprinter.php +++ b/htdocs/admin/receiptprinter.php @@ -1,6 +1,7 @@ * Copyright (C) 2015 Frederic France + * Copyright (C) 2016 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 @@ -377,7 +378,8 @@ if ($mode == 'template' && $user->admin) if ($ret > 0) { setEventMessages($printer->error, $printer->errors, 'errors'); } else { - for ($line=0; $line < count($printer->listprinterstemplates); $line++) { + $max = count($printer->listprinterstemplates); + for ($line=0; $line < $max; $line++) { $var = !$var; print ''; if ($action=='edittemplate' && $printer->listprinterstemplates[$line]['rowid']==$templateid) { @@ -422,7 +424,8 @@ if ($mode == 'template' && $user->admin) print ''; print ''; print "\n"; - for ($tag=0; $tag < count($printer->tags); $tag++) { + $max = count($printer->tags); + for ($tag=0; $tag < $max; $tag++) { $var = !$var; print ''; print ''; From 01b881a0a692cb3d708c1471155b3539a40c4c96 Mon Sep 17 00:00:00 2001 From: phf Date: Sat, 4 Jun 2016 13:24:42 +0200 Subject: [PATCH 48/77] Fix builddoc with odt lost value of extrafields as "sellist" on view card --- .../modules/propale/doc/doc_generic_proposal_odt.modules.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php b/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php index d696d95c4d5..2479acaaaec 100644 --- a/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php +++ b/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php @@ -381,6 +381,7 @@ class doc_generic_proposal_odt extends ModelePDFPropales $tmparray = array_merge($array_user,$array_soc,$array_thirdparty,$array_objet,$array_other,$array_thirdparty_contact); complete_substitutions_array($tmparray, $outputlangs, $object); + $object->fetch_optionals(); // Call the ODTSubstitution hook $parameters=array('file'=>$file,'object'=>$object,'outputlangs'=>$outputlangs,'substitutionarray'=>&$tmparray); $reshook=$hookmanager->executeHooks('ODTSubstitution',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks From 975d9357fac0a389aab5665064318d6d428ce76b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 4 Jun 2016 14:08:57 +0200 Subject: [PATCH 49/77] FIX On recurring invoice, when generation is done manually from card, counter of number of generation must be +1 --- htdocs/compta/facture.php | 2 +- htdocs/compta/facture/class/facture-rec.class.php | 1 + htdocs/compta/facture/class/facture.class.php | 5 ++--- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index a94448f5c12..9dd01b7162c 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -863,7 +863,7 @@ if (empty($reshook)) } } - // Standard invoice or Deposit invoice created from a Predefined invoice + // Standard invoice or Deposit invoice created from a Predefined template invoice if (($_POST['type'] == Facture::TYPE_STANDARD || $_POST['type'] == Facture::TYPE_DEPOSIT) && GETPOST('fac_rec') > 0) { $dateinvoice = dol_mktime(12, 0, 0, $_POST['remonth'], $_POST['reday'], $_POST['reyear']); diff --git a/htdocs/compta/facture/class/facture-rec.class.php b/htdocs/compta/facture/class/facture-rec.class.php index 3ef9d716bfb..f1cae70fec5 100644 --- a/htdocs/compta/facture/class/facture-rec.class.php +++ b/htdocs/compta/facture/class/facture-rec.class.php @@ -962,6 +962,7 @@ class FactureRec extends CommonInvoice if ($this->db->query($sql)) { $this->date_when = $date; + if ($increment_nb_gen_done>0) $_facrec->nb_gen_done++; return 1; } else diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index 6e46ead1da5..10251d631f7 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -309,13 +309,12 @@ class Facture extends CommonInvoice $forceduedate = $this->calculate_date_lim_reglement(); - // Update date and number of last generation of recurring template invoice, before inserting new invoice + // For recurrn invoices, update date and number of last generation of recurring template invoice, before inserting new invoice if ($_facrec->frequency > 0) { - $_facrec->nb_gen_done++; $next_date = $_facrec->getNextDate(); // Calculate next date $_facrec->setValueFrom('date_last_gen', $now, '', null, 'date'); - $_facrec->setValueFrom('nb_gen_done', $_facrec->nb_gen_done + 1); + //$_facrec->setValueFrom('nb_gen_done', $_facrec->nb_gen_done + 1); // Not required, +1 already included into setNextDate when second param is 1. $_facrec->setNextDate($next_date,1); } } From d924be8b95876c48494b2d693bc10ecda878cc90 Mon Sep 17 00:00:00 2001 From: novalore Date: Sat, 4 Jun 2016 14:21:21 +0200 Subject: [PATCH 50/77] en_US lang fixes again --- htdocs/langs/en_US/banks.lang | 2 +- htdocs/langs/en_US/bookmarks.lang | 2 +- htdocs/langs/en_US/boxes.lang | 4 ++-- htdocs/langs/en_US/compta.lang | 2 +- htdocs/langs/en_US/main.lang | 2 +- htdocs/langs/en_US/projects.lang | 12 ++++++------ htdocs/langs/en_US/stocks.lang | 4 ++-- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/htdocs/langs/en_US/banks.lang b/htdocs/langs/en_US/banks.lang index 8ba28807bca..e4c38a8d549 100644 --- a/htdocs/langs/en_US/banks.lang +++ b/htdocs/langs/en_US/banks.lang @@ -127,7 +127,7 @@ ConfirmValidateCheckReceipt=Are you sure you want to validate this check receipt DeleteCheckReceipt=Delete this check receipt ? ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt ? BankChecks=Bank checks -BankChecksToReceipt=Checks waiting for deposit +BankChecksToReceipt=Checks awaiting deposit ShowCheckReceipt=Show check deposit receipt NumberOfCheques=Nb of check DeleteTransaction=Delete transaction diff --git a/htdocs/langs/en_US/bookmarks.lang b/htdocs/langs/en_US/bookmarks.lang index 7acb946bb62..19e383b2b3e 100644 --- a/htdocs/langs/en_US/bookmarks.lang +++ b/htdocs/langs/en_US/bookmarks.lang @@ -14,6 +14,6 @@ BehaviourOnClick=Behaviour when a URL is clicked CreateBookmark=Create bookmark SetHereATitleForLink=Set a title for the bookmark UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external http URL or a relative Dolibarr URL -ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choose if a page opened by link must appear on current or new window +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choose if linked page must open in new window or not BookmarksManagement=Bookmarks management ListOfBookmarks=List of bookmarks diff --git a/htdocs/langs/en_US/boxes.lang b/htdocs/langs/en_US/boxes.lang index a584802048d..bbb03afa4f2 100644 --- a/htdocs/langs/en_US/boxes.lang +++ b/htdocs/langs/en_US/boxes.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - boxes BoxLastRssInfos=Rss information BoxLastProducts=Latest %s products/services -BoxProductsAlertStock=Products in stock alert +BoxProductsAlertStock=Stock alerts for products BoxLastProductsInContract=Latest %s contracted products/services BoxLastSupplierBills=Latest supplier invoices BoxLastCustomerBills=Latest customer invoices @@ -44,7 +44,7 @@ BoxTitleLastModifiedSupplierBills=Latest %s modified supplier invoices BoxTitleLastModifiedProspects=Latest %s modified prospects BoxTitleLastProductsInContract=Latest %s products/services in a contract BoxTitleLastModifiedMembers=Latest %s members -BoxTitleLastFicheInter=Latest %s modified intervention +BoxTitleLastFicheInter=Latest %s modified interventions BoxTitleOldestUnpaidCustomerBills=Oldest %s unpaid customer invoices BoxTitleOldestUnpaidSupplierBills=Oldest %s unpaid supplier invoices BoxTitleCurrentAccounts=Open accounts balances diff --git a/htdocs/langs/en_US/compta.lang b/htdocs/langs/en_US/compta.lang index 23edfae8b05..b54f59dcfc2 100644 --- a/htdocs/langs/en_US/compta.lang +++ b/htdocs/langs/en_US/compta.lang @@ -125,7 +125,7 @@ LastCheckReceiptShort=Latest %s check receipts NewCheckReceipt=New discount NewCheckDeposit=New check deposit NewCheckDepositOn=Create receipt for deposit on account: %s -NoWaitingChecks=No checks waiting for deposit. +NoWaitingChecks=No checks awaiting deposit. DateChequeReceived=Check reception date NbOfCheques=Nb of checks PaySocialContribution=Pay a social/fiscal tax diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index e252903f082..f581b76deda 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -594,7 +594,7 @@ Priority=Priority SendByMail=Send by EMail MailSentBy=Email sent by TextUsedInTheMessageBody=Email body -SendAcknowledgementByMail=Send Ack. by email +SendAcknowledgementByMail=Send confirmation email EMail=E-mail NoEMail=No email NoMobilePhone=No mobile phone diff --git a/htdocs/langs/en_US/projects.lang b/htdocs/langs/en_US/projects.lang index 84fa74643fa..a9fd3b993e4 100644 --- a/htdocs/langs/en_US/projects.lang +++ b/htdocs/langs/en_US/projects.lang @@ -30,9 +30,9 @@ ConfirmDeleteATask=Are you sure you want to delete this task ? OfficerProject=Officer project LastProjects=Latest %s projects AllProjects=All projects -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ProjectsList=List of projects ShowProject=Show project @@ -182,14 +182,14 @@ ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month -ProjectOpenedProjectByOppStatus=Opened project/lead by opportunity status +ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by thirdparties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/en_US/stocks.lang b/htdocs/langs/en_US/stocks.lang index 6b1a28eae17..c1ba6f73159 100644 --- a/htdocs/langs/en_US/stocks.lang +++ b/htdocs/langs/en_US/stocks.lang @@ -116,7 +116,7 @@ WarehouseForStockDecrease=The warehouse %s will be used for stock decreas WarehouseForStockIncrease=The warehouse %s will be used for stock increase ForThisWarehouse=For this warehouse ReplenishmentStatusDesc=This is a list of all products with a stock lower than desired stock (or lower than alert value if checkbox "alert only" is checked). Using the checkbox, you can create supplier orders to fill the difference. -ReplenishmentOrdersDesc=This is a list of all opened supplier orders including predefined products. Only opened orders with predefined products, so orders that may affect stocks, are visible here. +ReplenishmentOrdersDesc=This is a list of all open supplier orders including predefined products. Only open orders with predefined products, so orders that may affect stocks, are visible here. Replenishments=Replenishments NbOfProductBeforePeriod=Quantity of product %s in stock before selected period (< %s) NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) @@ -143,4 +143,4 @@ ThisSerialAlreadyExistWithDifferentDate=This lot/serial number (%s Date: Sat, 4 Jun 2016 14:30:05 +0200 Subject: [PATCH 51/77] Add a better explanation on job generation --- htdocs/compta/facture/fiche-rec.php | 5 +++++ htdocs/langs/en_US/admin.lang | 1 + 2 files changed, 6 insertions(+) diff --git a/htdocs/compta/facture/fiche-rec.php b/htdocs/compta/facture/fiche-rec.php index b826e4f266d..8118cbea1ac 100644 --- a/htdocs/compta/facture/fiche-rec.php +++ b/htdocs/compta/facture/fiche-rec.php @@ -1256,8 +1256,13 @@ else print '
'; + // Frequencry/Recurring section if ($object->frequency > 0) { + if (empty($conf->cron->enabled)) + { + print info_admin($langs->trans("EnableAndSetupModuleCron", $langs->transnoentitiesnoconv("Module2300Name"))); + } print '
'.$langs->trans("Currencies").''.$form->textwithpicto($langs->trans("CurrenciesUsed"), $langs->transnoentitiesnoconv("CurrenciesUsed_help_to_add")).' '.$langs->trans("Rate").'
- '.$form->selectCurrency('', 'code').' '; diff --git a/htdocs/langs/en_US/multicurrency.lang b/htdocs/langs/en_US/multicurrency.lang new file mode 100644 index 00000000000..b37355372a1 --- /dev/null +++ b/htdocs/langs/en_US/multicurrency.lang @@ -0,0 +1,17 @@ +# ADMIN +RecordSaved=Currency rate added +RecordDeleted=Currency rate deleted +ErrorAddRateFail=Error in added rate +ErrorAddCurrencyFail=Error in added currency +ErrorDeleteCurrencyFail=Error delete fail +multicurrency_syncronize_error=Error in synchronization +multicurrency_useOriginTx=Use the origin rate +CurrencyLayerAccount=CurrencyLayer API +CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
Get your API key
If you use a free account you can't change the currency source (USD by default)
But if your main currency isn't USD you can use the alternate currency source to force you main currency

You are limited at 1000 synchronizations per month +multicurrency_appId=API key +multicurrency_appCurrencySource=Currency source +multicurrency_alternateCurrencySource= Alternate currency souce +CurrenciesUsed=Currencies used +CurrenciesUsed_help_to_add=Add the differents currencies and rates you need to use on you proposals, orders, etc. +Rate=Rate +rate=rate \ No newline at end of file From 32b6766a7d560d7c47a042f363709588b8124ae7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 4 Jun 2016 01:50:01 +0200 Subject: [PATCH 37/77] FIX #5195 --- htdocs/fourn/commande/card.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php index a0cf8bc11bb..a9a4024c3ae 100644 --- a/htdocs/fourn/commande/card.php +++ b/htdocs/fourn/commande/card.php @@ -1006,7 +1006,6 @@ if (empty($reshook)) } $idprod = $productsupplier->find_min_price_product_fournisseur($lines[$i]->fk_product, $lines[$i]->qty); - $res = $productsupplier->fetch($idProductFourn); $result = $object->addline( $desc, @@ -1017,7 +1016,7 @@ if (empty($reshook)) $lines[$i]->localtax2_tx, $lines[$i]->fk_product, $productsupplier->product_fourn_price_id, - $productsupplier->ref_fourn, + $productsupplier->fourn_ref, $lines[$i]->remise_percent, 'HT', 0, From c9834117c9999c6b2c825caea83e70d8d77e4d39 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 4 Jun 2016 02:03:30 +0200 Subject: [PATCH 38/77] Fix #5156 --- htdocs/langs/en_US/main.lang | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index a60b3ddb21b..aaa1085e377 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -149,6 +149,7 @@ Save=Save SaveAs=Save As TestConnection=Test connection ToClone=Clone +ConfirmCloneAction=Are you sure you want to clone this event ? ConfirmClone=Choose data you want to clone : NoCloneOptionsSpecified=No data to clone defined. Of=of From 3ee8f931b4373941c9490488642f6aff10933cca Mon Sep 17 00:00:00 2001 From: novalore Date: Sat, 4 Jun 2016 02:16:58 +0200 Subject: [PATCH 39/77] other fixes in en_US lang files --- htdocs/langs/en_US/admin.lang | 80 +++++++++++++++--------------- htdocs/langs/en_US/agenda.lang | 6 +-- htdocs/langs/en_US/bills.lang | 2 +- htdocs/langs/en_US/commercial.lang | 4 +- htdocs/langs/en_US/companies.lang | 22 ++++---- htdocs/langs/en_US/cron.lang | 4 +- htdocs/langs/en_US/main.lang | 18 +++---- htdocs/langs/en_US/other.lang | 60 +++++++++++----------- htdocs/langs/en_US/projects.lang | 8 +-- 9 files changed, 102 insertions(+), 102 deletions(-) diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 55c6d54fe8d..c57c01dfc36 100755 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -2,8 +2,8 @@ Foundation=Foundation Version=Version VersionProgram=Version program -VersionLastInstall=Version initial install -VersionLastUpgrade=Version last upgrade +VersionLastInstall=Initial install version +VersionLastUpgrade=Latest version upgrade VersionExperimental=Experimental VersionDevelopment=Development VersionUnknown=Unknown @@ -145,8 +145,8 @@ Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets PositionByDefault=Default order Position=Position -MenusDesc=Menus managers define content of the 2 menu bars (horizontal bar and vertical bar). -MenusEditorDesc=The menu editor allow you to define personalized entries in menus. Use it carefully to avoid making dolibarr unstable and menu entries permanently unreachable.
Some modules add entries in the menus (in menu All in most cases). If you removed some of these entries by mistake, you can restore them by disabling and reenabling the module. +MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). +MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. MenuForUsers=Menu for users LangFile=.lang file System=System @@ -154,13 +154,13 @@ SystemInfo=System information SystemToolsArea=System tools area SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. Purge=Purge -PurgeAreaDesc=This page allows you to delete all files built or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files built by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk to loose data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk to loose data) +PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. +PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. PurgeRunNow=Purge now -PurgeNothingToDelete=No directory or file to delete. +PurgeNothingToDelete=No directory or files to delete. PurgeNDirectoriesDeleted=%s files or directories deleted. PurgeAuditEvents=Purge all security events ConfirmPurgeAuditEvents=Are you sure you want to purge all security events ? All security logs will be deleted, no other data will be removed. @@ -210,12 +210,12 @@ OnlyActiveElementsAreShown=Only elements from enabled modules a ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off in column "Status" to enable a module/feature. ModulesInterfaceDesc=The Dolibarr modules interface allows you to add features depending on external software, systems or services. ModulesSpecialDesc=Special modules are very specific or seldom used modules. -ModulesJobDesc=Business modules provide simple predefined setup of Dolibarr for a particular business. -ModulesMarketPlaceDesc=You can find more modules to download on external web sites on the Internet... +ModulesJobDesc=Business modules provide simple preconfigured setup of Dolibarr for specific businesses. +ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesMarketPlaces=More modules... DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules -DoliPartnersDesc=List with some companies that can provide/develop on-demand modules or features (Note: any Open Source company knowning PHP language can provide you specific development) -WebSiteDesc=Web site providers you can search to find more modules... +DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) +WebSiteDesc=Reference websites to find more modules... URL=Link BoxesAvailable=Widgets available BoxesActivated=Widgets activated @@ -312,8 +312,8 @@ InfDirAlt=Since version 3 it is possible to define an alternative root directory 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=For this step, you can send package using this tool: Select module file CurrentVersion=Dolibarr current version -CallUpdatePage=Go to the page that updates the database structure and datas: %s. -LastStableVersion=Last stable version +CallUpdatePage=Go to the page that updates the database structure and data: %s. +LastStableVersion=Latest stable version UpdateServerOffline=Update server offline GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of thirdparty type on n characters (see dictionary-thirdparty types).
@@ -367,7 +367,7 @@ PDFAddressForging=Rules to forge address boxes HideAnyVATInformationOnPDF=Hide all information related to VAT on generated PDF HideDescOnPDF=Hide products description on generated PDF HideRefOnPDF=Hide products ref. on generated PDF -HideDetailsOnPDF=Hide products lines details on generated PDF +HideDetailsOnPDF=Hide product lines details on generated PDF PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position Library=Library UrlGenerationParameters=Parameters to secure URLs @@ -401,8 +401,8 @@ ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

fo ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another :
c_typent:libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another :
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used to build PDF +ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php +LibraryToBuildPDF=Library used for PDF generation 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 (localtax is calculated on amount without tax)
2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)
3 : local tax apply on products without vat (localtax is calculated on amount without tax)
4 : local tax apply on products including vat (localtax is calculated on amount + main vat)
5 : local tax apply on services without vat (localtax is calculated on amount without tax)
6 : local tax apply on services including vat (localtax is calculated on amount + tax) SMS=SMS @@ -424,12 +424,12 @@ AllBarcodeReset=All barcode values have been removed NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. NoRecordWithoutBarcodeDefined=No record with no barcode value defined. EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, capital and VAT number). +ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). NoDetails=No more details in footer DisplayCompanyInfo=Display company address DisplayCompanyManager=Display manager names -DisplayCompanyInfoAndManagers=Display company and manager names - +DisplayCompanyInfoAndManagers=Display company and manager names + # Modules Module0Name=Users & groups Module0Desc=Users and groups management @@ -492,15 +492,15 @@ Module200Desc=LDAP directory synchronisation Module210Name=PostNuke Module210Desc=PostNuke integration Module240Name=Data exports -Module240Desc=Tool to export Dolibarr datas (with assistants) +Module240Desc=Tool to export Dolibarr data (with assistants) Module250Name=Data imports -Module250Desc=Tool to import datas in Dolibarr (with assistants) +Module250Desc=Tool to import data in Dolibarr (with assistants) Module310Name=Members Module310Desc=Foundation members management Module320Name=RSS Feed Module320Desc=Add RSS feed inside Dolibarr screen pages Module330Name=Bookmarks -Module330Desc=Bookmark management +Module330Desc=Bookmarks management Module400Name=Projects/Opportunities/Leads Module400Desc=Management of projects, opportunities or leads. You can then assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. Module410Name=Webcalendar @@ -549,7 +549,7 @@ Module2800Desc=FTP Client Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3100Name=Skype -Module3100Desc=Add a Skype button into card of users / third parties / contacts / members +Module3100Desc=Add a Skype button into users / third parties / contacts / members cards Module4000Name=HRM Module4000Desc=Human resources management Module5000Name=Multi-company @@ -607,7 +607,7 @@ Permission71=Read members Permission72=Create/modify members Permission74=Delete members Permission75=Setup types of membership -Permission76=Export datas +Permission76=Export data Permission78=Read subscriptions Permission79=Create/modify subscriptions Permission81=Read customers orders @@ -817,15 +817,15 @@ Permission55002=Create/modify polls Permission59001=Read commercial margins Permission59002=Define commercial margins Permission59003=Read every user margin -DictionaryCompanyType=Thirdparties type -DictionaryCompanyJuridicalType=Juridical kinds of thirdparties +DictionaryCompanyType=Types of thirdparties +DictionaryCompanyJuridicalType=Legal forms of thirdparties DictionaryProspectLevel=Prospect potential level DictionaryCanton=State/Province DictionaryRegion=Regions DictionaryCountry=Countries DictionaryCurrency=Currencies -DictionaryCivility=Civility title -DictionaryActions=Type of agenda events +DictionaryCivility=Personal and professional titles +DictionaryActions=Types of agenda events DictionarySocialContributions=Social or fiscal taxes types DictionaryVAT=VAT Rates or Sales Tax Rates DictionaryRevenueStamp=Amount of revenue stamps @@ -834,7 +834,7 @@ DictionaryPaymentModes=Payment modes DictionaryTypeContact=Contact/Address types DictionaryEcotaxe=Ecotax (WEEE) DictionaryPaperFormat=Paper formats -DictionaryFees=Type of fees +DictionaryFees=Types of fees DictionarySendingMethods=Shipping methods DictionaryStaff=Staff DictionaryAvailability=Delivery delay @@ -845,14 +845,14 @@ DictionaryAccountancysystem=Models for chart of accounts DictionaryEMailTemplates=Emails templates DictionaryUnits=Units DictionaryProspectStatus=Prospection status -DictionaryHolidayTypes=Type of leaves +DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Setup saved BackToModuleList=Back to modules list BackToDictionaryList=Back to dictionaries list VATReceivedOnly=Special rate not charged VATManagement=VAT Management -VATIsUsedDesc=The VAT rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If the seller is not subjected to VAT, then VAT by default=0. End of rule.
If the (selling country= buying country), then the VAT by default=VAT of the product in the selling country. End of rule.
If seller and buyer in the European Community and goods are transport products (car, ship, plane), the default VAT=0 ( The VAT should be paid by the buyer at the customoffice of his country and not at the seller). End of rule.
If seller and buyer in the European Community and buyer is not a company, then the VAT by default=VAT of product sold. End of rule.
If seller and buyer in the European Community and buyer is a company, then the VAT by default=0. End of rule.
Else the proposed default VAT=0. End of rule. +VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies. VATIsUsedExampleFR=In France, it means companies or organisations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organisations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration. This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices. @@ -1000,13 +1000,13 @@ SetupDescription5=Other menu entries manage optional parameters. EventsSetup=Setup for events logs LogEvents=Security audit events Audit=Audit -InfoDolibarr=Infos Dolibarr -InfoBrowser=Infos Browser -InfoOS=Infos OS -InfoWebServer=Infos web server -InfoDatabase=Infos database -InfoPHP=Infos PHP -InfoPerf=Infos performances +InfoDolibarr=About Dolibarr +InfoBrowser=About Browser +InfoOS=About OS +InfoWebServer=About Web Server +InfoDatabase=About Database +InfoPHP=About PHP +InfoPerf=About Performances BrowserName=Browser name BrowserOS=Browser OS ListEvents=Audit events @@ -1030,7 +1030,7 @@ TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules. TriggerActiveAsModuleActive=Triggers in this file are active as module %s is enabled. GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password -DictionaryDesc=Define here all reference datas. You can complete predefined value with yours. +DictionaryDesc=Insert all reference data. You can add your values to the default. ConstDesc=This page allows you to edit all other parameters not available in previous pages. They are reserved parameters for advanced developers or for troubleshouting. OnceSetupFinishedCreateUsers=Warning, you are a Dolibarr administrator user. Administrator users are used to setup Dolibarr. For a usual usage of Dolibarr, it is recommended to use a non administrator user created from Users & Groups menu. MiscellaneousDesc=Define here all other parameters related to security. diff --git a/htdocs/langs/en_US/agenda.lang b/htdocs/langs/en_US/agenda.lang index d4b651b46b5..acb9f40f7e3 100644 --- a/htdocs/langs/en_US/agenda.lang +++ b/htdocs/langs/en_US/agenda.lang @@ -81,8 +81,8 @@ AgendaUrlOptions2=login=%s to restrict output to actions created by or as AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s. AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. -AgendaShowBirthdayEvents=Show birthday's contacts -AgendaHideBirthdayEvents=Hide birthday's contacts +AgendaShowBirthdayEvents=Show birthdays of contacts +AgendaHideBirthdayEvents=Hide birthdays of contacts Busy=Busy ExportDataset_event1=List of agenda events DefaultWorkingDays=Default working days range in week (Example: 1-5, 1-6) @@ -110,4 +110,4 @@ EveryWeek=Every week EveryMonth=Every month DayOfMonth=Day of month DayOfWeek=Day of week -DateStartPlusOne=Date start + 1 hour \ No newline at end of file +DateStartPlusOne=Date start + 1 hour diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang index c1e61b9d935..ab0056dc70e 100644 --- a/htdocs/langs/en_US/bills.lang +++ b/htdocs/langs/en_US/bills.lang @@ -319,7 +319,7 @@ FrequencyPer_m=Every %s months FrequencyPer_y=Every %s years toolTipFrequency=Examples:
Set 7 / day: give a new invoice every 7 days
Set 3 / month: give a new invoice every 3 month NextDateToExecution=Date for next invoice generation -DateLastGeneration=Date of last generation +DateLastGeneration=Date of latest generation MaxPeriodNumber=Max nb of invoice generation NbOfGenerationDone=Nb of invoice generation already done InvoiceAutoValidate=Validate invoices automatically diff --git a/htdocs/langs/en_US/commercial.lang b/htdocs/langs/en_US/commercial.lang index 918c3714474..03798ed96aa 100644 --- a/htdocs/langs/en_US/commercial.lang +++ b/htdocs/langs/en_US/commercial.lang @@ -16,8 +16,8 @@ Rendez-Vous=Rendezvous ConfirmDeleteAction=Are you sure you want to delete this event ? CardAction=Event card PercentDone=Percentage complete -ActionOnCompany=Event about company -ActionOnContact=Event about contact +ActionOnCompany=Related company +ActionOnContact=Related contact TaskRDV=Meetings TaskRDVWith=Meeting with %s ShowTask=Show task diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index 89a630e26cd..83c49532e41 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -343,7 +343,7 @@ VATIntraCheckableOnEUSite=Check Intracomunnautary VAT on European commision site VATIntraManualCheck=You can also check manually from european web site %s ErrorVATCheckMS_UNAVAILABLE=Check not possible. Check service is not provided by the member state (%s). NorProspectNorCustomer=Nor prospect, nor customer -JuridicalStatus=Juridical status +JuridicalStatus=Legal form Staff=Staff ProspectLevelShort=Potential ProspectLevel=Prospect potential @@ -370,12 +370,12 @@ TE_PRIVATE=Private individual TE_OTHER=Other StatusProspect-1=Do not contact StatusProspect0=Never contacted -StatusProspect1=To contact +StatusProspect1=To be contacted StatusProspect2=Contact in process StatusProspect3=Contact done ChangeDoNotContact=Change status to 'Do not contact' ChangeNeverContacted=Change status to 'Never contacted' -ChangeToContact=Change status to 'To contact' +ChangeToContact=Change status to 'To be contacted' ChangeContactInProcess=Change status to 'Contact in process' ChangeContactDone=Change status to 'Contact done' ProspectsByStatus=Prospects by status @@ -400,23 +400,23 @@ DeliveriesAddress=Delivery addresses DeliveryAddress=Delivery address DeliveryAddressLabel=Delivery address label DeleteDeliveryAddress=Delete a delivery address -ConfirmDeleteDeliveryAddress=Are you sure you want to delete this delivery address? +ConfirmDeleteDeliveryAddress=Are you sure you want to delete this delivery address ? NewDeliveryAddress=New delivery address -AddDeliveryAddress=Create address -AddAddress=Create address +AddDeliveryAddress=Add delivery address +AddAddress=Add address NoOtherDeliveryAddress=No alternative delivery address defined SupplierCategory=Supplier category -JuridicalStatus200=Independant +JuridicalStatus200=Independent DeleteFile=Delete file ConfirmDeleteFile=Are you sure you want to delete this file? -AllocateCommercial=Assigned to sale representative +AllocateCommercial=Assigned to sales representative SelectCountry=Select a country SelectCompany=Select a third party Organization=Organization AutomaticallyGenerated=Automatically generated FiscalYearInformation=Information on the fiscal year FiscalMonthStart=Starting month of the fiscal year -YouMustCreateContactFirst=You must create emails contacts for third party first to be able to add emails notifications. +YouMustCreateContactFirst=To be able to add email notifications, you must first insert email contacts for the third party ListSuppliersShort=List of suppliers ListProspectsShort=List of prospects ListCustomersShort=List of customers @@ -429,7 +429,7 @@ ActivityStateFilter=Activity status ProductsIntoElements=List of products/services into %s CurrentOutstandingBill=Current outstanding bill OutstandingBill=Max. for outstanding bill -OutstandingBillReached=Reached max. for outstanding bill +OutstandingBillReached=Max. for outstanding bill reached MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code and %syymm-nnnn for supplier code where yy is year, mm is month and nnnn is a sequence with no break and no return to 0. LeopardNumRefModelDesc=The code is free. This code can be modified at any time. ManagingDirectors=Manager(s) name (CEO, director, president...) @@ -440,7 +440,7 @@ MergeThirdparties=Merge third parties ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one ? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. ThirdpartiesMergeSuccess=Thirdparties have been merged ErrorThirdpartiesMerge=There was an error when deleting the thirdparties. Please check the log. Changes have been reverted. -SaleRepresentativeLogin=Login of sale representative +SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=Firstname of sales representative SaleRepresentativeLastname=Lastname of sales representative ModelModulesContact=Document Models of contact diff --git a/htdocs/langs/en_US/cron.lang b/htdocs/langs/en_US/cron.lang index 456e9562a2f..b7f68681d30 100644 --- a/htdocs/langs/en_US/cron.lang +++ b/htdocs/langs/en_US/cron.lang @@ -40,8 +40,8 @@ CronNone=None CronDtStart=Not before CronDtEnd=Not after CronDtNextLaunch=Next execution -CronDtLastLaunch=Start date of last execution -CronDtLastResult=End date of last execution +CronDtLastLaunch=Start date of latest execution +CronDtLastResult=End date of latest execution CronFrequency=Frequency CronClass=Class CronMethod=Method diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index 548982efb65..e252903f082 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -73,7 +73,7 @@ FileNotUploaded=The file was not uploaded FileUploaded=The file was successfully uploaded FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries -GoToWikiHelpPage=Read online help (need Internet access) +GoToWikiHelpPage=Read online help (Internet access needed) GoToHelpPage=Read help RecordSaved=Record saved RecordDeleted=Record deleted @@ -94,12 +94,12 @@ ConnectedSince=Connected since AuthenticationMode=Authentification mode RequestedUrl=Requested Url DatabaseTypeManager=Database type manager -RequestLastAccess=Request for last database access -RequestLastAccessInError=Request for last database access in error -ReturnCodeLastAccessInError=Return code for last database access in error -InformationLastAccessInError=Information for last database access in error +RequestLastAccess=Latest database access request +RequestLastAccessInError=Latest database access request error +ReturnCodeLastAccessInError=Return code for latest database access request error +InformationLastAccessInError=Information for latest database access request error DolibarrHasDetectedError=Dolibarr has detected a technical error -InformationToHelpDiagnose=This is information that can help diagnostic +InformationToHelpDiagnose=This information can be useful for diagnostic MoreInformation=More information TechnicalInformation=Technical information TechnicalID=Technical ID @@ -142,7 +142,7 @@ Update=Update AddActionToDo=Add event to do AddActionDone=Add event done Close=Close -CloseBox=Remove box of your dashboard +CloseBox=Remove box from your dashboard Confirm=Confirm ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s ? Delete=Delete @@ -550,8 +550,8 @@ NbOfCustomers=Number of customers NbOfLines=Number of lines NbOfObjects=Number of objects NbOfReferers=Number of referrers -NbOfObjectReferers=Number of refering objects -Referers=Refering objects +NbOfObjectReferers=Number of related items +Referers=Related items TotalQuantity=Total quantity DateFromTo=From %s to %s DateFrom=From %s diff --git a/htdocs/langs/en_US/other.lang b/htdocs/langs/en_US/other.lang index c8bde912cdd..3afebc9141b 100644 --- a/htdocs/langs/en_US/other.lang +++ b/htdocs/langs/en_US/other.lang @@ -3,12 +3,12 @@ SecurityCode=Security code Calendar=Calendar NumberingShort=N° Tools=Tools -ToolsDesc=This area is dedicated to group miscellaneous tools not available into other menu entries.

Those tools can be reached from menu on the side. +ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.

All the tools can be reached in the left menu. Birthday=Birthday -BirthdayDate=Birthday +BirthdayDate=Birthday date DateToBirth=Date of birth -BirthdayAlertOn= birthday alert active -BirthdayAlertOff= birthday alert inactive +BirthdayAlertOn=birthday alert active +BirthdayAlertOff=birthday alert inactive Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Intervention validated Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -69,8 +69,8 @@ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find her PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ -DemoDesc=Dolibarr is a compact ERP/CRM composed by several functional modules. A demo that includes all modules does not mean anything as this never occurs. So, several demo profiles are available. -ChooseYourDemoProfil=Choose the demo profile that match your activity... +DemoDesc=Dolibarr is a compact ERP/CRM supporting several functional modules. A demo showcasing all modules makes no sense as this scenario never occurs. So, several demo profiles are available. +ChooseYourDemoProfil=Choose the demo profile that best suits your needs... DemoFundation=Manage members of a foundation DemoFundation2=Manage members and bank account of a foundation DemoCompanyServiceOnly=Manage a freelance activity selling service only @@ -84,22 +84,22 @@ ValidatedBy=Validated by %s CanceledBy=Canceled by %s ClosedBy=Closed by %s CreatedById=User id who created -ModifiedById=User id who made last change +ModifiedById=User id who made latest change ValidatedById=User id who validated CanceledById=User id who canceled ClosedById=User id who closed CreatedByLogin=User login who created -ModifiedByLogin=User login who made last change +ModifiedByLogin=User login who made latest change ValidatedByLogin=User login who validated CanceledByLogin=User login who canceled ClosedByLogin=User login who closed FileWasRemoved=File %s was removed DirWasRemoved=Directory %s was removed -FeatureNotYetAvailableShort=Available in a next version -FeatureNotYetAvailable=Feature not yet available in this version -FeatureExperimental=Experimental feature. Not stable in this version -FeatureDevelopment=Development feature. Not stable in this version -FeaturesSupported=Features supported +FeatureNotYetAvailableShort=Available in a future version +FeatureNotYetAvailable=Feature not yet available in the current version +FeatureExperimental=Experimental feature. Not stable in the current version +FeatureDevelopment=Development feature. Not stable in the current version +FeaturesSupported=Supported features Width=Width Height=Height Depth=Depth @@ -111,7 +111,7 @@ CalculatedWeight=Calculated weight CalculatedVolume=Calculated volume Weight=Weight TotalWeight=Total weight -WeightUnitton=tonnes +WeightUnitton=tonne WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg @@ -147,27 +147,27 @@ SizeUnitinch=inch SizeUnitfoot=foot SizeUnitpoint=point BugTracker=Bug tracker -SendNewPasswordDesc=This form allows you to request a new password. It will be send to your email address.
Change will be effective only after clicking on confirmation link inside this email.
Check your email reader software. +SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.
Change will become effective once you click on the confirmation link in the email.
Check your inbox. BackToLoginPage=Back to login page -AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
In this mode, Dolibarr can't know nor change your password.
Contact your system administrator if you want to change your password. -EnableGDLibraryDesc=Install or enable GD library with your PHP for use this option. +AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
In this mode, Dolibarr can't know nor change your password.
Contact your system administrator if you want to change your password. +EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option. EnablePhpAVModuleDesc=You need to install a module compatible with your anti-virus. (Clamav : php4-clamavlib ou php5-clamavlib) -ProfIdShortDesc=Prof Id %s is an information depending on third party country.
For example, for country %s, it's code %s. +ProfIdShortDesc=Prof Id %s is an information depending on third party country.
For example, for country %s, it's code %s. DolibarrDemo=Dolibarr ERP/CRM demo StatsByNumberOfUnits=Statistics in number of products/services units StatsByNumberOfEntities=Statistics in number of referring entities -NumberOfProposals=Number of proposals on last 12 month -NumberOfCustomerOrders=Number of customer orders on last 12 month -NumberOfCustomerInvoices=Number of customer invoices on last 12 month -NumberOfSupplierProposals=Number of supplier proposals on last 12 month -NumberOfSupplierOrders=Number of supplier orders on last 12 month -NumberOfSupplierInvoices=Number of supplier invoices on last 12 month -NumberOfUnitsProposals=Number of units on proposals on last 12 month -NumberOfUnitsCustomerOrders=Number of units on customer orders on last 12 month -NumberOfUnitsCustomerInvoices=Number of units on customer invoices on last 12 month -NumberOfUnitsSupplierProposals=Number of units on supplier proposals on last 12 month -NumberOfUnitsSupplierOrders=Number of units on supplier orders on last 12 month -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices on last 12 month +NumberOfProposals=Number of proposals in past 12 months +NumberOfCustomerOrders=Number of customer orders in past 12 months +NumberOfCustomerInvoices=Number of customer invoices in past 12 months +NumberOfSupplierProposals=Number of supplier proposals in past 12 months +NumberOfSupplierOrders=Number of supplier orders in past 12 months +NumberOfSupplierInvoices=Number of supplier invoices in past 12 months +NumberOfUnitsProposals=Number of units on proposals in past 12 months +NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months +NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months +NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months +NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=The invoice %s has been validated. diff --git a/htdocs/langs/en_US/projects.lang b/htdocs/langs/en_US/projects.lang index 2d08f153594..84fa74643fa 100644 --- a/htdocs/langs/en_US/projects.lang +++ b/htdocs/langs/en_US/projects.lang @@ -8,7 +8,7 @@ Projects=Projects ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Everybody -PrivateProject=Contacts of project +PrivateProject=Project contacts MyProjectsDesc=This view is limited to projects you are a contact for (whatever is the type). ProjectsPublicDesc=This view presents all projects you are allowed to read. ProjectsPublicTaskDesc=This view presents all projects and tasks you are allowed to read. @@ -159,14 +159,14 @@ DocumentModelBaleine=Project report template for tasks PlannedWorkload=Planned workload PlannedWorkloadShort=Workload WorkloadOccupation=Workload assignation -ProjectReferers=Refering objects +ProjectReferers=Related items SearchAProject=Search a project SearchATask=Search a task ProjectMustBeValidatedFirst=Project must be validated first ProjectDraft=Draft projects FirstAddRessourceToAllocateTime=Associate a resource to allocate time -InputPerDay=Input per day -InputPerWeek=Input per week +InputPerDay=Input per day +InputPerWeek=Input per week InputPerAction=Input per action TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact From e1c27216cee851f30f788aee64e7ea7c3d60498f Mon Sep 17 00:00:00 2001 From: cla Date: Sat, 4 Jun 2016 02:20:11 +0200 Subject: [PATCH 40/77] FIX #4825 --- htdocs/fourn/facture/list.php | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/htdocs/fourn/facture/list.php b/htdocs/fourn/facture/list.php index dafe95e419d..efe8968fa6a 100644 --- a/htdocs/fourn/facture/list.php +++ b/htdocs/fourn/facture/list.php @@ -82,7 +82,6 @@ $year = GETPOST("year","int"); $day_lim = GETPOST('day_lim','int'); $month_lim = GETPOST('month_lim','int'); $year_lim = GETPOST('year_lim','int'); -$filter = GETPOST("filtre"); $optioncss = GETPOST('optioncss','alpha'); if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test must be present to be compatible with all browsers @@ -225,7 +224,7 @@ if ($search_amount_all_tax != '') $sql .= natural_search('fac.total_ttc', $search_amount_all_tax, 1); } -if ($search_status != '') +if ($search_status != '' && $search_status >= 0) { $sql.= " AND fac.fk_statut = ".$search_status; } @@ -264,7 +263,6 @@ if ($resql) if ($search_company) $param.='&search_company='.urlencode($search_company); if ($search_amount_no_tax) $param.='&search_amount_no_tax='.urlencode($search_amount_no_tax); if ($search_amount_all_tax) $param.='&search_amount_all_tax='.urlencode($search_amount_all_tax); - if ($filter && $filter != -1) $param.='&filtre='.urlencode($filter); if ($optioncss != '') $param.='&optioncss='.$optioncss; if ($search_status >= 0) $param.="&search_status=".$search_status; @@ -338,7 +336,7 @@ if ($resql) print ''; print '
'; $liststatus=array('0'=>$langs->trans("Draft"),'1'=>$langs->trans("Unpaid"), '2'=>$langs->trans("Paid")); - print $form->selectarray('filtre', $liststatus, $search_status, 1); + print $form->selectarray('search_status', $liststatus, $search_status, 1); print ''; $searchpitco=$form->showFilterAndCheckAddButtons(0); From eb7a4c5ccf4e1110315841ce045659c822081dbc Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 4 Jun 2016 02:39:13 +0200 Subject: [PATCH 41/77] FIX Creating a supplier order from proposal order --- htdocs/fourn/commande/card.php | 9 +++++---- htdocs/supplier_proposal/card.php | 11 ++++++----- .../supplier_proposal/tpl/linkedobjectblock.tpl.php | 4 ++-- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php index 81e7c93c3c3..8e486dc232b 100644 --- a/htdocs/fourn/commande/card.php +++ b/htdocs/fourn/commande/card.php @@ -1030,7 +1030,7 @@ if (empty($reshook)) $num = count($lines); $productsupplier = new ProductFournisseur($db); - + for($i = 0; $i < $num; $i ++) { @@ -1040,7 +1040,7 @@ if (empty($reshook)) $label = (! empty($lines[$i]->label) ? $lines[$i]->label : ''); $desc = (! empty($lines[$i]->desc) ? $lines[$i]->desc : $lines[$i]->libelle); $product_type = (! empty($lines[$i]->product_type) ? $lines[$i]->product_type : 0); - + // Reset fk_parent_line for no child products and special product if (($lines[$i]->product_type != 9 && empty($lines[$i]->fk_parent_line)) || $lines[$i]->product_type == 9) { $fk_parent_line = 0; @@ -1055,7 +1055,8 @@ if (empty($reshook)) } $result = $productsupplier->find_min_price_product_fournisseur($lines[$i]->fk_product, $lines[$i]->qty); - if ($result>0) + + if ($result>=0) { $tva_tx = $lines[$i]->tva_tx; @@ -1073,7 +1074,7 @@ if (empty($reshook)) $tva_tx, $lines[$i]->localtax1_tx, $lines[$i]->localtax2_tx, - $lines[$i]->fk_product, + $lines[$i]->fk_product > 0 ? $lines[$i]->fk_product : 0, $productsupplier->product_fourn_price_id, $productsupplier->ref_supplier, $lines[$i]->remise_percent, diff --git a/htdocs/supplier_proposal/card.php b/htdocs/supplier_proposal/card.php index 78bde5d1ea5..8e8c69b0ce9 100644 --- a/htdocs/supplier_proposal/card.php +++ b/htdocs/supplier_proposal/card.php @@ -1076,31 +1076,32 @@ if ($action == 'create') // Terms of payment print '
' . $langs->trans('PaymentConditionsShort') . ''; - $form->select_conditions_paiements($soc->cond_reglement_id, 'cond_reglement_id', -1, 1); + $form->select_conditions_paiements(GETPOST('cond_reglement_id') > 0 ? GETPOST('cond_reglement_id') : $soc->cond_reglement_id, 'cond_reglement_id', -1, 1); print '
' . $langs->trans('PaymentMode') . ''; - $form->select_types_paiements($soc->mode_reglement_id, 'mode_reglement_id'); + $form->select_types_paiements(GETPOST('mode_reglement_id') > 0 ? GETPOST('mode_reglement_id') : $soc->mode_reglement_id, 'mode_reglement_id'); print '
' . $langs->trans('BankAccount') . ''; - $form->select_comptes($fk_account, 'fk_account', 0, '', 1); + $form->select_comptes(GETPOST('fk_account')>0 ? GETPOST('fk_account','int') : $fk_account, 'fk_account', 0, '', 1); print '
' . $langs->trans('SendingMethod') . ''; - print $form->selectShippingMethod($shipping_method_id, 'shipping_method_id', '', 1); + print $form->selectShippingMethod(GETPOST('shipping_method_id') > 0 ? GETPOST('shipping_method_id', 'int') : $shipping_method_id, 'shipping_method_id', '', 1); print '
' . $langs->trans("DeliveryDate") . ''; + $datedelivery = dol_mktime(0, 0, 0, GETPOST('liv_month'), GETPOST('liv_day'), GETPOST('liv_year')); if ($conf->global->DATE_LIVRAISON_WEEK_DELAY != "") { $tmpdte = time() + ((7 * $conf->global->DATE_LIVRAISON_WEEK_DELAY) * 24 * 60 * 60); $syear = date("Y", $tmpdte); @@ -1108,7 +1109,7 @@ if ($action == 'create') $sday = date("d", $tmpdte); $form->select_date($syear."-".$smonth."-".$sday, 'liv_', '', '', '', "addask"); } else { - $form->select_date(-1, 'liv_', '', '', '', "addask", 1, 1); + $form->select_date($datedelivery ? $datedelivery : -1, 'liv_', '', '', '', "addask", 1, 1); } print '
trans("SupplierProposal"); ?>trans("SupplierProposal"); ?> trans("ShowSupplierProposal"),"supplier_proposal").' '.$objectlink->ref; ?> datec,'day'); ?>getLibStatut(3); ?>">transnoentitiesnoconv("RemoveLink")); ?> + element != 'shipping') { + ?> + ">transnoentitiesnoconv("RemoveLink")); ?> + +
date_delivery,'day'); ?> rights->expedition->lire) { + if ($user->rights->expedition->lire) { $total = $total + $objectlink->total_ht; echo price($objectlink->total_ht); - }*/ ?> getLibStatut(3); ?>">transnoentitiesnoconv("RemoveLink")); ?> + element != 'commande') { + ?> + ">transnoentitiesnoconv("RemoveLink")); ?>
'.$langs->trans("Tag").''.$langs->trans("Description").'
<'.$printer->tags[$tag].'>'.$langs->trans(strtoupper($printer->tags[$tag])).'
'; diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index c57c01dfc36..53a3081aa4e 100755 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -429,6 +429,7 @@ NoDetails=No more details in footer DisplayCompanyInfo=Display company address DisplayCompanyManager=Display manager names DisplayCompanyInfoAndManagers=Display company and manager names +EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. # Modules Module0Name=Users & groups From b3a36688d1b197b8ddd9dd7d8be6104afe9c1e49 Mon Sep 17 00:00:00 2001 From: phf Date: Sat, 4 Jun 2016 14:31:53 +0200 Subject: [PATCH 52/77] Fix #2666 --- htdocs/filefunc.inc.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/htdocs/filefunc.inc.php b/htdocs/filefunc.inc.php index b97721f2108..92a41209ba4 100644 --- a/htdocs/filefunc.inc.php +++ b/htdocs/filefunc.inc.php @@ -89,7 +89,18 @@ if (! $result && ! empty($_SERVER["GATEWAY_INTERFACE"])) // If install not do { // Note: If calling page was not into htdocs (index.php, ...), then this redirect will fails. // There is no real solution, because the only way to know the apache url relative path is to have into conf file. - header("Location: install/index.php"); + $TDir = explode('/', $_SERVER['PHP_SELF']); + $path = ''; + $i = count($TDir); + while ($i--) + { + if (empty($TDir[$i]) || $TDir[$i] == 'htdocs') break; + if (substr($TDir[$i], -4, 4) == '.php') continue; + + $path .= '../'; + } + + header("Location: ".$path."install/index.php"); exit; } From bd2fe75d08dde06f130a1e8408f0992458747b4a Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sat, 4 Jun 2016 14:45:03 +0200 Subject: [PATCH 53/77] Fix menus in dashboard links --- htdocs/comm/propal/class/propal.class.php | 2 +- htdocs/commande/class/commande.class.php | 2 +- htdocs/compta/facture/class/facture.class.php | 2 +- htdocs/core/menus/standard/eldy.lib.php | 4 ++-- htdocs/fourn/class/fournisseur.commande.class.php | 2 +- htdocs/fourn/class/fournisseur.facture.class.php | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index 939054a06eb..74ee7488f56 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -2528,7 +2528,7 @@ class Propal extends CommonObject $response = new WorkboardResponse(); $response->warning_delay = $delay_warning/60/60/24; $response->label = $label; - $response->url = DOL_URL_ROOT.'/comm/propal/list.php?viewstatut='.$statut; + $response->url = DOL_URL_ROOT.'/comm/propal/list.php?viewstatut='.$statut.'&mainmenu=commercial&leftmenu=propals'; $response->img = img_object($langs->trans("Propals"),"propal"); // This assignment in condition is not a bug. It allows walking the results. diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index 47219049a91..a853ad49fec 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -2910,7 +2910,7 @@ class Commande extends CommonOrder $response = new WorkboardResponse(); $response->warning_delay=$conf->commande->client->warning_delay/60/60/24; $response->label=$langs->trans("OrdersToProcess"); - $response->url=DOL_URL_ROOT.'/commande/list.php?viewstatut=-3'; + $response->url=DOL_URL_ROOT.'/commande/list.php?viewstatut=-3&mainmenu=commercial&leftmenu=orders'; $response->img=img_object($langs->trans("Orders"),"order"); while ($obj=$this->db->fetch_object($resql)) diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index dc62189be87..6633f196eed 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -3264,7 +3264,7 @@ class Facture extends CommonInvoice $response = new WorkboardResponse(); $response->warning_delay=$conf->facture->client->warning_delay/60/60/24; $response->label=$langs->trans("CustomerBillsUnpaid"); - $response->url=DOL_URL_ROOT.'/compta/facture/list.php?search_status=1'; + $response->url=DOL_URL_ROOT.'/compta/facture/list.php?search_status=1&mainmenu=accountancy&leftmenu=customers_bills'; $response->img=img_object($langs->trans("Bills"),"bill"); while ($obj=$this->db->fetch_object($resql)) diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index a24091c4f97..361ce27a494 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -753,8 +753,8 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu if (! empty($conf->facture->enabled)) { $langs->load("bills"); - $newmenu->add("/compta/facture/list.php",$langs->trans("BillsCustomers"),0,$user->rights->facture->lire, '', $mainmenu, 'customers_bills'); - $newmenu->add("/compta/facture.php?action=create",$langs->trans("NewBill"),1,$user->rights->facture->creer); + $newmenu->add("/compta/facture/list.php?leftmenu=customers_bills",$langs->trans("BillsCustomers"),0,$user->rights->facture->lire, '', $mainmenu, 'customers_bills'); + $newmenu->add("/compta/facture.php?action=create&leftmenu=customers_bills",$langs->trans("NewBill"),1,$user->rights->facture->creer); $newmenu->add("/compta/facture/list.php?leftmenu=customers_bills",$langs->trans("List"),1,$user->rights->facture->lire); if (empty($leftmenu) || ($leftmenu == 'customers_bills')) diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php index e7777f82cd5..31ff52886c6 100644 --- a/htdocs/fourn/class/fournisseur.commande.class.php +++ b/htdocs/fourn/class/fournisseur.commande.class.php @@ -2318,7 +2318,7 @@ class CommandeFournisseur extends CommonOrder $response = new WorkboardResponse(); $response->warning_delay=$conf->commande->fournisseur->warning_delay/60/60/24; $response->label=$langs->trans("SuppliersOrdersToProcess"); - $response->url=DOL_URL_ROOT.'/fourn/commande/list.php?statut=1,2,3'; + $response->url=DOL_URL_ROOT.'/fourn/commande/list.php?statut=1,2,3&mainmenu=commercial&leftmenu=orders_suppliers'; $response->img=img_object($langs->trans("Orders"),"order"); while ($obj=$this->db->fetch_object($resql)) diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index a4799bc53fe..9a57f9c0253 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -1440,7 +1440,7 @@ class FactureFournisseur extends CommonInvoice $response = new WorkboardResponse(); $response->warning_delay=$conf->facture->fournisseur->warning_delay/60/60/24; $response->label=$langs->trans("SupplierBillsToPay"); - $response->url=DOL_URL_ROOT.'/fourn/facture/list.php?filtre=fac.fk_statut:1,paye:0'; + $response->url=DOL_URL_ROOT.'/fourn/facture/list.php?filtre=fac.fk_statut:1,paye:0&mainmenu=accountancy&leftmenu=suppliers_bills'; $response->img=img_object($langs->trans("Bills"),"bill"); while ($obj=$this->db->fetch_object($resql)) From 8ccda16ef370e86ee801d3e3790c43ead1625f29 Mon Sep 17 00:00:00 2001 From: phf Date: Sat, 4 Jun 2016 14:50:32 +0200 Subject: [PATCH 54/77] Fix call function ldap_connect but not exists --- htdocs/core/class/ldap.class.php | 106 +++++++++++++++++-------------- 1 file changed, 58 insertions(+), 48 deletions(-) diff --git a/htdocs/core/class/ldap.class.php b/htdocs/core/class/ldap.class.php index ca0cbab3925..85cb36f31f2 100644 --- a/htdocs/core/class/ldap.class.php +++ b/htdocs/core/class/ldap.class.php @@ -159,50 +159,41 @@ class Ldap dol_syslog(get_class($this)."::connect_bind ".$this->error, LOG_WARNING); } - // Loop on each ldap server - foreach ($this->server as $key => $host) + if (! function_exists("ldap_connect")) { - if ($connected) break; - if (empty($host)) continue; + $this->error='LDAPFunctionsNotAvailableOnPHP'; + $return=-1; + dol_syslog(get_class($this)."::connect_bind ".$this->error, LOG_WARNING); + } - if (preg_match('/^ldap/',$host)) + if (empty($this->error)) + { + // Loop on each ldap server + foreach ($this->server as $key => $host) { - $this->connection = ldap_connect($host); - } - else - { - $this->connection = ldap_connect($host,$this->serverPort); - } - - if (is_resource($this->connection)) - { - // Execute the ldap_set_option here (after connect and before bind) - $this->setVersion(); - ldap_set_option($this->connection, LDAP_OPT_SIZELIMIT, 0); // no limit here. should return true. - - - if ($this->serverType == "activedirectory") + if ($connected) break; + if (empty($host)) continue; + + if (preg_match('/^ldap/',$host)) { - $result=$this->setReferrals(); - dol_syslog(get_class($this)."::connect_bind try bindauth for activedirectory on ".$host." user=".$this->searchUser." password=".preg_replace('/./','*',$this->searchPassword),LOG_DEBUG); - $this->result=$this->bindauth($this->searchUser,$this->searchPassword); - if ($this->result) - { - $this->bind=$this->result; - $connected=2; - break; - } - else - { - $this->error=ldap_errno($this->connection).' '.ldap_error($this->connection); - } + $this->connection = ldap_connect($host); } else { - // Try in auth mode - if ($this->searchUser && $this->searchPassword) + $this->connection = ldap_connect($host,$this->serverPort); + } + + if (is_resource($this->connection)) + { + // Execute the ldap_set_option here (after connect and before bind) + $this->setVersion(); + ldap_set_option($this->connection, LDAP_OPT_SIZELIMIT, 0); // no limit here. should return true. + + + if ($this->serverType == "activedirectory") { - dol_syslog(get_class($this)."::connect_bind try bindauth on ".$host." user=".$this->searchUser." password=".preg_replace('/./','*',$this->searchPassword),LOG_DEBUG); + $result=$this->setReferrals(); + dol_syslog(get_class($this)."::connect_bind try bindauth for activedirectory on ".$host." user=".$this->searchUser." password=".preg_replace('/./','*',$this->searchPassword),LOG_DEBUG); $this->result=$this->bindauth($this->searchUser,$this->searchPassword); if ($this->result) { @@ -215,26 +206,45 @@ class Ldap $this->error=ldap_errno($this->connection).' '.ldap_error($this->connection); } } - // Try in anonymous - if (! $this->bind) + else { - dol_syslog(get_class($this)."::connect_bind try bind on ".$host,LOG_DEBUG); - $result=$this->bind(); - if ($result) + // Try in auth mode + if ($this->searchUser && $this->searchPassword) { - $this->bind=$this->result; - $connected=1; - break; + dol_syslog(get_class($this)."::connect_bind try bindauth on ".$host." user=".$this->searchUser." password=".preg_replace('/./','*',$this->searchPassword),LOG_DEBUG); + $this->result=$this->bindauth($this->searchUser,$this->searchPassword); + if ($this->result) + { + $this->bind=$this->result; + $connected=2; + break; + } + else + { + $this->error=ldap_errno($this->connection).' '.ldap_error($this->connection); + } } - else + // Try in anonymous + if (! $this->bind) { - $this->error=ldap_errno($this->connection).' '.ldap_error($this->connection); + dol_syslog(get_class($this)."::connect_bind try bind on ".$host,LOG_DEBUG); + $result=$this->bind(); + if ($result) + { + $this->bind=$this->result; + $connected=1; + break; + } + else + { + $this->error=ldap_errno($this->connection).' '.ldap_error($this->connection); + } } } } + + if (! $connected) $this->close(); } - - if (! $connected) $this->close(); } if ($connected) From 1748da6c56fa019d2b180fdcfcc07bb0e4bda6e9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 4 Jun 2016 14:51:56 +0200 Subject: [PATCH 55/77] Merge --- htdocs/fichinter/card.php | 4 ++-- htdocs/fourn/facture/list.php | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/htdocs/fichinter/card.php b/htdocs/fichinter/card.php index 86bd4a9fd63..a54a983f514 100644 --- a/htdocs/fichinter/card.php +++ b/htdocs/fichinter/card.php @@ -494,7 +494,7 @@ if (empty($reshook)) $desc=GETPOST('np_desc'); $date_intervention = dol_mktime(GETPOST('dihour','int'), GETPOST('dimin','int'), 0, GETPOST('dimonth','int'), GETPOST('diday','int'), GETPOST('diyear','int')); - $duration = empty($conf->global->FICHINTER_WITHOUT_DURATION)?0:convertTime2Seconds(GETPOST('durationhour','int'), GETPOST('durationmin','int')); + $duration = empty($conf->global->FICHINTER_WITHOUT_DURATION)?convertTime2Seconds(GETPOST('durationhour','int'), GETPOST('durationmin','int')) : 0; // Extrafields @@ -1553,7 +1553,7 @@ else if ($id > 0 || ! empty($ref)) $selectmode = 'select'; if (!empty($conf->global->INTERVENTION_ADDLINE_FREEDUREATION)) $selectmode = 'text'; - $form->select_duration('duration', $objp->duree, $selectmode); + $form->select_duration('duration', $objp->duree, 0, $selectmode); } print ''; diff --git a/htdocs/fourn/facture/list.php b/htdocs/fourn/facture/list.php index 42810962275..c526080cc2e 100644 --- a/htdocs/fourn/facture/list.php +++ b/htdocs/fourn/facture/list.php @@ -82,7 +82,6 @@ $year = GETPOST("year","int"); $day_lim = GETPOST('day_lim','int'); $month_lim = GETPOST('month_lim','int'); $year_lim = GETPOST('year_lim','int'); -$filter = GETPOST("filtre"); $optioncss = GETPOST('optioncss','alpha'); if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test must be present to be compatible with all browsers @@ -225,7 +224,7 @@ if ($search_amount_all_tax != '') $sql .= natural_search('fac.total_ttc', $search_amount_all_tax, 1); } -if ($search_status != '' && $search_status>=0) +if ($search_status != '' && $search_status >= 0) { $sql.= " AND fac.fk_statut = ".$search_status; } @@ -347,7 +346,7 @@ if ($resql) print ''; print ''; print '"; + print ''; print ''; print ''; print $form->formconfirm($_SERVER["PHP_SELF"]."?account_category=$cat_id&cptid=".$cpt->rowid, $langs->trans("DeleteCptCategory"), $langs->trans("ConfirmDeleteCptCategory"), "delete", '', 0, "action-delete".$j); diff --git a/htdocs/accountancy/admin/importaccounts.php b/htdocs/accountancy/admin/importaccounts.php index 0dc560aa62e..720f3a4f012 100644 --- a/htdocs/accountancy/admin/importaccounts.php +++ b/htdocs/accountancy/admin/importaccounts.php @@ -138,7 +138,7 @@ if ($result) { while ( $i < min($num_lines, $limit) ) { $objp = $db->fetch_object($result); $var = ! $var; - print ""; + print ''; print '"; + print ''; print ""; - print ""; + print ''; // Ref produit as link $product_static->ref = $obj->ref; $product_static->id = $obj->rowid; diff --git a/htdocs/accountancy/bookkeeping/balance.php b/htdocs/accountancy/bookkeeping/balance.php index e89799d765e..736aec48644 100644 --- a/htdocs/accountancy/bookkeeping/balance.php +++ b/htdocs/accountancy/bookkeeping/balance.php @@ -223,7 +223,7 @@ else { if(empty($description)){ $link = '' . img_edit_add() .''; } - print ""; + print ''; print ''; print ''; diff --git a/htdocs/accountancy/bookkeeping/card.php b/htdocs/accountancy/bookkeeping/card.php index 5421a4a350d..7293797ecc6 100644 --- a/htdocs/accountancy/bookkeeping/card.php +++ b/htdocs/accountancy/bookkeeping/card.php @@ -346,7 +346,7 @@ if ($action == 'create') { foreach ( $book->linesmvt as $line ) { $var = ! $var; - print ""; + print ''; $total_debit += $line->debit; $total_credit += $line->credit; @@ -400,7 +400,7 @@ if ($action == 'create') { if ($action == "" || $action == 'add') { $var = ! $var; - print ""; + print ''; print ''; diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php index 557143164a9..cb5d7caf006 100644 --- a/htdocs/accountancy/bookkeeping/list.php +++ b/htdocs/accountancy/bookkeeping/list.php @@ -368,7 +368,7 @@ foreach ( $object->lines as $line ) { $total_debit += $line->debit; $total_credit += $line->credit; - print ""; + print ''; print ''; print ''; diff --git a/htdocs/accountancy/bookkeeping/listbyyear.php b/htdocs/accountancy/bookkeeping/listbyyear.php index 10640c1887a..23eeb79621a 100644 --- a/htdocs/accountancy/bookkeeping/listbyyear.php +++ b/htdocs/accountancy/bookkeeping/listbyyear.php @@ -269,7 +269,7 @@ $var = True; foreach ( $object->lines as $line ) { $var = ! $var; - print ""; + print ''; print '' . "\n"; print '' . "\n"; print ''; diff --git a/htdocs/accountancy/customer/lines.php b/htdocs/accountancy/customer/lines.php index 292b52b5863..3549651cbd6 100644 --- a/htdocs/accountancy/customer/lines.php +++ b/htdocs/accountancy/customer/lines.php @@ -288,7 +288,7 @@ if ($result) { $var = ! $var; $codecompta = length_accountg($objp->account_number) . ' - ' . $objp->label_compte; - print ""; + print ''; // Ref Invoice $facture_static->ref = $objp->facnumber; diff --git a/htdocs/accountancy/customer/list.php b/htdocs/accountancy/customer/list.php index 438eb30c621..167f558d830 100644 --- a/htdocs/accountancy/customer/list.php +++ b/htdocs/accountancy/customer/list.php @@ -302,7 +302,7 @@ if ($result) { if ($objp->code_sell_l != $objp->code_sell_p) $code_sell_p_l_differ = 'color:red'; - print ""; + print ''; // Ref Invoice $facture_static->ref = $objp->facnumber; diff --git a/htdocs/accountancy/report/result.php b/htdocs/accountancy/report/result.php index 48d587b575b..72a4d6e96b2 100644 --- a/htdocs/accountancy/report/result.php +++ b/htdocs/accountancy/report/result.php @@ -127,7 +127,7 @@ if(!empty($cats)) $resultN = $AccCat->getResult($cpt['account_number'], 0, $year_current, $cpt['dc']); $sommes[$code]['NP'] += $resultNP; $sommes[$code]['N'] += $resultN; - print ""; + print ''; print ''; print ''; print ''; diff --git a/htdocs/accountancy/supplier/lines.php b/htdocs/accountancy/supplier/lines.php index 6ab2cf589a6..a0b2365350f 100644 --- a/htdocs/accountancy/supplier/lines.php +++ b/htdocs/accountancy/supplier/lines.php @@ -236,7 +236,7 @@ if ($result) { $var = ! $var; $codeCompta = length_accountg($objp->account_number) . ' - ' . $objp->label; - print ""; + print ''; // Ref Invoice $facturefournisseur_static->ref = $objp->facnumber; diff --git a/htdocs/accountancy/supplier/list.php b/htdocs/accountancy/supplier/list.php index 8685cb7d5d4..c98ba050222 100644 --- a/htdocs/accountancy/supplier/list.php +++ b/htdocs/accountancy/supplier/list.php @@ -314,7 +314,7 @@ if ($result) { if ($objp->code_buy_l != $objp->code_buy_p) $code_buy_p_l_differ = 'color:red'; - print ""; + print ''; // Ref Invoice $facturefourn_static->ref = $objp->ref; diff --git a/htdocs/expensereport/synchro_compta.php b/htdocs/expensereport/synchro_compta.php index 59a6b8926fe..31c2d985840 100644 --- a/htdocs/expensereport/synchro_compta.php +++ b/htdocs/expensereport/synchro_compta.php @@ -165,7 +165,7 @@ else: while($i<$num): $objp = $db->fetch_object($resql); $var=!$var; - print ""; + print ''; print ''; print ''; print ''; diff --git a/htdocs/product/price.php b/htdocs/product/price.php index 67bb3165fb6..694297b5b2f 100644 --- a/htdocs/product/price.php +++ b/htdocs/product/price.php @@ -1315,7 +1315,7 @@ if ((empty($conf->global->PRODUIT_CUSTOMER_PRICES) || $action=='showlog_default_ { $objp = $db->fetch_object($result); $var = ! $var; - print ""; + print ''; // Date print ""; diff --git a/htdocs/societe/price.php b/htdocs/societe/price.php index 45eba9b397f..4c988603417 100644 --- a/htdocs/societe/price.php +++ b/htdocs/societe/price.php @@ -416,7 +416,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { foreach ( $prodcustprice->lines as $line ) { - print ""; + print ''; $staticprod = new Product($db); $staticprod->fetch($line->fk_product); diff --git a/scripts/accountancy/export-thirdpartyaccount.php b/scripts/accountancy/export-thirdpartyaccount.php index 05236aabf7e..c84ffdabc0f 100755 --- a/scripts/accountancy/export-thirdpartyaccount.php +++ b/scripts/accountancy/export-thirdpartyaccount.php @@ -207,7 +207,7 @@ if ($resql) { $var = ! $var; - print ""; + print ''; print ''; - print ''; + print ''; if (!empty($conf->service->enabled) && $type == 1) { From abe84ef991a0ddb1e84dee192360897aa1229ace Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sat, 4 Jun 2016 18:32:00 +0200 Subject: [PATCH 68/77] Fix rights check on expense reports --- htdocs/expensereport/card.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php index fed76abed07..0c86da36936 100644 --- a/htdocs/expensereport/card.php +++ b/htdocs/expensereport/card.php @@ -805,7 +805,7 @@ if ($action == 'set_paid' && $id > 0 && $user->rights->expensereport->to_paid) } } -if ($action == "addline") +if ($action == "addline" && $user->rights->expensereport->creer) { $error = 0; @@ -896,7 +896,7 @@ if ($action == "addline") $action=''; } -if ($action == 'confirm_delete_line' && GETPOST("confirm") == "yes") +if ($action == 'confirm_delete_line' && GETPOST("confirm") == "yes" && $user->rights->expensereport->creer) { $object = new ExpenseReport($db); $object->fetch($id); @@ -939,7 +939,7 @@ if ($action == 'confirm_delete_line' && GETPOST("confirm") == "yes") } } -if ($action == "updateligne" ) +if ($action == "updateligne" && $user->rights->expensereport->creer) { $object = new ExpenseReport($db); $object->fetch($id); @@ -1647,7 +1647,7 @@ else print ''; } // Ajout des boutons de modification/suppression - if ($object->fk_statut < 2 || $object->fk_statut==99) + if (($object->fk_statut < 2 || $object->fk_statut==99) && $user->rights->expensereport->creer) { print ''; } @@ -1690,7 +1690,7 @@ else } // Ajout des boutons de modification/suppression - if($object->fk_statut<2 OR $object->fk_statut==99) + if(($object->fk_statut<2 OR $object->fk_statut==99) && $user->rights->expensereport->creer) { print ''; // Label - print ''; - print ''; + print ''; + print ''; /* * List of payments From a5472b58d1584caeae067e2bee7dc9bd6367606b Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sun, 5 Jun 2016 00:24:00 +0200 Subject: [PATCH 75/77] FIX #5108 --- htdocs/core/ajax/ajaxdirpreview.php | 5 ++++- htdocs/ecm/index.php | 3 +-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/htdocs/core/ajax/ajaxdirpreview.php b/htdocs/core/ajax/ajaxdirpreview.php index 997e27adb20..f1352f8e933 100644 --- a/htdocs/core/ajax/ajaxdirpreview.php +++ b/htdocs/core/ajax/ajaxdirpreview.php @@ -240,7 +240,10 @@ if ($section) require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php'; $useglobalvars=1; $form = new Form($db); - $formquestion=array('urlfile'=>array('type'=>'hidden','value'=>$urlfile,'name'=>'urlfile')); + $formquestion=array( + 'urlfile'=>array('type'=>'hidden','value'=>$urlfile,'name'=>'urlfile'), + 'section'=>array('type'=>'hidden','value'=>$section,'name'=>'section') + ); print $form->formconfirm($url,$langs->trans("DeleteFile"),$langs->trans("ConfirmDeleteFile"),'confirm_deletefile',$formquestion,"no",($useajax?'deletefile':0)); } diff --git a/htdocs/ecm/index.php b/htdocs/ecm/index.php index e3fa4ece95d..797e759fb13 100644 --- a/htdocs/ecm/index.php +++ b/htdocs/ecm/index.php @@ -175,10 +175,9 @@ if ($action == 'confirm_deletefile') dol_print_error($db,$ecmdir->error); exit; } - $relativepath=$ecmdir->getRelativePath(); } else $relativepath=''; - $upload_dir = $conf->ecm->dir_output.($relativepath?'/'.$relativepath:''); + $upload_dir = $conf->ecm->dir_output; $file = $upload_dir . "/" . GETPOST('urlfile'); // Do not use urldecode here ($_GET and $_POST are already decoded by PHP). $ret=dol_delete_file($file); From 248ac67af239df10800a0141e854ae5220f9c7e3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 5 Jun 2016 02:24:31 +0200 Subject: [PATCH 76/77] Fix php test --- htdocs/imports/import.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/imports/import.php b/htdocs/imports/import.php index ec194e2e794..89d69974577 100644 --- a/htdocs/imports/import.php +++ b/htdocs/imports/import.php @@ -635,7 +635,7 @@ if ($step == 4 && $datatoimport) } - if(!empty(GETPOST('update'))) { + if (GETPOST('update')) { $array_match_file_to_database=array(); } From b52c441c6493c313d7a17b408e5050d43eff8fd4 Mon Sep 17 00:00:00 2001 From: novalore Date: Sun, 5 Jun 2016 02:26:10 +0200 Subject: [PATCH 77/77] english fix in accountancy for currency --- htdocs/langs/en_US/accountancy.lang | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index 20640733cd4..993570f4790 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -3,9 +3,9 @@ ACCOUNTING_EXPORT_SEPARATORCSV=Column separator for export file ACCOUNTING_EXPORT_DATE=Date format for export file ACCOUNTING_EXPORT_PIECE=Export the number of piece ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Export with global account -ACCOUNTING_EXPORT_LABEL=Export the label -ACCOUNTING_EXPORT_AMOUNT=Export the amount -ACCOUNTING_EXPORT_DEVISE=Export the devise +ACCOUNTING_EXPORT_LABEL=Export label +ACCOUNTING_EXPORT_AMOUNT=Export amount +ACCOUNTING_EXPORT_DEVISE=Export currency Selectformat=Select the format for the file ACCOUNTING_EXPORT_PREFIX_SPEC=Specify the prefix for the file name @@ -183,4 +183,4 @@ Formula=Formula ## Error ErrorNoAccountingCategoryForThisCountry=No accounting category are available for this country -ExportNotSupported=The export format setuped is not supported into this page \ No newline at end of file +ExportNotSupported=The export format setuped is not supported into this page
'; $liststatus=array('0'=>$langs->trans("Draft"),'1'=>$langs->trans("Unpaid"), '2'=>$langs->trans("Paid")); - print $form->selectarray('filtre', $liststatus, $search_status, 1); + print $form->selectarray('search_status', $liststatus, $search_status, 1); print ''; $searchpitco=$form->showFilterAndCheckAddButtons(0); From 918ba71e7f7ea0b11b1672cc3ccda64b790c0227 Mon Sep 17 00:00:00 2001 From: jean Date: Sat, 4 Jun 2016 14:59:43 +0200 Subject: [PATCH 56/77] FIX #5014 if $user is admin and different from $object then nbadmin >=1 is ok when not in multicompany --- htdocs/user/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/user/card.php b/htdocs/user/card.php index acfe1c85cd7..4792e9dff4d 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -1914,7 +1914,7 @@ else if ($user->admin // Need to be admin to allow downgrade of an admin && ($user->id != $object->id) // Don't downgrade ourself && ( - (empty($conf->multicompany->enabled) && $nbAdmin > 1) + (empty($conf->multicompany->enabled) && $nbAdmin >= 1) || (! empty($conf->multicompany->enabled) && ($object->entity > 0 || $nbSuperAdmin > 1)) // Don't downgrade a superadmin if alone ) ) From 8f617b196a2db926665dd2a7130b21971d4f254d Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Sat, 4 Jun 2016 15:51:28 +0200 Subject: [PATCH 57/77] Fix printing following the rules --- htdocs/accountancy/admin/categories.php | 2 +- htdocs/accountancy/admin/importaccounts.php | 2 +- htdocs/accountancy/admin/productaccount.php | 4 ++-- htdocs/accountancy/bookkeeping/balance.php | 2 +- htdocs/accountancy/bookkeeping/card.php | 4 ++-- htdocs/accountancy/bookkeeping/list.php | 2 +- htdocs/accountancy/bookkeeping/listbyyear.php | 2 +- htdocs/accountancy/customer/lines.php | 2 +- htdocs/accountancy/customer/list.php | 2 +- htdocs/accountancy/report/result.php | 2 +- htdocs/accountancy/supplier/lines.php | 2 +- htdocs/accountancy/supplier/list.php | 2 +- htdocs/expensereport/synchro_compta.php | 2 +- htdocs/product/price.php | 2 +- htdocs/societe/price.php | 2 +- scripts/accountancy/export-thirdpartyaccount.php | 2 +- 16 files changed, 18 insertions(+), 18 deletions(-) diff --git a/htdocs/accountancy/admin/categories.php b/htdocs/accountancy/admin/categories.php index f0013632b53..b1836836e84 100644 --- a/htdocs/accountancy/admin/categories.php +++ b/htdocs/accountancy/admin/categories.php @@ -138,7 +138,7 @@ if ($action == 'display' || $action == 'delete') { if(!empty($obj)){ foreach ( $obj as $cpt ) { $var = ! $var; - print "
' . length_accountg($cpt->account_number) . '' . $cpt->label . '
'; print $objp->accounting; diff --git a/htdocs/accountancy/admin/productaccount.php b/htdocs/accountancy/admin/productaccount.php index 80ed3f6fb47..63060e1ed60 100644 --- a/htdocs/accountancy/admin/productaccount.php +++ b/htdocs/accountancy/admin/productaccount.php @@ -328,10 +328,10 @@ if ($result) { $product_static = new Product($db); - print "
' . length_accountg($line->numero_compte) . '' . $description . '
'; print $formventilation->select_account($account_number, 'account_number', 0, array (), 1, 1, ''); print '
' . $line->piece_num . '' . dol_print_date($line->doc_date, 'day') . '
' . $line->piece_num . '' . $line->doc_type . '' . dol_print_date($line->doc_date) . '
' . $cpt['account_number'] . '' . $cpt['name_cpt'] . '' . price($resultNP) . '
'.$objp->ref.''.dol_print_date($db->jdate($objp->date_valid),'day').''.img_object($langs->trans("ShowUser"),"user").' '.$objp->declarant_NDF.'
" . dol_print_date($db->jdate($objp->dp), "dayhour") . "
'; $thirdpartystatic->id = $obj->rowid; $thirdpartystatic->name = $obj->name; From 49d0c8d5ff9b757d7fcd315ede9413e017594b1e Mon Sep 17 00:00:00 2001 From: jean Date: Sat, 4 Jun 2016 16:34:26 +0200 Subject: [PATCH 58/77] FIX #4173 Ergonomie of product/service card Add configuration key PRODUCT_NODISPLAYIFNOPHOTO to avoid displaying nophoto.png --- htdocs/core/lib/functions.lib.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 34e52b3c205..c95a83be335 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -902,8 +902,15 @@ function dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='r if ($showimage) $morehtmlleft.='
'.$object->show_photos($conf->product->multidir_output[$object->entity],'small',-$maxvisiblephotos,0,0,0,$width,0).'
'; else { - $nophoto='/public/theme/common/nophoto.png'; - $morehtmlleft.='
No photo
'; + if (!empty($conf->global->PRODUCT_NODISPLAYIFNOPHOTO)) { + $nophoto=''; + $morehtmlleft.='
'; + } + else { + $nophoto='/public/theme/common/nophoto.png'; + $morehtmlleft.='
No photo
'; + } + } } else From a62f5bd5b4d5729910368cc84e3f60a71d21fd44 Mon Sep 17 00:00:00 2001 From: phf Date: Sat, 4 Jun 2016 17:17:22 +0200 Subject: [PATCH 59/77] Fix #2777 --- htdocs/core/lib/admin.lib.php | 7 +++++++ htdocs/langs/en_US/admin.lang | 1 + 2 files changed, 8 insertions(+) diff --git a/htdocs/core/lib/admin.lib.php b/htdocs/core/lib/admin.lib.php index dd1615d7427..3a7485350ce 100644 --- a/htdocs/core/lib/admin.lib.php +++ b/htdocs/core/lib/admin.lib.php @@ -732,17 +732,24 @@ function activateModule($value,$withdeps=1) if (isset($objMod->depends) && is_array($objMod->depends) && ! empty($objMod->depends)) { // Activation des modules dont le module depend + $TError=array(); $num = count($objMod->depends); for ($i = 0; $i < $num; $i++) { + $activate = false; foreach ($modulesdir as $dir) { if (file_exists($dir.$objMod->depends[$i].".class.php")) { activateModule($objMod->depends[$i]); + $activate = true; } } + + if (!$activate) $TError[] = $langs->trans('activateModuleDependNotSatisfied', $objMod->name, $objMod->depends[$i]); } + + setEventMessages('', $TError, 'errors'); } if (isset($objMod->conflictwith) && is_array($objMod->conflictwith) && ! empty($objMod->conflictwith)) diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 5966578021a..925c822cfcf 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -1563,3 +1563,4 @@ TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both custome IncludePath=Include path (defined into variable %s) NoModueToManageStockDecrease=No module able to manage automatic stock decrease has been activated. Stock decrease will be done on manual input only. NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. +activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise \ No newline at end of file From dcd83c403bff79677c4d0a799065c9238408f706 Mon Sep 17 00:00:00 2001 From: novalore Date: Sat, 4 Jun 2016 17:34:04 +0200 Subject: [PATCH 60/77] Fix #4968 --- htdocs/langs/en_US/compta.lang | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/langs/en_US/compta.lang b/htdocs/langs/en_US/compta.lang index b54f59dcfc2..f8942c406a9 100644 --- a/htdocs/langs/en_US/compta.lang +++ b/htdocs/langs/en_US/compta.lang @@ -226,3 +226,4 @@ SameCountryCustomersWithVAT=National customers report BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Based on the two first letters of the VAT number being the same as your own company's country code LinkedFichinter=Link to an intervention ImportDataset_tax_1=Import social/fiscal taxes +ErrorBankAccountNotFound=Error: Bank account not found From 2d907bc7277b4af0450f07fd696bdb3a09d2ea88 Mon Sep 17 00:00:00 2001 From: novalore Date: Sat, 4 Jun 2016 17:34:23 +0200 Subject: [PATCH 61/77] miscellaneous lang fixes in en_US --- htdocs/langs/en_US/admin.lang | 18 +++++++++--------- htdocs/langs/en_US/main.lang | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 53a3081aa4e..b87bfd6134f 100755 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -979,10 +979,10 @@ DelayBeforeWarning=Delay before warning DelaysBeforeWarning=Delays before warning DelaysOfToleranceBeforeWarning=Tolerance delays before warning DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events not yet realised -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks not yet realised -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not yet processed -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not yet processed +Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events not completed yet +Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks not completed yet +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate @@ -993,7 +993,7 @@ Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before al Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve -SetupDescription1=All parameters available in the setup area allow you to setup Dolibarr before starting using it. +SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. @@ -1032,9 +1032,9 @@ TriggerAlwaysActive=Triggers in this file are always active, whatever are the ac TriggerActiveAsModuleActive=Triggers in this file are active as module %s is enabled. GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. They are reserved parameters for advanced developers or for troubleshouting. +ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. OnceSetupFinishedCreateUsers=Warning, you are a Dolibarr administrator user. Administrator users are used to setup Dolibarr. For a usual usage of Dolibarr, it is recommended to use a non administrator user created from Users & Groups menu. -MiscellaneousDesc=Define here all other parameters related to security. +MiscellaneousDesc=All other security related parameters are defined here. LimitsSetup=Limits/Precision setup LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices @@ -1104,8 +1104,8 @@ PathToDocuments=Path to documents PathDirectory=Directory SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages. TranslationSetup=Configuration de la traduction -TranslationDesc=Choice of language visible on screen can be modified:
* Globally from menu Home - Setup - Display
* For user only from tab User display of user card (click on login on top of screen). -TranslationOverwriteDesc=You can also overwrite some value by completing/editing the following table. You must use for "%s" the language code, for "%s" the key found into file langs/xx_XX/somefile.lang and "%s" the new value you want to use as new translation. +TranslationDesc=How to set displayed application language
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). +TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the key string found in the lang file (langs/xx_XX/somefile.lang) into "%s" and your new translation into "%s". TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index f581b76deda..0aa839d09c2 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -746,7 +746,7 @@ Sincerely=Sincerely DeleteLine=Delete line ConfirmDeleteLine=Are you sure you want to delete this line ? NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many records selected for mass action. Such action are restriced to a list of %s records. +TooManyRecordForMassAction=Too many records selected for mass action. The action is restricted to a list of %s records. MassFilesArea=Area for files built by mass actions HideTempMassFilesArea=Hide area of files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions From d86f89a8fa38e356004c7a9e37acd9430437798f Mon Sep 17 00:00:00 2001 From: BENKE Charlie Date: Sat, 4 Jun 2016 17:55:28 +0200 Subject: [PATCH 62/77] fix : #4853 append if not contact type for the element --- htdocs/core/class/commonobject.class.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 3287ac5d4b7..c26251f2312 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -744,7 +744,8 @@ abstract class CommonObject $sql = "DELETE FROM ".MAIN_DB_PREFIX."element_contact"; $sql.= " WHERE element_id = ".$this->id; - $sql.= " AND fk_c_type_contact IN (".$listId.")"; + if ($listId) + $sql.= " AND fk_c_type_contact IN (".$listId.")"; dol_syslog(get_class($this)."::delete_linked_contact", LOG_DEBUG); if ($this->db->query($sql)) From 5de8b6eee5cd5c293d4276603269d4c7870044f8 Mon Sep 17 00:00:00 2001 From: novalore Date: Sat, 4 Jun 2016 18:04:49 +0200 Subject: [PATCH 63/77] correction on banks.lang as mentioned in #5267 --- htdocs/langs/en_US/main.lang | 1 - 1 file changed, 1 deletion(-) diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index 0aa839d09c2..93f12930824 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -176,7 +176,6 @@ Upload=Send file ToLink=Link Select=Select Choose=Choose -ChooseLangage=Please choose your language Resize=Resize Recenter=Recenter Author=Author From 3ef9fe2c40fed0bf33a43f96456b2d056ac24ae8 Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sat, 4 Jun 2016 18:10:40 +0200 Subject: [PATCH 64/77] Fix product supplier price modification with multicompany --- htdocs/core/class/html.form.class.php | 2 +- htdocs/fourn/class/fournisseur.product.class.php | 2 +- htdocs/product/class/product.class.php | 4 ++-- htdocs/product/fournisseurs.php | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 8fb0118cd2e..64ec3d4afdd 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -2278,7 +2278,7 @@ class Form $sql.= " FROM ".MAIN_DB_PREFIX."product as p"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_fournisseur_price as pfp ON p.rowid = pfp.fk_product"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON pfp.fk_soc = s.rowid"; - $sql.= " WHERE p.entity IN (".getEntity('product', 1).")"; + $sql.= " WHERE p.entity IN (".getEntity('productprice', 1).")"; $sql.= " AND p.tobuy = 1"; $sql.= " AND s.fournisseur = 1"; $sql.= " AND p.rowid = ".$productid; diff --git a/htdocs/fourn/class/fournisseur.product.class.php b/htdocs/fourn/class/fournisseur.product.class.php index 9c889a97d97..f64ef0e1d95 100644 --- a/htdocs/fourn/class/fournisseur.product.class.php +++ b/htdocs/fourn/class/fournisseur.product.class.php @@ -433,7 +433,7 @@ class ProductFournisseur extends Product $sql.= " pfp.price, pfp.quantity, pfp.unitprice, pfp.remise_percent, pfp.remise, pfp.tva_tx, pfp.fk_availability, pfp.charges, pfp.unitcharges, pfp.info_bits, pfp.delivery_time_days"; $sql.= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp"; $sql.= ", ".MAIN_DB_PREFIX."societe as s"; - $sql.= " WHERE pfp.entity IN (".getEntity('product', 1).")"; + $sql.= " WHERE pfp.entity IN (".getEntity('productprice', 1).")"; $sql.= " AND pfp.fk_soc = s.rowid"; $sql.= " AND pfp.fk_product = ".$prodid; if (empty($sortfield)) $sql.= " ORDER BY s.nom, pfp.quantity, pfp.price"; diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index ba2eac00cd9..79c21cfcbdf 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -2631,7 +2631,7 @@ class Product extends CommonObject $sql.= " WHERE fk_soc = ".$id_fourn; $sql.= " AND ref_fourn = '".$this->db->escape($ref_fourn)."'"; $sql.= " AND fk_product != ".$this->id; - $sql.= " AND entity = ".$conf->entity; + $sql.= " AND entity IN (".getEntity('productprice', 1).")"; dol_syslog(get_class($this)."::add_fournisseur", LOG_DEBUG); $resql=$this->db->query($sql); @@ -2655,7 +2655,7 @@ class Product extends CommonObject else $sql.= " AND (ref_fourn = '' OR ref_fourn IS NULL)"; $sql.= " AND quantity = '".$quantity."'"; $sql.= " AND fk_product = ".$this->id; - $sql.= " AND entity = ".$conf->entity; + $sql.= " AND entity IN (".getEntity('productprice', 1).")"; dol_syslog(get_class($this)."::add_fournisseur", LOG_DEBUG); $resql=$this->db->query($sql); diff --git a/htdocs/product/fournisseurs.php b/htdocs/product/fournisseurs.php index 2665ae8fd1e..a03c5f5b755 100644 --- a/htdocs/product/fournisseurs.php +++ b/htdocs/product/fournisseurs.php @@ -152,7 +152,7 @@ if (empty($reshook)) { $error++; $langs->load("errors"); - setEventMessages($langs->trans("ErrorFieldMustBeANumeric",'eeee'), null, 'errors'); + setEventMessages($langs->trans("ErrorFieldMustBeANumeric",$langs->transnoentities("VATRateForSupplierProduct")), null, 'errors'); } if (empty($quantity)) { From af8e0802f8bd3c7682d1fe6792e8d0cd9f0e654b Mon Sep 17 00:00:00 2001 From: BENKE Charlie Date: Sat, 4 Jun 2016 18:15:52 +0200 Subject: [PATCH 65/77] fix : login required not verified on update --- htdocs/adherents/card.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/htdocs/adherents/card.php b/htdocs/adherents/card.php index 66de3be2cc5..be81c9b967d 100644 --- a/htdocs/adherents/card.php +++ b/htdocs/adherents/card.php @@ -253,7 +253,8 @@ if (empty($reshook)) } $lastname=$_POST["lastname"]; $firstname=$_POST["firstname"]; - $morphy=$morphy=$_POST["morphy"]; + $morphy=$_POST["morphy"]; + $login=$_POST["login"]; if ($morphy != 'mor' && empty($lastname)) { $error++; $langs->load("errors"); @@ -264,7 +265,14 @@ if (empty($reshook)) $langs->load("errors"); setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Firstname")), null, 'errors'); } - + // Test si le login existe deja + if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) + { + if (empty($login)) { + $error++; + setEventMessages($langs->trans("ErrorFieldRequired", $langs->trans("Login")), null, 'errors'); + } + } // Create new object if ($result > 0 && ! $error) { From 9ac05fa8f27a69de6e6263da40ff0ad9c996f267 Mon Sep 17 00:00:00 2001 From: cla Date: Sat, 4 Jun 2016 18:17:13 +0200 Subject: [PATCH 66/77] FIX #5134 --- htdocs/product/card.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/product/card.php b/htdocs/product/card.php index ef126a85b52..b0bab3ab3c1 100644 --- a/htdocs/product/card.php +++ b/htdocs/product/card.php @@ -1730,7 +1730,8 @@ if (empty($reshook)) { if ($action == '' || $action == 'view') { - if ($user->rights->produit->creer || $user->rights->service->creer) + if (($object->type == Product::TYPE_PRODUCT && $user->rights->produit->creer ) || + ($object->type == Product::TYPE_SERVICE && $user->rights->service->creer)) { if (! isset($object->no_button_edit) || $object->no_button_edit <> 1) print ''; From ff95bb164427d221935014ef780828fff0b882ce Mon Sep 17 00:00:00 2001 From: paolo Date: Sat, 4 Jun 2016 18:31:31 +0200 Subject: [PATCH 67/77] fix #4467 --- htdocs/product/stock/replenish.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/htdocs/product/stock/replenish.php b/htdocs/product/stock/replenish.php index cdbb4cafad3..25dd6728df8 100644 --- a/htdocs/product/stock/replenish.php +++ b/htdocs/product/stock/replenish.php @@ -241,7 +241,7 @@ $form = new Form($db); $title = $langs->trans('Status'); -$sql = 'SELECT p.rowid, p.ref, p.label, p.price,'; +$sql = 'SELECT p.rowid, p.ref, p.label,p.description, p.price,'; $sql.= ' p.price_ttc, p.price_base_type,p.fk_product_type,'; $sql.= ' p.tms as datem, p.duration, p.tobuy,'; $sql.= ' p.desiredstock, p.seuil_stock_alerte as alertstock,'; @@ -490,7 +490,7 @@ while ($i < ($limit ? min($num, $limit) : $num)) // Multilangs if (! empty($conf->global->MAIN_MULTILANGS)) { - $sql = 'SELECT label'; + $sql = 'SELECT label,description'; $sql .= ' FROM ' . MAIN_DB_PREFIX . 'product_lang'; $sql .= ' WHERE fk_product = ' . $objp->rowid; $sql .= ' AND lang = "' . $langs->getDefaultLang() . '"'; @@ -500,6 +500,7 @@ while ($i < ($limit ? min($num, $limit) : $num)) if ($resqlm) { $objtp = $db->fetch_object($resqlm); + if (!empty($objtp->description)) $objp->description = $objtp->description; if (!empty($objtp->label)) $objp->label = $objtp->label; } } @@ -557,7 +558,7 @@ while ($i < ($limit ? min($num, $limit) : $num)) print '
'.$prod->getNomUrl(1, '').'' . $objp->label . '' . $objp->label . ''.$langs->trans('AmountTTC').''; print 'rowid.'#'.$objp->rowid.'">'; @@ -1770,7 +1770,7 @@ else //print ''; // Add a line - if (($object->fk_statut==0 || $object->fk_statut==99) && $action != 'editline') + if (($object->fk_statut==0 || $object->fk_statut==99) && $action != 'editline' && $user->rights->expensereport->creer) { print_fiche_titre($langs->trans("AddLine"),'',''); From c2e853db41a3329bf4e4c603721cd62b4db4db85 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 4 Jun 2016 18:37:41 +0200 Subject: [PATCH 69/77] FIX A non admin user should not be able to set/unset a user as admin even if he has right to manage permission --- htdocs/user/card.php | 2 +- htdocs/user/class/user.class.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/user/card.php b/htdocs/user/card.php index acfe1c85cd7..72074c25a07 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -333,7 +333,7 @@ if (empty($reshook)) { $object->gender = GETPOST("gender", 'alpha'); $object->pass = GETPOST("password"); $object->api_key = (GETPOST("api_key", 'alpha')) ? GETPOST("api_key", 'alpha') : $object->api_key; - $object->admin = empty($user->admin) ? 0 : GETPOST("admin"); // A user can only be set admin by an admin + if (! empty($user->admin)) $object->admin = GETPOST("admin"); // admin flag can only be set/unset by an admin user. A test is also done later when forging sql request $object->address = GETPOST('address', 'alpha'); $object->zip = GETPOST('zipcode', 'alpha'); $object->town = GETPOST('town', 'alpha'); diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index 51945677694..6a19be4da1e 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -1285,7 +1285,7 @@ class User extends CommonObject $sql.= ", login = '".$this->db->escape($this->login)."'"; $sql.= ", api_key = ".($this->api_key ? "'".$this->db->escape($this->api_key)."'" : "null"); $sql.= ", gender = ".($this->gender != -1 ? "'".$this->db->escape($this->gender)."'" : "null"); // 'man' or 'woman' - $sql.= ", admin = ".$this->admin; + if (! empty($user->admin)) $sql.= ", admin = ".$this->admin; // admin flag can be set/unset only by an admin user $sql.= ", address = '".$this->db->escape($this->address)."'"; $sql.= ", zip = '".$this->db->escape($this->zip)."'"; $sql.= ", town = '".$this->db->escape($this->town)."'"; From c5ed9e723fcc5fb04fbe72c10fb33cd35a7d4d09 Mon Sep 17 00:00:00 2001 From: novalore Date: Sat, 4 Jun 2016 18:39:04 +0200 Subject: [PATCH 70/77] bills.lang: TIP payment fixed in en_US --- htdocs/langs/en_US/bills.lang | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang index ab0056dc70e..f6428f6a49a 100644 --- a/htdocs/langs/en_US/bills.lang +++ b/htdocs/langs/en_US/bills.lang @@ -356,8 +356,8 @@ PaymentTypeCB=Credit card PaymentTypeShortCB=Credit card PaymentTypeCHQ=Check PaymentTypeShortCHQ=Check -PaymentTypeTIP=Interbank Payment -PaymentTypeShortTIP=Interbank Payment +PaymentTypeTIP=TIP (Documents against Payment) +PaymentTypeShortTIP=TIP Payment PaymentTypeVAD=On line payment PaymentTypeShortVAD=On line payment PaymentTypeTRA=Bank draft From a193920ddc9fbbd27d7f53c18928bec12637934b Mon Sep 17 00:00:00 2001 From: BENKE Charlie Date: Sat, 4 Jun 2016 18:40:53 +0200 Subject: [PATCH 71/77] if socity then company requiered --- htdocs/adherents/card.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/htdocs/adherents/card.php b/htdocs/adherents/card.php index be81c9b967d..bec4156dbe0 100644 --- a/htdocs/adherents/card.php +++ b/htdocs/adherents/card.php @@ -265,6 +265,11 @@ if (empty($reshook)) $langs->load("errors"); setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Firstname")), null, 'errors'); } + if ($morphy == 'mor' && empty($societe)) { + $error++; + $langs->load("errors"); + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Company")), null, 'errors'); + } // Test si le login existe deja if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) { @@ -514,6 +519,11 @@ if (empty($reshook)) setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Password")), null, 'errors'); } } + if ($morphy == 'mor' && empty($societe)) { + $error++; + $langs->load("errors"); + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Company")), null, 'errors'); + } if ($morphy != 'mor' && empty($lastname)) { $error++; $langs->load("errors"); From b440ad4e7ba871879ac34c569d907d053bb9c5e2 Mon Sep 17 00:00:00 2001 From: cla Date: Sat, 4 Jun 2016 18:44:10 +0200 Subject: [PATCH 72/77] FIX #5134: fixed action 'edit' top page --- htdocs/product/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/product/card.php b/htdocs/product/card.php index b0bab3ab3c1..deff36ebfdf 100644 --- a/htdocs/product/card.php +++ b/htdocs/product/card.php @@ -1122,7 +1122,7 @@ else else if ($object->id > 0) { // Fiche en mode edition - if ($action == 'edit' && ($user->rights->produit->creer || $user->rights->service->creer)) + if ($action == 'edit' && ((($object->type == Product::TYPE_PRODUCT && $user->rights->produit->creer) || ($object->type == Product::TYPE_SERVICE && $user->rights->service->creer)))) { //WYSIWYG Editor require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; From 7866fb9dae68ddf0218b8f20005bb4c1fd1a01a0 Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sat, 4 Jun 2016 19:11:32 +0200 Subject: [PATCH 73/77] Fix #5153 --- htdocs/core/lib/functions.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index db227ae4cf6..fb577674b64 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -431,7 +431,7 @@ function dol_size($size,$type='') */ function dol_sanitizeFileName($str,$newstr='_',$unaccent=1) { - $filesystem_forbidden_chars = array('<','>',':','/','\\','?','*','|','"'); + $filesystem_forbidden_chars = array('<','>',':','/','\\','?','*','|','"','°'); return dol_string_nospecial($unaccent?dol_string_unaccent($str):$str, $newstr, $filesystem_forbidden_chars); } From 147212437b651733655ce775eba9a859e41087b5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 4 Jun 2016 19:36:28 +0200 Subject: [PATCH 74/77] FIX #4078 Edit inline of label of supplier invoice is ok. --- htdocs/fourn/facture/card.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index eb6392eba06..43e5786cbc3 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -1869,8 +1869,8 @@ else print '
'.$form->editfieldkey("Label",'label',$object->label,$object,($user->rights->fournisseur->facture->creer)).''.$form->editfieldval("Label",'label',$object->label,$object,($user->rights->fournisseur->facture->creer)).'
'.$form->editfieldkey("Label",'libelle',$object->label,$object,($user->rights->fournisseur->facture->creer)).''.$form->editfieldval("Label",'libelle',$object->label,$object,($user->rights->fournisseur->facture->creer)).'