From d687d37573140982aa64363f7b0994e9e730e363 Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Wed, 14 Nov 2012 22:31:54 +0100 Subject: [PATCH 01/33] Fix : $now defined twice --- htdocs/comm/index.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/htdocs/comm/index.php b/htdocs/comm/index.php index d290ec43a75..e928de437b9 100644 --- a/htdocs/comm/index.php +++ b/htdocs/comm/index.php @@ -78,8 +78,6 @@ if ($action == 'del_bookmark' && ! empty($bid)) * View */ -$now=dol_now(); - $form = new Form($db); $formfile = new FormFile($db); $companystatic=new Societe($db); From 9911c64f0b4c197d858daec58a863ec4d62c02ee Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Wed, 14 Nov 2012 22:32:20 +0100 Subject: [PATCH 02/33] Fix : $now not defined and proposal date used instead of end validity to display warning --- htdocs/comm/propal/index.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/comm/propal/index.php b/htdocs/comm/propal/index.php index fb6fa29902e..895f922395d 100644 --- a/htdocs/comm/propal/index.php +++ b/htdocs/comm/propal/index.php @@ -43,7 +43,7 @@ $result = restrictedArea($user, 'propal'); /* * View */ - +$now=dol_now(); $propalstatic=new Propal($db); $companystatic=new Societe($db); $form = new Form($db); @@ -288,7 +288,7 @@ if (! empty($conf->propal->enabled) && $user->rights->propale->lire) $now=dol_now(); - $sql = "SELECT s.nom as socname, s.rowid as socid, s.canvas, s.client, p.rowid as propalid, p.total as total_ttc, p.total_ht, p.ref, p.fk_statut, p.datep as dp"; + $sql = "SELECT s.nom as socname, s.rowid as socid, s.canvas, s.client, p.rowid as propalid, p.total as total_ttc, p.total_ht, p.ref, p.fk_statut, p.datep as dp, p.fin_validite as dfv"; $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; $sql.= ", ".MAIN_DB_PREFIX."propal as p"; if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; @@ -328,7 +328,7 @@ if (! empty($conf->propal->enabled) && $user->rights->propale->lire) print $propalstatic->getNomUrl(1); print ''; print ''; - if ($db->jdate($obj->dp) < ($now - $conf->propal->cloture->warning_delay)) print img_warning($langs->trans("Late")); + if ($db->jdate($obj->dfv) < ($now - $conf->propal->cloture->warning_delay)) print img_warning($langs->trans("Late")); print ''; print ''; $filename=dol_sanitizeFileName($obj->ref); From fc4c5f333ff23294e9d346ca906d8046c43f381c Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sat, 17 Nov 2012 10:19:26 +0100 Subject: [PATCH 03/33] Fix : fatal error while importing, function name wasn't complete --- 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 c942bd23efe..8b90a1178c6 100644 --- a/htdocs/imports/import.php +++ b/htdocs/imports/import.php @@ -1498,7 +1498,7 @@ if ($step == 6 && $datatoimport) // Source file format print ''.$langs->trans("SourceFileFormat").''; print ''; - $text=$objmodelimport->getDriverDesc($format); + $text=$objmodelimport->getDriverDescForKey($format); print $form->textwithpicto($objmodelimport->getDriverLabelForKey($format),$text); print ''; From 3fe79b379dcd2006bdcfb52b69a8bd13afba9997 Mon Sep 17 00:00:00 2001 From: simnandez Date: Mon, 19 Nov 2012 17:10:28 +0100 Subject: [PATCH 04/33] Fix: Bad calculation of localtax amount calculation if type of localtaxes are 1 3 or 5. Researched by Eldy --- htdocs/core/lib/price.lib.php | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/htdocs/core/lib/price.lib.php b/htdocs/core/lib/price.lib.php index 4c06cbb2099..efd32f14060 100644 --- a/htdocs/core/lib/price.lib.php +++ b/htdocs/core/lib/price.lib.php @@ -46,7 +46,22 @@ * @param int $info_bits Miscellanous informations on line * @param int $type 0/1=Product/service * @param string $seller Thirdparty seller (we need $seller->country_code property). Provided only if seller is the supplier. - * @return result[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] (total_ht, total_vat, total_ttc, pu_ht, pu_tva, pu_ttc, total_ht_without_discount, total_vat_without_discount, total_ttc_without_discount, ...) + * @return result[ 0=total_ht, + * 1=total_vat, + * 2=total_ttc, + * 3=pu_ht, + * 4=pu_tva, + * 5=pu_ttc, + * 6=total_ht_without_discount, + * 7=total_vat_without_discount, + * 8=total_ttc_without_discount, + * 9=amount tax1 for total_ht, + * 10=amount tax2 for total_ht, + * 11=amount tax1 for pu_ht, + * 12=amount tax2 for pu_ht, + * 13=not used???, + * 14=amount tax1 for total_ht_without_discount, + * 15=amount tax1 for total_ht_without_discount] */ function calcul_price_total($qty, $pu, $remise_percent_ligne, $txtva, $uselocaltax1_rate, $uselocaltax2_rate, $remise_percent_global, $price_base_type, $info_bits, $type, $seller = '') { @@ -183,6 +198,7 @@ function calcul_price_total($qty, $pu, $remise_percent_ligne, $txtva, $uselocalt { $tot_sans_remise= price2num($tot_sans_remise / (1 + ($txtva / 100)),'MU'); $tot_avec_remise= price2num($tot_avec_remise / (1 + ($txtva / 100)),'MU'); + $pu = price2num($pu / (1 + ($txtva / 100)),'MU'); } $apply_tax = false; From 3b861598a743a4609a278ccb103c5dcc8ebd9d49 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Nov 2012 17:29:57 +0100 Subject: [PATCH 05/33] Doc --- htdocs/core/lib/price.lib.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/core/lib/price.lib.php b/htdocs/core/lib/price.lib.php index 4c06cbb2099..a39071fbc52 100644 --- a/htdocs/core/lib/price.lib.php +++ b/htdocs/core/lib/price.lib.php @@ -27,11 +27,11 @@ /** * Calculate totals (net, vat, ...) of a line. * Value for localtaxX_type are '0' : local tax not applied - * '1' : local tax apply on products and services without vat (vat is not applied on local tax) + * '1' : local tax apply on products and services without vat (vat is not applied for local tax calculation) * '2' : local tax apply on products and services before vat (vat is calculated on amount + localtax) - * '3' : local tax apply on products without vat (vat is not applied on local tax) + * '3' : local tax apply on products without vat (vat is not applied for local tax calculation) * '4' : local tax apply on products before vat (vat is calculated on amount + localtax) - * '5' : local tax apply on services without vat (vat is not applied on local tax) + * '5' : local tax apply on services without vat (vat is not applied for local tax calculation) * '6' : local tax apply on services before vat (vat is calculated on amount + localtax) * '7' : local tax is a fix amount applied on global invoice * From bd90d7979dd34871134dc05fa2189ed4be55c79d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Nov 2012 17:42:37 +0100 Subject: [PATCH 06/33] Qual: Removed duplicate code Qual: Removed deprecated warning --- htdocs/admin/mails.php | 66 +++++++----------------------------------- 1 file changed, 10 insertions(+), 56 deletions(-) diff --git a/htdocs/admin/mails.php b/htdocs/admin/mails.php index 6d869ba7a78..eddb3b7c859 100644 --- a/htdocs/admin/mails.php +++ b/htdocs/admin/mails.php @@ -591,19 +591,19 @@ else print ''; - // Warning 1 if ($conf->global->MAIN_MAIL_SENDMODE == 'mail') { print '
'; + /* + // Warning 1 if ($linuxlike) { $sendmailoption=ini_get('mail.force_extra_parameters'); - //print 'x'.$sendmailoption; if (empty($sendmailoption) || ! preg_match('/ba/',$sendmailoption)) { print info_admin($langs->trans("SendmailOptionNotComplete")); } - } + }*/ // Warning 2 print info_admin($langs->trans("SendmailOptionMayHurtBuggedMTA")); } @@ -657,11 +657,11 @@ else print '
'; } - // Affichage formulaire de TEST simple - if ($action == 'test') + // Show email send test form + if ($action == 'test' || $action == 'testhtml') { print '
'; - print_titre($langs->trans("DoTestSend")); + print_titre($action == 'testhtml'?$langs->trans("DoTestSendHTML"):$langs->trans("DoTestSend")); // Cree l'objet formulaire mail include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; @@ -678,62 +678,16 @@ else $formmail->withtopic=(isset($_POST['subject'])?$_POST['subject']:$langs->trans("Test")); $formmail->withtopicreadonly=0; $formmail->withfile=2; - $formmail->withbody=(isset($_POST['message'])?$_POST['message']:$langs->trans("PredefinedMailTest")); + $formmail->withbody=(isset($_POST['message'])?$_POST['message']:($action == 'testhtml'?$langs->trans("PredefinedMailTestHtml"):$langs->trans("PredefinedMailTest"))); $formmail->withbodyreadonly=0; $formmail->withcancel=1; $formmail->withdeliveryreceipt=1; - $formmail->withfckeditor=0; - // Tableau des substitutions - $formmail->substit=$substitutionarrayfortest; - // Tableau des parametres complementaires du post - $formmail->param["action"]="send"; - $formmail->param["models"]="body"; - $formmail->param["mailid"]=0; - $formmail->param["returnurl"]=$_SERVER["PHP_SELF"]; - - // Init list of files - if (GETPOST("mode")=='init') - { - $formmail->clear_attached_files(); - } - - $formmail->show_form('addfile','removefile'); - - print '
'; - } - - // Affichage formulaire de TEST HTML - if ($action == 'testhtml') - { - print '
'; - print_titre($langs->trans("DoTestSendHTML")); - - // Cree l'objet formulaire mail - include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; - $formmail = new FormMail($db); - $formmail->fromname = (isset($_POST['fromname'])?$_POST['fromname']:$conf->global->MAIN_MAIL_EMAIL_FROM); - $formmail->frommail = (isset($_POST['frommail'])?$_POST['frommail']:$conf->global->MAIN_MAIL_EMAIL_FROM); - $formmail->withfromreadonly=0; - $formmail->withsubstit=0; - $formmail->withfrom=1; - $formmail->witherrorsto=1; - $formmail->withto=(! empty($_POST['sendto'])?$_POST['sendto']:($user->email?$user->email:1)); - $formmail->withtocc=(! empty($_POST['sendtocc'])?$_POST['sendtocc']:1); // ! empty to keep field if empty - $formmail->withtoccc=(! empty($_POST['sendtoccc'])?$_POST['sendtoccc']:1); // ! empty to keep field if empty - $formmail->withtopic=(isset($_POST['subject'])?$_POST['subject']:$langs->trans("Test")); - $formmail->withtopicreadonly=0; - $formmail->withfile=2; - $formmail->withbody=(isset($_POST['message'])?$_POST['message']:$langs->trans("PredefinedMailTestHtml")); - //$formmail->withbody='Test aaa __LOGIN__'; - $formmail->withbodyreadonly=0; - $formmail->withcancel=1; - $formmail->withdeliveryreceipt=1; - $formmail->withfckeditor=1; + $formmail->withfckeditor=($action == 'testhtml'?1:0); $formmail->ckeditortoolbar='dolibarr_mailings'; // Tableau des substitutions $formmail->substit=$substitutionarrayfortest; // Tableau des parametres complementaires du post - $formmail->param["action"]="sendhtml"; + $formmail->param["action"]=($action == 'testhtml'?"sendhtml":"send"); $formmail->param["models"]="body"; $formmail->param["mailid"]=0; $formmail->param["returnurl"]=$_SERVER["PHP_SELF"]; @@ -744,7 +698,7 @@ else $formmail->clear_attached_files(); } - $formmail->show_form('addfilehtml','removefilehtml'); + $formmail->show_form(($action == 'testhtml'?'addfilehtml':'addfile'),($action == 'testhtml'?'removefilehtml':'removefile')); print '
'; } From d8d1db143f63cbe19d7b76b52efbb4d84dce38f3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Nov 2012 23:26:07 +0100 Subject: [PATCH 07/33] Typo --- htdocs/langs/en_US/admin.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 84a59052629..6a50d4b087a 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -903,7 +903,7 @@ ExtraFieldsContacts=Complementary attributes (contact/address) ExtraFieldHasWrongValue=Attribut %s has a wrong value. AlphaNumOnlyCharsAndNoSpace=only alphanumericals characters without space SendingMailSetup=Setup of sendings by email -SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must conatins option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). +SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). 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 thoose 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 (recommanded) is to use the method "SMTP socket library" that has no disadvantages. From 72608e7a725060c761c8e4d54a6139e141a3e8ef Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Nov 2012 23:43:14 +0100 Subject: [PATCH 08/33] Fix: Checkstyle --- htdocs/webservices/server_category.php | 27 ++++--- .../webservices/server_productorservice.php | 78 +++++++++---------- 2 files changed, 50 insertions(+), 55 deletions(-) diff --git a/htdocs/webservices/server_category.php b/htdocs/webservices/server_category.php index b08aa90d763..713fcd70fe4 100755 --- a/htdocs/webservices/server_category.php +++ b/htdocs/webservices/server_category.php @@ -1,7 +1,7 @@ * Copyright (C) 2012 JF FERRY - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or @@ -67,7 +67,7 @@ $server->wsdl->addComplexType( 'entity' => array('name'=>'entity','type'=>'xsd:string'), ) ); - + /* * Une catégorie */ @@ -90,7 +90,7 @@ $server->wsdl->addComplexType( 'filles' => array('name'=>'filles','type'=>'tns:FillesArray') ) ); - + /* * Les catégories filles, sous tableau dez la catégorie */ @@ -123,12 +123,12 @@ $server->wsdl->addComplexType( 'tns:categories' ); */ - + /* * Les photos de la catégorie (un tableau indéxé qui contient les images avec leur vignette) */ - $server->wsdl->addComplexType( - 'PhotosArray', +$server->wsdl->addComplexType( + 'PhotosArray', 'complexType', 'array', '', @@ -137,7 +137,7 @@ $server->wsdl->addComplexType( array( array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:image[]') ), -'' + '' ); /* @@ -235,7 +235,7 @@ function getCategory($authentication,$id) $dir = (!empty($conf->categorie->dir_output)?$conf->categorie->dir_output:$conf->service->dir_output); $pdir = get_exdir($categorie->id,2) . $categorie->id ."/photos/"; $dir = $dir . '/'. $pdir; - + $cat = array( 'id' => $categorie->id, 'id_mere' => $categorie->id_mere, @@ -247,11 +247,10 @@ function getCategory($authentication,$id) 'dir' => $pdir, 'photos' => $categorie->liste_photos($dir,$nbmax=10) ); - + $cats = $categorie->get_filles(); - if (sizeof ($cats) > 0) + if (count($cats) > 0) { - foreach($cats as $fille) { $dir = (!empty($conf->categorie->dir_output)?$conf->categorie->dir_output:$conf->service->dir_output); @@ -268,11 +267,11 @@ function getCategory($authentication,$id) 'dir' => $pdir, 'photos' => $fille->liste_photos($dir,$nbmax=10) ); - + } - + } - + // Create $objectresp = array( 'result'=>array('result_code'=>'OK', 'result_label'=>''), diff --git a/htdocs/webservices/server_productorservice.php b/htdocs/webservices/server_productorservice.php index b256621fb79..cb6e033e85a 100755 --- a/htdocs/webservices/server_productorservice.php +++ b/htdocs/webservices/server_productorservice.php @@ -116,7 +116,7 @@ $server->wsdl->addComplexType( 'price_ttc' => array('name'=>'price_ttc','type'=>'xsd:string'), 'price_min' => array('name'=>'price_min','type'=>'xsd:string'), 'price_min_ttc' => array('name'=>'price_min_ttc','type'=>'xsd:string'), - + 'price_base_type' => array('name'=>'price_base_type','type'=>'xsd:string'), 'vat_rate' => array('name'=>'vat_rate','type'=>'xsd:string'), @@ -622,68 +622,64 @@ function getProductsForCategory($authentication,$id) $res = $db->query($sql); if ($res) { - - while ($rec = $db->fetch_array ($res)) + while ($rec = $db->fetch_array($res)) { - $obj = new Product ($db); - $obj->fetch ($rec['fk_'.$field]); - if($obj->status > 0 ) { - + $obj = new Product($db); + $obj->fetch($rec['fk_'.$field]); + if($obj->status > 0 ) + { $dir = (!empty($conf->product->dir_output)?$conf->product->dir_output:$conf->service->dir_output); $pdir = get_exdir($obj->id,2) . $obj->id ."/photos/"; $dir = $dir . '/'. $pdir; - + $products[] = array( - - 'id' => $obj->id, - 'ref' => $obj->ref, - 'ref_ext' => $obj->ref_ext, - 'label' => $obj->label, - 'description' => $obj->description, - 'date_creation' => dol_print_date($obj->date_creation,'dayhourrfc'), - 'date_modification' => dol_print_date($obj->date_modification,'dayhourrfc'), - 'note' => $obj->note, - 'status_tosell' => $obj->status, - 'status_tobuy' => $obj->status_buy, - 'type' => $obj->type, - 'barcode' => $obj->barcode, - 'barcode_type' => $obj->barcode_type, - 'country_id' => $obj->country_id>0?$obj->country_id:'', - 'country_code' => $obj->country_code, - 'custom_code' => $obj->customcode, + 'id' => $obj->id, + 'ref' => $obj->ref, + 'ref_ext' => $obj->ref_ext, + 'label' => $obj->label, + 'description' => $obj->description, + 'date_creation' => dol_print_date($obj->date_creation,'dayhourrfc'), + 'date_modification' => dol_print_date($obj->date_modification,'dayhourrfc'), + 'note' => $obj->note, + 'status_tosell' => $obj->status, + 'status_tobuy' => $obj->status_buy, + 'type' => $obj->type, + 'barcode' => $obj->barcode, + 'barcode_type' => $obj->barcode_type, + 'country_id' => $obj->country_id>0?$obj->country_id:'', + 'country_code' => $obj->country_code, + 'custom_code' => $obj->customcode, - 'price_net' => $obj->price, - 'price' => ($obj->price_ttc-$obj->price), - 'vat_rate' => $obj->tva_tx, - 'price_ttc' => $obj->price_ttc, - 'price_base_type' => $obj->price_base_type, + 'price_net' => $obj->price, + 'price' => ($obj->price_ttc-$obj->price), + 'vat_rate' => $obj->tva_tx, + 'price_ttc' => $obj->price_ttc, + 'price_base_type' => $obj->price_base_type, - 'stock_real' => $obj->stock_reel, - 'stock_alert' => $obj->seuil_stock_alerte, - 'pmp' => $obj->pmp, - 'import_key' => $obj->import_key, - 'dir' => $pdir, - 'photos' => $obj->liste_photos($dir,$nbmax=10) - - + 'stock_real' => $obj->stock_reel, + 'stock_alert' => $obj->seuil_stock_alerte, + 'pmp' => $obj->pmp, + 'import_key' => $obj->import_key, + 'dir' => $pdir, + 'photos' => $obj->liste_photos($dir,$nbmax=10) ); } } - + // Retour $objectresp = array( 'result'=>array('result_code'=>'OK', 'result_label'=>''), 'products'=> $products ); - + } else { $errorcode='NORECORDS_FOR_ASSOCIATION'; $errorlabel='No products associated'.$sql; $objectresp = array('result'=>array('result_code' => $errorcode, 'result_label' => $errorlabel)); dol_syslog("getProductsForCategory:: ".$c->error, LOG_DEBUG); - + } } else From 6cdb720e9ccb0037609b403900291fad8b2c09c2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Nov 2012 00:13:31 +0100 Subject: [PATCH 09/33] Fix: Missing info_admin --- htdocs/expedition/fiche.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/htdocs/expedition/fiche.php b/htdocs/expedition/fiche.php index 3158c1ccf4b..ba796d174c4 100644 --- a/htdocs/expedition/fiche.php +++ b/htdocs/expedition/fiche.php @@ -661,6 +661,7 @@ if ($action == 'create') print ''; $expe->fetch_delivery_methods(); print $form->selectarray("expedition_method_id",$expe->meths,GETPOST('expedition_method_id','int'),1,0,0,"",1); + if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionnarySetup"),1); print "\n"; // Tracking number @@ -1116,6 +1117,7 @@ else print ''; $object->fetch_delivery_methods(); print $form->selectarray("expedition_method_id",$object->meths,$object->expedition_method_id,1,0,0,"",1); + if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionnarySetup"),1); print ''; print ''; } From b593fa2df6d064e13c7d37d55f37f32b474d1e57 Mon Sep 17 00:00:00 2001 From: simnandez Date: Tue, 20 Nov 2012 09:04:24 +0100 Subject: [PATCH 10/33] Trad: Add ca_ES and es_ES translations --- htdocs/langs/ca_ES/boxes.lang | 2 ++ htdocs/langs/es_ES/boxes.lang | 2 ++ 2 files changed, 4 insertions(+) diff --git a/htdocs/langs/ca_ES/boxes.lang b/htdocs/langs/ca_ES/boxes.lang index aabee817076..c9630609526 100644 --- a/htdocs/langs/ca_ES/boxes.lang +++ b/htdocs/langs/ca_ES/boxes.lang @@ -3,6 +3,7 @@ CHARSET=UTF-8 BoxLastRssInfos=Fils d'informació RSS BoxLastProducts=Els %s últims productes/serveis BoxLastProductsInContract=Els %s últims productes/serveis contractats +BoxProductsAlertStock=Productes en alerta d'estoc BoxLastSupplierBills=Últimes factures de proveïdors BoxLastCustomerBills=Últimes factures a clients BoxOldestUnpaidCustomerBills=Factures a clients més antigues pendents de pagament @@ -25,6 +26,7 @@ BoxTitleLastBooks=Els %s darrers marcadors registrats BoxTitleNbOfCustomers=Nombre de clients BoxTitleLastRssInfos=Les %s últimes infos de %s BoxTitleLastProducts=Els %s darrers productes/serveis registrats +BoxTitleProductsAlertStock=Productes en alerta d'estoc BoxTitleLastCustomerOrders=Les %s darreres comandes de clients modificades BoxTitleLastSuppliers=Els %s darrers proveïdors registrats BoxTitleLastCustomers=Els %s darrers clients registrats diff --git a/htdocs/langs/es_ES/boxes.lang b/htdocs/langs/es_ES/boxes.lang index 948d023efcf..72c4363ebe5 100644 --- a/htdocs/langs/es_ES/boxes.lang +++ b/htdocs/langs/es_ES/boxes.lang @@ -3,6 +3,7 @@ CHARSET=UTF-8 BoxLastRssInfos=Hilos de información RSS BoxLastProducts=Los %s últimos productos/servicios BoxLastProductsInContract=Los %s últimos productos/servicios contratados +BoxProductsAlertStock=Productos en alerta de stock BoxLastSupplierBills=Últimas facturas de proveedores BoxLastCustomerBills=Últimas facturas a clientes BoxOldestUnpaidCustomerBills=Facturas a clientes más antiguas pendientes de pago @@ -25,6 +26,7 @@ BoxTitleLastBooks=Los %s últimos marcadores registrados BoxTitleNbOfCustomers=Número de clientes BoxTitleLastRssInfos=Las %s últimas infos de %s BoxTitleLastProducts=Los %s últimos productos/servicios registrados +BoxTitleProductsAlertStock=Productos en alerta de stock BoxTitleLastCustomerOrders=Los %s últimos pedidos de clientes modificados BoxTitleLastSuppliers=Los %s últimos proveedores registrados BoxTitleLastCustomers=Los %s últimos clientes registrados From 8d50def4129df925f82184c55f13ff323bb78965 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Nov 2012 11:22:57 +0100 Subject: [PATCH 11/33] Sec: Do not init password by default when install pages are recalled --- htdocs/install/etape1.php | 8 +++++++- htdocs/install/fileconf.php | 9 ++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/htdocs/install/etape1.php b/htdocs/install/etape1.php index 0d7a76067d1..992eeedb687 100644 --- a/htdocs/install/etape1.php +++ b/htdocs/install/etape1.php @@ -1,6 +1,6 @@ - * Copyright (C) 2004-2011 Laurent Destailleur + * Copyright (C) 2004-2012 Laurent Destailleur * Copyright (C) 2004 Benoit Mortier * Copyright (C) 2004 Sebastien Di Cintio * Copyright (C) 2005-2011 Regis Houssin @@ -52,6 +52,12 @@ $db_pass=GETPOST('db_pass'); $db_port=GETPOST('db_port','int'); $db_prefix=GETPOST('db_prefix','alpha'); +session_start(); // To be able to keep info into session (used for not loosing pass during navigation. pass must not transit throug parmaeters) + +// Save a flag to tell to restore input value if we do back +$_SESSION['dol_save_pass']=$db_pass; +//$_SESSION['dol_save_passroot']=$passroot; + // Now we load forced value from install.forced.php file. $useforcedwizard=false; $forcedfile="./install.forced.php"; diff --git a/htdocs/install/fileconf.php b/htdocs/install/fileconf.php index 2ba95dec92e..4cb44467761 100644 --- a/htdocs/install/fileconf.php +++ b/htdocs/install/fileconf.php @@ -69,6 +69,8 @@ if (@file_exists($forcedfile)) { * View */ +session_start(); // To be able to keep info into session (used for not loosing pass during navigation. pass must not transit throug parmaeters) + pHeader($langs->trans("ConfigurationFile"),"etape1","set","",(empty($force_dolibarr_js_JQUERY)?'':$force_dolibarr_js_JQUERY.'/')); // Test if we can run a first install process @@ -407,7 +409,8 @@ if (! empty($force_install_message)) @@ -438,7 +441,7 @@ if (! empty($force_install_message)) - trans("Login"); ?> + trans("Login"); ?> @@ -455,7 +458,7 @@ if (! empty($force_install_message)) - trans("Password"); ?> + trans("Password"); ?> Date: Tue, 20 Nov 2012 11:23:34 +0100 Subject: [PATCH 12/33] Fix: Removed a hard coded error code. --- htdocs/core/lib/functions.lib.php | 7 ++++--- htdocs/public/paybox/newpayment.php | 2 +- htdocs/public/paypal/newpayment.php | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 94e1a191c57..d9d8703680c 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -2190,17 +2190,18 @@ function dol_print_error($db='',$error='') } /** - * Show email to contact if technical error + * Show a public email and error code to contact if technical error * + * @param string $prefixcode Prefix of public error code * @return void */ -function dol_print_error_email() +function dol_print_error_email($prefixcode) { global $langs,$conf; $langs->load("errors"); $now=dol_now(); - print '
'.$langs->trans("ErrorContactEMail",$conf->global->MAIN_INFO_SOCIETE_MAIL,'ERRORNEWPAYMENT'.dol_print_date($now,'%Y%m%d')).'
'; + print '
'.$langs->trans("ErrorContactEMail", $conf->global->MAIN_INFO_SOCIETE_MAIL, $prefixcode.dol_print_date($now,'%Y%m%d')).'
'; } /** diff --git a/htdocs/public/paybox/newpayment.php b/htdocs/public/paybox/newpayment.php index 89c57e87139..c311fd20893 100644 --- a/htdocs/public/paybox/newpayment.php +++ b/htdocs/public/paybox/newpayment.php @@ -761,7 +761,7 @@ if ($found && ! $error) // We are in a management option and no error } else { - dol_print_error_email(); + dol_print_error_email('ERRORNEWPAYMENTPAYBOX'); } print ''."\n"; diff --git a/htdocs/public/paypal/newpayment.php b/htdocs/public/paypal/newpayment.php index afd0cb40c1d..2bec850d6c2 100755 --- a/htdocs/public/paypal/newpayment.php +++ b/htdocs/public/paypal/newpayment.php @@ -944,7 +944,7 @@ if ($found && ! $error) // We are in a management option and no error } else { - dol_print_error_email(); + dol_print_error_email('ERRORNEWPAYMENTPAYPAL'); } print ''."\n"; From 6a97a45111b2f5e1c17326dd3eee6ac89c777cd1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Nov 2012 11:27:50 +0100 Subject: [PATCH 13/33] Qual: Rename translation key --- htdocs/install/etape1.php | 10 +++++----- htdocs/langs/ar_SA/install.lang | 4 ++-- htdocs/langs/bg_BG/install.lang | 4 ++-- htdocs/langs/ca_ES/install.lang | 4 ++-- htdocs/langs/da_DK/install.lang | 4 ++-- htdocs/langs/de_AT/install.lang | 4 ++-- htdocs/langs/de_DE/install.lang | 4 ++-- htdocs/langs/el_GR/install.lang | 4 ++-- htdocs/langs/en_US/install.lang | 4 ++-- htdocs/langs/es_ES/install.lang | 4 ++-- htdocs/langs/et_EE/install.lang | 4 ++-- htdocs/langs/fa_IR/install.lang | 4 ++-- htdocs/langs/fi_FI/install.lang | 4 ++-- htdocs/langs/fr_FR/install.lang | 4 ++-- htdocs/langs/he_IL/install.lang | 4 ++-- htdocs/langs/hu_HU/install.lang | 4 ++-- htdocs/langs/is_IS/install.lang | 4 ++-- htdocs/langs/it_IT/install.lang | 4 ++-- htdocs/langs/ja_JP/install.lang | 4 ++-- htdocs/langs/nb_NO/install.lang | 4 ++-- htdocs/langs/nl_BE/install.lang | 4 ++-- htdocs/langs/nl_NL/install.lang | 4 ++-- htdocs/langs/pl_PL/install.lang | 8 ++++---- htdocs/langs/pt_BR/install.lang | 4 ++-- htdocs/langs/pt_PT/install.lang | 4 ++-- htdocs/langs/ro_RO/install.lang | 4 ++-- htdocs/langs/ru_RU/install.lang | 8 ++++---- htdocs/langs/ru_UA/install.lang | 4 ++-- htdocs/langs/sl_SI/install.lang | 4 ++-- htdocs/langs/sv_SE/install.lang | 4 ++-- htdocs/langs/tr_TR/install.lang | 4 ++-- htdocs/langs/zh_CN/install.lang | 4 ++-- htdocs/langs/zh_TW/install.lang | 4 ++-- 33 files changed, 73 insertions(+), 73 deletions(-) diff --git a/htdocs/install/etape1.php b/htdocs/install/etape1.php index 992eeedb687..56fe19f37eb 100644 --- a/htdocs/install/etape1.php +++ b/htdocs/install/etape1.php @@ -250,24 +250,24 @@ if (! $error && $db->connected) } } -// Define $defaultCharacterSet and $defaultCollationConnection +// Define $defaultCharacterSet and $defaultDBSortingCollation if (! $error && $db->connected) { if (! empty($_POST["db_create_database"])) // If we create database, we force default value { $defaultCharacterSet=getStaticMember(get_class($db),'forcecharset'); - $defaultCollationConnection=getStaticMember(get_class($db),'forcecollate'); + $defaultDBSortingCollation=getStaticMember(get_class($db),'forcecollate'); } else // If already created, we take current value { $defaultCharacterSet=$db->getDefaultCharacterSetDatabase(); - $defaultCollationConnection=$db->getDefaultCollationDatabase(); + $defaultDBSortingCollation=$db->getDefaultCollationDatabase(); } print ''; - print ''; + print ''; $db_character_set=$defaultCharacterSet; - $db_collation=$defaultCollationConnection; + $db_collation=$defaultDBSortingCollation; } diff --git a/htdocs/langs/ar_SA/install.lang b/htdocs/langs/ar_SA/install.lang index e5673fd9232..57d561e631d 100644 --- a/htdocs/langs/ar_SA/install.lang +++ b/htdocs/langs/ar_SA/install.lang @@ -123,8 +123,8 @@ YouMustCreateItAndAllowServerToWrite=يجب إنشاء هذا الدليل ، و CharsetChoice=اختيار مجموعة حروف CharacterSetClient=مجموعة الحروف المستخدمة في توليدها صفحات هتمل CharacterSetClientComment=اختيار الطابع المحدد لعرضها على الإنترنت.
واقترحت مجموعة الطابع الافتراضي هو واحد من قاعدة البيانات. -CollationConnection=طابع الفرز بغية -CollationConnectionComment=اختر صفحة المدونة التي تحدد طبيعة النظام 'sفرز قاعدة البيانات التي تستخدمها. هذا هو المعلم كما دعا 'مقارنتها' بعض قواعد البيانات.
هذا المعلم لا يمكن أن يعرف إذا كانت قاعدة البيانات موجودة بالفعل. +DBSortingCollation=طابع الفرز بغية +DBSortingCollationComment=اختر صفحة المدونة التي تحدد طبيعة النظام 'sفرز قاعدة البيانات التي تستخدمها. هذا هو المعلم كما دعا 'مقارنتها' بعض قواعد البيانات.
هذا المعلم لا يمكن أن يعرف إذا كانت قاعدة البيانات موجودة بالفعل. CharacterSetDatabase=الطابع المحدد لقاعدة البيانات CharacterSetDatabaseComment=اختيار مجموعة حروف تريد لإنشاء قاعدة بيانات.
هذا المعلم لا يمكن أن يعرف إذا كانت قاعدة البيانات موجودة بالفعل. YouAskDatabaseCreationSoDolibarrNeedToConnect=كنت أسأل لإنشاء قاعدة بيانات ٪ ق ، ولكن لهذا ، Dolibarr الحاجة الى الاتصال بخادم ٪ ق السوبر مع المستخدم أذونات ٪ ق. diff --git a/htdocs/langs/bg_BG/install.lang b/htdocs/langs/bg_BG/install.lang index 7462b72ccb9..aa18691f409 100644 --- a/htdocs/langs/bg_BG/install.lang +++ b/htdocs/langs/bg_BG/install.lang @@ -132,8 +132,8 @@ YouMustCreateItAndAllowServerToWrite=Трябва да създадете таз CharsetChoice=Избор на знаците CharacterSetClient=Набор от символи, използвани за генерираните HTML уеб страници CharacterSetClientComment=Изберете набор от знаци за уеб дисплей.
Default предлагания набор от символи е един от вашата база данни. -CollationConnection=За символи сортиране -CollationConnectionComment=Изберете кода на страницата, която определя подреждане характер, използван от база данни. Този параметър се нарича "съпоставяне" от някои бази данни.
Този параметър не може да бъде определена, ако базата данни вече съществува. +DBSortingCollation=За символи сортиране +DBSortingCollationComment=Изберете кода на страницата, която определя подреждане характер, използван от база данни. Този параметър се нарича "съпоставяне" от някои бази данни.
Този параметър не може да бъде определена, ако базата данни вече съществува. CharacterSetDatabase=Набор от знаци за база данни CharacterSetDatabaseComment=Изберете набор от символи, издирван за създаването на базата данни.
Този параметър не може да бъде определена, ако базата данни вече съществува. YouAskDatabaseCreationSoDolibarrNeedToConnect=Ви помолим да създадете база данни %s, но за това, Dolibarr трябва да се свържете на сървъра %s с супер потребителски разрешения %s. diff --git a/htdocs/langs/ca_ES/install.lang b/htdocs/langs/ca_ES/install.lang index f27d6e24039..b37e2c114c5 100644 --- a/htdocs/langs/ca_ES/install.lang +++ b/htdocs/langs/ca_ES/install.lang @@ -125,8 +125,8 @@ YouMustCreateItAndAllowServerToWrite=Cal crear aquest expedient i permetre al se CharsetChoice=Elecció del joc de caràcters CharacterSetClient=Codificació utilitzada per a la visualització de les pàgines CharacterSetClientComment=Pot triar la codificació que voleu per a la visualització de les pàgines.
La codificació proposada per defecte és la de la seva base de dades. -CollationConnection=Ordre de selecció utilitzat per la base de dades -CollationConnectionComment=Pot triar la pàgina de codi per la qual es defineix l'ordre de selecció dels caràcters utilitzat per la base de dades. Aquest paràmetre també és anomenat 'confrontació' per algunes bases de dades.
Aquest paràmetre no és seleccionable si la base de dades ja està creada +DBSortingCollation=Ordre de selecció utilitzat per la base de dades +DBSortingCollationComment=Pot triar la pàgina de codi per la qual es defineix l'ordre de selecció dels caràcters utilitzat per la base de dades. Aquest paràmetre també és anomenat 'confrontació' per algunes bases de dades.
Aquest paràmetre no és seleccionable si la base de dades ja està creada CharacterSetDatabase=Codificació utilitzada per la base de dades CharacterSetDatabaseComment=Pot triar la codificació que voleu en la creació de la base de dades.
Aquest paràmetre no és seleccionable si la base de dades ja està creada YouAskDatabaseCreationSoDolibarrNeedToConnect=Ha vollgut crear la base de dades %s, però per a això Dolibarr ha de connectar amb el servidor %s via el superusuari %s. diff --git a/htdocs/langs/da_DK/install.lang b/htdocs/langs/da_DK/install.lang index 39391c84b32..8bd455e6cee 100644 --- a/htdocs/langs/da_DK/install.lang +++ b/htdocs/langs/da_DK/install.lang @@ -124,8 +124,8 @@ YouMustCreateItAndAllowServerToWrite=Du skal oprette denne mappe og giver muligh CharsetChoice=Tegnsæt valg CharacterSetClient=Tegnsæt anvendes til genererede HTML-websider CharacterSetClientComment=Vælg tegnsættet for web displayet.
Default foreslåede tegnsæt er den ene af din database. -CollationConnection=Tegn sortering orden -CollationConnectionComment=Vælg side kode, der definerer karakter's sortering rækkefølge anvendes af databasen. Denne parameter kaldes også »samling« af nogle databaser.
Denne parameter kan ikke defineres, hvis database findes allerede. +DBSortingCollation=Tegn sortering orden +DBSortingCollationComment=Vælg side kode, der definerer karakter's sortering rækkefølge anvendes af databasen. Denne parameter kaldes også »samling« af nogle databaser.
Denne parameter kan ikke defineres, hvis database findes allerede. CharacterSetDatabase=Tegnsæt for database CharacterSetDatabaseComment=Vælg tegnsættet ønskede for database oprettelse.
Denne parameter kan ikke defineres, hvis database findes allerede. YouAskDatabaseCreationSoDolibarrNeedToConnect=Du beder om at oprette databasen %s, men for dette, Dolibarr behovet for at oprette forbindelse til serveren %s med superbruger %s tilladelser. diff --git a/htdocs/langs/de_AT/install.lang b/htdocs/langs/de_AT/install.lang index 451f0a15ab8..765d366a219 100644 --- a/htdocs/langs/de_AT/install.lang +++ b/htdocs/langs/de_AT/install.lang @@ -119,8 +119,8 @@ YouMustCreateItAndAllowServerToWrite=Bitte erstellen Sie dieses Verzeichnis und CharsetChoice=Zeichensatzauswahl CharacterSetClient=Zeichensatz für die generierten HTML-Seiten CharacterSetClientComment=Wählen Sie den gewünschten Zeichensatz für die Anzeige im Web.
Standardmäßig empfiehlt sich jener Ihrer Datenbank. -CollationConnection=Reihenfolge der Zeichensortierung (Collation) -CollationConnectionComment=Wählen Sie den page-code zur Definition der Sortierreihenfolge für Zeichen in der Datenbank. Dieser Parameter wird von einigen Datenbanken auch als "Collation" bezeichnet.
Dieser Wert kann nicht festgelegt werden, wenn die Datenbank bereits existiert. +DBSortingCollation=Reihenfolge der Zeichensortierung (Collation) +DBSortingCollationComment=Wählen Sie den page-code zur Definition der Sortierreihenfolge für Zeichen in der Datenbank. Dieser Parameter wird von einigen Datenbanken auch als "Collation" bezeichnet.
Dieser Wert kann nicht festgelegt werden, wenn die Datenbank bereits existiert. CharacterSetDatabase=Datenbankzeichensatz CharacterSetDatabaseComment=Wählen Sie den Zeichensatz für die anzulegende Datenbank.
Dieser Wert kann nicht festgelegt werden, wenn die Datenbank bereits existiert. YouAskDatabaseCreationSoDolibarrNeedToConnect=Sie möchten die Datenbank %s erstellen. Hierfür benötigt dolibarr eine Verbindung zum Server %s mit den Berechtigungen des Super-Users %s. diff --git a/htdocs/langs/de_DE/install.lang b/htdocs/langs/de_DE/install.lang index 56e403a40ee..f7e0ae7654d 100644 --- a/htdocs/langs/de_DE/install.lang +++ b/htdocs/langs/de_DE/install.lang @@ -130,8 +130,8 @@ YouMustCreateItAndAllowServerToWrite=Bitte erstellen Sie dieses Verzeichnis und CharsetChoice=Zeichensatzauswahl CharacterSetClient=Zeichensatz für die generierten HTML-Seiten CharacterSetClientComment=Wählen Sie den gewünschten Zeichensatz für die Anzeige im Web.
Standardmäßig empfiehlt sich jener Ihrer Datenbank. -CollationConnection=Reihenfolge der Zeichensortierung -CollationConnectionComment=Wählen Sie den page-code zur Definition der Sortierreihenfolge für Zeichen in der Datenbank. Dieser Parameter wird von einigen Datenbanken auch als "Collation" bezeichnet.
Dieser Wert kann nicht festgelegt werden, wenn die Datenbank bereits existiert. +DBSortingCollation=Reihenfolge der Zeichensortierung +DBSortingCollationComment=Wählen Sie den page-code zur Definition der Sortierreihenfolge für Zeichen in der Datenbank. Dieser Parameter wird von einigen Datenbanken auch als "Collation" bezeichnet.
Dieser Wert kann nicht festgelegt werden, wenn die Datenbank bereits existiert. CharacterSetDatabase=Datenbankzeichensatz CharacterSetDatabaseComment=Wählen Sie den Zeichensatz für die anzulegende Datenbank.
Dieser Wert kann nicht festgelegt werden, wenn die Datenbank bereits existiert. YouAskDatabaseCreationSoDolibarrNeedToConnect=Sie möchten die Datenbank %s erstellen. Hierfür benötigt dolibarr eine Verbindung zum Server %s mit den Berechtigungen des Super-Users %s. diff --git a/htdocs/langs/el_GR/install.lang b/htdocs/langs/el_GR/install.lang index bb68fd90a20..77b706254bc 100644 --- a/htdocs/langs/el_GR/install.lang +++ b/htdocs/langs/el_GR/install.lang @@ -119,8 +119,8 @@ YouMustCreateItAndAllowServerToWrite=You must create this directory and allow fo CharsetChoice=Character set choice CharacterSetClient=Character set used for generated HTML web pages CharacterSetClientComment=Choose character set for web display.
Default proposed character set is the one of your database. -CollationConnection=Character sorting order -CollationConnectionComment=Choose page code that defines character's sorting order used by database. This parameter is also called 'collation' by some databases.
This parameter can't be defined if database already exists. +DBSortingCollation=Character sorting order +DBSortingCollationComment=Choose page code that defines character's sorting order used by database. This parameter is also called 'collation' by some databases.
This parameter can't be defined if database already exists. CharacterSetDatabase=Character set for database CharacterSetDatabaseComment=Choose character set wanted for database creation.
This parameter can't be defined if database already exists. YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database %s, but for this, Dolibarr need to connect to server %s with super user %s permissions. diff --git a/htdocs/langs/en_US/install.lang b/htdocs/langs/en_US/install.lang index da2623028fa..f111bfad1d6 100644 --- a/htdocs/langs/en_US/install.lang +++ b/htdocs/langs/en_US/install.lang @@ -124,8 +124,8 @@ YouMustCreateItAndAllowServerToWrite=You must create this directory and allow fo CharsetChoice=Character set choice CharacterSetClient=Character set used for generated HTML web pages CharacterSetClientComment=Choose character set for web display.
Default proposed character set is the one of your database. -CollationConnection=Character sorting order -CollationConnectionComment=Choose page code that defines character's sorting order used by database. This parameter is also called 'collation' by some databases.
This parameter can't be defined if database already exists. +DBSortingCollation=Character sorting order +DBSortingCollationComment=Choose page code that defines character's sorting order used by database. This parameter is also called 'collation' by some databases.
This parameter can't be defined if database already exists. CharacterSetDatabase=Character set for database CharacterSetDatabaseComment=Choose character set wanted for database creation.
This parameter can't be defined if database already exists. YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database %s, but for this, Dolibarr need to connect to server %s with super user %s permissions. diff --git a/htdocs/langs/es_ES/install.lang b/htdocs/langs/es_ES/install.lang index 700fdf4d022..a4e15bfe9d2 100644 --- a/htdocs/langs/es_ES/install.lang +++ b/htdocs/langs/es_ES/install.lang @@ -125,8 +125,8 @@ YouMustCreateItAndAllowServerToWrite=Debe crear este directorio y permitir al se CharsetChoice=Elección del juego de caracteres CharacterSetClient=Codificación utilizada para la visualización de las páginas CharacterSetClientComment=Puede elegir la codificación que desea para la visualización de las páginas.
La codificación propuesta por defecto es la de su base de datos. -CollationConnection=Orden de selección utilizado para la base de datos -CollationConnectionComment=Puede elegir la página de código por la que se define el orden de selección de los caracteres utilizado por la base de datos. Este parámetro también es llamado 'cotejo' por algunas bases de datos.
Este parámetro no es seleccionable si la base de datos ya está creada +DBSortingCollation=Orden de selección utilizado para la base de datos +DBSortingCollationComment=Puede elegir la página de código por la que se define el orden de selección de los caracteres utilizado por la base de datos. Este parámetro también es llamado 'cotejo' por algunas bases de datos.
Este parámetro no es seleccionable si la base de datos ya está creada CharacterSetDatabase=Codificación utilizada por la base de datos CharacterSetDatabaseComment=Puede elegir la codificación que desea en la creación de la base de datos.
Este parámetro no es seleccionable si la base de datos ya está creada YouAskDatabaseCreationSoDolibarrNeedToConnect=Quiso crear la base de datos %s, pero para ello Dolibarr debe conectarse con el servidor %s vía el superusuario %s. diff --git a/htdocs/langs/et_EE/install.lang b/htdocs/langs/et_EE/install.lang index a6de684d06a..6ec8e605c2a 100644 --- a/htdocs/langs/et_EE/install.lang +++ b/htdocs/langs/et_EE/install.lang @@ -131,8 +131,8 @@ YouMustCreateItAndAllowServerToWrite=Peate looma selle kataloogi ning võimaldab CharsetChoice=Kooditabel valik CharacterSetClient=Märgistikku kasutatakse genereeritud HTML veebilehti CharacterSetClientComment=Vali kooditabel web ekraanil.
Vaikimisi pakutud kooditabel on üks teie andmebaasi. -CollationConnection=Iseloom sorteerimine et -CollationConnectionComment=Vali lehekülg kood, mis määratleb tegelase sorteerimine et kasutada andmebaasi. Seda parameetrit nimetatakse ka "võrdlemine", mida mõned andmebaase.
Seda parameetrit ei ole võimalik määratleda, kui andmebaas on juba olemas. +DBSortingCollation=Iseloom sorteerimine et +DBSortingCollationComment=Vali lehekülg kood, mis määratleb tegelase sorteerimine et kasutada andmebaasi. Seda parameetrit nimetatakse ka "võrdlemine", mida mõned andmebaase.
Seda parameetrit ei ole võimalik määratleda, kui andmebaas on juba olemas. CharacterSetDatabase=Kooditabel andmebaasi CharacterSetDatabaseComment=Vali kooditabel otsitakse andmebaasi loomist.
Seda parameetrit ei ole võimalik määratleda, kui andmebaas on juba olemas. YouAskDatabaseCreationSoDolibarrNeedToConnect=Te küsite, et luua andmebaas %s, kuid selleks, Dolibarr vaja ühendada server %s super kasutaja %s õigused. diff --git a/htdocs/langs/fa_IR/install.lang b/htdocs/langs/fa_IR/install.lang index 61d5853ade7..545d17c8f76 100644 --- a/htdocs/langs/fa_IR/install.lang +++ b/htdocs/langs/fa_IR/install.lang @@ -123,8 +123,8 @@ YouMustCreateItAndAllowServerToWrite=يجب إنشاء هذا الدليل ، و CharsetChoice=اختيار مجموعة حروف CharacterSetClient=مجموعة الحروف المستخدمة في توليدها صفحات هتمل CharacterSetClientComment=اختيار الطابع المحدد لعرضها على الإنترنت.
واقترحت مجموعة الطابع الافتراضي هو واحد من قاعدة البيانات. -CollationConnection=طابع الفرز بغية -CollationConnectionComment=اختر صفحة المدونة التي تحدد طبيعة النظام 'sفرز قاعدة البيانات التي تستخدمها. هذا هو المعلم كما دعا 'مقارنتها' بعض قواعد البيانات.
هذا المعلم لا يمكن أن يعرف إذا كانت قاعدة البيانات موجودة بالفعل. +DBSortingCollation=طابع الفرز بغية +DBSortingCollationComment=اختر صفحة المدونة التي تحدد طبيعة النظام 'sفرز قاعدة البيانات التي تستخدمها. هذا هو المعلم كما دعا 'مقارنتها' بعض قواعد البيانات.
هذا المعلم لا يمكن أن يعرف إذا كانت قاعدة البيانات موجودة بالفعل. CharacterSetDatabase=الطابع المحدد لقاعدة البيانات CharacterSetDatabaseComment=اختيار مجموعة حروف تريد لإنشاء قاعدة بيانات.
هذا المعلم لا يمكن أن يعرف إذا كانت قاعدة البيانات موجودة بالفعل. YouAskDatabaseCreationSoDolibarrNeedToConnect=كنت أسأل لإنشاء قاعدة بيانات ٪ ق ، ولكن لهذا ، Dolibarr الحاجة الى الاتصال بخادم ٪ ق السوبر مع المستخدم أذونات ٪ ق. diff --git a/htdocs/langs/fi_FI/install.lang b/htdocs/langs/fi_FI/install.lang index 4201b815a94..81448a6ab86 100644 --- a/htdocs/langs/fi_FI/install.lang +++ b/htdocs/langs/fi_FI/install.lang @@ -121,8 +121,8 @@ YouMustCreateItAndAllowServerToWrite=Sinun on luotava tähän hakemistoon ja mah CharsetChoice=Merkistö valinta CharacterSetClient=Merkistö käytetään tuotettu HTML-sivuja CharacterSetClientComment=Valitse merkistö Web-näytön.
Oletus ehdotettu merkistö on yksi tietokannan. -CollationConnection=Luonne lajittelu jotta -CollationConnectionComment=Valitse sivun koodi, joka määrittää merkin n lajittelu jotta käyttää tietokantaa. Tämä parametri on myös kutsuttu "kokoamisen" noin tietokantoja.
Tämä parametri ei voida määritellä, jos tietokanta on jo olemassa. +DBSortingCollation=Luonne lajittelu jotta +DBSortingCollationComment=Valitse sivun koodi, joka määrittää merkin n lajittelu jotta käyttää tietokantaa. Tämä parametri on myös kutsuttu "kokoamisen" noin tietokantoja.
Tämä parametri ei voida määritellä, jos tietokanta on jo olemassa. CharacterSetDatabase=Merkistö tietokanta CharacterSetDatabaseComment=Valitse merkistö etsintäkuulutettu tietokannan luomista.
Tämä parametri ei voida määritellä, jos tietokanta on jo olemassa. YouAskDatabaseCreationSoDolibarrNeedToConnect=Te kysytte luoda tietokanta %s, mutta tästä Dolibarr tarvitse liittää palvelimeen %s Super käyttäjän %s käyttöoikeudet. diff --git a/htdocs/langs/fr_FR/install.lang b/htdocs/langs/fr_FR/install.lang index 7bc7ce811d1..da7fbe1b610 100644 --- a/htdocs/langs/fr_FR/install.lang +++ b/htdocs/langs/fr_FR/install.lang @@ -125,8 +125,8 @@ YouMustCreateItAndAllowServerToWrite=Vous devez créer ce dossier et permettre a CharsetChoice=Choix du codage des caractères CharacterSetClient=Codage utilisé pour l'affichage des pages CharacterSetClientComment=Veuillez choisir le codage que vous souhaitez pour l'affichage des pages.
Le codage proposé par défaut est celui de votre base de données par défaut. -CollationConnection=Ordre de tri utilisé pour la base de données -CollationConnectionComment=Veuillez choisir la page de code définissant l'ordre de tri des caractères utilisés par la base de données. Ce paramètre est aussi appelé 'collation' par certaines bases de données.
Ce paramètre n'est pas sélectionnable si votre base est déjà créée. +DBSortingCollation=Ordre de tri utilisé pour la base de données +DBSortingCollationComment=Veuillez choisir la page de code définissant l'ordre de tri des caractères utilisés par la base de données. Ce paramètre est aussi appelé 'collation' par certaines bases de données.
Ce paramètre n'est pas sélectionnable si votre base est déjà créée. CharacterSetDatabase=Codage utilisé pour la base de données CharacterSetDatabaseComment=Veuillez choisir le codage que vous désirez choisir pour la création de la base de données.
Ce paramètre n'est pas sélectionnable si votre base est déjà créée. YouAskDatabaseCreationSoDolibarrNeedToConnect=Vous avez demandé la création de la base de données %s, mais pour cela, Dolibarr doit se connecter sur le serveur %s via le super utilisateur %s. diff --git a/htdocs/langs/he_IL/install.lang b/htdocs/langs/he_IL/install.lang index c2d4ee2d44d..8fa0761a30c 100644 --- a/htdocs/langs/he_IL/install.lang +++ b/htdocs/langs/he_IL/install.lang @@ -131,8 +131,8 @@ YouMustCreateItAndAllowServerToWrite=עליך ליצור את הספרייה ו CharsetChoice=התווים הבחירה CharacterSetClient=התווים המשמש שנוצר דפי אינטרנט ב-HTML CharacterSetClientComment=בחר בערכת התווים להצגה באינטרנט.
מערכת המוצעת מחדל הדמות היא זו של מסד הנתונים. -CollationConnection=מיון תו כדי -CollationConnectionComment=בחר קוד מקור המגדיר סדר המיון של הדמות בשימוש על ידי מסד הנתונים. פרמטר זה נקרא גם "איסוף" של כמה מסדי נתונים.
פרמטר זה לא ניתן להגדיר אם מסד הנתונים כבר קיים. +DBSortingCollation=מיון תו כדי +DBSortingCollationComment=בחר קוד מקור המגדיר סדר המיון של הדמות בשימוש על ידי מסד הנתונים. פרמטר זה נקרא גם "איסוף" של כמה מסדי נתונים.
פרמטר זה לא ניתן להגדיר אם מסד הנתונים כבר קיים. CharacterSetDatabase=התווים עבור מסד הנתונים CharacterSetDatabaseComment=בחר בערכת התווים רצה ליצירת מסד הנתונים.
פרמטר זה לא ניתן להגדיר אם מסד הנתונים כבר קיים. YouAskDatabaseCreationSoDolibarrNeedToConnect=אתה שואל כדי ליצור מסד נתונים %s, אבל בשביל זה, Dolibarr צריך להתחבר %s שרת עם הרשאות %s סופר משתמש. diff --git a/htdocs/langs/hu_HU/install.lang b/htdocs/langs/hu_HU/install.lang index bb729ba7ce9..b912875ca51 100644 --- a/htdocs/langs/hu_HU/install.lang +++ b/htdocs/langs/hu_HU/install.lang @@ -119,8 +119,8 @@ YouMustCreateItAndAllowServerToWrite=Létre kell hoznia ezt a könyvtárat és e CharsetChoice=Karakter készlet választás CharacterSetClient=A generált web oldalakhoz használt karakterkészlet CharacterSetClientComment=Válasszon karakterkészletet a webes megjelenitéshez.
Az alapértelmezett az adatbázis karakterkészlete. -CollationConnection=Karakter rendezés -CollationConnectionComment=Válasszon kódot ami deifiniálja az adatbázis által használt karakter rendezést. Ezt a paraméter 'illesztés'/'collation'-ként is imseretes egyes adatbázisok esetén.
Ez a paraméter nem megadható ha az adatbázisban már létezik. +DBSortingCollation=Karakter rendezés +DBSortingCollationComment=Válasszon kódot ami deifiniálja az adatbázis által használt karakter rendezést. Ezt a paraméter 'illesztés'/'collation'-ként is imseretes egyes adatbázisok esetén.
Ez a paraméter nem megadható ha az adatbázisban már létezik. CharacterSetDatabase=Az adatbázis karakterkészlete CharacterSetDatabaseComment=Válasszon karakterkészletet az adatbázis létrehozásához.
Ez a paraméter nem megadható ha az adatbázisban már létezik. YouAskDatabaseCreationSoDolibarrNeedToConnect=A(z) %s adatbázis létrehozásához az adatbázis szerverhez SuperUser jogosúltságokkal kell csatlakozni. diff --git a/htdocs/langs/is_IS/install.lang b/htdocs/langs/is_IS/install.lang index 4035e2a2fbb..6435b12fc13 100644 --- a/htdocs/langs/is_IS/install.lang +++ b/htdocs/langs/is_IS/install.lang @@ -131,8 +131,8 @@ YouMustCreateItAndAllowServerToWrite=Þú verður að búa til þessa möppu og CharsetChoice=Stafasett val CharacterSetClient=Stafasett notað mynda HTML vefsíðum CharacterSetClientComment=Veldu stafasett til birtingar á vefnum.
Default fyrirhugaðar stafasett er einn af gagnasafninu. -CollationConnection=Eðli flokkun þess -CollationConnectionComment=Veldu kóða sem skilgreinir flokka til persónu er notaður við gagnagrunn. Þessi stika er einnig kallaður "samanburði" af sumum gagnasöfnum.
Þessi stika er ekki hægt að útskýra ef gagnagrunnur er þegar til. +DBSortingCollation=Eðli flokkun þess +DBSortingCollationComment=Veldu kóða sem skilgreinir flokka til persónu er notaður við gagnagrunn. Þessi stika er einnig kallaður "samanburði" af sumum gagnasöfnum.
Þessi stika er ekki hægt að útskýra ef gagnagrunnur er þegar til. CharacterSetDatabase=Stafasett fyrir gagnasafn CharacterSetDatabaseComment=Veldu stafasett langaði að skapa gagnagrunn.
Þessi stika er ekki hægt að útskýra ef gagnagrunnur er þegar til. YouAskDatabaseCreationSoDolibarrNeedToConnect=Þú biður að búa til gagnasafn %s , en fyrir þetta, Dolibarr þarf til að tengjast við miðlara %s með frábær notanda %s aðgangsheimildir. diff --git a/htdocs/langs/it_IT/install.lang b/htdocs/langs/it_IT/install.lang index 0639923b980..510d5a7abbe 100644 --- a/htdocs/langs/it_IT/install.lang +++ b/htdocs/langs/it_IT/install.lang @@ -21,8 +21,8 @@ CheckToCreateUser =Seleziona questa opzione se l'utente non esiste e deve es CheckToForceHttps =Seleziona questa opzione per forzare le connessioni sicure (HTTPS).
L'host dev'essere configurato per usare un certificato SSL. ChoosedMigrateScript =Scegli script di migrazione ChooseYourSetupMode =Scegli la modalità di impostazione e clicca "start" -CollationConnectionComment =Scegli la codifica per definire l'ordinamento caratteri nel database (Collation).
Questo parametro non può essere definito se il database esiste già. -CollationConnection =Ordinamento caratteri (Collation) +DBSortingCollationComment =Scegli la codifica per definire l'ordinamento caratteri nel database (Collation).
Questo parametro non può essere definito se il database esiste già. +DBSortingCollation =Ordinamento caratteri (Collation) ConfFileCouldBeCreated =Il file %s può essere creato. ConfFileDoesNotExistsAndCouldNotBeCreated =Il file di configurazione %s non esiste e non può essere creato! ConfFileDoesNotExists =Il file di configurazione %s non esiste! diff --git a/htdocs/langs/ja_JP/install.lang b/htdocs/langs/ja_JP/install.lang index 46cbef38e03..0d74ebfdd7a 100644 --- a/htdocs/langs/ja_JP/install.lang +++ b/htdocs/langs/ja_JP/install.lang @@ -84,8 +84,8 @@ YouMustCreateItAndAllowServerToWrite=このディレクトリを作成し、そ CharsetChoice=文字セットの選択 CharacterSetClient=生成されたHTML Webページに使用される文字セット CharacterSetClientComment=Web表示用の文字セットを選択します。
デフォルト提案された文字セットは、データベースの一つです。 -CollationConnection=文字のソート順 -CollationConnectionComment=データベースで使用される文字のソート順序を定義するページのコードを選択してください。このパラメータは、いくつかのデータベースで"照合順序"と呼ばれています。
データベースがすでに存在している場合、このパラメータは定義することはできません。 +DBSortingCollation=文字のソート順 +DBSortingCollationComment=データベースで使用される文字のソート順序を定義するページのコードを選択してください。このパラメータは、いくつかのデータベースで"照合順序"と呼ばれています。
データベースがすでに存在している場合、このパラメータは定義することはできません。 CharacterSetDatabase=データベースの文字セット CharacterSetDatabaseComment=データベース作成のためにしたい文字セットを選択します。
データベースがすでに存在している場合、このパラメータは定義することはできません。 YouAskDatabaseCreationSoDolibarrNeedToConnect=あなたは、データベースの%sを作成するために求めるが、このために、Dolibarrは、スーパーユーザーの%sの権限でサーバの%sに接続する必要があります。 diff --git a/htdocs/langs/nb_NO/install.lang b/htdocs/langs/nb_NO/install.lang index d90bf62954a..7597062d7ea 100644 --- a/htdocs/langs/nb_NO/install.lang +++ b/htdocs/langs/nb_NO/install.lang @@ -127,8 +127,8 @@ YouMustCreateItAndAllowServerToWrite=Du må lage denne katalogen og la for web-s CharsetChoice=Tegnsett valg CharacterSetClient=Tegnsett brukes for genererte HTML-nettsider CharacterSetClientComment=Velg tegnsettet for web visning.
Standard foreslåtte tegnsett er en av databasen. -CollationConnection=Tegn sorteringsrekkefølgen -CollationConnectionComment=Velg side kode som definerer figuren sorteringsrekkefølgen brukes av databasen. Denne parameteren blir også kalt "sortering" av noen databaser.
Denne parameteren kan ikke defineres dersom databasen allerede eksisterer. +DBSortingCollation=Tegn sorteringsrekkefølgen +DBSortingCollationComment=Velg side kode som definerer figuren sorteringsrekkefølgen brukes av databasen. Denne parameteren blir også kalt "sortering" av noen databaser.
Denne parameteren kan ikke defineres dersom databasen allerede eksisterer. CharacterSetDatabase=Tegnsettet for databasen CharacterSetDatabaseComment=Velg tegnsettet ettersøkt for database skaperverk.
Denne parameteren kan ikke defineres dersom databasen allerede eksisterer. YouAskDatabaseCreationSoDolibarrNeedToConnect=ber deg opprette database %s, men for dette, Dolibarr trenger å koble til serveren %s med superbruker %s tillatelser. diff --git a/htdocs/langs/nl_BE/install.lang b/htdocs/langs/nl_BE/install.lang index fc6c4f132c6..6c013aa58c8 100644 --- a/htdocs/langs/nl_BE/install.lang +++ b/htdocs/langs/nl_BE/install.lang @@ -115,8 +115,8 @@ YouMustCreateItAndAllowServerToWrite=U moet deze directorie creëren en schrijfr CharsetChoice=Tekenset keuze CharacterSetClient=Tekenset gebruikt voor gegenereerde HTML-webpagina's CharacterSetClientComment=Kies tekenset voor web display.
Standaard voorgesteld tekenset die van uw database. -CollationConnection=Teken sorteervolgorde -CollationConnectionComment=Choose page code that defines character's sorting order used by database. This parameter is also called 'collation' by some databases.
Deze parameter kan niet worden gedefiniëerd als de database al bestaat. +DBSortingCollation=Teken sorteervolgorde +DBSortingCollationComment=Choose page code that defines character's sorting order used by database. This parameter is also called 'collation' by some databases.
Deze parameter kan niet worden gedefiniëerd als de database al bestaat. CharacterSetDatabase=Tekenset voor database CharacterSetDatabaseComment=Kies tekenset gewild voor database creatie.
Deze parameter kan niet worden gedefinieerd als database al bestaat. YouAskDatabaseCreationSoDolibarrNeedToConnect=U vraagt om database %s te creëren, maar voor dit moet Dolibarr verbinding maken met server %s met super-gebruiker %s machtigingen. diff --git a/htdocs/langs/nl_NL/install.lang b/htdocs/langs/nl_NL/install.lang index 279c1e0541d..b6bccb5d049 100644 --- a/htdocs/langs/nl_NL/install.lang +++ b/htdocs/langs/nl_NL/install.lang @@ -121,8 +121,8 @@ YouMustCreateItAndAllowServerToWrite = U dient deze map te creëren en de juiste CharsetChoice = Keuze van de karakterset CharacterSetClient = Karakterset gebruikt door gegenereerde HTML webpagina's CharacterSetClientComment = Kies de karakterset voor webweergave.
De standaard voorgestelde karakterset is die van uw database. -CollationConnection = Karakter sorteervolgorde -CollationConnectionComment = Kies een paginacodering die de karaktersortering die gebruikt wordt door de database definieert. Deze instelling wordt ook wel 'collatie' genoemd door een aantal databases.
Deze instelling kan niet worden ingesteld als de database al bestaat. +DBSortingCollation = Karakter sorteervolgorde +DBSortingCollationComment = Kies een paginacodering die de karaktersortering die gebruikt wordt door de database definieert. Deze instelling wordt ook wel 'collatie' genoemd door een aantal databases.
Deze instelling kan niet worden ingesteld als de database al bestaat. CharacterSetDatabase = Karakterset voor de database CharacterSetDatabaseComment = Kies de gewenste karakterset die gebruikt wordt voor de databasecreatie. YouAskDatabaseCreationSoDolibarrNeedToConnect = U wilt de database %s, creëren, maar hiervoor moet Dolibarr met de server %s verbinden met superuser (root) %s rechten. diff --git a/htdocs/langs/pl_PL/install.lang b/htdocs/langs/pl_PL/install.lang index 3a09bff58ed..aac038cf676 100644 --- a/htdocs/langs/pl_PL/install.lang +++ b/htdocs/langs/pl_PL/install.lang @@ -112,8 +112,8 @@ YouMustCreateItAndAllowServerToWrite=Musisz utworzyć ten katalog i zezwolić se CharsetChoice=Wybór zestawu kodowania CharacterSetClient=Zestaw kodowania dla wygenerowanych stron HTML CharacterSetClientComment=Wybierz zestaw kodowania znaków dla stron HTML.
Domyślnym wyborem zestawu znaków jest ten zastosowany w bazie danych. -CollationConnection=Sposób sortowania znaków -CollationConnectionComment=Wybierz stronę kodową, która definiuje sposób sortowania znaków używany przez bazę danych. Ten parametr jest często nazywany 'collation'.
Jeśli baza już istnieje, nie ma możliwości zdefiniowania tego parametru. +DBSortingCollation=Sposób sortowania znaków +DBSortingCollationComment=Wybierz stronę kodową, która definiuje sposób sortowania znaków używany przez bazę danych. Ten parametr jest często nazywany 'collation'.
Jeśli baza już istnieje, nie ma możliwości zdefiniowania tego parametru. CharacterSetDatabase=Zestaw znaków dla bazy danych CharacterSetDatabaseComment=Wybierz zesta znaków, który zostanie użyty do utworzenia bazy danych.
Jeśli baza już istnieje, nie ma możliwości zdefiniowania tego parametru. YouAskDatabaseCreationSoDolibarrNeedToConnect=Wybrano by utworzyć bazę danych %s, ale by tego dokonać Dolibarr musi połączyć się z serwerem %s na prawach superużytkownika %s. @@ -330,8 +330,8 @@ YouMustCreateItAndAllowServerToWrite=Du må lage denne katalogen og la for web-s CharsetChoice=Tegnsett valg CharacterSetClient=Tegnsett brukes for genererte HTML-nettsider CharacterSetClientComment=Velg tegnsettet for web visning.
Standard foreslåtte tegnsett er en av databasen. -CollationConnection=Tegn sorteringsrekkefølgen -CollationConnectionComment=Velg side kode som definerer figuren sorteringsrekkefølgen brukes av databasen. Denne parameteren blir også kalt "sortering" av noen databaser.
Denne parameteren kan ikke defineres dersom databasen allerede eksisterer. +DBSortingCollation=Tegn sorteringsrekkefølgen +DBSortingCollationComment=Velg side kode som definerer figuren sorteringsrekkefølgen brukes av databasen. Denne parameteren blir også kalt "sortering" av noen databaser.
Denne parameteren kan ikke defineres dersom databasen allerede eksisterer. CharacterSetDatabase=Tegnsettet for databasen CharacterSetDatabaseComment=Velg tegnsettet ettersøkt for database skaperverk.
Denne parameteren kan ikke defineres dersom databasen allerede eksisterer. YouAskDatabaseCreationSoDolibarrNeedToConnect=ber deg opprette database %s, men for dette, Dolibarr trenger å koble til serveren %s med superbruker %s tillatelser. diff --git a/htdocs/langs/pt_BR/install.lang b/htdocs/langs/pt_BR/install.lang index f3fa394075e..c398d91fcbd 100644 --- a/htdocs/langs/pt_BR/install.lang +++ b/htdocs/langs/pt_BR/install.lang @@ -115,8 +115,8 @@ YouMustCreateItAndAllowServerToWrite=Você deve criar este diretório e para per CharsetChoice=Conjunto de caracteres escolha CharacterSetClient=Conjunto de caracteres utilizados para páginas HTML geradas CharacterSetClientComment=Escolher conjunto de caracteres para exibir na web.
Padrão proposto um conjunto de caracteres é o do seu banco de dados. -CollationConnection=Caracteres triagem fim -CollationConnectionComment=Escolha página código que define o caráter triagem fim utilizado por base de dados. Este parâmetro é também chamado de "recolha" por alguns bancos de dados.
Esse parâmetro não pode ser definido se de dados já existe. +DBSortingCollation=Caracteres triagem fim +DBSortingCollationComment=Escolha página código que define o caráter triagem fim utilizado por base de dados. Este parâmetro é também chamado de "recolha" por alguns bancos de dados.
Esse parâmetro não pode ser definido se de dados já existe. CharacterSetDatabase=Conjunto de caracteres para o banco de dados CharacterSetDatabaseComment=Escolher conjunto de caracteres queria para o banco de dados criação.
Esse parâmetro não pode ser definido se de dados já existe. YouAskDatabaseCreationSoDolibarrNeedToConnect=Você pergunta para criar base de dados %s, mas, para isso, Dolibarr necessidade de se conectar ao servidor com o super-usuário %s %s permissões. diff --git a/htdocs/langs/pt_PT/install.lang b/htdocs/langs/pt_PT/install.lang index 505824e52c4..4110c879efe 100644 --- a/htdocs/langs/pt_PT/install.lang +++ b/htdocs/langs/pt_PT/install.lang @@ -19,8 +19,8 @@ CheckToCreateUser=Caixa de login, se não existe e deve ser criado.
Neste c CheckToForceHttps=Marque esta opção para forçar conexões seguras (https).
Isso exige que o servidor web está configurado com um certificado SSL. ChoosedMigrateScript=Escolhido migrar script ChooseYourSetupMode=Escolha o seu modo de configuração e clique em "Iniciar" ... -CollationConnection=Caracteres triagem fim -CollationConnectionComment=Escolha página código que define o caráter triagem fim utilizado por base de dados. Este parâmetro é também chamado de "recolha" por alguns bancos de dados.
Esse parâmetro não pode ser definido se de dados já existe. +DBSortingCollation=Caracteres triagem fim +DBSortingCollationComment=Escolha página código que define o caráter triagem fim utilizado por base de dados. Este parâmetro é também chamado de "recolha" por alguns bancos de dados.
Esse parâmetro não pode ser definido se de dados já existe. ConfFileCouldBeCreated=O ficheiro de configuração conf.php pôde ser criado. ConfFileDoesNotExists=Ficheiro de configuração %s não existe! ConfFileDoesNotExistsAndCouldNotBeCreated=Ficheiro de configuração %s não existe e não poderia ser criado! diff --git a/htdocs/langs/ro_RO/install.lang b/htdocs/langs/ro_RO/install.lang index 8e1012b307a..bbf504158fc 100644 --- a/htdocs/langs/ro_RO/install.lang +++ b/htdocs/langs/ro_RO/install.lang @@ -922,8 +922,8 @@ YouMustCreateItAndAllowServerToWrite=Trebuie să creaţi acest director şi pent CharsetChoice=Set de caractere alegere CharacterSetClient=Setul de caractere utilizat pentru paginile web generate HTML CharacterSetClientComment=Alegeţi setul de caractere pentru afişarea Web.
Set de caractere implicit propusă este una din baza de date. -CollationConnection=Caracter de sortare pentru -CollationConnectionComment=Alege codul paginii, pentru că defineşte caracterul de sortare folosit de baza de date. Acest parametru este, de asemenea, numit "confruntarea" de unele baze de date.
Acest parametru nu poate fi definit în cazul în care baza de date există deja. +DBSortingCollation=Caracter de sortare pentru +DBSortingCollationComment=Alege codul paginii, pentru că defineşte caracterul de sortare folosit de baza de date. Acest parametru este, de asemenea, numit "confruntarea" de unele baze de date.
Acest parametru nu poate fi definit în cazul în care baza de date există deja. CharacterSetDatabase=Set de caractere pentru baza de date CharacterSetDatabaseComment=Alegeţi setul de caractere dorit pentru crearea de baze de date.
Acest parametru nu poate fi definit în cazul în care baza de date există deja. YouAskDatabaseCreationSoDolibarrNeedToConnect=Să vă întreb pentru a crea %s de baze de date, dar pentru acest lucru, Dolibarr trebuie să se conecteze la server %s cu permisiuni super %s de utilizator. diff --git a/htdocs/langs/ru_RU/install.lang b/htdocs/langs/ru_RU/install.lang index 745564c84f1..c1697be23ba 100644 --- a/htdocs/langs/ru_RU/install.lang +++ b/htdocs/langs/ru_RU/install.lang @@ -121,8 +121,8 @@ YouMustCreateItAndAllowServerToWrite=Вы должны создать этот CharsetChoice=Выбор набора символов CharacterSetClient=Набор символов, используемых для порожденных HTML веб-страниц CharacterSetClientComment=Выберите набор символов для отображения веб.
Предлагаемый по умолчанию набор символов является одной из Ваших данных. -CollationConnection=Характер сортировки -CollationConnectionComment=Выберите страницу код, который определяет характер в сортировки используемых данных. Этот параметр называется также 'обобщение' некоторые базы данных.
Этот параметр не может быть определен, если база данных уже существует. +DBSortingCollation=Характер сортировки +DBSortingCollationComment=Выберите страницу код, который определяет характер в сортировки используемых данных. Этот параметр называется также 'обобщение' некоторые базы данных.
Этот параметр не может быть определен, если база данных уже существует. CharacterSetDatabase=Набор символов для базы данных CharacterSetDatabaseComment=Выберите набор символов, разыскиваемых за создание базы данных.
Этот параметр не может быть определен, если база данных уже существует. YouAskDatabaseCreationSoDolibarrNeedToConnect=Вы спросите для создания базы данных %s, но для этого, Dolibarr необходимо подключиться к серверу %s с супер пользователя% с разрешениями. @@ -314,8 +314,8 @@ YouMustCreateItAndAllowServerToWrite=Du må lage denne katalogen og la for web-s CharsetChoice=Tegnsett valg CharacterSetClient=Tegnsett brukes for genererte HTML-nettsider CharacterSetClientComment=Velg tegnsettet for web visning.
Standard foreslåtte tegnsett er en av databasen. -CollationConnection=Tegn sorteringsrekkefølgen -CollationConnectionComment=Velg side kode som definerer figuren sorteringsrekkefølgen brukes av databasen. Denne parameteren blir også kalt "sortering" av noen databaser.
Denne parameteren kan ikke defineres dersom databasen allerede eksisterer. +DBSortingCollation=Tegn sorteringsrekkefølgen +DBSortingCollationComment=Velg side kode som definerer figuren sorteringsrekkefølgen brukes av databasen. Denne parameteren blir også kalt "sortering" av noen databaser.
Denne parameteren kan ikke defineres dersom databasen allerede eksisterer. CharacterSetDatabase=Tegnsettet for databasen CharacterSetDatabaseComment=Velg tegnsettet ettersøkt for database skaperverk.
Denne parameteren kan ikke defineres dersom databasen allerede eksisterer. YouAskDatabaseCreationSoDolibarrNeedToConnect=ber deg opprette database %s, men for dette, Dolibarr trenger å koble til serveren %s med superbruker %s tillatelser. diff --git a/htdocs/langs/ru_UA/install.lang b/htdocs/langs/ru_UA/install.lang index b23fdef3145..45d05d6eb5a 100644 --- a/htdocs/langs/ru_UA/install.lang +++ b/htdocs/langs/ru_UA/install.lang @@ -102,8 +102,8 @@ YouMustCreateItAndAllowServerToWrite=Вы должны создать эту д CharsetChoice=Выбор набора символов CharacterSetClient=Набор символов, используемый для сгенерированных HTML веб-страниц CharacterSetClientComment=Выберите набор символов для веба.
По умолчанию предлагается набор символов является одним из базы данных. -CollationConnection=Порядок сортировки символов -CollationConnectionComment=Выберите страницу код, который определяет порядок сортировки персонажа используются базы данных. Этот параметр также называется "сортировки" на некоторых базах данных.
Этот параметр не может быть определен, если база данных уже существует. +DBSortingCollation=Порядок сортировки символов +DBSortingCollationComment=Выберите страницу код, который определяет порядок сортировки персонажа используются базы данных. Этот параметр также называется "сортировки" на некоторых базах данных.
Этот параметр не может быть определен, если база данных уже существует. CharacterSetDatabase=Набор символов для базы данных KeepDefaultValuesWamp=Вы можете использовать мастер установки из Dolibarr DoliWamp, поэтому значения предлагаемых здесь уже оптимизированы. Изменение их, только если вы знаете, что вы делаете. KeepDefaultValuesDeb=Вы можете использовать мастер Dolibarr установки из Linux-пакет (Ubuntu, Debian, Fedora ...), поэтому значения предлагаемых здесь уже оптимизированы. Только пароль владельца базы данных для создания должны быть заполнены. Изменение других параметров, только если вы знаете что вы делаете. diff --git a/htdocs/langs/sl_SI/install.lang b/htdocs/langs/sl_SI/install.lang index cda7ad0229e..ecc44497626 100644 --- a/htdocs/langs/sl_SI/install.lang +++ b/htdocs/langs/sl_SI/install.lang @@ -121,8 +121,8 @@ YouMustCreateItAndAllowServerToWrite = Ustvariti morate to mapo in dovoliti sple CharsetChoice = Izbira nabora znakov CharacterSetClient = Nabor znakov, uporabljen za generiranje HTML spletnih strani CharacterSetClientComment = Izbira nabora znakov za spletni prikaz.
Privzet predlagan nabor znakov je tisti iz vaše baze podatkov. -CollationConnection = Vrstni red znakov -CollationConnectionComment = Izberite kodno tabelo, ki definira zaporedje znakov, ki ga uporablja baza podatkov. Ta parameter se v nekaterih bazah podatkov imenuje tudi 'collation'.
Tega parametra ni možno definirati, če baza podatkov že obstaja. +DBSortingCollation = Vrstni red znakov +DBSortingCollationComment = Izberite kodno tabelo, ki definira zaporedje znakov, ki ga uporablja baza podatkov. Ta parameter se v nekaterih bazah podatkov imenuje tudi 'collation'.
Tega parametra ni možno definirati, če baza podatkov že obstaja. CharacterSetDatabase = Nabor znakov za bazo podatkov CharacterSetDatabaseComment = Izberite nabor znakov, ki ga želite za kreiranje baze podatkov.
Tega parametra ni možno definirati, če baza podatkov že obstaja. YouAskDatabaseCreationSoDolibarrNeedToConnect = Želeli ste kreirati bazo podatkov %s, vendar se mora za to Dolibarr povezati s strežnikom %s z dovoljenji super uporabnika %s. diff --git a/htdocs/langs/sv_SE/install.lang b/htdocs/langs/sv_SE/install.lang index d5faa03021d..27b3611032b 100644 --- a/htdocs/langs/sv_SE/install.lang +++ b/htdocs/langs/sv_SE/install.lang @@ -127,8 +127,8 @@ YouMustCreateItAndAllowServerToWrite=Du måste skapa denna katalog och möjligg CharsetChoice=Teckenuppsättning val CharacterSetClient=Teckenuppsättning som används för genererade HTML-sidor CharacterSetClientComment=Välj teckenuppsättning för visning på webben.
Standard föreslagna teckenuppsättning är en av din databas. -CollationConnection=Tecken sorteringsordning -CollationConnectionComment=Välj sida kod som definierar karaktärens sorteringsordningen används av databasen. Denna parameter kallas även "sammanställning" av vissa databaser.
Denna parameter kan inte definieras om databasen redan finns. +DBSortingCollation=Tecken sorteringsordning +DBSortingCollationComment=Välj sida kod som definierar karaktärens sorteringsordningen används av databasen. Denna parameter kallas även "sammanställning" av vissa databaser.
Denna parameter kan inte definieras om databasen redan finns. CharacterSetDatabase=Teckenuppsättningen för databasen CharacterSetDatabaseComment=Välj teckenuppsättning som söks för databas skapas.
Denna parameter kan inte definieras om databasen redan finns. YouAskDatabaseCreationSoDolibarrNeedToConnect=Du ber att skapa databasen %s, men för detta Dolibarr behöver ansluta till servern %s med super user %s behörigheter. diff --git a/htdocs/langs/tr_TR/install.lang b/htdocs/langs/tr_TR/install.lang index f3abb1d4cb2..7967446d570 100755 --- a/htdocs/langs/tr_TR/install.lang +++ b/htdocs/langs/tr_TR/install.lang @@ -131,8 +131,8 @@ YouMustCreateItAndAllowServerToWrite=Bu dizini oluşturmanız ve web sunucusuna CharsetChoice=Karakter seti seçimi CharacterSetClient=HTML web sayfalarında kullanılmak üzere oluşturulan karakter seti CharacterSetClientComment=Web görüntüsü için karakter seti seçin.
Varsayılan önerilen karakter seti veritabanınızda olanlardan biridir. -CollationConnection=Karakter sıralama düzeni -CollationConnectionComment=Veritabanı tarafından kullanılan karakterlerin sıralam düzenini tanımlayan sayfa kodunu kullanın. Bu parametre bazı veritabanları tarafından 'harmanlama' olarak adlandırılır.
Eğer veritabanı zaten varsa bu parametre tanımlanamaz. +DBSortingCollation=Karakter sıralama düzeni +DBSortingCollationComment=Veritabanı tarafından kullanılan karakterlerin sıralam düzenini tanımlayan sayfa kodunu kullanın. Bu parametre bazı veritabanları tarafından 'harmanlama' olarak adlandırılır.
Eğer veritabanı zaten varsa bu parametre tanımlanamaz. CharacterSetDatabase=Veritabanı için karakter seti CharacterSetDatabaseComment=Veritabanı oluşturmak istenen karakter setini seçin.
Eğer veritabanı zaten varsa bu parametre tanımlanamaz. YouAskDatabaseCreationSoDolibarrNeedToConnect=%s veritabanını oluşturmanız istenebilir, bunun için, Dolibarr %s sunucusuna %s süper kullanıcı izniyle bağlanmak ister. diff --git a/htdocs/langs/zh_CN/install.lang b/htdocs/langs/zh_CN/install.lang index 1ed86cd67a2..9685a7b9f4b 100644 --- a/htdocs/langs/zh_CN/install.lang +++ b/htdocs/langs/zh_CN/install.lang @@ -126,8 +126,8 @@ YouMustCreateItAndAllowServerToWrite=您必须创建此目录和Web服务器允 CharsetChoice=字符集的选择 CharacterSetClient=字符集生成的HTML网页使用 CharacterSetClientComment=选择字符集的网页显示。
默认建议的字符集是您的数据库之一。 -CollationConnection=字符排序 -CollationConnectionComment=选择页面的代码定义字符的排序顺序由数据库使用。此参数也被称为'整理一些数据库的。
此参数不能被定义,如果数据库已经存在。 +DBSortingCollation=字符排序 +DBSortingCollationComment=选择页面的代码定义字符的排序顺序由数据库使用。此参数也被称为'整理一些数据库的。
此参数不能被定义,如果数据库已经存在。 CharacterSetDatabase=数据库字符集 CharacterSetDatabaseComment=选择想要的字符集的数据库创建。
此参数不能被定义,如果数据库已经存在。 YouAskDatabaseCreationSoDolibarrNeedToConnect=你问到创建数据库%s,但对于这一点,Dolibarr需要连接到伺服器%S与超级用户%s的权限。 diff --git a/htdocs/langs/zh_TW/install.lang b/htdocs/langs/zh_TW/install.lang index 329f4c39c62..192528ec126 100644 --- a/htdocs/langs/zh_TW/install.lang +++ b/htdocs/langs/zh_TW/install.lang @@ -126,8 +126,8 @@ YouMustCreateItAndAllowServerToWrite=您必須創建此目錄和Web服務器允 CharsetChoice=字符集的選擇 CharacterSetClient=字符集生成的HTML網頁使用 CharacterSetClientComment=選擇字符集的網頁顯示。
默認建議的字符集是您的數據庫之一。 -CollationConnection=字符排序 -CollationConnectionComment=選擇頁面的代碼定義字符的排序順序由數據庫使用。此參數也被稱為'整理一些數據庫的。
此參數不能被定義,如果數據庫已經存在。 +DBSortingCollation=字符排序 +DBSortingCollationComment=選擇頁面的代碼定義字符的排序順序由數據庫使用。此參數也被稱為'整理一些數據庫的。
此參數不能被定義,如果數據庫已經存在。 CharacterSetDatabase=數據庫字符集 CharacterSetDatabaseComment=選擇想要的字符集的數據庫創建。
此參數不能被定義,如果數據庫已經存在。 YouAskDatabaseCreationSoDolibarrNeedToConnect=你問到創建數據庫%s,但對於這一點,Dolibarr需要連接到伺服器%S與超級用戶%s的權限。 From a3d9b5788cc49b9a317768d833026c7cc814f13a Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Tue, 20 Nov 2012 12:09:52 +0100 Subject: [PATCH 14/33] Fix: use keyup instead change to avoid loosing the product id Fix: strict mode --- htdocs/core/lib/ajax.lib.php | 7 ++++--- .../core/tpl/freeproductline_create.tpl.php | 20 +++++++++---------- .../tpl/predefinedproductline_create.tpl.php | 15 ++++++++------ 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/htdocs/core/lib/ajax.lib.php b/htdocs/core/lib/ajax.lib.php index 82a6dadcfb8..824d326883d 100644 --- a/htdocs/core/lib/ajax.lib.php +++ b/htdocs/core/lib/ajax.lib.php @@ -48,8 +48,9 @@ function ajax_autocompleter($selected, $htmlname, $url, $urloption='', $minLengt var options = '.json_encode($ajaxoptions).'; // Remove product id before select another product - $("input#search_'.$htmlname.'").change(function() { - $("#'.$htmlname.'").val("").trigger("change"); + // use keyup instead change to avoid loosing the product id + $("input#search_'.$htmlname.'").keyup(function() { + $("#'.$htmlname.'").val("").trigger("change"); }); // Check when keyup $("input#search_'.$htmlname.'").onDelayedKeyup({ handler: function() { @@ -163,7 +164,7 @@ function ajax_autocompleter($selected, $htmlname, $url, $urloption='', $minLengt }).data( "autocomplete" )._renderItem = function( ul, item ) { return $( "
  • " ) .data( "item.autocomplete", item ) - .append( \'\' + item.label + "" ) + .append( \'\' + item.label + "" ) .appendTo(ul); }; });'; diff --git a/htdocs/core/tpl/freeproductline_create.tpl.php b/htdocs/core/tpl/freeproductline_create.tpl.php index 17da725a80d..5b611768119 100644 --- a/htdocs/core/tpl/freeproductline_create.tpl.php +++ b/htdocs/core/tpl/freeproductline_create.tpl.php @@ -1,7 +1,7 @@ - * Copyright (C) 2010-2011 Laurent Destailleur - * Copyright (C) 2012 Christophe Battarel +/* Copyright (C) 2010-2012 Regis Houssin + * Copyright (C) 2010-2011 Laurent Destailleur + * Copyright (C) 2012 Christophe Battarel * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -50,13 +50,10 @@   -
    " /> +" /> + + > global->MAIN_VIEW_LINE_NUMBER) ? ' colspan="2"' : ''); ?>> @@ -77,8 +74,9 @@ // Editor wysiwyg require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; $nbrows=ROWS_2; + $enabled=(! empty($conf->global->FCKEDITOR_ENABLE_DETAILS)?$conf->global->FCKEDITOR_ENABLE_DETAILS:0); if (! empty($conf->global->MAIN_INPUT_DESC_HEIGHT)) $nbrows=$conf->global->MAIN_INPUT_DESC_HEIGHT; - $doleditor=new DolEditor('dp_desc',$_POST["dp_desc"],'',100,'dolibarr_details','',false,true,$conf->global->FCKEDITOR_ENABLE_DETAILS,$nbrows,70); + $doleditor=new DolEditor('dp_desc',GETPOST('dp_desc'),'',100,'dolibarr_details','',false,true,$enabled,$nbrows,70); $doleditor->Create(); ?> diff --git a/htdocs/core/tpl/predefinedproductline_create.tpl.php b/htdocs/core/tpl/predefinedproductline_create.tpl.php index a3dc4f412dc..601f463682d 100644 --- a/htdocs/core/tpl/predefinedproductline_create.tpl.php +++ b/htdocs/core/tpl/predefinedproductline_create.tpl.php @@ -78,7 +78,7 @@ jQuery(document).ready(function() { if (is_object($hookmanager)) { - $parameters=array('fk_parent_line'=>$_POST["fk_parent_line"]); + $parameters=array('fk_parent_line'=>GETPOST('fk_parent_line','int')); $reshook=$hookmanager->executeHooks('formCreateProductOptions',$parameters,$object,$action); } @@ -87,8 +87,9 @@ jQuery(document).ready(function() { // Editor wysiwyg require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; $nbrows=ROWS_2; + $enabled=(! empty($conf->global->FCKEDITOR_ENABLE_DETAILS)?$conf->global->FCKEDITOR_ENABLE_DETAILS:0); if (! empty($conf->global->MAIN_INPUT_DESC_HEIGHT)) $nbrows=$conf->global->MAIN_INPUT_DESC_HEIGHT; - $doleditor=new DolEditor('np_desc',$_POST["np_desc"],'',100,'dolibarr_details','',false,true,$conf->global->FCKEDITOR_ENABLE_DETAILS,$nbrows,70); + $doleditor=new DolEditor('np_desc',GETPOST('np_desc"'),'',100,'dolibarr_details','',false,true,$enabled,$nbrows,70); $doleditor->Create(); ?> @@ -99,9 +100,9 @@ $colspan = 4; if (! empty($conf->margin->enabled)) { ?> - - "> - + + "> + global->DISPLAY_MARGIN_RATES)) $colspan++; @@ -109,7 +110,9 @@ if (! empty($conf->margin->enabled)) { $colspan++; } ?> - " name="addline"> + + " name="addline"> + service->enabled) && $dateSelector) { From 2d5368e13573b49dcfe8b65a26116351bf97bd9b Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Tue, 20 Nov 2012 12:11:19 +0100 Subject: [PATCH 15/33] Fix: converting line delimiters --- htdocs/admin/mailing.php | 16 ++++---- htdocs/comm/mailing/fiche.php | 2 +- htdocs/compta/ajaxpayment.php | 38 +++++++++--------- .../class/bonprelevement.class.php | 2 +- htdocs/core/modules/modExpedition.class.php | 40 +++++++++---------- htdocs/core/modules/modProjet.class.php | 4 +- htdocs/expedition/fiche.php | 2 +- htdocs/holiday/class/holiday.class.php | 36 ++++++++--------- htdocs/holiday/fiche.php | 4 +- htdocs/paypal/lib/paypal.lib.php | 4 +- 10 files changed, 74 insertions(+), 74 deletions(-) diff --git a/htdocs/admin/mailing.php b/htdocs/admin/mailing.php index 0a34a4d4c47..f43c9f8b244 100644 --- a/htdocs/admin/mailing.php +++ b/htdocs/admin/mailing.php @@ -40,14 +40,14 @@ $action = GETPOST('action','alpha'); * Actions */ -if ($action == 'setMAILING_EMAIL_UNSUBSCRIBE') -{ - $res=dolibarr_set_const($db, "MAILING_EMAIL_UNSUBSCRIBE",1,'chaine',0,'',$conf->entity); -} -if ($action == 'unsetMAILING_EMAIL_UNSUBSCRIBE') -{ - $res=dolibarr_del_const($db, "MAILING_EMAIL_UNSUBSCRIBE"); -} +if ($action == 'setMAILING_EMAIL_UNSUBSCRIBE') +{ + $res=dolibarr_set_const($db, "MAILING_EMAIL_UNSUBSCRIBE",1,'chaine',0,'',$conf->entity); +} +if ($action == 'unsetMAILING_EMAIL_UNSUBSCRIBE') +{ + $res=dolibarr_del_const($db, "MAILING_EMAIL_UNSUBSCRIBE"); +} if ($action == 'setvalue') { diff --git a/htdocs/comm/mailing/fiche.php b/htdocs/comm/mailing/fiche.php index 7618334aa86..af408cef79d 100644 --- a/htdocs/comm/mailing/fiche.php +++ b/htdocs/comm/mailing/fiche.php @@ -339,7 +339,7 @@ if ($action == 'sendallconfirmed' && $confirm == 'yes') } else { - setEventMessage($langs->transnoentitiesnoconv("NoMoreRecipientToSendTo")); + setEventMessage($langs->transnoentitiesnoconv("NoMoreRecipientToSendTo")); } // Loop finished, set global statut of mail diff --git a/htdocs/compta/ajaxpayment.php b/htdocs/compta/ajaxpayment.php index 12f0bd36978..cf042bccc49 100644 --- a/htdocs/compta/ajaxpayment.php +++ b/htdocs/compta/ajaxpayment.php @@ -31,10 +31,10 @@ if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); // If we don't nee //if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); //if (! defined("NOLOGIN")) define("NOLOGIN",'1'); // If this page is public (can be called outside logged session) -require '../main.inc.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/json.lib.php'; +require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/json.lib.php'; -$langs->load('compta'); +$langs->load('compta'); /* @@ -51,20 +51,20 @@ $currentInvId = $_POST['imgClicked']; // from DOM elements : imgId (equals invo // from text inputs : total amount $amountPayment = $amountPayment!='' ? ( is_numeric(price2num($amountPayment)) ? price2num($amountPayment) : '' ) : ''; // keep void if not a valid entry -// Clean checkamounts -foreach ($amounts as $key => $value) -{ - $value = price2num($value); - $amounts[$key]=$value; - if (empty($value)) unset($amounts[$key]); -} -// Clean remains -foreach ($remains as $key => $value) -{ - $value = price2num($value); - $remains[$key]=$value; - if (empty($value)) unset($remains[$key]); -} +// Clean checkamounts +foreach ($amounts as $key => $value) +{ + $value = price2num($value); + $amounts[$key]=$value; + if (empty($value)) unset($amounts[$key]); +} +// Clean remains +foreach ($remains as $key => $value) +{ + $value = price2num($value); + $remains[$key]=$value; + if (empty($value)) unset($remains[$key]); +} // Treatment $result = $amountPayment != '' ? ($amountPayment - array_sum($amounts)) : ($amountPayment + array_sum($amounts)); // Remaining amountPayment @@ -111,8 +111,8 @@ if ($currentInvId) // Here to breakdown } $toJsonArray['makeRed'] = ($totalRemaining < price2num($result) || price2num($result) < 0) ? true : false; -$toJsonArray['result'] = price($result); // Return value to user format -$toJsonArray['resultnum'] = price2num($result); // Return value to numeric format +$toJsonArray['result'] = price($result); // Return value to user format +$toJsonArray['resultnum'] = price2num($result); // Return value to numeric format // Encode to JSON to return echo dol_json_encode($toJsonArray); // Printing the call's result diff --git a/htdocs/compta/prelevement/class/bonprelevement.class.php b/htdocs/compta/prelevement/class/bonprelevement.class.php index 39414b0960d..0f12ab0cfc8 100644 --- a/htdocs/compta/prelevement/class/bonprelevement.class.php +++ b/htdocs/compta/prelevement/class/bonprelevement.class.php @@ -1184,7 +1184,7 @@ class BonPrelevement extends CommonObject { if (! empty($conf->esaeb->enabled)) { - dol_include_once('/esaeb/class/esaeb19.class.php'); + dol_include_once('/esaeb/class/esaeb19.class.php'); //Head $esaeb19 = new AEB19DocWritter; diff --git a/htdocs/core/modules/modExpedition.class.php b/htdocs/core/modules/modExpedition.class.php index a6f6d717c94..76396dfee7e 100644 --- a/htdocs/core/modules/modExpedition.class.php +++ b/htdocs/core/modules/modExpedition.class.php @@ -74,7 +74,7 @@ class modExpedition extends DolibarrModules $this->depends = array("modCommande"); $this->requiredby = array(); $this->conflictwith = array(); - $this->langfiles = array('deliveries','sendings'); + $this->langfiles = array('deliveries','sendings'); // Constantes $this->const = array(); @@ -192,25 +192,25 @@ class modExpedition extends DolibarrModules $this->rights[$r][4] = 'livraison'; $this->rights[$r][5] = 'supprimer'; - // Exports - //-------- - $r=0; - - $r++; - $this->export_code[$r]=$this->rights_class.'_'.$r; - $this->export_label[$r]='Shipments'; // Translation key (used only if key ExportDataset_xxx_z not found) - $this->export_permission[$r]=array(array("expedition","shipment","export")); - $this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.cp'=>'Zip','s.ville'=>'Town','s.fk_pays'=>'Country','s.tel'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.idprof5'=>'ProfId5','s.idprof6'=>'ProfId6','c.rowid'=>"Id",'c.ref'=>"Ref",'c.ref_customer'=>"RefCustomer",'c.fk_soc'=>"IdCompany",'c.date_creation'=>"DateCreation",'c.date_delivery'=>"DateSending",'c.tracking_number'=>"TrackingNumber",'c.height'=>"Height",'c.width'=>"Width",'c.size'=>"Depth",'c.size_units'=>'SizeUnits','c.weight'=>"Weight",'c.weight_units'=>"WeightUnits",'c.fk_statut'=>'Status','c.note'=>"Note",'ed.rowid'=>'LineId','cd.description'=>'Description','ed.qty'=>"Qty",'p.rowid'=>'ProductId','p.ref'=>'ProductRef','p.label'=>'ProductLabel'); - //$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:nom",'s.nom'=>'Text','s.address'=>'Text','s.cp'=>'Text','s.ville'=>'Text','s.libelle'=>'List:c_pays:libelle:rowid','s.tel'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','c.ref'=>"Text",'c.ref_client'=>"Text",'c.date_creation'=>"Date",'c.date_commande'=>"Date",'c.amount_ht'=>"Number",'c.remise_percent'=>"Number",'c.total_ht'=>"Number",'c.total_ttc'=>"Number",'c.facture'=>"Boolean",'c.fk_statut'=>'Status','c.note'=>"Text",'c.date_livraison'=>'Date','ed.qty'=>"Text"); - $this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.cp'=>'Text','s.ville'=>'Text','s.libelle'=>'List:c_pays:libelle:rowid','s.tel'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','c.ref'=>"Text",'c.ref_customer'=>"Text",'c.date_creation'=>"Date",'c.date_delivery'=>"Date",'c.tracking_number'=>"Number",'c.height'=>"Number",'c.width'=>"Number",'c.weight'=>"Number",'c.fk_statut'=>'Status','c.note'=>"Text",'ed.qty'=>"Number"); - $this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.cp'=>'company','s.ville'=>'company','s.fk_pays'=>'company','s.tel'=>'company','s.siren'=>'company','s.ape'=>'company','s.siret'=>'company','s.idprof4'=>'company','s.idprof5'=>'company','s.idprof6'=>'company','c.rowid'=>"shipment",'c.ref'=>"shipment",'c.ref_customer'=>"shipment",'c.fk_soc'=>"shipment",'c.date_creation'=>"shipment",'c.date_delivery'=>"shipment",'c.tracking_number'=>'shipment','c.height'=>"shipment",'c.width'=>"shipment",'c.size'=>'shipment','c.size_units'=>'shipment','c.weight'=>"shipment",'c.weight_units'=>'shipment','c.fk_statut'=>"shipment",'c.note'=>"shipment",'ed.rowid'=>'shipment_line','cd.description'=>'shipment_line','ed.qty'=>"shipment_line",'p.rowid'=>'product','p.ref'=>'product','p.label'=>'product'); - $this->export_dependencies_array[$r]=array('shipment_line'=>'ed.rowid','product'=>'ed.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them - - $this->export_sql_start[$r]='SELECT DISTINCT '; - $this->export_sql_end[$r] =' FROM ('.MAIN_DB_PREFIX.'expedition as c, '.MAIN_DB_PREFIX.'societe as s, '.MAIN_DB_PREFIX.'expeditiondet as ed, '.MAIN_DB_PREFIX.'commandedet as cd)'; - $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product as p on (cd.fk_product = p.rowid)'; - $this->export_sql_end[$r] .=' WHERE c.fk_soc = s.rowid AND c.rowid = ed.fk_expedition AND ed.fk_origin_line = cd.rowid'; - $this->export_sql_end[$r] .=' AND c.entity = '.$conf->entity; + // Exports + //-------- + $r=0; + + $r++; + $this->export_code[$r]=$this->rights_class.'_'.$r; + $this->export_label[$r]='Shipments'; // Translation key (used only if key ExportDataset_xxx_z not found) + $this->export_permission[$r]=array(array("expedition","shipment","export")); + $this->export_fields_array[$r]=array('s.rowid'=>"IdCompany",'s.nom'=>'CompanyName','s.address'=>'Address','s.cp'=>'Zip','s.ville'=>'Town','s.fk_pays'=>'Country','s.tel'=>'Phone','s.siren'=>'ProfId1','s.siret'=>'ProfId2','s.ape'=>'ProfId3','s.idprof4'=>'ProfId4','s.idprof5'=>'ProfId5','s.idprof6'=>'ProfId6','c.rowid'=>"Id",'c.ref'=>"Ref",'c.ref_customer'=>"RefCustomer",'c.fk_soc'=>"IdCompany",'c.date_creation'=>"DateCreation",'c.date_delivery'=>"DateSending",'c.tracking_number'=>"TrackingNumber",'c.height'=>"Height",'c.width'=>"Width",'c.size'=>"Depth",'c.size_units'=>'SizeUnits','c.weight'=>"Weight",'c.weight_units'=>"WeightUnits",'c.fk_statut'=>'Status','c.note'=>"Note",'ed.rowid'=>'LineId','cd.description'=>'Description','ed.qty'=>"Qty",'p.rowid'=>'ProductId','p.ref'=>'ProductRef','p.label'=>'ProductLabel'); + //$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:nom",'s.nom'=>'Text','s.address'=>'Text','s.cp'=>'Text','s.ville'=>'Text','s.libelle'=>'List:c_pays:libelle:rowid','s.tel'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','c.ref'=>"Text",'c.ref_client'=>"Text",'c.date_creation'=>"Date",'c.date_commande'=>"Date",'c.amount_ht'=>"Number",'c.remise_percent'=>"Number",'c.total_ht'=>"Number",'c.total_ttc'=>"Number",'c.facture'=>"Boolean",'c.fk_statut'=>'Status','c.note'=>"Text",'c.date_livraison'=>'Date','ed.qty'=>"Text"); + $this->export_TypeFields_array[$r]=array('s.nom'=>'Text','s.address'=>'Text','s.cp'=>'Text','s.ville'=>'Text','s.libelle'=>'List:c_pays:libelle:rowid','s.tel'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','c.ref'=>"Text",'c.ref_customer'=>"Text",'c.date_creation'=>"Date",'c.date_delivery'=>"Date",'c.tracking_number'=>"Number",'c.height'=>"Number",'c.width'=>"Number",'c.weight'=>"Number",'c.fk_statut'=>'Status','c.note'=>"Text",'ed.qty'=>"Number"); + $this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.cp'=>'company','s.ville'=>'company','s.fk_pays'=>'company','s.tel'=>'company','s.siren'=>'company','s.ape'=>'company','s.siret'=>'company','s.idprof4'=>'company','s.idprof5'=>'company','s.idprof6'=>'company','c.rowid'=>"shipment",'c.ref'=>"shipment",'c.ref_customer'=>"shipment",'c.fk_soc'=>"shipment",'c.date_creation'=>"shipment",'c.date_delivery'=>"shipment",'c.tracking_number'=>'shipment','c.height'=>"shipment",'c.width'=>"shipment",'c.size'=>'shipment','c.size_units'=>'shipment','c.weight'=>"shipment",'c.weight_units'=>'shipment','c.fk_statut'=>"shipment",'c.note'=>"shipment",'ed.rowid'=>'shipment_line','cd.description'=>'shipment_line','ed.qty'=>"shipment_line",'p.rowid'=>'product','p.ref'=>'product','p.label'=>'product'); + $this->export_dependencies_array[$r]=array('shipment_line'=>'ed.rowid','product'=>'ed.rowid'); // To add unique key if we ask a field of a child to avoid the DISTINCT to discard them + + $this->export_sql_start[$r]='SELECT DISTINCT '; + $this->export_sql_end[$r] =' FROM ('.MAIN_DB_PREFIX.'expedition as c, '.MAIN_DB_PREFIX.'societe as s, '.MAIN_DB_PREFIX.'expeditiondet as ed, '.MAIN_DB_PREFIX.'commandedet as cd)'; + $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product as p on (cd.fk_product = p.rowid)'; + $this->export_sql_end[$r] .=' WHERE c.fk_soc = s.rowid AND c.rowid = ed.fk_expedition AND ed.fk_origin_line = cd.rowid'; + $this->export_sql_end[$r] .=' AND c.entity = '.$conf->entity; } diff --git a/htdocs/core/modules/modProjet.class.php b/htdocs/core/modules/modProjet.class.php index 0942eb17b4d..7624436b34e 100644 --- a/htdocs/core/modules/modProjet.class.php +++ b/htdocs/core/modules/modProjet.class.php @@ -65,8 +65,8 @@ class modProjet extends DolibarrModules // Dependancies $this->depends = array(); $this->requiredby = array(); - $this->conflictwith = array(); - $this->langfiles = array('projects'); + $this->conflictwith = array(); + $this->langfiles = array('projects'); // Constants $this->const = array(); diff --git a/htdocs/expedition/fiche.php b/htdocs/expedition/fiche.php index ba796d174c4..d3cd793891d 100644 --- a/htdocs/expedition/fiche.php +++ b/htdocs/expedition/fiche.php @@ -1117,7 +1117,7 @@ else print ''; $object->fetch_delivery_methods(); print $form->selectarray("expedition_method_id",$object->meths,$object->expedition_method_id,1,0,0,"",1); - if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionnarySetup"),1); + if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionnarySetup"),1); print ''; print ''; } diff --git a/htdocs/holiday/class/holiday.class.php b/htdocs/holiday/class/holiday.class.php index 81390c9f0b0..865705f7493 100644 --- a/htdocs/holiday/class/holiday.class.php +++ b/htdocs/holiday/class/holiday.class.php @@ -1591,27 +1591,27 @@ class Holiday extends CommonObject } } - /** - * Initialise an instance with random values. - * Used to build previews or test instances. - * id must be 0 if object instance is a specimen. - * - * @return void - */ - function initAsSpecimen() - { - global $user,$langs; - - // Initialise parameters - $this->id=0; + /** + * Initialise an instance with random values. + * Used to build previews or test instances. + * id must be 0 if object instance is a specimen. + * + * @return void + */ + function initAsSpecimen() + { + global $user,$langs; + + // Initialise parameters + $this->id=0; $this->specimen=1; - $this->fk_user=1; - $this->description='SPECIMEN description'; - $this->date_debut=dol_now(); - $this->date_fin=dol_now()+(24*3600); + $this->fk_user=1; + $this->description='SPECIMEN description'; + $this->date_debut=dol_now(); + $this->date_fin=dol_now()+(24*3600); $this->fk_validator=1; - } + } } ?> diff --git a/htdocs/holiday/fiche.php b/htdocs/holiday/fiche.php index 43dba92b726..8f25af52a3b 100644 --- a/htdocs/holiday/fiche.php +++ b/htdocs/holiday/fiche.php @@ -567,8 +567,8 @@ if ($action == 'confirm_cancel' && $_GET['confirm'] == 'yes') * View ****************************************************/ -$form = new Form($db); - +$form = new Form($db); + llxHeader(array(),$langs->trans('CPTitreMenu')); diff --git a/htdocs/paypal/lib/paypal.lib.php b/htdocs/paypal/lib/paypal.lib.php index 0ad9962ac1e..151920e614f 100755 --- a/htdocs/paypal/lib/paypal.lib.php +++ b/htdocs/paypal/lib/paypal.lib.php @@ -36,8 +36,8 @@ function llxHeaderPaypal($title, $head = "") header("Content-type: text/html; charset=".$conf->file->character_set_client); - $appli='Dolibarr'; - if (!empty($conf->global->MAIN_APPLICATION_TITLE)) $appli=$conf->global->MAIN_APPLICATION_TITLE; + $appli='Dolibarr'; + if (!empty($conf->global->MAIN_APPLICATION_TITLE)) $appli=$conf->global->MAIN_APPLICATION_TITLE; print ''; //print ''; From 2d000b5df86752b7161710e984335aae8556149b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Nov 2012 12:23:32 +0100 Subject: [PATCH 16/33] Fix: The default select choice was not selected when using jquery dialog confirm boxes. --- htdocs/core/class/html.form.class.php | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index dc25d81344d..2cce0fcbdfa 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -2231,6 +2231,9 @@ class Form $inputok=array(); $inputko=array(); + // Clean parameters + $newselectedchoice=empty($selectedchoice)?"no":$selectedchoice; + if (is_array($formquestion) && ! empty($formquestion)) { $more.=''."\n"; @@ -2337,7 +2340,15 @@ class Form $formconfirm.=' $(function() { $( "#'.$dialogconfirm.'" ).dialog({ - autoOpen: '.($autoOpen ? "true" : "false").', + autoOpen: '.($autoOpen ? "true" : "false").','; + if ($newselectedchoice == 'no') + { + $formconfirm.=' + open: function() { + $(this).parent().find("button.ui-button:eq(1)").focus(); + },'; + } + $formconfirm.=' resizable: false, height: "'.$height.'", width: "'.$width.'", @@ -2383,11 +2394,12 @@ class Form } }); + var button = "'.$button.'"; if (button.length > 0) { $( "#" + button ).click(function() { $("#'.$dialogconfirm.'").dialog("open"); - }); + }); } }); '; @@ -2417,7 +2429,6 @@ class Form $formconfirm.= ''; $formconfirm.= ''; $formconfirm.= ''; $formconfirm.= ''; From 005716af994a748f260ada25175ed27e6acc2a1e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Nov 2012 12:40:57 +0100 Subject: [PATCH 17/33] Fix: Missing includes --- htdocs/holiday/index.php | 1 + htdocs/holiday/month_report.php | 1 + 2 files changed, 2 insertions(+) diff --git a/htdocs/holiday/index.php b/htdocs/holiday/index.php index 1c27e2978bf..26188e1e35d 100644 --- a/htdocs/holiday/index.php +++ b/htdocs/holiday/index.php @@ -26,6 +26,7 @@ require('../main.inc.php'); require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; require_once DOL_DOCUMENT_ROOT.'/user/class/usergroup.class.php'; require_once DOL_DOCUMENT_ROOT.'/holiday/common.inc.php'; diff --git a/htdocs/holiday/month_report.php b/htdocs/holiday/month_report.php index f581375463b..b581a3b5bfd 100644 --- a/htdocs/holiday/month_report.php +++ b/htdocs/holiday/month_report.php @@ -26,6 +26,7 @@ require('../main.inc.php'); require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/holiday/common.inc.php'; // Protection if external user From babda1d7dfd06442776a2ab90791d58043fe7b96 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Tue, 20 Nov 2012 12:43:00 +0100 Subject: [PATCH 18/33] Fix: increase field size for GB sort code (xx-xx-xx) --- .../install/mysql/migration/3.2.0-3.3.0.sql | 2 + .../install/mysql/tables/llx_bank_account.sql | 69 +++++++++---------- 2 files changed, 33 insertions(+), 38 deletions(-) diff --git a/htdocs/install/mysql/migration/3.2.0-3.3.0.sql b/htdocs/install/mysql/migration/3.2.0-3.3.0.sql index 1a1cc16f3f3..db3968df5d6 100755 --- a/htdocs/install/mysql/migration/3.2.0-3.3.0.sql +++ b/htdocs/install/mysql/migration/3.2.0-3.3.0.sql @@ -804,3 +804,5 @@ ALTER TABLE llx_c_typent DROP INDEX code, ADD UNIQUE uk_c_typent (code); ALTER TABLE llx_c_effectif DROP INDEX code, ADD UNIQUE uk_c_effectif (code); ALTER TABLE llx_c_paiement DROP INDEX code, ADD UNIQUE uk_c_paiement (code); +-- increase field size +ALTER TABLE llx_bank_account MODIFY COLUMN code_banque varchar(8); \ No newline at end of file diff --git a/htdocs/install/mysql/tables/llx_bank_account.sql b/htdocs/install/mysql/tables/llx_bank_account.sql index 24767819c65..899adc7d5f6 100644 --- a/htdocs/install/mysql/tables/llx_bank_account.sql +++ b/htdocs/install/mysql/tables/llx_bank_account.sql @@ -1,7 +1,7 @@ -- ============================================================================= -- Copyright (C) 2000-2004 Rodolphe Quiedeville -- Copyright (C) 2004-2007 Laurent Destailleur --- Copyright (C) 2005-2009 Regis Houssin +-- Copyright (C) 2005-2012 Regis Houssin -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -23,41 +23,34 @@ create table llx_bank_account ( - rowid integer AUTO_INCREMENT PRIMARY KEY, - datec datetime, - tms timestamp, - ref varchar(12) NOT NULL, - label varchar(30) NOT NULL, - entity integer DEFAULT 1 NOT NULL, -- multi company id - bank varchar(60), - code_banque varchar(7), - code_guichet varchar(6), - number varchar(255), - cle_rib varchar(5), - bic varchar(11), - iban_prefix varchar(34), -- 34 according to ISO 13616 - country_iban varchar(2), -- deprecated - cle_iban varchar(2), - domiciliation varchar(255), - fk_departement integer DEFAULT NULL, - fk_pays integer NOT NULL, - proprio varchar(60), - adresse_proprio varchar(255), - courant smallint DEFAULT 0 NOT NULL, - clos smallint DEFAULT 0 NOT NULL, - rappro smallint DEFAULT 1, - url varchar(128), - account_number varchar(8), - currency_code varchar(3) NOT NULL, - min_allowed integer DEFAULT 0, - min_desired integer DEFAULT 0, - comment text + rowid integer AUTO_INCREMENT PRIMARY KEY, + datec datetime, + tms timestamp, + ref varchar(12) NOT NULL, + label varchar(30) NOT NULL, + entity integer DEFAULT 1 NOT NULL, -- multi company id + bank varchar(60), + code_banque varchar(8), + code_guichet varchar(6), + number varchar(255), + cle_rib varchar(5), + bic varchar(11), + iban_prefix varchar(34), -- 34 according to ISO 13616 + country_iban varchar(2), -- deprecated + cle_iban varchar(2), + domiciliation varchar(255), + fk_departement integer DEFAULT NULL, + fk_pays integer NOT NULL, + proprio varchar(60), + adresse_proprio varchar(255), + courant smallint DEFAULT 0 NOT NULL, + clos smallint DEFAULT 0 NOT NULL, + rappro smallint DEFAULT 1, + url varchar(128), + account_number varchar(8), + currency_code varchar(3) NOT NULL, + min_allowed integer DEFAULT 0, + min_desired integer DEFAULT 0, + comment text + )ENGINE=innodb; - --- --- List of codes for the field entity --- --- 1 : first company bank account --- 2 : second company bank account --- 3 : etc... --- \ No newline at end of file From ddb3cf6f42dd148f5099bbe3e31fc72d77a78521 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Nov 2012 13:14:16 +0100 Subject: [PATCH 19/33] Fix: Debug holiday module --- htdocs/core/lib/date.lib.php | 21 +++++++---- htdocs/holiday/class/holiday.class.php | 8 ++-- htdocs/holiday/fiche.php | 51 +++++++++++++++----------- htdocs/holiday/index.php | 10 ++--- htdocs/holiday/view_log.php | 2 +- htdocs/langs/en_US/cashdesk.lang | 1 - htdocs/langs/en_US/main.lang | 1 + htdocs/langs/fr_FR/cashdesk.lang | 1 - htdocs/langs/fr_FR/main.lang | 1 + 9 files changed, 54 insertions(+), 42 deletions(-) diff --git a/htdocs/core/lib/date.lib.php b/htdocs/core/lib/date.lib.php index b0d2c997d05..88c6ee49f09 100644 --- a/htdocs/core/lib/date.lib.php +++ b/htdocs/core/lib/date.lib.php @@ -759,25 +759,30 @@ function num_between_day($timestampStart, $timestampEnd, $lastday=0) } /** - * Fonction retournant le nombre de jour entre deux dates sans les jours feries (jours ouvres) + * Function to return number of working days (and text of units) between two dates (jours ouvres) * - * @param timestamp $timestampStart Timestamp de debut - * @param timestamp $timestampEnd Timestamp de fin - * @param int $inhour 0: sort le nombre de jour , 1: sort le nombre d'heure (72 max) - * @param int $lastday We include last day, 0: non, 1:oui - * @return int Nombre de jours ou d'heures + * @param timestamp $timestampStart Timestamp for start date + * @param timestamp $timestampEnd Timestamp for end date + * @param int $inhour 0: return number of days, 1: return number of hours (72 max) + * @param int $lastday We include last day, 0: no, 1:yes + * @return int Number of days or hours */ function num_open_day($timestampStart, $timestampEnd,$inhour=0,$lastday=0) { global $langs; dol_syslog('num_open_day timestampStart='.$timestampStart.' timestampEnd='.$timestampEnd.' bit='.$lastday); + + // Check parameters + if (! is_int($timestampStart) && ! is_float($timestampStart)) return 'ErrorBadParameter_num_open_day'; + if (! is_int($timestampEnd) && ! is_float($timestampEnd)) return 'ErrorBadParameter_num_open_day'; + //print 'num_open_day timestampStart='.$timestampStart.' timestampEnd='.$timestampEnd.' bit='.$lastday; if ($timestampStart < $timestampEnd) { //print num_between_day($timestampStart, $timestampEnd, $lastday).' - '.num_public_holiday($timestampStart, $timestampEnd); $nbOpenDay = num_between_day($timestampStart, $timestampEnd, $lastday) - num_public_holiday($timestampStart, $timestampEnd, $lastday); - $nbOpenDay.= " ".$langs->trans("Days"); + $nbOpenDay.= " " . $langs->trans("Days"); if ($inhour == 1 && $nbOpenDay <= 3) $nbOpenDay = $nbOpenDay*24 . $langs->trans("HourShort"); return $nbOpenDay; } @@ -785,7 +790,7 @@ function num_open_day($timestampStart, $timestampEnd,$inhour=0,$lastday=0) { $nbOpenDay=$lastday; if ($inhour == 1) $nbOpenDay = $nbOpenDay*24 . $langs->trans("HourShort"); - return $nbOpenDay=1; + return $nbOpenDay; } else { diff --git a/htdocs/holiday/class/holiday.class.php b/htdocs/holiday/class/holiday.class.php index 865705f7493..1fe9810414f 100644 --- a/htdocs/holiday/class/holiday.class.php +++ b/htdocs/holiday/class/holiday.class.php @@ -380,13 +380,13 @@ class Holiday extends CommonObject $tab_result[$i]['rowid'] = $obj->rowid; $tab_result[$i]['fk_user'] = $obj->fk_user; - $tab_result[$i]['date_create'] = $obj->date_create; + $tab_result[$i]['date_create'] = $this->db->jdate($obj->date_create); $tab_result[$i]['description'] = $obj->description; - $tab_result[$i]['date_debut'] = $obj->date_debut; - $tab_result[$i]['date_fin'] = $obj->date_fin; + $tab_result[$i]['date_debut'] = $this->db->jdate($obj->date_debut); + $tab_result[$i]['date_fin'] = $this->db->jdate($obj->date_fin); $tab_result[$i]['statut'] = $obj->statut; $tab_result[$i]['fk_validator'] = $obj->fk_validator; - $tab_result[$i]['date_valid'] = $obj->date_valid; + $tab_result[$i]['date_valid'] = $this->db->jdate($obj->date_valid); $tab_result[$i]['fk_user_valid'] = $obj->fk_user_valid; $tab_result[$i]['date_refuse'] = $obj->date_refuse; $tab_result[$i]['fk_user_refuse'] = $obj->fk_user_refuse; diff --git a/htdocs/holiday/fiche.php b/htdocs/holiday/fiche.php index 8f25af52a3b..859069957a6 100644 --- a/htdocs/holiday/fiche.php +++ b/htdocs/holiday/fiche.php @@ -563,13 +563,12 @@ if ($action == 'confirm_cancel' && $_GET['confirm'] == 'yes') -/*************************************************** +/* * View -****************************************************/ + */ $form = new Form($db); - llxHeader(array(),$langs->trans('CPTitreMenu')); if (empty($id) || $action == 'add' || $action == 'request') @@ -753,35 +752,36 @@ else //print_fiche_titre($langs->trans('TitreRequestCP')); // Si il y a une erreur - if (GETPOST('error')) { - - switch(GETPOST('error')) { + if (GETPOST('error')) + { + switch(GETPOST('error')) + { case 'datefin' : - $errors[] = $langs->trans('ErrorEndDateCP'); + $errors[] = $langs->transnoentitiesnoconv('ErrorEndDateCP'); break; case 'SQL_Create' : - $errors[] = $langs->trans('ErrorSQLCreateCP').' '.htmlentities($_GET['msg']).''; + $errors[] = $langs->transnoentitiesnoconv('ErrorSQLCreateCP').' '.$_GET['msg']; break; case 'CantCreate' : - $errors[] = $langs->trans('CantCreateCP'); + $errors[] = $langs->transnoentitiesnoconv('CantCreateCP'); break; case 'Valideur' : - $errors[] = $langs->trans('InvalidValidatorCP'); + $errors[] = $langs->transnoentitiesnoconv('InvalidValidatorCP'); break; case 'nodatedebut' : - $errors[] = $langs->trans('NoDateDebut'); + $errors[] = $langs->transnoentitiesnoconv('NoDateDebut'); break; case 'nodatedebut' : - $errors[] = $langs->trans('NoDateFin'); + $errors[] = $langs->transnoentitiesnoconv('NoDateFin'); break; case 'DureeHoliday' : - $errors[] = $langs->trans('ErrorDureeCP'); + $errors[] = $langs->transnoentitiesnoconv('ErrorDureeCP'); break; case 'NoMotifRefuse' : - $errors[] = $langs->trans('NoMotifRefuseCP'); + $errors[] = $langs->transnoentitiesnoconv('NoMotifRefuseCP'); break; case 'mail' : - $errors[] = $langs->trans('ErrorMailNotSend').'
    '.$_GET['error_content'].''; + $errors[] = $langs->transnoentitiesnoconv('ErrorMailNotSend')."\n".$_GET['error_content']; break; } @@ -795,7 +795,7 @@ else if ($action == 'delete' && $cp->statut == 1) { if($user->rights->holiday->delete) { - $ret=$form->form_confirm("fiche.php?id=".$_GET['id'],$langs->trans("TitleDeleteCP"),$langs->trans("ConfirmDeleteCP"),"confirm_delete", '', 0, 1); + $ret=$form->form_confirm("fiche.php?id=".$id,$langs->trans("TitleDeleteCP"),$langs->trans("ConfirmDeleteCP"),"confirm_delete", '', 0, 1); if ($ret == 'html') print '
    '; } } @@ -803,14 +803,14 @@ else // Si envoi en validation if ($action == 'sendToValidate' && $cp->statut == 1 && $userID == $cp->fk_user) { - $ret=$form->form_confirm("fiche.php?id=".$_GET['id'],$langs->trans("TitleToValidCP"),$langs->trans("ConfirmToValidCP"),"confirm_send", '', 0, 1); + $ret=$form->form_confirm("fiche.php?id=".$id,$langs->trans("TitleToValidCP"),$langs->trans("ConfirmToValidCP"),"confirm_send", '', 1, 1); if ($ret == 'html') print '
    '; } // Si validation de la demande if ($action == 'valid' && $cp->statut == 2 && $userID == $cp->fk_validator) { - $ret=$form->form_confirm("fiche.php?id=".$_GET['id'],$langs->trans("TitleValidCP"),$langs->trans("ConfirmValidCP"),"confirm_valid", '', 0, 1); + $ret=$form->form_confirm("fiche.php?id=".$id,$langs->trans("TitleValidCP"),$langs->trans("ConfirmValidCP"),"confirm_valid", '', 1, 1); if ($ret == 'html') print '
    '; } @@ -818,19 +818,28 @@ else if ($action == 'refuse' && $cp->statut == 2 && $userID == $cp->fk_validator) { $array_input = array(array('type'=>"text",'label'=>"Entrez ci-dessous un motif de refus :",'name'=>"detail_refuse",'size'=>"50",'value'=>"")); - $ret=$form->form_confirm("fiche.php?id=".$_GET['id']."&action=confirm_refuse",$langs->trans("TitleRefuseCP"),"","confirm_refuse",$array_input,"",0); + $ret=$form->form_confirm("fiche.php?id=".$id."&action=confirm_refuse",$langs->trans("TitleRefuseCP"),"","confirm_refuse", $array_input, 1 ,0); if ($ret == 'html') print '
    '; } // Si annulation de la demande if ($action == 'cancel' && $cp->statut == 2 && $userID == $cp->fk_validator) { - $ret=$form->form_confirm("fiche.php?id=".$_GET['id'],$langs->trans("TitleCancelCP"),$langs->trans("ConfirmCancelCP"),"confirm_cancel", '', 0, 1); + $ret=$form->form_confirm("fiche.php?id=".$id,$langs->trans("TitleCancelCP"),$langs->trans("ConfirmCancelCP"),"confirm_cancel", '', 1, 1); if ($ret == 'html') print '
    '; } - dol_fiche_head(array(),'card',$langs->trans("CPTitreMenu"),0,'holiday'); + $h=0; + $head = array(); + $head[$h][0] = DOL_URL_ROOT . '/holiday/fiche.php?id='.$id; + $head[$h][1] = $langs->trans("Card"); + $head[$h][2] = 'card'; + $h++; + + complete_head_from_modules($conf,$langs,$cp,$head,$h,'holiday'); + + dol_fiche_head($head,'card',$langs->trans("CPTitreMenu"),0,'holiday'); if ($action == 'edit' && $user->id == $cp->fk_user && $cp->statut == 1) diff --git a/htdocs/holiday/index.php b/htdocs/holiday/index.php index 26188e1e35d..dd706ed9be2 100644 --- a/htdocs/holiday/index.php +++ b/htdocs/holiday/index.php @@ -57,6 +57,7 @@ $search_employe = GETPOST('search_employe'); $search_valideur = GETPOST('search_valideur'); $search_statut = GETPOST('select_statut'); +$holiday = new Holiday($db); /* * Actions @@ -147,12 +148,10 @@ $user_id = $user->id; // Récupération des congés payés de l'utilisateur ou de tous les users if(!$user->rights->holiday->lire_tous) { - $holiday = new Holiday($db); $holiday_payes = $holiday->fetchByUser($user_id,$order,$filter); } else { - $holiday = new Holiday($db); $holiday_payes = $holiday->fetchAll($order,$filter); } @@ -282,21 +281,20 @@ if (! empty($holiday->holiday)) $validator = new User($db); $validator->fetch($infos_CP['fk_validator']); - $date = date_create($infos_CP['date_create']); - $date = date_format($date,'Y-m-d'); + $date = $infos_CP['date_create']; $statut = $holiday->getStatutCP($infos_CP['statut']); print '
    '; print ''; - print ''; + print ''; print ''; print ''; print ''; print ''; print ''; print ''."\n"; diff --git a/htdocs/holiday/view_log.php b/htdocs/holiday/view_log.php index 4731b29d956..5c212a87ea6 100644 --- a/htdocs/holiday/view_log.php +++ b/htdocs/holiday/view_log.php @@ -87,7 +87,7 @@ foreach($cp->logs as $logs_CP) if($log_holiday == '2') { print ''; - print ''; + print ''; print ''; } diff --git a/htdocs/langs/en_US/cashdesk.lang b/htdocs/langs/en_US/cashdesk.lang index 78a9efcc083..2f252d39923 100644 --- a/htdocs/langs/en_US/cashdesk.lang +++ b/htdocs/langs/en_US/cashdesk.lang @@ -20,7 +20,6 @@ AddThisArticle=Add this article RestartSelling=Go back on sell SellFinished=Sell finished PrintTicket=Print ticket -NoResults=No results NoProductFound=No article found ProductFound=product found ProductsFound=products found diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index 36866d73a8a..088e5076733 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -627,6 +627,7 @@ BySalesRepresentative=By sales representative LinkedToSpecificUsers=Linked to a particular user contact DeleteAFile=Delete a file ConfirmDeleteAFile=Are you sure you want to delete file +NoResults=No results # Week day Monday=Monday diff --git a/htdocs/langs/fr_FR/cashdesk.lang b/htdocs/langs/fr_FR/cashdesk.lang index cb7e7f25251..5c59db99c57 100644 --- a/htdocs/langs/fr_FR/cashdesk.lang +++ b/htdocs/langs/fr_FR/cashdesk.lang @@ -20,7 +20,6 @@ AddThisArticle=Ajouter cet article RestartSelling=Reprendre la vente SellFinished=Vente terminée PrintTicket=Imprimer ticket -NoResults=Aucun résultat NoProductFound=Aucun article trouvé ProductFound=produit trouvé ProductsFound=produits trouvés diff --git a/htdocs/langs/fr_FR/main.lang b/htdocs/langs/fr_FR/main.lang index b2147ce7e20..ff50038f5c2 100644 --- a/htdocs/langs/fr_FR/main.lang +++ b/htdocs/langs/fr_FR/main.lang @@ -629,6 +629,7 @@ BySalesRepresentative=Par commerciaux LinkedToSpecificUsers=Liés à un contact utilisateur particulier DeleteAFile=Suppression de fichier ConfirmDeleteAFile=Confirmez-vous la suppression du fichier +NoResults=Aucun résultat # Week day Monday=Lundi From d9cdb542d5dc8282aae48d53f90dce7f58678492 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Nov 2012 14:07:52 +0100 Subject: [PATCH 20/33] Debug filter during export --- htdocs/core/modules/modSociete.class.php | 4 ++-- htdocs/exports/class/export.class.php | 13 +++++++++++-- htdocs/exports/export.php | 5 ++++- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/htdocs/core/modules/modSociete.class.php b/htdocs/core/modules/modSociete.class.php index 853ad62ed0e..535971517e2 100644 --- a/htdocs/core/modules/modSociete.class.php +++ b/htdocs/core/modules/modSociete.class.php @@ -1,6 +1,6 @@ - * Copyright (C) 2004-2011 Laurent Destailleur + * Copyright (C) 2004-2012 Laurent Destailleur * Copyright (C) 2004 Sebastien Di Cintio * Copyright (C) 2004 Benoit Mortier * Copyright (C) 2005-2012 Regis Houssin @@ -250,7 +250,7 @@ class modSociete extends DolibarrModules $this->export_fields_array[$r]=array('s.rowid'=>"Id",'s.nom'=>"Name",'s.status'=>"Status",'s.client'=>"Customer",'s.fournisseur'=>"Supplier",'s.datec'=>"DateCreation",'s.tms'=>"DateLastModification",'s.code_client'=>"CustomerCode",'s.code_fournisseur'=>"SupplierCode",'s.address'=>"Address",'s.cp'=>"Zip",'s.ville'=>"Town",'p.libelle'=>"Country",'p.code'=>"CountryCode",'s.tel'=>"Phone",'s.fax'=>"Fax",'s.url'=>"Url",'s.email'=>"Email",'s.default_lang'=>"DefaultLang",'s.siren'=>"ProfId1",'s.siret'=>"ProfId2",'s.ape'=>"ProfId3",'s.idprof4'=>"ProfId4",'s.idprof5'=>"ProfId5",'s.idprof6'=>"ProfId6",'s.tva_intra'=>"VATIntraShort",'s.capital'=>"Capital",'s.note'=>"Note",'t.libelle'=>"ThirdPartyType",'ce.code'=>"Staff","cfj.libelle"=>"JuridicalStatus",'s.fk_prospectlevel'=>'ProspectLevel','s.fk_stcomm'=>'ProspectStatus','d.nom'=>'State'); if (! empty($conf->global->SOCIETE_USEPREFIX)) $this->export_fields_array[$r]['s.prefix']='Prefix'; //$this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:nom",'s.nom'=>"Text",'s.status'=>"Text",'s.client'=>"Boolean",'s.fournisseur'=>"Boolean",'s.datec'=>"Date",'s.tms'=>"Date",'s.code_client'=>"Text",'s.code_fournisseur'=>"Text",'s.address'=>"Text",'s.cp'=>"Text",'s.ville'=>"Text",'p.libelle'=>"List:c_pays:libelle:rowid",'p.code'=>"Text",'s.tel'=>"Text",'s.fax'=>"Text",'s.url'=>"Text",'s.email'=>"Text",'s.default_lang'=>"Text",'s.siret'=>"Text",'s.siren'=>"Text",'s.ape'=>"Text",'s.idprof4'=>"Text",'s.idprof5'=>"Text",'s.idprof6'=>"Text",'s.tva_intra'=>"Text",'s.capital'=>"Number",'s.note'=>"Text",'t.libelle'=>"Text",'ce.code'=>"List:c_effectif:libelle:code","cfj.libelle"=>"Text",'s.fk_prospectlevel'=>'List:c_prospectlevel:label:code','s.fk_stcomm'=>'List:c_stcomm:libelle:code','d.nom'=>'List:c_departements:nom:rowid'); - $this->export_TypeFields_array[$r]=array('s.nom'=>"Text",'s.status'=>"Text",'s.client'=>"Boolean",'s.fournisseur'=>"Boolean",'s.datec'=>"Date",'s.tms'=>"Date",'s.code_client'=>"Text",'s.code_fournisseur'=>"Text",'s.address'=>"Text",'s.cp'=>"Text",'s.ville'=>"Text",'p.libelle'=>"List:c_pays:libelle:rowid",'p.code'=>"Text",'s.tel'=>"Text",'s.fax'=>"Text",'s.url'=>"Text",'s.email'=>"Text",'s.default_lang'=>"Text",'s.siret'=>"Text",'s.siren'=>"Text",'s.ape'=>"Text",'s.idprof4'=>"Text",'s.idprof5'=>"Text",'s.idprof6'=>"Text",'s.tva_intra'=>"Text",'s.capital'=>"Number",'s.note'=>"Text",'t.libelle'=>"Text",'ce.code'=>"List:c_effectif:libelle:code","cfj.libelle"=>"Text",'s.fk_prospectlevel'=>'List:c_prospectlevel:label:code','s.fk_stcomm'=>'List:c_stcomm:libelle:code','d.nom'=>'List:c_departements:nom:rowid'); + $this->export_TypeFields_array[$r]=array('s.nom'=>"Text",'s.status'=>"Text",'s.client'=>"Boolean",'s.fournisseur'=>"Boolean",'s.datec'=>"Date",'s.tms'=>"Date",'s.code_client'=>"Text",'s.code_fournisseur'=>"Text",'s.address'=>"Text",'s.cp'=>"Text",'s.ville'=>"Text",'p.libelle'=>"List:c_pays:libelle:rowid",'p.code'=>"Text",'s.tel'=>"Text",'s.fax'=>"Text",'s.url'=>"Text",'s.email'=>"Text",'s.default_lang'=>"Text",'s.siret'=>"Text",'s.siren'=>"Text",'s.ape'=>"Text",'s.idprof4'=>"Text",'s.idprof5'=>"Text",'s.idprof6'=>"Text",'s.tva_intra'=>"Text",'s.capital'=>"Number",'s.note'=>"Text",'t.libelle'=>"Text",'ce.code'=>"List:c_effectif:libelle:code","cfj.libelle"=>"Text",'s.fk_prospectlevel'=>'List:c_prospectlevel:label:code','s.fk_stcomm'=>'List:c_stcomm:libelle:code','d.nom'=>'Text'); $this->export_entities_array[$r]=array(); // We define here only fields that use another picto // Add extra fields $sql="SELECT name, label FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'company'"; diff --git a/htdocs/exports/class/export.class.php b/htdocs/exports/class/export.class.php index c3098c38a87..c737d38ca3c 100644 --- a/htdocs/exports/class/export.class.php +++ b/htdocs/exports/class/export.class.php @@ -339,8 +339,10 @@ class Export { $szFilterField=''; $InfoFieldList = explode(":", $TypeField); + // build the input field on depend of the type of file - switch ($InfoFieldList[0]) { + switch ($InfoFieldList[0]) + { case 'Text': case 'Date': case 'Duree': @@ -387,6 +389,13 @@ class Export while ($i < $num) { $obj = $this->db->fetch_object($resql); + if ($obj->$InfoFieldList[2] == '-') + { + // Discard entry '-' + $i++; + continue; + } + $labeltoshow=dol_trunc($obj->$InfoFieldList[2],18); if (!empty($ValueField) && $ValueField == $obj->rowid) { @@ -401,7 +410,7 @@ class Export } $szFilterField.=""; - $this->db->close(); + $this->db->free(); } break; } diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index 1a73d47dfc1..8ec3e73f425 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -767,6 +767,7 @@ if ($step == 3 && $datatoexport) print img_object('',$entityicon).' '.$langs->trans($entitylang); print ''; + // Field name $labelName=(! empty($fieldsarray[$code])?$fieldsarray[$code]:''); $ValueFilter=(! empty($array_filtervalue[$code])?$array_filtervalue[$code]:''); $text=$langs->trans($labelName); @@ -777,11 +778,13 @@ if ($step == 3 && $datatoexport) print ''; + + // Filter value print ''; - // Nbre champs exportes + // List of exported fields print ''; $list=''; foreach($array_selected as $code=>$value) @@ -876,28 +837,31 @@ if ($step == 4 && $datatoexport) $list.=($list?', ':''); $list.=$langs->trans($objexport->array_export_fields[0][$code]); } - print ''; + print ''; + print ''; - // Number of filtered fields + // List of filtered fiels if (isset($objexport->array_export_TypeFields[0]) && is_array($objexport->array_export_TypeFields[0])) { print ''; $list=''; - foreach($array_filtered as $code=>$value) + foreach($array_filtervalue as $code=>$value) { - if (isset($objexport->array_export_fields[0][$code])) { + if (isset($objexport->array_export_fields[0][$code])) + { $list.=($list?', ':''); - $list.="[".$langs->trans($objexport->array_export_fields[0][$code])."]='".(isset($array_filtervalue[$code])?$array_filtervalue[$code]:'')."'"; + $list.=$langs->trans($objexport->array_export_fields[0][$code])."='".(isset($array_filtervalue[$code])?$array_filtervalue[$code]:'')."'"; } } - print ''; + print ''; + print ''; } print '
    '.$question.''; - $newselectedchoice=empty($selectedchoice)?"no":$selectedchoice; $formconfirm.= $this->selectyesno("confirm",$newselectedchoice); $formconfirm.= '
    CP '.$infos_CP['rowid'].''.$date.''.dol_print_date($date,'day').''.$user->getNomUrl('1').''.$validator->getNomUrl('1').''.$infos_CP['date_debut'].''.$infos_CP['date_fin'].''; $nbopenedday=num_open_day($infos_CP['date_debut'],$infos_CP['date_fin'],0,1); - print $nbopenedday.' '.$langs->trans('Jours'); + print $nbopenedday; print ''.$statut.'
    '.$langs->trans('NoResult').''.$langs->trans('NoResults').'
    '; print $form->textwithpicto($text,$htmltext); print ''; if (! empty($Typefieldsarray[$code])) { $szInfoFiltre=$objexport->genDocFilter($Typefieldsarray[$code]); - if ($szInfoFiltre) + if ($szInfoFiltre) // Is there an info help for this filter ? { $tmp=$objexport->build_filterField($Typefieldsarray[$code], $code, $ValueFilter); print $form->textwithpicto($tmp, $szInfoFiltre); From 8f0b5487144c000562419d4bf8d6858576387d22 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Nov 2012 15:56:44 +0100 Subject: [PATCH 21/33] Debug export filters. Seems to be enougth stable so it is now enabled by default. --- htdocs/exports/class/export.class.php | 31 +++---- htdocs/exports/export.php | 124 ++++++++++---------------- test/phpunit/ExportTest.php | 14 +-- 3 files changed, 66 insertions(+), 103 deletions(-) diff --git a/htdocs/exports/class/export.class.php b/htdocs/exports/class/export.class.php index c737d38ca3c..f44722d8de6 100644 --- a/htdocs/exports/class/export.class.php +++ b/htdocs/exports/class/export.class.php @@ -202,10 +202,9 @@ class Export * @param int $indice Indice of export * @param array $array_selected Filter on array of fields to export * @param array $array_filterValue Filter on array of fields to export - * @param array $array_filtered Array with filters values * @return string SQL String. Example "select s.rowid as r_rowid, s.status as s_status from ..." */ - function build_sql($indice, $array_selected, $array_filterValue, $array_filtered) + function build_sql($indice, $array_selected, $array_filterValue) { // Build the sql request $sql=$this->array_export_sql_start[$indice]; @@ -225,16 +224,13 @@ class Export $sql.=$this->array_export_sql_end[$indice]; //construction du filtrage si le parametrage existe - if (is_array($array_filtered)) + if (is_array($array_filterValue)) { $sqlWhere=''; // pour ne pas a gerer le nombre de condition - foreach ($array_filtered as $key => $value) + foreach ($array_filterValue as $key => $value) { - if ($array_filterValue[$key]) - { - $sqlWhere.=" and ".$this->build_filterQuery($this->array_export_TypeFields[0][$key], $key, $array_filterValue[$key]); - } + $sqlWhere.=" and ".$this->build_filterQuery($this->array_export_TypeFields[0][$key], $key, $array_filterValue[$key]); } $sql.=$sqlWhere; } @@ -297,8 +293,10 @@ class Export $szFilterQuery=" ".$NameField.substr($ValueField,0,1).substr($ValueField,1); } break; - case 'Status': case 'Boolean': + $szFilterQuery=" ".$NameField."=".(is_numeric($ValueField) ? $ValueField : ($ValueField =='yes' ? 1: 0) ); + break; + case 'Status': case 'List': if (is_numeric($ValueField)) $szFilterQuery=" ".$NameField."=".$ValueField; @@ -350,18 +348,18 @@ class Export $szFilterField='"; break; case 'Boolean': - $szFilterField="'; $szFilterField.=''; $szFilterField.=''; $szFilterField.=""; break; case 'List': @@ -466,11 +464,10 @@ class Export * @param string $datatoexport Name of dataset to export * @param array $array_selected Filter on array of fields to export * @param array $array_filterValue Filter on array of fields with a filter - * @param array $array_filtered Values of filters * @param string $sqlquery If set, transmit a sql query instead of building it from arrays * @return int <0 if KO, >0 if OK */ - function build_file($user, $model, $datatoexport, $array_selected, $array_filterValue, $array_filtered, $sqlquery = '') + function build_file($user, $model, $datatoexport, $array_selected, $array_filterValue, $sqlquery = '') { global $conf,$langs; @@ -494,7 +491,7 @@ class Export $objmodel = new $classname($this->db); if (! empty($sqlquery)) $sql = $sqlquery; - else $sql=$this->build_sql($indice, $array_selected, $array_filterValue, $array_filtered); + else $sql=$this->build_sql($indice, $array_selected, $array_filterValue); // Run the sql $this->sqlusedforexport=$sql; diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index 8ec3e73f425..f96eb57d648 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -94,7 +94,7 @@ $entitytolang = array( ); $array_selected=isset($_SESSION["export_selected_fields"])?$_SESSION["export_selected_fields"]:array(); -$array_filtered=isset($_SESSION["export_filtered_fields"])?$_SESSION["export_filtered_fields"]:array(); +//$array_filtered=isset($_SESSION["export_filtered_fields"])?$_SESSION["export_filtered_fields"]:array(); $array_filtervalue=isset($_SESSION["export_FilterValue_fields"])?$_SESSION["export_FilterValue_fields"]:array(); $datatoexport=GETPOST("datatoexport"); $action=GETPOST('action', 'alpha'); @@ -116,8 +116,8 @@ $sqlusedforexport=''; $upload_dir = $conf->export->dir_temp.'/'.$user->id; -$usefilters=($conf->global->MAIN_FEATURES_LEVEL > 1); -//$usefilters=1; +//$usefilters=($conf->global->MAIN_FEATURES_LEVEL > 1); +$usefilters=1; /* @@ -189,53 +189,6 @@ if ($action=='unselectfield') } } -/* -if ($action=='selectFilterfield') -{ - if ($_GET["field"]=='all') - { - $fieldsarray=$objexport->array_export_TypeFields[0]; - foreach($fieldsarray as $key=>$val) - { - if (! empty($array_filtered[$key])) continue; // If already selected, select next - $array_filtered[$key]=count($array_filtered)+1; - //print_r($array_selected); - $_SESSION["export_filtered_fields"]=$array_filtered; - } - } - else - { - $array_filtered[$_GET["field"]]=count($array_filtered)+1; - //print_r($array_selected); - $_SESSION["export_filtered_fields"]=$array_filtered; - } -} - -if ($action=='unselectFilterfield') -{ - if ($_GET["field"]=='all') - { - $array_filtered=array(); - $_SESSION["export_filtered_fields"]=$array_filtered; - } - else - { - unset($array_filtered[$_GET["field"]]); - // Renumber fields of array_selected (from 1 to nb_elements) - asort($array_filtered); - $i=0; - $array_filterted_save=$array_filtered; - foreach($array_filtered as $code=>$value) - { - $i++; - $array_filtered[$code]=$i; - //print "x $code x $i y
    "; - } - $_SESSION["export_filtered_fields"]=$array_filtered; - } -} -*/ - if ($action=='downfield' || $action=='upfield') { $pos=$array_selected[$_GET["field"]]; @@ -263,7 +216,7 @@ if ($action=='downfield' || $action=='upfield') if ($step == 1 || $action == 'cleanselect') { $_SESSION["export_selected_fields"]=array(); - $_SESSION["export_FilterValue_fields"]=array(); + //$_SESSION["export_FilterValue_fields"]=array(); $_SESSION["export_filtered_fields"]=array(); $array_selected=array(); $array_filtervalue=array(); @@ -273,7 +226,7 @@ if ($step == 1 || $action == 'cleanselect') if ($action == 'builddoc') { // Build export file - $result=$objexport->build_file($user, $_POST['model'], $datatoexport, $array_selected, $array_filtervalue, $array_filtered); + $result=$objexport->build_file($user, $_POST['model'], $datatoexport, $array_selected, $array_filtervalue); if ($result < 0) { $mesg='
    '.$objexport->error.'
    '; @@ -360,7 +313,7 @@ if ($action == 'add_export_model') if ($step == 2 && $action == 'select_model') { $_SESSION["export_selected_fields"]=array(); - $_SESSION["export_filtered_fields"]=array(); + //$_SESSION["export_filtered_fields"]=array(); $_SESSION["export_FilterValue_fields"]=array(); $array_selected=array(); @@ -388,25 +341,34 @@ if ($step == 2 && $action == 'select_model') $array_filtervalue[$val]=$fieldsarrayvalue[$i-1]; $i++; } - $_SESSION["export_filtered_fields"]=$array_filtered; + //$_SESSION["export_filtered_fields"]=$array_filtered; $_SESSION["export_FilterValue_fields"]=$array_filtervalue; } } -// recuperation du filtrage issu du formulaire +// Get form with filters if ($step == 4 && $action == 'submitFormField') { // on boucle sur les champs selectionne pour recuperer la valeur if (is_array($objexport->array_export_TypeFields[0])) { $_SESSION["export_FilterValue_fields"]=array(); - foreach($array_filtered as $code=>$value) + var_dump($_POST); + foreach($objexport->array_export_TypeFields[0] as $code => $type) // $code: s.fieldname $value: Text|Boolean|List:ccc { - //print $code."=".$_POST[$objexport->array_export_fields[0][$code]]; - $objexport->array_export_FilterValue[0][$code] = (isset($objexport->array_export_fields[0][$code])?$_POST[$objexport->array_export_fields[0][$code]]:''); + $newcode=(string) preg_replace('/\./','_',$code); + //print 'xxx'.$code."=".$newcode."=".$type."=".$_POST[$newcode]."\n
    "; + $filterqualified=1; + if (! isset($_POST[$newcode]) || $_POST[$newcode] == '') $filterqualified=0; + elseif (preg_match('/^List/',$type) && $_POST[$newcode] <= 0) $filterqualified=0; + if ($filterqualified) + { + //print 'Filter on '.$newcode.' type='.$type.' value='.$_POST[$newcode]."\n"; + $objexport->array_export_FilterValue[0][$code] = $_POST[$newcode]; + } } - $_SESSION["export_FilterValue_fields"]=(! empty($objexport->array_export_FilterValue[0])?$objexport->array_export_FilterValue[0]:''); $array_filtervalue=(! empty($objexport->array_export_FilterValue[0])?$objexport->array_export_FilterValue[0]:''); + $_SESSION["export_FilterValue_fields"]=$array_filtervalue; } } @@ -415,7 +377,6 @@ if ($step == 4 && $action == 'submitFormField') * View */ - if ($step == 1 || ! $datatoexport) { llxHeader('',$langs->trans("NewExport"),'EN:Module_Exports_En|FR:Module_Exports|ES:Módulo_Exportaciones'); @@ -566,7 +527,7 @@ if ($step == 2 && $datatoexport) // Champs exportables $fieldsarray=$objexport->array_export_fields[0]; // Select request if all fields are selected - $sqlmaxforexport=$objexport->build_sql(0, array(), array(), array()); + $sqlmaxforexport=$objexport->build_sql(0, array(), array()); // $this->array_export_module[0]=$module; // $this->array_export_code[0]=$module->export_code[$r]; @@ -741,7 +702,7 @@ if ($step == 3 && $datatoexport) // valeur des filtres $ValueFiltersarray=(! empty($objexport->array_export_FilterValue[0])?$objexport->array_export_FilterValue[0]:''); // Select request if all fields are selected - $sqlmaxforexport=$objexport->build_sql(0, array(), array(), array()); + $sqlmaxforexport=$objexport->build_sql(0, array(), array()); $var=true; $i = 0; @@ -868,7 +829,7 @@ if ($step == 4 && $datatoexport) print $objexport->array_export_label[0]; print '
    '.$langs->trans("ExportedFields").''.$list.'
    '.$list.'
    '.$langs->trans("FilteredFields").''.$list.'
    '.($list?$list:$langs->trans("None")).'
    '; print '
    '; // Select request if all fields are selected - $sqlmaxforexport=$objexport->build_sql(0, array(), array(), array()); + $sqlmaxforexport=$objexport->build_sql(0, array(), array()); print $langs->trans("ChooseFieldsOrdersAndTitle").'
    '; @@ -1098,7 +1062,7 @@ if ($step == 5 && $datatoexport) print $objexport->array_export_label[0]; print ''; - // Nbre champs exportes + // List of exported fields print ''.$langs->trans("ExportedFields").''; $list=''; foreach($array_selected as $code=>$label) @@ -1108,19 +1072,21 @@ if ($step == 5 && $datatoexport) } print ''.$list.''; - // Nbre champs filtres - if (is_array($objexport->array_export_TypeFields[0])) + // List of filtered fiels + if (isset($objexport->array_export_TypeFields[0]) && is_array($objexport->array_export_TypeFields[0])) { print ''.$langs->trans("FilteredFields").''; $list=''; - foreach($array_filtered as $code=>$value) + foreach($array_filtervalue as $code=>$value) { - if (isset($objexport->array_export_fields[0][$code])) { + if (isset($objexport->array_export_fields[0][$code])) + { $list.=($list?', ':''); - $list.="[".$langs->trans($objexport->array_export_fields[0][$code])."]='".(isset($array_filtervalue[$code])?$array_filtervalue[$code]:'')."'"; + $list.=$langs->trans($objexport->array_export_fields[0][$code])."='".(isset($array_filtervalue[$code])?$array_filtervalue[$code]:'')."'"; } } - print ''.$list.''; + print ''.($list?$list:$langs->trans("None")).''; + print ''; } print ''; @@ -1182,10 +1148,10 @@ if ($step == 5 && $datatoexport) print '
    '; -$db->close(); - llxFooter(); +$db->close(); + /** * Return table name of an alias. For this, we look for the "tablename as alias" in sql string. diff --git a/test/phpunit/ExportTest.php b/test/phpunit/ExportTest.php index 860e6cc09e6..103869e1850 100755 --- a/test/phpunit/ExportTest.php +++ b/test/phpunit/ExportTest.php @@ -144,21 +144,21 @@ class ExportTest extends PHPUnit_Framework_TestCase $model='csv'; // Build export file - $result=$objexport->build_file($user, $model, $datatoexport, $array_selected, array(), array(), $sql); + $result=$objexport->build_file($user, $model, $datatoexport, $array_selected, array(), $sql); $expectedresult=1; $this->assertEquals($result,$expectedresult); $model='tsv'; // Build export file - $result=$objexport->build_file($user, $model, $datatoexport, $array_selected, array(), array(), $sql); + $result=$objexport->build_file($user, $model, $datatoexport, $array_selected, array(), $sql); $expectedresult=1; $this->assertEquals($result,$expectedresult); $model='excel'; // Build export file - $result=$objexport->build_file($user, $model, $datatoexport, $array_selected, array(), array(), $sql); + $result=$objexport->build_file($user, $model, $datatoexport, $array_selected, array(), $sql); $expectedresult=1; $this->assertEquals($result,$expectedresult); @@ -195,21 +195,21 @@ class ExportTest extends PHPUnit_Framework_TestCase $model='csv'; // Build export file - $result=$objexport->build_file($user, $model, $datatoexport, $array_selected, $array_filtervalue, $array_filtered, $sql); + $result=$objexport->build_file($user, $model, $datatoexport, $array_selected, $array_filtervalue, $sql); $expectedresult=1; $this->assertEquals($result,$expectedresult); $model='tsv'; // Build export file - $result=$objexport->build_file($user, $model, $datatoexport, $array_selected, $array_filtervalue, $array_filtered, $sql); + $result=$objexport->build_file($user, $model, $datatoexport, $array_selected, $array_filtervalue, $sql); $expectedresult=1; $this->assertEquals($result,$expectedresult); $model='excel'; // Build export file - $result=$objexport->build_file($user, $model, $datatoexport, $array_selected, $array_filtervalue, $array_filtered, $sql); + $result=$objexport->build_file($user, $model, $datatoexport, $array_selected, $array_filtervalue, $sql); $expectedresult=1; $this->assertEquals($result,$expectedresult); @@ -234,7 +234,7 @@ class ExportTest extends PHPUnit_Framework_TestCase $result=$objexport->load_arrays($user,$datatoexport); // Build export file - $result=$objexport->build_file($user, $model, $datatoexport, $array_selected, array(), array(), $sql); + $result=$objexport->build_file($user, $model, $datatoexport, $array_selected, array(), $sql); $expectedresult=1; $this->assertEquals($result,$expectedresult); From a44de1b05a7ecbde98eed9b3691a5a7c3e716788 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Nov 2012 18:16:15 +0100 Subject: [PATCH 22/33] Fix: Forget a var_dump --- htdocs/exports/export.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index f96eb57d648..0ffd74a1bc6 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -353,7 +353,7 @@ if ($step == 4 && $action == 'submitFormField') if (is_array($objexport->array_export_TypeFields[0])) { $_SESSION["export_FilterValue_fields"]=array(); - var_dump($_POST); + //var_dump($_POST); foreach($objexport->array_export_TypeFields[0] as $code => $type) // $code: s.fieldname $value: Text|Boolean|List:ccc { $newcode=(string) preg_replace('/\./','_',$code); From 6db5185d7e950dd0519f1a713c15545b6fee926e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Nov 2012 23:57:35 +0100 Subject: [PATCH 23/33] Fix: Missing include --- htdocs/fourn/class/fournisseur.facture.class.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index 0ac846810a9..c01815816c4 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -30,8 +30,7 @@ include_once DOL_DOCUMENT_ROOT.'/core/class/commoninvoice.class.php'; /** - * \class FactureFournisseur - * \brief Class to manage suppliers invoices + * Class to manage suppliers invoices */ class FactureFournisseur extends CommonInvoice { @@ -618,6 +617,8 @@ class FactureFournisseur extends CommonInvoice // We remove directory if ($conf->fournisseur->facture->dir_output) { + include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; + $ref = dol_sanitizeFileName($this->ref); $dir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($this->id, 2).$ref; $file = $dir . "/" . $ref . ".pdf"; @@ -632,6 +633,7 @@ class FactureFournisseur extends CommonInvoice if (file_exists($dir)) { $res=@dol_delete_dir_recursive($dir); + if (! $res) { $this->error='ErrorFailToDeleteDir'; From af637c8afbef32c7f4faad689a4905b3656f71e6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 21 Nov 2012 14:45:02 +0100 Subject: [PATCH 24/33] Qual: Removed "dolibarr" into default email sender. --- htdocs/core/class/conf.class.php | 2 +- htdocs/install/mysql/data/llx_const.sql | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/class/conf.class.php b/htdocs/core/class/conf.class.php index ae35425bf09..1c1461436d5 100644 --- a/htdocs/core/class/conf.class.php +++ b/htdocs/core/class/conf.class.php @@ -371,7 +371,7 @@ class Conf $this->css = "/theme/".$this->theme."/style.css.php"; // conf->email_from = email pour envoi par dolibarr des mails automatiques - $this->email_from = "dolibarr-robot@domain.com"; + $this->email_from = "robot@domain.com"; if (! empty($this->global->MAIN_MAIL_EMAIL_FROM)) $this->email_from = $this->global->MAIN_MAIL_EMAIL_FROM; // conf->notification->email_from = email pour envoi par Dolibarr des notifications diff --git a/htdocs/install/mysql/data/llx_const.sql b/htdocs/install/mysql/data/llx_const.sql index 23b20a0411b..ef84f9ee005 100644 --- a/htdocs/install/mysql/data/llx_const.sql +++ b/htdocs/install/mysql/data/llx_const.sql @@ -46,7 +46,7 @@ insert into llx_const (name, value, type, note, visible, entity) values ('MAIN_U -- Hidden but specific to one entity insert into llx_const (name, value, type, note, visible, entity) values ('MAIN_MONNAIE','EUR','chaine','Monnaie',0,1); -insert into llx_const (name, value, type, note, visible, entity) values ('MAIN_MAIL_EMAIL_FROM','dolibarr-robot@domain.com','chaine','EMail emetteur pour les emails automatiques Dolibarr',0,1); +insert into llx_const (name, value, type, note, visible, entity) values ('MAIN_MAIL_EMAIL_FROM','robot@domain.com','chaine','EMail emetteur pour les emails automatiques Dolibarr',0,1); -- -- IHM From 66cf1419ca0e265175fc0182e5f9d8bb5bcdfcc0 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 21 Nov 2012 17:48:27 +0100 Subject: [PATCH 25/33] Fix: llx_c_paper_format dictionnary was not up to date. --- .../install/mysql/migration/3.2.0-3.3.0.sql | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/htdocs/install/mysql/migration/3.2.0-3.3.0.sql b/htdocs/install/mysql/migration/3.2.0-3.3.0.sql index db3968df5d6..d0c921a2584 100755 --- a/htdocs/install/mysql/migration/3.2.0-3.3.0.sql +++ b/htdocs/install/mysql/migration/3.2.0-3.3.0.sql @@ -804,5 +804,35 @@ ALTER TABLE llx_c_typent DROP INDEX code, ADD UNIQUE uk_c_typent (code); ALTER TABLE llx_c_effectif DROP INDEX code, ADD UNIQUE uk_c_effectif (code); ALTER TABLE llx_c_paiement DROP INDEX code, ADD UNIQUE uk_c_paiement (code); + +-- Update dictionnary of table llx_c_paper_format +DELETE FROM llx_c_paper_format; + +-- Europe +INSERT INTO llx_c_paper_format (rowid, code, label, width, height, unit, active) VALUES (1, 'EU4A0', 'Format 4A0', '1682', '2378', 'mm', 1); +INSERT INTO llx_c_paper_format (rowid, code, label, width, height, unit, active) VALUES (2, 'EU2A0', 'Format 2A0', '1189', '1682', 'mm', 1); +INSERT INTO llx_c_paper_format (rowid, code, label, width, height, unit, active) VALUES (3, 'EUA0', 'Format A0', '840', '1189', 'mm', 1); +INSERT INTO llx_c_paper_format (rowid, code, label, width, height, unit, active) VALUES (4, 'EUA1', 'Format A1', '594', '840', 'mm', 1); +INSERT INTO llx_c_paper_format (rowid, code, label, width, height, unit, active) VALUES (5, 'EUA2', 'Format A2', '420', '594', 'mm', 1); +INSERT INTO llx_c_paper_format (rowid, code, label, width, height, unit, active) VALUES (6, 'EUA3', 'Format A3', '297', '420', 'mm', 1); +INSERT INTO llx_c_paper_format (rowid, code, label, width, height, unit, active) VALUES (7, 'EUA4', 'Format A4', '210', '297', 'mm', 1); +INSERT INTO llx_c_paper_format (rowid, code, label, width, height, unit, active) VALUES (8, 'EUA5', 'Format A5', '148', '210', 'mm', 1); +INSERT INTO llx_c_paper_format (rowid, code, label, width, height, unit, active) VALUES (9, 'EUA6', 'Format A6', '105', '148', 'mm', 1); + +-- US +INSERT INTO llx_c_paper_format (rowid, code, label, width, height, unit, active) VALUES (100, 'USLetter', 'Format Letter (A)', '216', '279', 'mm', 1); +INSERT INTO llx_c_paper_format (rowid, code, label, width, height, unit, active) VALUES (105, 'USLegal', 'Format Legal', '216', '356', 'mm', 1); +INSERT INTO llx_c_paper_format (rowid, code, label, width, height, unit, active) VALUES (110, 'USExecutive', 'Format Executive', '190', '254', 'mm', 1); +INSERT INTO llx_c_paper_format (rowid, code, label, width, height, unit, active) VALUES (115, 'USLedger', 'Format Ledger/Tabloid (B)', '279', '432', 'mm', 1); + +-- Canadian +INSERT INTO llx_c_paper_format (rowid, code, label, width, height, unit, active) VALUES (200, 'CAP1', 'Format Canadian P1', '560', '860', 'mm', 1); +INSERT INTO llx_c_paper_format (rowid, code, label, width, height, unit, active) VALUES (205, 'CAP2', 'Format Canadian P2', '430', '560', 'mm', 1); +INSERT INTO llx_c_paper_format (rowid, code, label, width, height, unit, active) VALUES (210, 'CAP3', 'Format Canadian P3', '280', '430', 'mm', 1); +INSERT INTO llx_c_paper_format (rowid, code, label, width, height, unit, active) VALUES (215, 'CAP4', 'Format Canadian P4', '215', '280', 'mm', 1); +INSERT INTO llx_c_paper_format (rowid, code, label, width, height, unit, active) VALUES (220, 'CAP5', 'Format Canadian P5', '140', '215', 'mm', 1); +INSERT INTO llx_c_paper_format (rowid, code, label, width, height, unit, active) VALUES (225, 'CAP6', 'Format Canadian P6', '107', '140', 'mm', 1); + + -- increase field size ALTER TABLE llx_bank_account MODIFY COLUMN code_banque varchar(8); \ No newline at end of file From 6a11016a21e30f8e3200ffd5ac8907510110912d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 21 Nov 2012 18:45:52 +0100 Subject: [PATCH 26/33] Fix: var_dump must be commented --- htdocs/exports/export.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index f96eb57d648..c96ce410864 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -353,7 +353,7 @@ if ($step == 4 && $action == 'submitFormField') if (is_array($objexport->array_export_TypeFields[0])) { $_SESSION["export_FilterValue_fields"]=array(); - var_dump($_POST); + //var_dump($_POST); foreach($objexport->array_export_TypeFields[0] as $code => $type) // $code: s.fieldname $value: Text|Boolean|List:ccc { $newcode=(string) preg_replace('/\./','_',$code); @@ -362,7 +362,7 @@ if ($step == 4 && $action == 'submitFormField') if (! isset($_POST[$newcode]) || $_POST[$newcode] == '') $filterqualified=0; elseif (preg_match('/^List/',$type) && $_POST[$newcode] <= 0) $filterqualified=0; if ($filterqualified) - { + { //print 'Filter on '.$newcode.' type='.$type.' value='.$_POST[$newcode]."\n"; $objexport->array_export_FilterValue[0][$code] = $_POST[$newcode]; } @@ -739,7 +739,7 @@ if ($step == 3 && $datatoexport) print ''; print $form->textwithpicto($text,$htmltext); print ''; - + // Filter value print ''; if (! empty($Typefieldsarray[$code])) @@ -847,7 +847,7 @@ if ($step == 4 && $datatoexport) $list=''; foreach($array_filtervalue as $code=>$value) { - if (isset($objexport->array_export_fields[0][$code])) + if (isset($objexport->array_export_fields[0][$code])) { $list.=($list?', ':''); $list.=$langs->trans($objexport->array_export_fields[0][$code])."='".(isset($array_filtervalue[$code])?$array_filtervalue[$code]:'')."'"; @@ -1079,7 +1079,7 @@ if ($step == 5 && $datatoexport) $list=''; foreach($array_filtervalue as $code=>$value) { - if (isset($objexport->array_export_fields[0][$code])) + if (isset($objexport->array_export_fields[0][$code])) { $list.=($list?', ':''); $list.=$langs->trans($objexport->array_export_fields[0][$code])."='".(isset($array_filtervalue[$code])?$array_filtervalue[$code]:'')."'"; From 06a8ba2be2fd608383c5d994a32597cf6566d860 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 21 Nov 2012 18:51:49 +0100 Subject: [PATCH 27/33] Fix: for combo list that use text key. --- htdocs/exports/export.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index c96ce410864..6eec105a832 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -360,7 +360,7 @@ if ($step == 4 && $action == 'submitFormField') //print 'xxx'.$code."=".$newcode."=".$type."=".$_POST[$newcode]."\n
    "; $filterqualified=1; if (! isset($_POST[$newcode]) || $_POST[$newcode] == '') $filterqualified=0; - elseif (preg_match('/^List/',$type) && $_POST[$newcode] <= 0) $filterqualified=0; + elseif (preg_match('/^List/',$type) && (is_numeric($_POST[$newcode]) && $_POST[$newcode] <= 0)) $filterqualified=0; if ($filterqualified) { //print 'Filter on '.$newcode.' type='.$type.' value='.$_POST[$newcode]."\n"; From 31ecc1987e8bb468f08a6b5c8ad772bb72a46c4e Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Wed, 21 Nov 2012 18:52:25 +0100 Subject: [PATCH 28/33] Fix: remove old code --- htdocs/exports/export.php | 48 ++++++++++++--------------------------- 1 file changed, 14 insertions(+), 34 deletions(-) diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index f96eb57d648..5f2b0e6d2c0 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -229,11 +229,11 @@ if ($action == 'builddoc') $result=$objexport->build_file($user, $_POST['model'], $datatoexport, $array_selected, $array_filtervalue); if ($result < 0) { - $mesg='
    '.$objexport->error.'
    '; + setEventMessage($objexport->error, 'errors'); } else { - $mesg='
    '.$langs->trans("FileSuccessfullyBuilt").'
    '; + setEventMessage($langs->trans("FileSuccessfullyBuilt")); $sqlusedforexport=$objexport->sqlusedforexport; } } @@ -292,21 +292,20 @@ if ($action == 'add_export_model') $result = $objexport->create($user); if ($result >= 0) { - $mesg='
    '.$langs->trans("ExportModelSaved",$objexport->model_name).'
    '; + setEventMessage($langs->trans("ExportModelSaved",$objexport->model_name)); } else { $langs->load("errors"); if ($objexport->errno == 'DB_ERROR_RECORD_ALREADY_EXISTS') - { - $mesg='
    '.$langs->trans("ErrorExportDuplicateProfil").'
    '; - } - else $mesg='
    '.$objexport->error.'
    '; + setEventMessage($langs->trans("ErrorExportDuplicateProfil"), 'errors'); + else + setEventMessage($objexport->error, 'errors'); } } else { - $mesg='
    '.$langs->trans("ErrorFieldRequired",$langs->transnoentities("ExportModelName")).'
    '; + setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentities("ExportModelName")), 'errors'); } } @@ -353,7 +352,7 @@ if ($step == 4 && $action == 'submitFormField') if (is_array($objexport->array_export_TypeFields[0])) { $_SESSION["export_FilterValue_fields"]=array(); - var_dump($_POST); + //var_dump($_POST); foreach($objexport->array_export_TypeFields[0] as $code => $type) // $code: s.fieldname $value: Text|Boolean|List:ccc { $newcode=(string) preg_replace('/\./','_',$code); @@ -362,7 +361,7 @@ if ($step == 4 && $action == 'submitFormField') if (! isset($_POST[$newcode]) || $_POST[$newcode] == '') $filterqualified=0; elseif (preg_match('/^List/',$type) && $_POST[$newcode] <= 0) $filterqualified=0; if ($filterqualified) - { + { //print 'Filter on '.$newcode.' type='.$type.' value='.$_POST[$newcode]."\n"; $objexport->array_export_FilterValue[0][$code] = $_POST[$newcode]; } @@ -447,9 +446,6 @@ if ($step == 1 || ! $datatoexport) print ''; print ''; - - if ($mesg) print $mesg; - } if ($step == 2 && $datatoexport) @@ -595,8 +591,6 @@ if ($step == 2 && $datatoexport) print ''; - if ($mesg) print $mesg; - /* * Barre d'action * @@ -739,7 +733,7 @@ if ($step == 3 && $datatoexport) print ''; print $form->textwithpicto($text,$htmltext); print ''; - + // Filter value print ''; if (! empty($Typefieldsarray[$code])) @@ -764,12 +758,9 @@ if ($step == 3 && $datatoexport) print ''; - if ($mesg) print $mesg; - /* * Barre d'action - * - */ + */ print '
    '; // il n'est pas obligatoire de filtrer les champs print ''.$langs->trans("NextStep").''; @@ -847,7 +838,7 @@ if ($step == 4 && $datatoexport) $list=''; foreach($array_filtervalue as $code=>$value) { - if (isset($objexport->array_export_fields[0][$code])) + if (isset($objexport->array_export_fields[0][$code])) { $list.=($list?', ':''); $list.=$langs->trans($objexport->array_export_fields[0][$code])."='".(isset($array_filtervalue[$code])?$array_filtervalue[$code]:'')."'"; @@ -919,11 +910,8 @@ if ($step == 4 && $datatoexport) print ''; - print '
    '; - if ($mesg) print $mesg; - /* * Barre d'action * @@ -994,7 +982,6 @@ if ($step == 4 && $datatoexport) print ''; print ''; } - } if ($step == 5 && $datatoexport) @@ -1079,7 +1066,7 @@ if ($step == 5 && $datatoexport) $list=''; foreach($array_filtervalue as $code=>$value) { - if (isset($objexport->array_export_fields[0][$code])) + if (isset($objexport->array_export_fields[0][$code])) { $list.=($list?', ':''); $list.=$langs->trans($objexport->array_export_fields[0][$code])."='".(isset($array_filtervalue[$code])?$array_filtervalue[$code]:'')."'"; @@ -1118,12 +1105,7 @@ if ($step == 5 && $datatoexport) print ''; print ''; - if ($mesg) - { - print ''; - } + if ($sqlusedforexport && $user->admin) { print '
    '; - print $mesg; - print '
    '; @@ -1144,10 +1126,8 @@ if ($step == 5 && $datatoexport) print '
    '; } - print '
    '; - llxFooter(); $db->close(); From c49fea217f5af5b0f91a164a6366daf0dbd51f06 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 21 Nov 2012 19:00:06 +0100 Subject: [PATCH 29/33] Fix: Another fix on sql request generation. --- htdocs/exports/class/export.class.php | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/htdocs/exports/class/export.class.php b/htdocs/exports/class/export.class.php index f44722d8de6..2bd5b27537c 100644 --- a/htdocs/exports/class/export.class.php +++ b/htdocs/exports/class/export.class.php @@ -253,18 +253,18 @@ class Export // build the input field on depend of the type of file switch ($InfoFieldList[0]) { case 'Text': - if (strpos($ValueField, "%") > 0) - $szFilterQuery=" ".$NameField." like '".$ValueField."'"; + if (! (strpos($ValueField, '%') === false)) + $szFilterQuery.=" ".$NameField." LIKE '".$ValueField."'"; else - $szFilterQuery=" ".$NameField."='".$ValueField."'"; + $szFilterQuery.=" ".$NameField."='".$ValueField."'"; break; case 'Date': if (strpos($ValueField, "+") > 0) { // mode plage $ValueArray = explode("+", $ValueField); - $szFilterQuery= $this->conditionDate($NameField,$ValueArray[0],">="); - $szFilterQuery.=" and ".$this->conditionDate($NameField,$ValueArray[1],"<="); + $szFilterQuery ="(".$this->conditionDate($NameField,$ValueArray[0],">="); + $szFilterQuery.=" AND ".$this->conditionDate($NameField,$ValueArray[1],"<=").")"; } else { @@ -282,8 +282,8 @@ class Export { // mode plage $ValueArray = explode("+", $ValueField); - $szFilterQuery=$NameField.">=".$ValueArray[0]; - $szFilterQuery.=" and ".$NameField."<=".$ValueArray[1]; + $szFilterQuery ="(".$NameField.">=".$ValueArray[0]; + $szFilterQuery.=" AND ".$NameField."<=".$ValueArray[1].")"; } else { @@ -337,9 +337,9 @@ class Export { $szFilterField=''; $InfoFieldList = explode(":", $TypeField); - + // build the input field on depend of the type of file - switch ($InfoFieldList[0]) + switch ($InfoFieldList[0]) { case 'Text': case 'Date': @@ -387,13 +387,13 @@ class Export while ($i < $num) { $obj = $this->db->fetch_object($resql); - if ($obj->$InfoFieldList[2] == '-') + if ($obj->$InfoFieldList[2] == '-') { // Discard entry '-' $i++; continue; } - + $labeltoshow=dol_trunc($obj->$InfoFieldList[2],18); if (!empty($ValueField) && $ValueField == $obj->rowid) { From 1f263943c540cf5ca5fb3d52e09e151e156076db Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 21 Nov 2012 19:07:03 +0100 Subject: [PATCH 30/33] New: Add option to add slashes lines between lines into PDF. --- ChangeLog | 7 ++++--- .../core/modules/commande/doc/pdf_einstein.modules.php | 9 +++++++++ .../expedition/doc/pdf_expedition_merou.modules.php | 9 +++++++++ .../expedition/doc/pdf_expedition_rouget.modules.php | 9 +++++++++ htdocs/core/modules/facture/doc/pdf_crabe.modules.php | 9 +++++++++ .../core/modules/livraison/pdf/pdf_typhon.modules.php | 10 ++++++++++ .../core/modules/project/pdf/pdf_baleine.modules.php | 9 +++++++++ htdocs/core/modules/propale/doc/pdf_azur.modules.php | 9 +++++++++ .../supplier_invoice/pdf/pdf_canelle.modules.php | 9 +++++++++ .../supplier_order/pdf/pdf_muscadet.modules.php | 9 +++++++++ 10 files changed, 86 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 877bd292c05..42cd19157a8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -50,9 +50,10 @@ For users: - New: Allow to search product from barcodes directly from invoices, proposals... through AJAX. - New: Can make one invoice for several orders. - New: POS module can works with only one payment method (cach, chq, credit card). -- New: Add possibility to defined position/job of a user -- New: [ task #210 ] Can choose cash account during POS login -- New: [ task #104 ] Can create an invoice from several orders +- New: Add possibility to defined position/job of a user. +- New: Add hidden option to add slashes between lines into PDF. +- New: [ task #210 ] Can choose cash account during POS login. +- New: [ task #104 ] Can create an invoice from several orders. - New: Update libs/tools/logo for DoliWamp (now use PHP 5.3). - New: Added ODT Template tag {object_total_discount} - New: Add new import options: Third parties bank details, warehouses and stocks, categories and suppliers prices diff --git a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php index 1d56eb79635..9e3a9de7889 100644 --- a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php @@ -381,6 +381,15 @@ class pdf_einstein extends ModelePDFCommandes $this->localtax1[$localtax1rate]+=$localtax1ligne; $this->localtax2[$localtax2rate]+=$localtax2ligne; + // Add line + if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES)) + { + $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(210,210,210))); + //$pdf->SetDrawColor(190,190,200); + $pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1); + $pdf->SetLineStyle(array('dash'=>0)); + } + $nexY+=2; // Passe espace entre les lignes // Detect if some page were added automatically and output _tableau for past pages diff --git a/htdocs/core/modules/expedition/doc/pdf_expedition_merou.modules.php b/htdocs/core/modules/expedition/doc/pdf_expedition_merou.modules.php index e65d09453e8..bdd85bb2abc 100644 --- a/htdocs/core/modules/expedition/doc/pdf_expedition_merou.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_expedition_merou.modules.php @@ -243,6 +243,15 @@ class pdf_expedition_merou extends ModelePdfExpedition $pdf->SetXY(170, $curY); $pdf->MultiCell(30, 3, $object->lines[$i]->qty_shipped, 0, 'C', 0); + // Add line + if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES)) + { + $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(210,210,210))); + //$pdf->SetDrawColor(190,190,200); + $pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1); + $pdf->SetLineStyle(array('dash'=>0)); + } + $nexY+=2; // Passe espace entre les lignes // Detect if some page were added automatically and output _tableau for past pages diff --git a/htdocs/core/modules/expedition/doc/pdf_expedition_rouget.modules.php b/htdocs/core/modules/expedition/doc/pdf_expedition_rouget.modules.php index 37f3ffc6538..8e6cc244598 100644 --- a/htdocs/core/modules/expedition/doc/pdf_expedition_rouget.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_expedition_rouget.modules.php @@ -262,6 +262,15 @@ class pdf_expedition_rouget extends ModelePdfExpedition $pdf->SetXY($this->posxqtytoship, $curY); $pdf->MultiCell(($this->page_largeur - $this->marge_droite - $this->posxqtytoship), 3, $object->lines[$i]->qty_shipped,'','C'); + // Add line + if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES)) + { + $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(210,210,210))); + //$pdf->SetDrawColor(190,190,200); + $pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1); + $pdf->SetLineStyle(array('dash'=>0)); + } + $nexY+=2; // Passe espace entre les lignes // Detect if some page were added automatically and output _tableau for past pages diff --git a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php index 77d09e85691..5a6e8d4a695 100755 --- a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php +++ b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php @@ -382,6 +382,15 @@ class pdf_crabe extends ModelePDFFactures $this->localtax1[$localtax1rate]+=$localtax1ligne; $this->localtax2[$localtax2rate]+=$localtax2ligne; + // Add line + if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES)) + { + $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(210,210,210))); + //$pdf->SetDrawColor(190,190,200); + $pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1); + $pdf->SetLineStyle(array('dash'=>0)); + } + $nexY+=2; // Passe espace entre les lignes // Detect if some page were added automatically and output _tableau for past pages diff --git a/htdocs/core/modules/livraison/pdf/pdf_typhon.modules.php b/htdocs/core/modules/livraison/pdf/pdf_typhon.modules.php index 420fce5653c..bc6e474b36c 100644 --- a/htdocs/core/modules/livraison/pdf/pdf_typhon.modules.php +++ b/htdocs/core/modules/livraison/pdf/pdf_typhon.modules.php @@ -305,6 +305,16 @@ class pdf_typhon extends ModelePDFDeliveryOrder if ($object->remise_percent) $tvaligne-=($tvaligne*$object->remise_percent)/100; $this->tva[ (string) $object->lines[$i]->tva_tx ] += $tvaligne; */ + + // Add line + if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES)) + { + $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(210,210,210))); + //$pdf->SetDrawColor(190,190,200); + $pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1); + $pdf->SetLineStyle(array('dash'=>0)); + } + $nexY+=2; // Passe espace entre les lignes // Detect if some page were added automatically and output _tableau for past pages diff --git a/htdocs/core/modules/project/pdf/pdf_baleine.modules.php b/htdocs/core/modules/project/pdf/pdf_baleine.modules.php index 2a9048804c3..62606ab68b6 100644 --- a/htdocs/core/modules/project/pdf/pdf_baleine.modules.php +++ b/htdocs/core/modules/project/pdf/pdf_baleine.modules.php @@ -226,6 +226,15 @@ class pdf_baleine extends ModelePDFProjects $pdf->SetFont('','', $default_font_size - 1); // On repositionne la police par defaut $nexY = $pdf->GetY(); + // Add line + if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES)) + { + $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(210,210,210))); + //$pdf->SetDrawColor(190,190,200); + $pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1); + $pdf->SetLineStyle(array('dash'=>0)); + } + $nexY+=2; // Passe espace entre les lignes // Detect if some page were added automatically and output _tableau for past pages diff --git a/htdocs/core/modules/propale/doc/pdf_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php index 77d9d849d2a..7db7e29fb71 100644 --- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php @@ -379,6 +379,15 @@ class pdf_azur extends ModelePDFPropales $this->localtax1[$localtax1rate]+=$localtax1ligne; $this->localtax2[$localtax2rate]+=$localtax2ligne; + // Add line + if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES)) + { + $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(210,210,210))); + //$pdf->SetDrawColor(190,190,200); + $pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1); + $pdf->SetLineStyle(array('dash'=>0)); + } + $nexY+=2; // Passe espace entre les lignes // Detect if some page were added automatically and output _tableau for past pages diff --git a/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php b/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php index b0a2b33e2e7..458b277a735 100755 --- a/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php +++ b/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php @@ -337,6 +337,15 @@ class pdf_canelle extends ModelePDFSuppliersInvoices $this->localtax1[$localtax1rate]+=$localtax1ligne; $this->localtax2[$localtax2rate]+=$localtax2ligne; + // Add line + if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES)) + { + $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(210,210,210))); + //$pdf->SetDrawColor(190,190,200); + $pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1); + $pdf->SetLineStyle(array('dash'=>0)); + } + $nexY+=2; // Passe espace entre les lignes // Detect if some page were added automatically and output _tableau for past pages diff --git a/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php b/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php index fdc97727658..00e1dd8e5e1 100644 --- a/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php +++ b/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php @@ -354,6 +354,15 @@ class pdf_muscadet extends ModelePDFSuppliersOrders $this->localtax1[$localtax1rate]+=$localtax1ligne; $this->localtax2[$localtax2rate]+=$localtax2ligne; + // Add line + if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES)) + { + $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(210,210,210))); + //$pdf->SetDrawColor(190,190,200); + $pdf->line($this->marge_gauche, $nexY+1, $this->page_largeur - $this->marge_droite, $nexY+1); + $pdf->SetLineStyle(array('dash'=>0)); + } + $nexY+=2; // Passe espace entre les lignes // Detect if some page were added automatically and output _tableau for past pages From 35a887f8699c476e9995a5cd8f1e514d0e36eb3e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 21 Nov 2012 20:24:15 +0100 Subject: [PATCH 31/33] Clean code --- htdocs/exports/export.php | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index c8e831fc3ae..8f4ceefcba6 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -94,7 +94,6 @@ $entitytolang = array( ); $array_selected=isset($_SESSION["export_selected_fields"])?$_SESSION["export_selected_fields"]:array(); -//$array_filtered=isset($_SESSION["export_filtered_fields"])?$_SESSION["export_filtered_fields"]:array(); $array_filtervalue=isset($_SESSION["export_FilterValue_fields"])?$_SESSION["export_FilterValue_fields"]:array(); $datatoexport=GETPOST("datatoexport"); $action=GETPOST('action', 'alpha'); @@ -220,7 +219,6 @@ if ($step == 1 || $action == 'cleanselect') $_SESSION["export_filtered_fields"]=array(); $array_selected=array(); $array_filtervalue=array(); - $array_filtered=array(); } if ($action == 'builddoc') @@ -259,6 +257,7 @@ if ($action == 'deleteprof') } } +// TODO The export for filter is not yet implemented (old code created conflicts with step 2). We must use same way of working and same combo list of predefined export than step 2. if ($action == 'add_export_model') { if ($export_name) @@ -273,20 +272,16 @@ if ($action == 'add_export_model') $hexa.=$key; } - $hexafilter=''; $hexafiltervalue=''; - foreach($array_filtered as $key=>$val) + foreach($array_filtervalue as $key=>$val) { - if ($hexafilter) $hexafilter.=','; if ($hexafilter) $hexafiltervalue.=','; - $hexafilter.=$key; - $hexafiltervalue.=$array_filtervalue[$key]; + $hexafiltervalue.=$key.'='.$val; } $objexport->model_name = $export_name; $objexport->datatoexport = $datatoexport; $objexport->hexa = $hexa; - $objexport->hexafilter = $hexafilter; $objexport->hexafiltervalue = $hexafiltervalue; $result = $objexport->create($user); @@ -312,11 +307,9 @@ if ($action == 'add_export_model') if ($step == 2 && $action == 'select_model') { $_SESSION["export_selected_fields"]=array(); - //$_SESSION["export_filtered_fields"]=array(); $_SESSION["export_FilterValue_fields"]=array(); $array_selected=array(); - $array_filtered=array(); $array_filtervalue=array(); $result = $objexport->fetch($exportmodelid); @@ -336,11 +329,10 @@ if ($step == 2 && $action == 'select_model') $i=1; foreach($fieldsarray as $val) { - $array_filtered[$val]=$i; - $array_filtervalue[$val]=$fieldsarrayvalue[$i-1]; + $tmp=explode('=',$val); + $array_filtervalue[$tmp[0]]=$tmp[1]; $i++; } - //$_SESSION["export_filtered_fields"]=$array_filtered; $_SESSION["export_FilterValue_fields"]=$array_filtervalue; } } From 59a305f6f1409aaad246b461ba838dd2718d8f55 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 21 Nov 2012 20:35:51 +0100 Subject: [PATCH 32/33] New: no dash line if last item. --- htdocs/core/modules/commande/doc/pdf_einstein.modules.php | 2 +- .../modules/expedition/doc/pdf_expedition_merou.modules.php | 4 ++-- .../modules/expedition/doc/pdf_expedition_rouget.modules.php | 2 +- htdocs/core/modules/facture/doc/pdf_crabe.modules.php | 2 +- htdocs/core/modules/livraison/pdf/pdf_typhon.modules.php | 2 +- htdocs/core/modules/project/pdf/pdf_baleine.modules.php | 2 +- htdocs/core/modules/propale/doc/pdf_azur.modules.php | 2 +- .../core/modules/supplier_invoice/pdf/pdf_canelle.modules.php | 2 +- .../core/modules/supplier_order/pdf/pdf_muscadet.modules.php | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php index 9e3a9de7889..6585f703e59 100644 --- a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php @@ -382,7 +382,7 @@ class pdf_einstein extends ModelePDFCommandes $this->localtax2[$localtax2rate]+=$localtax2ligne; // Add line - if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES)) + if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1)) { $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(210,210,210))); //$pdf->SetDrawColor(190,190,200); diff --git a/htdocs/core/modules/expedition/doc/pdf_expedition_merou.modules.php b/htdocs/core/modules/expedition/doc/pdf_expedition_merou.modules.php index bdd85bb2abc..374474e1337 100644 --- a/htdocs/core/modules/expedition/doc/pdf_expedition_merou.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_expedition_merou.modules.php @@ -243,8 +243,8 @@ class pdf_expedition_merou extends ModelePdfExpedition $pdf->SetXY(170, $curY); $pdf->MultiCell(30, 3, $object->lines[$i]->qty_shipped, 0, 'C', 0); - // Add line - if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES)) + // Add line + if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1)) { $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(210,210,210))); //$pdf->SetDrawColor(190,190,200); diff --git a/htdocs/core/modules/expedition/doc/pdf_expedition_rouget.modules.php b/htdocs/core/modules/expedition/doc/pdf_expedition_rouget.modules.php index 8e6cc244598..6cac5d287d9 100644 --- a/htdocs/core/modules/expedition/doc/pdf_expedition_rouget.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_expedition_rouget.modules.php @@ -263,7 +263,7 @@ class pdf_expedition_rouget extends ModelePdfExpedition $pdf->MultiCell(($this->page_largeur - $this->marge_droite - $this->posxqtytoship), 3, $object->lines[$i]->qty_shipped,'','C'); // Add line - if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES)) + if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1)) { $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(210,210,210))); //$pdf->SetDrawColor(190,190,200); diff --git a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php index 5a6e8d4a695..33827261db1 100755 --- a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php +++ b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php @@ -383,7 +383,7 @@ class pdf_crabe extends ModelePDFFactures $this->localtax2[$localtax2rate]+=$localtax2ligne; // Add line - if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES)) + if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1)) { $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(210,210,210))); //$pdf->SetDrawColor(190,190,200); diff --git a/htdocs/core/modules/livraison/pdf/pdf_typhon.modules.php b/htdocs/core/modules/livraison/pdf/pdf_typhon.modules.php index bc6e474b36c..a71f7be8aa7 100644 --- a/htdocs/core/modules/livraison/pdf/pdf_typhon.modules.php +++ b/htdocs/core/modules/livraison/pdf/pdf_typhon.modules.php @@ -307,7 +307,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder */ // Add line - if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES)) + if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1)) { $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(210,210,210))); //$pdf->SetDrawColor(190,190,200); diff --git a/htdocs/core/modules/project/pdf/pdf_baleine.modules.php b/htdocs/core/modules/project/pdf/pdf_baleine.modules.php index 62606ab68b6..6a38cd9f705 100644 --- a/htdocs/core/modules/project/pdf/pdf_baleine.modules.php +++ b/htdocs/core/modules/project/pdf/pdf_baleine.modules.php @@ -227,7 +227,7 @@ class pdf_baleine extends ModelePDFProjects $nexY = $pdf->GetY(); // Add line - if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES)) + if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1)) { $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(210,210,210))); //$pdf->SetDrawColor(190,190,200); diff --git a/htdocs/core/modules/propale/doc/pdf_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php index 7db7e29fb71..8535e1e7500 100644 --- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php @@ -380,7 +380,7 @@ class pdf_azur extends ModelePDFPropales $this->localtax2[$localtax2rate]+=$localtax2ligne; // Add line - if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES)) + if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1)) { $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(210,210,210))); //$pdf->SetDrawColor(190,190,200); diff --git a/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php b/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php index 458b277a735..d210a14a7f4 100755 --- a/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php +++ b/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php @@ -338,7 +338,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices $this->localtax2[$localtax2rate]+=$localtax2ligne; // Add line - if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES)) + if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1)) { $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(210,210,210))); //$pdf->SetDrawColor(190,190,200); diff --git a/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php b/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php index 00e1dd8e5e1..eb35a4b8b3b 100644 --- a/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php +++ b/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php @@ -355,7 +355,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders $this->localtax2[$localtax2rate]+=$localtax2ligne; // Add line - if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES)) + if (! empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblignes - 1)) { $pdf->SetLineStyle(array('dash'=>'1,1','color'=>array(210,210,210))); //$pdf->SetDrawColor(190,190,200); From e76ef823b833a2c6913bf708dbbb14c1d171b142 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 21 Nov 2012 23:01:36 +0100 Subject: [PATCH 33/33] New: Add a tab into members statistics to count members by nature. --- ChangeLog | 1 + htdocs/adherents/stats/byproperties.php | 151 ++++++++++++++++++++++++ htdocs/adherents/stats/geo.php | 3 +- htdocs/core/lib/member.lib.php | 7 +- htdocs/langs/ar_SA/members.lang | 2 +- htdocs/langs/bg_BG/members.lang | 2 +- htdocs/langs/da_DK/members.lang | 2 +- htdocs/langs/de_DE/members.lang | 2 +- htdocs/langs/el_GR/members.lang | 2 +- htdocs/langs/en_US/members.lang | 5 +- htdocs/langs/et_EE/members.lang | 2 +- htdocs/langs/fi_FI/members.lang | 2 +- htdocs/langs/fr_FR/members.lang | 3 + htdocs/langs/he_IL/members.lang | 2 +- htdocs/langs/hu_HU/members.lang | 2 +- htdocs/langs/is_IS/members.lang | 2 +- htdocs/langs/it_IT/members.lang | 2 +- htdocs/langs/ja_JP/members.lang | 2 +- htdocs/langs/nb_NO/members.lang | 2 +- htdocs/langs/nl_NL/members.lang | 2 +- htdocs/langs/pl_PL/members.lang | 2 +- htdocs/langs/pt_PT/members.lang | 2 +- htdocs/langs/ro_RO/members.lang | 2 +- htdocs/langs/ru_RU/members.lang | 2 +- htdocs/langs/sl_SI/members.lang | 2 +- htdocs/langs/sv_SE/members.lang | 2 +- htdocs/langs/tr_TR/members.lang | 2 +- htdocs/langs/zh_CN/members.lang | 2 +- htdocs/langs/zh_TW/members.lang | 2 +- 29 files changed, 190 insertions(+), 26 deletions(-) create mode 100755 htdocs/adherents/stats/byproperties.php diff --git a/ChangeLog b/ChangeLog index 42cd19157a8..892e37a9eda 100644 --- a/ChangeLog +++ b/ChangeLog @@ -26,6 +26,7 @@ For users: - New: Can insert URL links into elements lines. Also reported into PDF. - New: When a member is validated, we can subscribe to mailing-lists according to its type. +- New: Add a tab into members statistics to count members by nature. - New: Add link to third party into sells and purchase journal. - New: Suggest a method to generate a backup file for user with no access to mysqldump binary. diff --git a/htdocs/adherents/stats/byproperties.php b/htdocs/adherents/stats/byproperties.php new file mode 100755 index 00000000000..302992a707b --- /dev/null +++ b/htdocs/adherents/stats/byproperties.php @@ -0,0 +1,151 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file htdocs/adherents/stats/byproperties.php + * \ingroup member + * \brief Page with statistics on members + */ + +require '../../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; + +$graphwidth = 700; +$mapratio = 0.5; +$graphheight = round($graphwidth * $mapratio); + +$mode=GETPOST('mode')?GETPOST('mode'):''; + + +// Security check +if ($user->societe_id > 0) +{ + $action = ''; + $socid = $user->societe_id; +} +if (! $user->rights->adherent->cotisation->lire) + accessforbidden(); + +$year = strftime("%Y", time()); +$startyear=$year-2; +$endyear=$year; + + + +/* + * View + */ + +$memberstatic=new Adherent($db); + +llxHeader('','','','',0,0,array('http://www.google.com/jsapi')); + +$title=$langs->trans("MembersStatisticsByProperties"); + +print_fiche_titre($title, $mesg); + +dol_mkdir($dir); + +$tab='byproperties'; + +$data = array(); +$sql.="SELECT COUNT(d.rowid) as nb, MAX(d.datevalid) as lastdate, d.morphy as code"; +$sql.=" FROM ".MAIN_DB_PREFIX."adherent as d"; +$sql.=" WHERE d.entity IN (".getEntity().")"; +$sql.=" AND d.statut = 1"; +$sql.=" GROUP BY d.morphy"; + +$foundphy=$foundmor=0; + +// Define $data array +dol_syslog("Count member sql=".$sql); +$resql=$db->query($sql); +if ($resql) +{ + $num=$db->num_rows($resql); + $i=0; + while ($i < $num) + { + $obj=$db->fetch_object($resql); + + if ($obj->code == 'phy') $foundphy++; + if ($obj->code == 'mor') $foundmor++; + + $data[]=array('label'=>$obj->code, 'nb'=>$obj->nb, 'lastdate'=>$db->jdate($obj->lastdate)); + + $i++; + } + $db->free($resql); +} +else +{ + dol_print_error($db); +} + + +$head = member_stats_prepare_head($adh); + +dol_fiche_head($head, 'statsbyproperties', $langs->trans("Statistics"), 0, 'user'); + + +// Print title +if (! count($data)) +{ + print $langs->trans("NoValidatedMemberYet").'
    '; + print '
    '; +} +else +{ + print_fiche_titre($langs->trans("MembersByNature"),'',''); +} + +// Print array +print ''; +print ''; +print ''; +print ''; +print ''; +print ''; + +if (! $foundphy) $data[]=array('label'=>'phy','nb'=>'0','lastdate'=>''); +if (! $foundmor) $data[]=array('label'=>'mor','nb'=>'0','lastdate'=>''); + +$oldyear=0; +$var=true; +foreach ($data as $val) +{ + $year = $val['year']; + $var=!$var; + print ''; + print ''; + print ''; + print ''; + print ''; + $oldyear=$year; +} + +print '
    '.$langs->trans("Nature").''.$langs->trans("NbOfMembers").''.$langs->trans("LastMemberDate").'
    '.$memberstatic->getmorphylib($val['label']).''.$val['nb'].''.dol_print_date($val['lastdate'],'dayhour').'
    '; + + +dol_fiche_end(); + + +llxFooter(); + +$db->close(); +?> diff --git a/htdocs/adherents/stats/geo.php b/htdocs/adherents/stats/geo.php index b97133c4606..cdc731ecdca 100755 --- a/htdocs/adherents/stats/geo.php +++ b/htdocs/adherents/stats/geo.php @@ -277,7 +277,8 @@ if ($mode) dol_fiche_end(); -$db->close(); llxFooter(); + +$db->close(); ?> diff --git a/htdocs/core/lib/member.lib.php b/htdocs/core/lib/member.lib.php index a4357147732..88e740c1245 100644 --- a/htdocs/core/lib/member.lib.php +++ b/htdocs/core/lib/member.lib.php @@ -96,7 +96,7 @@ function member_prepare_head($object) $head[$h][2] = 'info'; $h++; - + complete_head_from_modules($conf,$langs,$object,$head,$h,'member','remove'); return $head; @@ -175,6 +175,11 @@ function member_stats_prepare_head($object) $head[$h][2] = 'statstown'; $h++; + $head[$h][0] = DOL_URL_ROOT.'/adherents/stats/byproperties.php'; + $head[$h][1] = $langs->trans('ByProperties'); + $head[$h][2] = 'statsbyproperties'; + $h++; + // Show more tabs from modules // Entries must be declared in modules descriptor with line // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab diff --git a/htdocs/langs/ar_SA/members.lang b/htdocs/langs/ar_SA/members.lang index b27b341f4e4..570dfab4069 100644 --- a/htdocs/langs/ar_SA/members.lang +++ b/htdocs/langs/ar_SA/members.lang @@ -202,7 +202,7 @@ LastSubscriptionDate=آخر موعد الاكتتاب LastSubscriptionAmount=آخر مبلغ الاشتراك MembersStatisticsByCountries=أعضاء إحصاءات حسب البلد MembersStatisticsByState=أعضاء إحصاءات الولاية / المقاطعة -MembersStatisticsByTowne=أعضاء إحصاءات بلدة +MembersStatisticsByTown=أعضاء إحصاءات بلدة NbOfMembers=عدد الأعضاء NoValidatedMemberYet=العثور على أي أعضاء التحقق من صحة MembersByCountryDesc=هذه الشاشة تظهر لك إحصاءات عن أعضاء من الدول. لكن الرسم يعتمد على خدمة غوغل الرسم البياني على الإنترنت ويتوفر فقط إذا كان على اتصال بالإنترنت ويعمل. diff --git a/htdocs/langs/bg_BG/members.lang b/htdocs/langs/bg_BG/members.lang index be719944efb..c2fabf1da50 100644 --- a/htdocs/langs/bg_BG/members.lang +++ b/htdocs/langs/bg_BG/members.lang @@ -178,7 +178,7 @@ LastSubscriptionDate=Последно абонамент дата LastSubscriptionAmount=Последно размера MembersStatisticsByCountries=Потребители статистика страната MembersStatisticsByState=Потребители статистика щат / провинция -MembersStatisticsByTowne=Потребители статистика града +MembersStatisticsByTown=Потребители статистика града NbOfMembers=Брой на членовете NoValidatedMemberYet=Няма потвърдени намерени MembersByCountryDesc=Този екран показва статистическите данни на членовете по страни. Графичен зависи обаче от Google онлайн услуга графика и е достъпна само ако интернет връзката се работи. diff --git a/htdocs/langs/da_DK/members.lang b/htdocs/langs/da_DK/members.lang index c4ba43b50b7..c2975ad715c 100644 --- a/htdocs/langs/da_DK/members.lang +++ b/htdocs/langs/da_DK/members.lang @@ -210,7 +210,7 @@ LastSubscriptionDate=Sidste abonnement dato LastSubscriptionAmount=Sidste tegningsbeløbet MembersStatisticsByCountries=Medlemmer statistik efter land MembersStatisticsByState=Medlemmer statistikker stat / provins -MembersStatisticsByTowne=Medlemmer statistikker byen +MembersStatisticsByTown=Medlemmer statistikker byen NbOfMembers=Antal medlemmer NoValidatedMemberYet=Ingen validerede medlemmer fundet MembersByCountryDesc=Denne skærm viser dig statistikker over medlemmer af lande. Grafisk afhænger dog på Google online-graf service og er kun tilgængelig, hvis en internetforbindelse virker. diff --git a/htdocs/langs/de_DE/members.lang b/htdocs/langs/de_DE/members.lang index 259f7e71a5b..45ce52e7ddf 100644 --- a/htdocs/langs/de_DE/members.lang +++ b/htdocs/langs/de_DE/members.lang @@ -175,7 +175,7 @@ LastSubscriptionDate=Letzter Abo-Termin LastSubscriptionAmount=Letzter Abo-Betrag MembersStatisticsByCountries=Mitgliederstatistik nach Ländern MembersStatisticsByState=Mitgliederstatistik nach Bundesländern -MembersStatisticsByTowne=Mitgliederstatistik nach Städten +MembersStatisticsByTown=Mitgliederstatistik nach Städten NbOfMembers=Anzahl der Mitglieder NoValidatedMemberYet=Kein freizugebenden Mitglieder gefunden MembersByCountryDesc=Diese Form zeigt Ihnen die Mitgliederstatistik nach Ländern. Die Grafik basiert auf Googles Online-Grafik-Service ab und funktioniert nur wenn eine Internverbindung besteht. diff --git a/htdocs/langs/el_GR/members.lang b/htdocs/langs/el_GR/members.lang index f34d810adf1..8343aff155c 100644 --- a/htdocs/langs/el_GR/members.lang +++ b/htdocs/langs/el_GR/members.lang @@ -171,7 +171,7 @@ LastSubscriptionDate=Τελευταία ημερομηνία εγγραφής LastSubscriptionAmount=Τελευταία ποσό συνδρομής MembersStatisticsByCountries=Μέλη στατιστικές ανά χώρα MembersStatisticsByState=Τα μέλη στατιστικών στοιχείων από πολιτεία / επαρχία -MembersStatisticsByTowne=Τα μέλη στατιστικών στοιχείων από την πόλη +MembersStatisticsByTown=Τα μέλη στατιστικών στοιχείων από την πόλη NbOfMembers=Αριθμός μελών NoValidatedMemberYet=Δεν επικυρώνονται τα μέλη βρέθηκαν MembersByCountryDesc=Αυτή η οθόνη σας δείξει στατιστικά στοιχεία σχετικά με τα μέλη από τις χώρες. Graphic εξαρτάται, ωστόσο, στην υπηρεσία της Google online διάγραμμα και είναι διαθέσιμο μόνο αν μια σύνδεση στο Διαδίκτυο είναι λειτουργεί. diff --git a/htdocs/langs/en_US/members.lang b/htdocs/langs/en_US/members.lang index ff993ec620a..8956502c3a9 100644 --- a/htdocs/langs/en_US/members.lang +++ b/htdocs/langs/en_US/members.lang @@ -170,7 +170,7 @@ LastSubscriptionDate=Last subscription date LastSubscriptionAmount=Last subscription amount MembersStatisticsByCountries=Members statistics by country MembersStatisticsByState=Members statistics by state/province -MembersStatisticsByTowne=Members statistics by town +MembersStatisticsByTown=Members statistics by town NbOfMembers=Number of members NoValidatedMemberYet=No validated members found MembersByCountryDesc=This screen show you statistics on members by countries. Graphic depends however on Google online graph service and is available only if an internet connection is is working. @@ -196,3 +196,6 @@ Collectivités=Organizations Particuliers=Personal Entreprises=Companies DOLIBARRFOUNDATION_PAYMENT_FORM=To make your subscription payment using a bank transfer, see page http://wiki.dolibarr.org/index.php/Subscribe.
    To pay using a Credit Card or Paypal, click on button at bottom of this page.
    +ByProperties=By characteristics +MembersStatisticsByProperties=Members statistics by characteristics +MembersByNature=Members by nature diff --git a/htdocs/langs/et_EE/members.lang b/htdocs/langs/et_EE/members.lang index a1b4e9f383d..b2d7eb1bc7a 100644 --- a/htdocs/langs/et_EE/members.lang +++ b/htdocs/langs/et_EE/members.lang @@ -177,7 +177,7 @@ LastSubscriptionDate=Last tellimise kuupäev LastSubscriptionAmount=Last märkimissummast MembersStatisticsByCountries=Liikmed statistika riik MembersStatisticsByState=Liikmed statistika / maakond -MembersStatisticsByTowne=Liikmed statistika linn +MembersStatisticsByTown=Liikmed statistika linn NbOfMembers=Liikmete arv NoValidatedMemberYet=Ükski valideeritud liikmed leitud MembersByCountryDesc=See ekraan näitab teile, statistika liikmetele riikides. Graphic sõltub siiski Google Interneti graafik teenust ning on saadaval vaid siis, kui internetiühendus on töötab. diff --git a/htdocs/langs/fi_FI/members.lang b/htdocs/langs/fi_FI/members.lang index 831892de7d7..b4c5c52f2d4 100644 --- a/htdocs/langs/fi_FI/members.lang +++ b/htdocs/langs/fi_FI/members.lang @@ -208,7 +208,7 @@ LastSubscriptionDate=Viimeinen merkintäpäivä LastSubscriptionAmount=Viime merkinnän määrästä MembersStatisticsByCountries=Jäsenten tilastot maittain MembersStatisticsByState=Jäsenten tilastot valtio / lääni -MembersStatisticsByTowne=Jäsenten tilastot kaupunki +MembersStatisticsByTown=Jäsenten tilastot kaupunki NbOfMembers=Jäsenmäärä NoValidatedMemberYet=Ei validoitu jäsenet pitivät MembersByCountryDesc=Tämä ruutu näyttää tilastoja jäseniä maittain. Graphic riippuu kuitenkin Googlen online-käyrä palvelu ja on käytettävissä vain, jos internet-yhteys toimii. diff --git a/htdocs/langs/fr_FR/members.lang b/htdocs/langs/fr_FR/members.lang index 87bb226f317..2ccafef4cab 100644 --- a/htdocs/langs/fr_FR/members.lang +++ b/htdocs/langs/fr_FR/members.lang @@ -201,3 +201,6 @@ Collectivités=Collectivités Particuliers=Particuliers Entreprises=Entreprises DOLIBARRFOUNDATION_PAYMENT_FORM=Pour réaliser le paiement de votre cotisation par virement bancaire ou par chèque, consultez la page http://wiki.dolibarr.org/index.php/Adhérer.
    Pour payer dès maintenant par Carte Bancaire ou Paypal, cliquez sur le bouton au bas de cette page.
    +ByProperties=Par caractéristiques +MembersStatisticsByProperties=Statistiques des adhérents par caractéristiques +MembersByNature=Adhérents par nature diff --git a/htdocs/langs/he_IL/members.lang b/htdocs/langs/he_IL/members.lang index dc23fd846ce..b8f1a2389d0 100644 --- a/htdocs/langs/he_IL/members.lang +++ b/htdocs/langs/he_IL/members.lang @@ -177,7 +177,7 @@ LastSubscriptionDate=מנוי אחרונה תאריך LastSubscriptionAmount=המינוי האחרון כמות MembersStatisticsByCountries=משתמשים סטטיסטיקה לפי מדינות MembersStatisticsByState=חברים הסטטיסטיקה של מדינה / מחוז -MembersStatisticsByTowne=חברים הסטטיסטיקה של העיר +MembersStatisticsByTown=חברים הסטטיסטיקה של העיר NbOfMembers=מספר החברים NoValidatedMemberYet=אין חברים תוקף נמצא MembersByCountryDesc=מסך זה מראה לך נתונים סטטיסטיים על החברים של מדינות. עם זאת גרפי תלוי על שירות Google גרף באינטרנט זמינה רק אם החיבור לאינטרנט הוא עובד. diff --git a/htdocs/langs/hu_HU/members.lang b/htdocs/langs/hu_HU/members.lang index 9d4026e2e59..a1baf95f0c6 100644 --- a/htdocs/langs/hu_HU/members.lang +++ b/htdocs/langs/hu_HU/members.lang @@ -177,7 +177,7 @@ LastSubscriptionDate=Utolsó dátum előfizetés LastSubscriptionAmount=Utolsó előfizetés összege MembersStatisticsByCountries=Tagok statisztikája ország MembersStatisticsByState=Tagok statisztikája állam / tartomány -MembersStatisticsByTowne=Tagok statisztikája város +MembersStatisticsByTown=Tagok statisztikája város NbOfMembers=Tagok száma NoValidatedMemberYet=Nem hitelesített tagok található MembersByCountryDesc=Ez a képernyő megmutatja statisztikát tagok országokban. Grafikus függ azonban a Google online grafikon szolgáltatást és csak akkor elérhető, ha az internet kapcsolat működik. diff --git a/htdocs/langs/is_IS/members.lang b/htdocs/langs/is_IS/members.lang index f73002b70d5..d64fc0dbd55 100644 --- a/htdocs/langs/is_IS/members.lang +++ b/htdocs/langs/is_IS/members.lang @@ -190,7 +190,7 @@ LastSubscriptionDate=Síðast áskrift dagsetning LastSubscriptionAmount=Síðast áskrift upphæð MembersStatisticsByCountries=Notendur tölfræði eftir landi MembersStatisticsByState=Notendur tölfræði eftir fylki / hérað -MembersStatisticsByTowne=Notendur tölfræði eftir bænum +MembersStatisticsByTown=Notendur tölfræði eftir bænum NbOfMembers=Fjöldi félaga NoValidatedMemberYet=Engar fullgiltar meðlimir fundust MembersByCountryDesc=Þessi skjár sýnir þér tölfræði á meðlimum með löndum. Grafísk veltur þó á Google netinu línurit þjónustu og er aðeins í boði ef nettengingin er er að vinna. diff --git a/htdocs/langs/it_IT/members.lang b/htdocs/langs/it_IT/members.lang index 0d67a3952cd..4000e50c514 100644 --- a/htdocs/langs/it_IT/members.lang +++ b/htdocs/langs/it_IT/members.lang @@ -105,7 +105,7 @@ MembersListValid =Elenco dei membri validi Members =Membri MembersStatisticsByCountries =Statistiche per paese MembersStatisticsByState =Statistiche per stato/provincia -MembersStatisticsByTowne =Statistiche per città +MembersStatisticsByTown =Statistiche per città MembersStatisticsDesc =Scegli quali statistiche visualizzare... MembersStatusNotPaid =Membri non pagati MembersStatusNotPaidShort =Non pagati diff --git a/htdocs/langs/ja_JP/members.lang b/htdocs/langs/ja_JP/members.lang index d736d3b6386..4fee5b42355 100644 --- a/htdocs/langs/ja_JP/members.lang +++ b/htdocs/langs/ja_JP/members.lang @@ -177,7 +177,7 @@ LastSubscriptionDate=最後のサブスクリプションの日付 LastSubscriptionAmount=最後のサブスクリプションの量 MembersStatisticsByCountries=国別メンバー統計 MembersStatisticsByState=都道府県/州によってメンバーの統計 -MembersStatisticsByTowne=町によってメンバーの統計 +MembersStatisticsByTown=町によってメンバーの統計 NbOfMembers=会員数 NoValidatedMemberYet=いいえ検証メンバーが見つかりませんでした MembersByCountryDesc=この画面には、国によるメンバーの統計情報を表示します。グラフィックは、Googleのオンライングラフサービスに依存しますが、インターネット接続が機能している場合にのみ使用できます。 diff --git a/htdocs/langs/nb_NO/members.lang b/htdocs/langs/nb_NO/members.lang index 3b732a08851..471b4e735a9 100644 --- a/htdocs/langs/nb_NO/members.lang +++ b/htdocs/langs/nb_NO/members.lang @@ -185,7 +185,7 @@ LastSubscriptionDate=Siste abonnement dato LastSubscriptionAmount=Siste tegningsbeløp MembersStatisticsByCountries=Medlemmer statistikk etter land MembersStatisticsByState=Medlemmer statistikk etter delstat / provins -MembersStatisticsByTowne=Medlemmer statistikk etter by +MembersStatisticsByTown=Medlemmer statistikk etter by NbOfMembers=Antall medlemmer NoValidatedMemberYet=Ingen validerte medlemmer funnet MembersByCountryDesc=Denne skjermen viser deg statistikk på medlemmer av land. Graphic imidlertid avhengig Google elektroniske grafen service og er bare tilgjengelig hvis en internett-tilkobling er fungerer. diff --git a/htdocs/langs/nl_NL/members.lang b/htdocs/langs/nl_NL/members.lang index 88039618f94..385be2142b8 100644 --- a/htdocs/langs/nl_NL/members.lang +++ b/htdocs/langs/nl_NL/members.lang @@ -171,7 +171,7 @@ LastSubscriptionAmount = Laatste abonnementsaantal // START - Lines generated via autotranslator.php tool (2011-10-10 01:46:39). // Reference language: en_US -> nl_NL MembersStatisticsByState=Leden statistieken per staat / provincie -MembersStatisticsByTowne=Leden van de statistieken per gemeente +MembersStatisticsByTown=Leden van de statistieken per gemeente NbOfMembers=Aantal leden NoValidatedMemberYet=Geen gevalideerde leden gevonden MembersByCountryDesc=Dit scherm tonen statistieken over de leden door de landen. Grafisch is echter afhankelijk van Google online grafiek service en is alleen beschikbaar als een internet verbinding is werkt. diff --git a/htdocs/langs/pl_PL/members.lang b/htdocs/langs/pl_PL/members.lang index 169b1865f4d..4782007adfd 100644 --- a/htdocs/langs/pl_PL/members.lang +++ b/htdocs/langs/pl_PL/members.lang @@ -200,7 +200,7 @@ LastSubscriptionDate=Ostatnia data abonament LastSubscriptionAmount=Ostatnio kwota subskrypcji MembersStatisticsByCountries=Użytkownicy statystyki według kraju MembersStatisticsByState=Użytkownicy statystyki na State / Province -MembersStatisticsByTowne=Użytkownicy statystyki na miasto +MembersStatisticsByTown=Użytkownicy statystyki na miasto NbOfMembers=Liczba członków NoValidatedMemberYet=Żadna potwierdzona znaleziono użytkowników MembersByCountryDesc=Ten ekran pokaże statystyki członków przez poszczególne kraje. Graficzny zależy jednak na Google usługi online grafów i jest dostępna tylko wtedy, gdy połączenie internetowe działa. diff --git a/htdocs/langs/pt_PT/members.lang b/htdocs/langs/pt_PT/members.lang index 0fb1b068b90..48f2ee0a65b 100644 --- a/htdocs/langs/pt_PT/members.lang +++ b/htdocs/langs/pt_PT/members.lang @@ -187,7 +187,7 @@ LastSubscriptionDate=Última data de subscrição LastSubscriptionAmount=Montante de subscrição Última MembersStatisticsByCountries=Membros estatísticas por país MembersStatisticsByState=Membros estatísticas por estado / província -MembersStatisticsByTowne=Membros estatísticas por cidade +MembersStatisticsByTown=Membros estatísticas por cidade NbOfMembers=Número de membros NoValidatedMemberYet=Nenhum membro validado encontrado MembersByCountryDesc=Esta tela mostrará estatísticas sobre membros dos países. Gráfico depende, contudo, o serviço Google gráfico on-line e está disponível apenas se uma ligação à Internet é está funcionando. diff --git a/htdocs/langs/ro_RO/members.lang b/htdocs/langs/ro_RO/members.lang index 99eba7915ad..067614c8b30 100644 --- a/htdocs/langs/ro_RO/members.lang +++ b/htdocs/langs/ro_RO/members.lang @@ -203,7 +203,7 @@ LastSubscriptionDate=Ultima data de abonament LastSubscriptionAmount=Ultima sumă abonament MembersStatisticsByCountries=Membri statisticilor în funcţie de ţară MembersStatisticsByState=Statistici Membri de stat / provincie -MembersStatisticsByTowne=Statistici Membri de oraş +MembersStatisticsByTown=Statistici Membri de oraş NbOfMembers=Număr de membri NoValidatedMemberYet=Nici membrii validate găsit MembersByCountryDesc=Acest ecran vă arată statisticile cu privire la membrii de ţări. Graphic depinde de toate acestea, cu privire la serviciul on-line Google grafic şi este disponibil numai în cazul în care o conexiune la internet este este de lucru. diff --git a/htdocs/langs/ru_RU/members.lang b/htdocs/langs/ru_RU/members.lang index 2c20a9b9006..926338e3119 100644 --- a/htdocs/langs/ru_RU/members.lang +++ b/htdocs/langs/ru_RU/members.lang @@ -198,7 +198,7 @@ LastSubscriptionDate=Последний день подписки LastSubscriptionAmount=Последняя сумма подписки MembersStatisticsByCountries=Члены статистику по странам MembersStatisticsByState=Члены статистики штата / провинции -MembersStatisticsByTowne=Члены статистики города +MembersStatisticsByTown=Члены статистики города NbOfMembers=Количество членов NoValidatedMemberYet=Нет проверки члены найдены MembersByCountryDesc=Этот экран покажет вам статистику членов странами. Графический зависит однако от Google сервис график онлайн и доступна, только если подключение к Интернету работает. diff --git a/htdocs/langs/sl_SI/members.lang b/htdocs/langs/sl_SI/members.lang index 62e47644903..a16b20fbca8 100644 --- a/htdocs/langs/sl_SI/members.lang +++ b/htdocs/langs/sl_SI/members.lang @@ -167,7 +167,7 @@ LastSubscriptionDate = Zadnji datum članarine LastSubscriptionAmount = Zadnji znesek članarine MembersStatisticsByCountries = Statistika članov po državah MembersStatisticsByState = Statistika članov po deželah -MembersStatisticsByTowne = Statistika članov po mestih +MembersStatisticsByTown = Statistika članov po mestih NbOfMembers = Število članov NoValidatedMemberYet = Najdeni so nepotrjeni člani MembersByCountryDesc = Na tem zaslonu je prikazana statistika članov po državah. Grafika je odvisna od Google storitve in je na voljo samo pri delujoči internetni povezavi. diff --git a/htdocs/langs/sv_SE/members.lang b/htdocs/langs/sv_SE/members.lang index 38e94794837..bf398731fe3 100644 --- a/htdocs/langs/sv_SE/members.lang +++ b/htdocs/langs/sv_SE/members.lang @@ -190,7 +190,7 @@ LastSubscriptionDate=Senast teckningsdag LastSubscriptionAmount=Senast teckningsbelopp MembersStatisticsByCountries=Medlemmar statistik per land MembersStatisticsByState=Medlemmar statistik från stat / provins -MembersStatisticsByTowne=Medlemmar statistik per kommun +MembersStatisticsByTown=Medlemmar statistik per kommun NbOfMembers=Antal medlemmar NoValidatedMemberYet=Inga godkända medlemmar hittades MembersByCountryDesc=Denna skärm visar statistik om medlemmar med länder. Grafisk beror dock på Google online grafen service och är tillgänglig endast om en Internet-anslutning fungerar. diff --git a/htdocs/langs/tr_TR/members.lang b/htdocs/langs/tr_TR/members.lang index 45cf570e6de..fc201e9e829 100644 --- a/htdocs/langs/tr_TR/members.lang +++ b/htdocs/langs/tr_TR/members.lang @@ -180,7 +180,7 @@ LastSubscriptionAmount=Son abonelik tutarı "MembersStatisticsByCountries=Ülkelere göre üyelik istatistikleri " MembersStatisticsByState=Eyalete/ile göre üyelik istatistikleri -MembersStatisticsByTowne=İlçelere göre üyelik istatistikleri +MembersStatisticsByTown=İlçelere göre üyelik istatistikleri NbOfMembers=Üye sayısı NoValidatedMemberYet=Doğrulanmamış üye bulunmadı MembersByCountryDesc=Bu ekran ülkelere göre üyelik istatisklerini görüntüler. Grafik eğer internet hizmeti çalışıyor ise sadece google çevrimiçi grafik hizmetince sağlanır. diff --git a/htdocs/langs/zh_CN/members.lang b/htdocs/langs/zh_CN/members.lang index 9e4704586fa..e8ad2efad6f 100644 --- a/htdocs/langs/zh_CN/members.lang +++ b/htdocs/langs/zh_CN/members.lang @@ -190,7 +190,7 @@ LastSubscriptionDate=最后认购日期 LastSubscriptionAmount=最后认购金额 MembersStatisticsByCountries=成员由国家统计 MembersStatisticsByState=成员由州/省的统计信息 -MembersStatisticsByTowne=成员由镇统计 +MembersStatisticsByTown=成员由镇统计 NbOfMembers=成员数 NoValidatedMemberYet=没有验证的成员发现 MembersByCountryDesc=该屏幕显示您成员国的统计数字。然而,图形取决于谷歌在线图服务,可只有一个互联网连接工作。 diff --git a/htdocs/langs/zh_TW/members.lang b/htdocs/langs/zh_TW/members.lang index 6b4aff0ee8e..c08035af7a1 100644 --- a/htdocs/langs/zh_TW/members.lang +++ b/htdocs/langs/zh_TW/members.lang @@ -190,7 +190,7 @@ LastSubscriptionDate=最後認購日期 LastSubscriptionAmount=最後認購金額 MembersStatisticsByCountries=成員由國家統計 MembersStatisticsByState=成員由州/省的統計信息 -MembersStatisticsByTowne=成員由鎮統計 +MembersStatisticsByTown=成員由鎮統計 NbOfMembers=成員數 NoValidatedMemberYet=沒有驗證的成員發現 MembersByCountryDesc=該屏幕顯示您成員國的統計數字。然而,圖形取決於谷歌在線圖服務,可只有一個互聯網連接工作。