From 879f882a777a059fb1e95e25b870a59b84c9fcc9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 22 Jan 2006 16:14:33 +0000 Subject: [PATCH] =?UTF-8?q?New:=20Ca=20y=20est.=20L'export=20est=20compl?= =?UTF-8?q?=E8tement=20op=E9rationnel.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/exports/export.class.php | 51 +++--- htdocs/exports/export.php | 81 +++++----- htdocs/exports/index.php | 4 +- htdocs/html.form.class.php | 149 ++++++++++-------- .../modules/DolibarrModules.class.php | 12 +- .../modules/export/export_csv.modules.php | 75 +++++++-- .../modules/export/modules_export.php | 73 ++++++--- htdocs/includes/modules/modAdherent.class.php | 14 +- htdocs/includes/modules/modSociete.class.php | 31 +++- htdocs/includes/modules/modUser.class.php | 12 +- htdocs/langs/en_US/exports.lang | 4 +- htdocs/langs/fr_FR/companies.lang | 2 +- htdocs/langs/fr_FR/exports.lang | 4 +- 13 files changed, 342 insertions(+), 170 deletions(-) diff --git a/htdocs/exports/export.class.php b/htdocs/exports/export.class.php index 4a06f228e74..2464b2a0278 100644 --- a/htdocs/exports/export.class.php +++ b/htdocs/exports/export.class.php @@ -21,7 +21,7 @@ /** \file htdocs/exports/export.class.php - \ingroup core + \ingroup export \brief Fichier de la classe des exports \version $Revision$ */ @@ -37,9 +37,9 @@ class Export var $array_export_code=array(); // Tableau de "idmodule_numlot" var $array_export_module=array(); // Tableau de "nom de modules" var $array_export_label=array(); // Tableau de "libellé de lots" - var $array_export_fields_code=array(); - var $array_export_fields_label=array(); - var $array_export_sql=array(); + var $array_export_sql=array(); // Tableau des "requetes sql" + var $array_export_fields=array(); // Tableau des liste de champ+libellé à exporter + var $array_export_alias=array(); // Tableau des liste de champ+alias à exporter /** @@ -59,6 +59,8 @@ class Export */ function load_arrays($user,$filter='') { + global $langs; + dolibarr_syslog("Export::load_arrays user=$user filter=$filter"); $dir=DOL_DOCUMENT_ROOT."/includes/modules"; @@ -108,11 +110,19 @@ class Export $this->array_export_code[$i]=$module->export_code[$r]; // Libellé du dataset export $this->array_export_label[$i]=$module->export_label[$r]; - // Tableau des champ à exporter (clé=champ, valeur=libellé) - $this->array_export_fields[$i]=$module->export_fields_array[$r]; // Requete sql du dataset $this->array_export_sql[$i]=$module->export_sql[$r]; + // Tableau des champ à exporter (clé=champ, valeur=libellé) + $this->array_export_fields[$i]=$module->export_fields_array[$r]; + // Tableau des alias à exporter (clé=champ, valeur=alias) + $this->array_export_alias[$i]=$module->export_alias_array[$r]; + // Charge fichier lang en rapport + foreach($module->getLangFilesArray() as $key) + { + $langs->load($key); + } + dolibarr_syslog("Export chargé pour le module ".$modulename." en index ".$i.", dataset=".$module->export_code[$r].", nbre de champs=".sizeof($module->export_fields_code[$r])); $i++; } @@ -137,6 +147,7 @@ class Export global $conf,$langs; $indice=0; + asort($array_selected); dolibarr_syslog("Export::build_file $model, $datatoexport, $array_selected"); @@ -145,7 +156,7 @@ class Export $file = "export_".$model.".modules.php"; $classname = "Export".$model; require_once($dir.$file); - $obj = new $classname($db); + $objmodel = new $classname($db); // Execute requete export $sql=$this->array_export_sql[$indice]; @@ -153,37 +164,37 @@ class Export if ($resql) { //$this->array_export_label[$indice] - $filename="export_user".$user->id."_set".$datatoexport; - $filename.='.'.$obj->get_extension(); - $dirname=$conf->export->dir_ouput; - + $filename="export_set".$datatoexport; + $filename.='.'.$objmodel->getDriverExtension(); + $dirname=$conf->export->dir_ouput.'/'.$user->id; + // Open file create_exdir($dirname); - $obj->open_file($dirname."/".$filename); + $objmodel->open_file($dirname."/".$filename); // Genere en-tete - $obj->write_header(); - + $objmodel->write_header($langs); + // Genere ligne de titre - $obj->write_title(); + $objmodel->write_title($this->array_export_fields[$indice],$array_selected,$langs); while ($objp = $this->db->fetch_object($resql)) { $var=!$var; - $obj->write_record($objp,$array_selected); + $objmodel->write_record($this->array_export_alias[$indice],$array_selected,$objp); } // Genere en-tete - $obj->write_footer(); + $objmodel->write_footer($langs); // Close file - $obj->close_file(); + $objmodel->close_file(); } else { - $this->error=$this->db->error(); - dolibarr_syslog("Error: sql=$sql ".$this->error); + $this->error=$this->db->error()." - sql=".$sql; + dolibarr_syslog("Error: ".$this->error); return -1; } } diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index 8849e4aa584..a747711a90d 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -21,13 +21,15 @@ /** \file htdocs/exports/export.php - \ingroup core + \ingroup export \brief Page d'edition d'un export \version $Revision$ */ require_once("./pre.inc.php"); require_once(DOL_DOCUMENT_ROOT."/exports/export.class.php"); +require_once(DOL_DOCUMENT_ROOT.'/includes/modules/export/modules_export.php'); + $langs->load("exports"); @@ -38,11 +40,13 @@ if (! $user->societe_id == 0) $array_selected=isset($_SESSION["export_selected_fields"])?$_SESSION["export_selected_fields"]:array(); $datatoexport=isset($_GET["datatoexport"])?$_GET["datatoexport"]:''; -$export=new Export($db); -$export->load_arrays($user,$datatoexport); $action=isset($_GET["action"]) ? $_GET["action"] : (isset($_POST["action"])?$_POST["action"]:''); $step=isset($_GET["step"])?$_GET["step"]:'1'; +$objexport=new Export($db); +$objexport->load_arrays($user,$datatoexport); + +$objmodel=new ModeleExports(); /* @@ -100,14 +104,16 @@ if ($step == 1 || $action == 'cleanselect') if ($action == 'builddoc') { - include_once(DOL_DOCUMENT_ROOT.'/includes/modules/export/modules_export.php'); - $model=new ModeleExports(); - $liste=$model->liste_modeles($db); - - $model=$liste[$_POST["model"]]; - // Genère le fichier - $export->build_file($user, $model, $datatoexport, $array_selected); + $result=$objexport->build_file($user, $_POST["model"], $datatoexport, $array_selected); + if ($result < 0) + { + $mesg='
'.$objexport->error.'
'; + } + else + { +// $mesg='
'.$langs->trans("FileSuccessfulyBuilt").'
'; + } } @@ -151,18 +157,18 @@ if ($step == 1 || ! $datatoexport) print ' '; print ''; $val=true; - if (sizeof($export->array_export_code)) + if (sizeof($objexport->array_export_code)) { - foreach ($export->array_export_code as $key => $value) + foreach ($objexport->array_export_code as $key => $value) { $val=!$val; print ''; - print img_object($export->array_export_module[$key]->getName(),$export->array_export_module[$key]->picto).' '; - print $export->array_export_module[$key]->getName(); + print img_object($objexport->array_export_module[$key]->getName(),$objexport->array_export_module[$key]->picto).' '; + print $objexport->array_export_module[$key]->getName(); print ''; - print $export->array_export_label[$key]; + print $objexport->array_export_label[$key]; print ''; - print ''.img_picto($langs->trans("NewExport"),'filenew').''; + print ''.img_picto($langs->trans("NewExport"),'filenew').''; print ''; } } @@ -200,13 +206,13 @@ if ($step == 2 && $datatoexport) // Module print ''.$langs->trans("Module").''; print ''; - print img_object($export->array_export_module[0]->getName(),$export->array_export_module[0]->picto).' '; - print $export->array_export_module[0]->getName(); + print img_object($objexport->array_export_module[0]->getName(),$objexport->array_export_module[0]->picto).' '; + print $objexport->array_export_module[0]->getName(); print ''; // Lot de données à exporter print ''.$langs->trans("DatasetToExport").''; - print ''.$export->array_export_label[0].''; + print ''.$objexport->array_export_label[0].''; print ''; print '
'; @@ -220,7 +226,7 @@ if ($step == 2 && $datatoexport) print ''; // Champs exportables - $fieldsarray=$export->array_export_fields[0]; + $fieldsarray=$objexport->array_export_fields[0]; # $this->array_export_module[$i]=$module; # $this->array_export_code[$i]=$module->export_code[$r]; @@ -301,13 +307,13 @@ if ($step == 3 && $datatoexport) // Module print ''.$langs->trans("Module").''; print ''; - print img_object($export->array_export_module[0]->getName(),$export->array_export_module[0]->picto).' '; - print $export->array_export_module[0]->getName(); + print img_object($objexport->array_export_module[0]->getName(),$objexport->array_export_module[0]->picto).' '; + print $objexport->array_export_module[0]->getName(); print ''; // Lot de données à exporter print ''.$langs->trans("DatasetToExport").''; - print ''.$export->array_export_label[0].''; + print ''.$objexport->array_export_label[0].''; // Nbre champs exportés print ''.$langs->trans("ExportedFields").''; @@ -315,7 +321,7 @@ if ($step == 3 && $datatoexport) foreach($array_selected as $code=>$value) { $list.=($list?',':''); - $list.=$langs->trans($export->array_export_fields[0][$code]); + $list.=$langs->trans($objexport->array_export_fields[0][$code]); } print ''.$list.''; @@ -337,7 +343,7 @@ if ($step == 3 && $datatoexport) $var=!$var; print ""; - print ''.$langs->trans($export->array_export_fields[0][$code]).' ('.$code.')'; + print ''.$langs->trans($objexport->array_export_fields[0][$code]).' ('.$code.')'; print ''; print $value.' '; @@ -348,7 +354,7 @@ if ($step == 3 && $datatoexport) print ' '; - print ''.$langs->trans($export->array_export_fields[0][$code]).''; + print ''.$langs->trans($objexport->array_export_fields[0][$code]).''; print ''; } @@ -371,7 +377,6 @@ if ($step == 3 && $datatoexport) print ''; } - if ($step == 4 && $datatoexport) { asort($array_selected); @@ -407,13 +412,13 @@ if ($step == 4 && $datatoexport) // Module print ''.$langs->trans("Module").''; print ''; - print img_object($export->array_export_module[0]->getName(),$export->array_export_module[0]->picto).' '; - print $export->array_export_module[0]->getName(); + print img_object($objexport->array_export_module[0]->getName(),$objexport->array_export_module[0]->picto).' '; + print $objexport->array_export_module[0]->getName(); print ''; // Lot de données à exporter print ''.$langs->trans("DatasetToExport").''; - print ''.$export->array_export_label[0].''; + print ''.$objexport->array_export_label[0].''; // Nbre champs exportés print ''.$langs->trans("ExportedFields").''; @@ -421,7 +426,7 @@ if ($step == 4 && $datatoexport) foreach($array_selected as $code=>$label) { $list.=($list?',':''); - $list.=$langs->trans($export->array_export_fields[0][$code]); + $list.=$langs->trans($objexport->array_export_fields[0][$code]); } print ''.$list.''; @@ -429,7 +434,6 @@ if ($step == 4 && $datatoexport) print '
'; print $langs->trans("NowClickToGenerateToBuildExportFile").'
'; - print '
'; // Liste des formats d'exports disponibles $var=true; @@ -440,26 +444,27 @@ if ($step == 4 && $datatoexport) print ''.$langs->trans("LibraryVersion").''; print ''; - include_once(DOL_DOCUMENT_ROOT.'/includes/modules/export/modules_export.php'); - $model=new ModeleExports(); - $liste=$model->liste_modeles($db); - + $liste=$objmodel->liste_modeles($db); foreach($liste as $key) { $var=!$var; - print ''.$model->getModelName($key).''.$model->getDriverName($key).''.$model->getDriverVersion($key).''; + print ''.$objmodel->getDriverLabel($key).''.$objmodel->getLibLabel($key).''.$objmodel->getLibVersion($key).''; } print ''; print ''; + if ($mesg) print $mesg; + $htmlform=new Form($db); print ''; print '
'; if (! is_dir($conf->export->dir_ouput)) create_exdir($conf->export->dir_ouput); + // Affiche liste des documents + // NB: La fonction show_documents rescanne les modules qd genallowed=1 $filename=$datatoexport; - $htmlform->show_documents('export',$filename,$conf->export->dir_ouput,$_SERVER["PHP_SELF"].'?step=4&datatoexport='.$datatoexport,1,1,'csv'); + $htmlform->show_documents('export',$filename,$conf->export->dir_ouput.'/'.$user->id,$_SERVER["PHP_SELF"].'?step=4&datatoexport='.$datatoexport,$liste,1,'csv'); print ' 
'; diff --git a/htdocs/exports/index.php b/htdocs/exports/index.php index d755d7cc01c..815cead50d5 100644 --- a/htdocs/exports/index.php +++ b/htdocs/exports/index.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2005-2006 Laurent Destailleur * * 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 @@ -67,7 +67,7 @@ $liste=$model->liste_modeles($db); foreach($liste as $key) { $var=!$var; - print ''.$model->getModelName($key).''.$model->getDriverName($key).''.$model->getDriverVersion($key).''; + print ''.$model->getDriverLabel($key).''.$model->getLibLabel($key).''.$model->getLibVersion($key).''; } print ''; diff --git a/htdocs/html.form.class.php b/htdocs/html.form.class.php index ba72fa1faf4..567253c7671 100644 --- a/htdocs/html.form.class.php +++ b/htdocs/html.form.class.php @@ -1606,62 +1606,65 @@ class Form } } - /** - \brief Affiche un select à partir d'un tableau - \param name nom de la zone select - \param array tableau de key+valeur - \param id key présélectionnée - \param empty 1 si il faut un valeur " " dans la liste, 0 sinon - \param key_libelle 1 pour afficher la key dans la valeur "[key] value" - */ - - function select_array($name, $array, $id='', $empty=0, $key_libelle=0) - { - print ''; + + $i = 0; + + if (strlen($id)) + { + if ($show_empty == 1) + { + $array[0] = " "; + } + reset($array); + } + + while (list($key, $value) = each ($array)) + { + print '\n"; + } + else + { + if ($value == '-') { $value=' '; } + print ">".$value."\n"; + } + } + + print "\n"; } - - while (list($key, $value) = each ($array)) - { - print "\n"; - } - else - { - if ($value=="-") { $value=" "; } - print ">$value\n"; - } - } - - print ""; - } - - /** - * \brief Renvoie la chaîne de caractère décrivant l'erreur - * - */ - - function error() - { - return $this->errorstr; - } + /** + * \brief Renvoie la chaîne de caractère décrivant l'erreur + */ + function error() + { + return $this->errorstr; + } /** @@ -1789,13 +1792,13 @@ class Form * \param filename Nom fichier sans extension * \param filedir Repertoire à scanner * \param urlsource Url page origine - * \param genallowed Génération autorisée - * \param delallowed Suppression autorisée + * \param genallowed Génération autorisée (1/0 ou array des formats) + * \param delallowed Suppression autorisée (1/0) * \param modelselected Modele à présélectionner par défaut * \remarks Le fichier de facture détaillée est de la forme * REFFACTURE-XXXXXX-detail.pdf ou XXXXX est une forme diverse */ - function show_documents($modulepart,$filename,$filedir,$urlsource,$genallowed,$delallowed=0,$modelselected='') + function show_documents($modulepart,$filename,$filedir,$urlsource,$genallowed,$delallowed=0,$modelselected='',$modelliste=array()) { // filedir = conf->...dir_ouput."/".get_exdir(id) @@ -1808,24 +1811,36 @@ class Form // Affiche en-tete tableau if ($genallowed) { - $liste=array(); + $modellist=array(); if ($modulepart == 'propal') { - include_once(DOL_DOCUMENT_ROOT.'/includes/modules/propale/modules_propale.php'); - $model=new ModelePDFPropales(); - $liste=$model->liste_modeles($this->db); + if (is_array($genallowed)) $modellist=$genallowed; + else + { + include_once(DOL_DOCUMENT_ROOT.'/includes/modules/propale/modules_propale.php'); + $model=new ModelePDFPropales(); + $modellist=$model->liste_modeles($this->db); + } } elseif ($modulepart == 'facture') { - include_once(DOL_DOCUMENT_ROOT.'/includes/modules/facture/modules_facture.php'); - $model=new ModelePDFFactures(); - $liste=$model->liste_modeles($this->db); + if (is_array($genallowed)) $modellist=$genallowed; + else + { + include_once(DOL_DOCUMENT_ROOT.'/includes/modules/facture/modules_facture.php'); + $model=new ModelePDFFactures(); + $modellist=$model->liste_modeles($this->db); + } } elseif ($modulepart == 'export') { - include_once(DOL_DOCUMENT_ROOT.'/includes/modules/export/modules_export.php'); - $model=new ModeleExports(); - $liste=$model->liste_modeles($this->db); + if (is_array($genallowed)) $modellist=$genallowed; + else + { + include_once(DOL_DOCUMENT_ROOT.'/includes/modules/export/modules_export.php'); + $model=new ModeleExports(); + $modellist=$model->liste_modeles($this->db); + } } else { @@ -1842,7 +1857,7 @@ class Form print ''; print ''; diff --git a/htdocs/includes/modules/DolibarrModules.class.php b/htdocs/includes/modules/DolibarrModules.class.php index 26e910960ab..b6cd0005341 100644 --- a/htdocs/includes/modules/DolibarrModules.class.php +++ b/htdocs/includes/modules/DolibarrModules.class.php @@ -253,9 +253,19 @@ class DolibarrModules } + /** + \brief Retourne la liste des fichiers lang en rapport avec le module + \return array Tableau des fichier lang + */ + function getLangFilesArray() + { + return $this->langfiles; + } + + /** \brief Insère ligne module - \return int Nombre d'erreurs (0 si ok) + \return int Nombre d'erreurs (0 si ok) */ function _dbactive() { diff --git a/htdocs/includes/modules/export/export_csv.modules.php b/htdocs/includes/modules/export/export_csv.modules.php index 9122b0afbeb..6e0ea41039b 100644 --- a/htdocs/includes/modules/export/export_csv.modules.php +++ b/htdocs/includes/modules/export/export_csv.modules.php @@ -38,9 +38,16 @@ require_once(DOL_DOCUMENT_ROOT ."/includes/modules/export/modules_export.php"); class ExportCsv extends ModeleExports { + var $id; + var $label; var $extension; + var $version; + + var $label_lib; + var $version_lib; + var $handle; // Handle fichier - + /** \brief Constructeur @@ -51,50 +58,96 @@ class ExportCsv extends ModeleExports global $conf,$langs; $this->db = $db; - $this->extension='csv'; + $this->id='csv'; // Same value then xxx in file name export_xxx.modules.php + $this->label='Csv'; // Label of driver + $this->extension='csv'; // Extension for generated file by this driver + $ver=split(' ','$Revision$'); + $this->version=$ver[2]; // Driver version + + // If driver use an external library, put its name here + $this->label_lib='Dolibarr'; + $this->version_lib=DOL_VERSION; } + function getDriverId() + { + return $this->id; + } - function get_extension() + function getDriverLabel() + { + return $this->label; + } + + function getDriverExtension() { return $this->extension; } + function getDriverVersion() + { + return $this->version; + } + + function getLibLabel() + { + return $this->label_lib; + } + + function getLibVersion() + { + return $this->version_lib; + } + function open_file($file) { dolibarr_syslog("ExportCsv::open_file file=$file"); $this->handle = fopen($file, "wt"); + return 0; } - function write_header() + function write_header($langs) { - + return 0; } - function write_title() + function write_title($array_export_fields_label,$array_selected_sorted,$langs) { - + foreach($array_selected_sorted as $code => $value) + { + fwrite($this->handle,$langs->trans($array_export_fields_label[$code]).";"); + } + fwrite($this->handle,"\n"); + return 0; } - function write_record() + function write_record($array_alias,$array_selected_sorted,$objp) { - + foreach($array_selected_sorted as $code => $value) + { + $alias=$array_alias[$code]; + //print "dd".$alias; + fwrite($this->handle,ereg_replace(';',',',$objp->$alias).";"); + } + fwrite($this->handle,"\n"); + return 0; } - function write_footer() + function write_footer($langs) { - + return 0; } function close_file() { fclose($this->handle); + return 0; } } diff --git a/htdocs/includes/modules/export/modules_export.php b/htdocs/includes/modules/export/modules_export.php index d732436995a..4f6abf156ce 100644 --- a/htdocs/includes/modules/export/modules_export.php +++ b/htdocs/includes/modules/export/modules_export.php @@ -37,47 +37,68 @@ class ModeleExports { var $error=''; - var $modelname; - var $drivername; + var $driverlabel; var $driverversion; + var $libabel; + var $libversion; + /** * \brief Constructeur */ function ModeleExports() { - $this->modelname=array('csv'=>'Csv','excel'=>'Excel'); - $this->drivername=array('csv'=>'Dolibarr','excel'=>'Php_WriteExcel'); - $this->driverversion=array('csv'=>DOL_VERSION,'excel'=>'?'); } /** - * \brief Renvoi la liste des modèles actifs + * \brief Charge en memoire et renvoie la liste des modèles actifs * \param db Handler de base */ function liste_modeles($db) { - //$liste=array('csv','excel'); - $liste=array('csv'); + dolibarr_syslog("ModeleExport::loadFormat"); + + $dir=DOL_DOCUMENT_ROOT."/includes/modules/export/"; + $handle=opendir($dir); + + // Recherche des fichiers drivers exports disponibles + $var=True; + $i=0; + while (($file = readdir($handle))!==false) + { + if (eregi("^export_(.*)\.modules\.php",$file,$reg)) + { + $moduleid=$reg[1]; - return $liste; - } + // Chargement de la classe + $file = $dir."/export_".$moduleid.".modules.php"; + $classname = "Export".ucfirst($moduleid); + + require_once($file); + $module = new $classname($db); + + // Driver properties + $this->driverlabel[$module->id]=$module->getDriverLabel(); + $this->driverversion[$module->id]=$module->getDriverVersion(); + // If use an external lib + $this->liblabel[$module->id]=$module->getLibLabel(); + $this->libversion[$module->id]=$module->getLibVersion(); + + $i++; + } + } - /** - * \brief Renvoi nom d'un format export - */ - function getModelName($key) - { - return $this->modelname[$key]; + return array_keys($this->driverlabel); } + /** * \brief Renvoi libelle d'un driver export */ - function getDriverName($key) + function getDriverLabel($key) { - return $this->drivername[$key]; + return $this->driverlabel[$key]; } /** @@ -88,6 +109,22 @@ class ModeleExports return $this->driverversion[$key]; } + /** + * \brief Renvoi libelle de librairie externe du driver + */ + function getLibLabel($key) + { + return $this->liblabel[$key]; + } + + /** + * \brief Renvoi version de librairie externe du driver + */ + function getLibVersion($key) + { + return $this->libversion[$key]; + } + /** diff --git a/htdocs/includes/modules/modAdherent.class.php b/htdocs/includes/modules/modAdherent.class.php index c43f4016821..bbcb24a6184 100644 --- a/htdocs/includes/modules/modAdherent.class.php +++ b/htdocs/includes/modules/modAdherent.class.php @@ -73,6 +73,7 @@ class modAdherent extends DolibarrModules //------------ $this->depends = array(); $this->requiredby = array(); + $this->langfiles = array("members","companies"); // Constantes //----------- @@ -195,8 +196,17 @@ class modAdherent extends DolibarrModules $r++; $this->export_code[$r]=$this->numero.'_'.$r; $this->export_label[$r]='Adhérents et attributs'; - $this->export_fields_array[$r]=array('a.nom'=>"Lastname",'a.prenom'=>"Firstname",'a.address'=>"Address",'a.cp'=>"Zip",'a.ville'=>"Town",'a.pays'=>"Country",'a.email'=>"Email",'a.login'=>"Login",'a.naiss'=>"Birthday"); - $this->export_sql[$r]="select ".join(',',array_keys($this->export_fields_array[$r])).' from '.MAIN_DB_PREFIX.'adherent as a'; + $this->export_fields_array[$r]=array('a.nom'=>"Lastname",'a.prenom'=>"Firstname",'a.adresse'=>"Address",'a.cp'=>"Zip",'a.ville'=>"Town",'a.pays'=>"Country",'a.email'=>"Email",'a.login'=>"Login",'a.naiss'=>"Birthday"); + $this->export_alias_array[$r]=array('a.nom'=>"lastname",'a.prenom'=>"firstname",'a.adresse'=>"address",'a.cp'=>"zip",'a.ville'=>"town",'a.pays'=>"country",'a.email'=>"email",'a.login'=>"login",'a.naiss'=>"birthday"); + $this->export_sql[$r]="select "; + $i=0; + foreach ($this->export_alias_array[$r] as $key => $value) + { + if ($i > 0) $this->export_sql[$r].=', '; + else $i++; + $this->export_sql[$r].=$key.' as '.$value; + } + $this->export_sql[$r].=' from '.MAIN_DB_PREFIX.'adherent as a'; $this->export_permission[$r]=array(array("adherent","export")); } diff --git a/htdocs/includes/modules/modSociete.class.php b/htdocs/includes/modules/modSociete.class.php index 4e8d1333e4d..4d97e230849 100644 --- a/htdocs/includes/modules/modSociete.class.php +++ b/htdocs/includes/modules/modSociete.class.php @@ -72,7 +72,8 @@ class modSociete extends DolibarrModules // Dépendances $this->depends = array(); $this->requiredby = array("modCommercial","modFacture","modFournisseur","modFicheinter","modPropale","modContrat","modCommande"); - + $this->langfiles = array("companies"); + // Constantes $this->const = array(); @@ -148,18 +149,38 @@ class modSociete extends DolibarrModules //-------- $r=0; + // Export des liste des societes et attributs $r++; $this->export_code[$r]=$this->numero.'_'.$r; $this->export_label[$r]='Liste des societes et attributs'; - $this->export_fields_array[$r]=array('s.idp'=>"Id",'s.nom'=>"Name",'s.prefix'=>"Prefix",'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.siret'=>"IdProf1",'s.siren'=>"IdProf2",'s.ape'=>"IdProf3",'s.tva_intra'=>"VATIntraShort",'s.capital'=>"Capital",'s.note'=>"Note"); - $this->export_sql[$r]="select ".join(',',array_keys($this->export_fields_array[$r])).' from '.MAIN_DB_PREFIX.'societe as s, '.MAIN_DB_PREFIX.'c_pays as p where s.fk_pays = p.rowid'; + $this->export_fields_array[$r]=array('s.idp'=>"Id",'s.nom'=>"Name",'s.prefix_comm'=>"Prefix",'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.siret'=>"IdProf1",'s.siren'=>"IdProf2",'s.ape'=>"IdProf3",'s.tva_intra'=>"VATIntraShort",'s.capital'=>"Capital",'s.note'=>"Note"); + $this->export_alias_array[$r]=array('s.idp'=>"idsoc",'s.nom'=>"name",'s.prefix_comm'=>"prefix",'s.client'=>"iscustomer",'s.fournisseur'=>"issupplier",'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.siret'=>"idprof1",'s.siren'=>"idprof2",'s.ape'=>"idprof3",'s.tva_intra'=>"vatintra",'s.capital'=>"capital",'s.note'=>"note"); + $this->export_sql[$r]="select "; + $i=0; + foreach ($this->export_alias_array[$r] as $key => $value) + { + if ($i > 0) $this->export_sql[$r].=', '; + else $i++; + $this->export_sql[$r].=$key.' as '.$value; + } + $this->export_sql[$r].=' from '.MAIN_DB_PREFIX.'societe as s, '.MAIN_DB_PREFIX.'c_pays as p where s.fk_pays = p.rowid'; $this->export_permission[$r]=array(array("societe","export")); + // Export des liste des contacts et attributs $r++; $this->export_code[$r]=$this->numero.'_'.$r; $this->export_label[$r]='Liste des contacts et attributs'; - $this->export_fields_array[$r]=array('s.civilite'=>"CivilityCode",'c.name'=>'Lastname','c.firstname'=>'Firstname','c.datec'=>"DateCreation",'c.tms'=>"DateLastModification",'c.address'=>"Address",'c.cp'=>"Zip",'c.ville'=>"Town",'c.tel'=>"Phone",'s.fax'=>"Fax",'s.email'=>"EMail",'s.note'=>"Note",'p.libelle'=>"Country",'p.code'=>"CountryCode",'s.idp'=>"IdCompany",'s.nom'=>"CompanyName"); - $this->export_sql[$r]="select ".join(',',array_keys($this->export_fields_array[$r])).' from '.MAIN_DB_PREFIX.'contact as c, '.MAIN_DB_PREFIX.'c_pays as p where c.fk_pays = p.rowid LEFT JOIN '.MAIN_DB_PREFIX.'societe as s ON c.fk_soc = s.idp'; + $this->export_fields_array[$r]=array('c.civilite'=>"CivilityCode",'c.name'=>'Lastname','c.firstname'=>'Firstname','c.datec'=>"DateCreation",'c.tms'=>"DateLastModification",'c.address'=>"Address",'c.cp'=>"Zip",'c.ville'=>"Town",'c.phone'=>"Phone",'c.fax'=>"Fax",'c.email'=>"EMail",'p.libelle'=>"Country",'p.code'=>"CountryCode",'s.idp'=>"IdCompany",'s.nom'=>"CompanyName"); + $this->export_alias_array[$r]=array('c.civilite'=>"civilitycode",'c.name'=>'lastname','c.firstname'=>'firstname','c.datec'=>"datecreation",'c.tms'=>"datelastmodification",'c.address'=>"address",'c.cp'=>"zip",'c.ville'=>"town",'c.phone'=>"phone",'c.fax'=>"fax",'c.email'=>"email",'p.libelle'=>"country",'p.code'=>"countrycode",'s.idp'=>"idcompany",'s.nom'=>"companyname"); + $this->export_sql[$r]="select "; + $i=0; + foreach ($this->export_alias_array[$r] as $key => $value) + { + if ($i > 0) $this->export_sql[$r].=', '; + else $i++; + $this->export_sql[$r].=$key.' as '.$value; + } + $this->export_sql[$r].=' from '.MAIN_DB_PREFIX.'c_pays as p, '.MAIN_DB_PREFIX.'socpeople as c LEFT JOIN '.MAIN_DB_PREFIX.'societe as s ON c.fk_soc = s.idp WHERE c.fk_pays = p.rowid'; $this->export_permission[$r]=array(array("societe","contact","export")); } diff --git a/htdocs/includes/modules/modUser.class.php b/htdocs/includes/modules/modUser.class.php index a30527fb327..0fc1c80e426 100644 --- a/htdocs/includes/modules/modUser.class.php +++ b/htdocs/includes/modules/modUser.class.php @@ -69,6 +69,7 @@ class modUser extends DolibarrModules // Dépendances $this->depends = array(); $this->requiredby = array(); + $this->langfiles = array("users","companies"); // Constantes $this->const = array(); @@ -145,7 +146,16 @@ class modUser extends DolibarrModules $this->export_code[$r]=$this->numero.'_'.$r; $this->export_label[$r]='Liste des utilisateurs Dolibarr et attributs'; $this->export_fields_array[$r]=array('u.rowid'=>"Id",'u.name'=>"Lastname",'u.firstname'=>"Firstname",'u.code'=>"Code",'u.login'=>"Login",'u.datec'=>"DateCreation",'u.tms'=>"DateLastModification",'u.admin'=>"Admin",'u.fk_socpeople'=>"IdContact",'u.note'=>"Note",'u.datelastaccess'=>'DateLastAccess'); - $this->export_sql[$r]="select ".join(',',array_keys($this->export_fields_array[$r])).' from '.MAIN_DB_PREFIX.'user as u'; + $this->export_alias_array[$r]=array('u.rowid'=>"rowid",'u.name'=>"name",'u.firstname'=>"firstname",'u.code'=>"code",'u.login'=>"login",'u.datec'=>"datecreation",'u.tms'=>"datelastmodification",'u.admin'=>"admin",'u.fk_socpeople'=>"idcontact",'u.note'=>"note",'u.datelastaccess'=>'datelastaccess'); + $this->export_sql[$r]="select "; + $i=0; + foreach ($this->export_alias_array[$r] as $key => $value) + { + if ($i > 0) $this->export_sql[$r].=', '; + else $i++; + $this->export_sql[$r].=$key.' as '.$value; + } + $this->export_sql[$r].=' from '.MAIN_DB_PREFIX.'user as u'; $this->export_permission[$r]=array(array("user","user","export")); } diff --git a/htdocs/langs/en_US/exports.lang b/htdocs/langs/en_US/exports.lang index 5756294f3b6..a307d8ad22f 100644 --- a/htdocs/langs/en_US/exports.lang +++ b/htdocs/langs/en_US/exports.lang @@ -8,11 +8,11 @@ ExportableFields=Exportable fields ExportedFields=Exported fields DatasetToExport=Dataset to export Dataset=Dataset -ChooseFieldsOrdersAndTitle=Choose fields order and title +ChooseFieldsOrdersAndTitle=Choose fields order... FieldsOrder=Fields order FieldsTitle=Fields title ChooseExportFormat=Choose export format -NowClickToGenerateToBuildExportFile=Now, click on "Generate" to build export file +NowClickToGenerateToBuildExportFile=Now, click on "Generate" to build export file... AvailableFormats=Formats disponibles LibraryUsed=Librairie LibraryVersion=Version \ No newline at end of file diff --git a/htdocs/langs/fr_FR/companies.lang b/htdocs/langs/fr_FR/companies.lang index 825ba726e16..988bc19dac1 100644 --- a/htdocs/langs/fr_FR/companies.lang +++ b/htdocs/langs/fr_FR/companies.lang @@ -15,7 +15,7 @@ ProspectionArea=Espace prospection SocGroup=Groupement de sociétés IdCompany=Id société Company=Société -CompanyName=Nom société +CompanyName=Raison sociale Companies=Sociétés ParentCompany=Maison mère CivilityCode=Code civilité diff --git a/htdocs/langs/fr_FR/exports.lang b/htdocs/langs/fr_FR/exports.lang index 7d6a91e0d48..72830b5694b 100644 --- a/htdocs/langs/fr_FR/exports.lang +++ b/htdocs/langs/fr_FR/exports.lang @@ -8,11 +8,11 @@ ExportableFields=Champs exportables ExportedFields=Champs à exporter DatasetToExport=Lot de données à exporter Dataset=Lot de données -ChooseFieldsOrdersAndTitle=Choisissez l'ordre et titre des champs +ChooseFieldsOrdersAndTitle=Choisissez l'ordre des champs... FieldsOrder=Ordre des champs FieldsTitle=Titre champs ChooseExportFormat=Choisissez le format d'export -NowClickToGenerateToBuildExportFile=Maintenant, cliquez sur "Générer" pour générer le fichier export +NowClickToGenerateToBuildExportFile=Maintenant, cliquez sur "Générer" pour générer le fichier export... AvailableFormats=Available formats LibraryUsed=Library used LibraryVersion=Version \ No newline at end of file
'.$langs->trans('Model').''; - $this->select_array('model',$liste,$modelselected); + $this->select_array('model',$modellist,$modelselected,0,0,1); $texte=$langs->trans('Generate'); print ''; print '