New: Ca y est. L'export est compltement oprationnel.
This commit is contained in:
parent
597e2a5d98
commit
879f882a77
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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='<div class="error">'.$objexport->error.'</div>';
|
||||
}
|
||||
else
|
||||
{
|
||||
// $mesg='<div class="ok">'.$langs->trans("FileSuccessfulyBuilt").'</div>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -151,18 +157,18 @@ if ($step == 1 || ! $datatoexport)
|
||||
print '<td> </td>';
|
||||
print '</tr>';
|
||||
$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 '<tr '.$bc[$val].'><td>';
|
||||
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 '</td><td>';
|
||||
print $export->array_export_label[$key];
|
||||
print $objexport->array_export_label[$key];
|
||||
print '</td><td align="right">';
|
||||
print '<a href="'.DOL_URL_ROOT.'/exports/export.php?step=2&datatoexport='.$export->array_export_code[$key].'">'.img_picto($langs->trans("NewExport"),'filenew').'</a>';
|
||||
print '<a href="'.DOL_URL_ROOT.'/exports/export.php?step=2&datatoexport='.$objexport->array_export_code[$key].'">'.img_picto($langs->trans("NewExport"),'filenew').'</a>';
|
||||
print '</td></tr>';
|
||||
}
|
||||
}
|
||||
@ -200,13 +206,13 @@ if ($step == 2 && $datatoexport)
|
||||
// Module
|
||||
print '<tr><td width="25%">'.$langs->trans("Module").'</td>';
|
||||
print '<td>';
|
||||
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 '</td></tr>';
|
||||
|
||||
// Lot de données à exporter
|
||||
print '<tr><td width="25%">'.$langs->trans("DatasetToExport").'</td>';
|
||||
print '<td>'.$export->array_export_label[0].'</td></tr>';
|
||||
print '<td>'.$objexport->array_export_label[0].'</td></tr>';
|
||||
|
||||
print '</table>';
|
||||
print '<br>';
|
||||
@ -220,7 +226,7 @@ if ($step == 2 && $datatoexport)
|
||||
print '</tr>';
|
||||
|
||||
// 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 '<tr><td width="25%">'.$langs->trans("Module").'</td>';
|
||||
print '<td>';
|
||||
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 '</td></tr>';
|
||||
|
||||
// Lot de données à exporter
|
||||
print '<tr><td width="25%">'.$langs->trans("DatasetToExport").'</td>';
|
||||
print '<td>'.$export->array_export_label[0].'</td></tr>';
|
||||
print '<td>'.$objexport->array_export_label[0].'</td></tr>';
|
||||
|
||||
// Nbre champs exportés
|
||||
print '<tr><td width="25%">'.$langs->trans("ExportedFields").'</td>';
|
||||
@ -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 '<td>'.$list.'</td></tr>';
|
||||
|
||||
@ -337,7 +343,7 @@ if ($step == 3 && $datatoexport)
|
||||
$var=!$var;
|
||||
print "<tr $bc[$var]>";
|
||||
|
||||
print '<td>'.$langs->trans($export->array_export_fields[0][$code]).' ('.$code.')</td>';
|
||||
print '<td>'.$langs->trans($objexport->array_export_fields[0][$code]).' ('.$code.')</td>';
|
||||
|
||||
print '<td align="right" width="100">';
|
||||
print $value.' ';
|
||||
@ -348,7 +354,7 @@ if ($step == 3 && $datatoexport)
|
||||
|
||||
print '<td> </td>';
|
||||
|
||||
print '<td>'.$langs->trans($export->array_export_fields[0][$code]).'</td>';
|
||||
print '<td>'.$langs->trans($objexport->array_export_fields[0][$code]).'</td>';
|
||||
|
||||
print '</tr>';
|
||||
}
|
||||
@ -371,7 +377,6 @@ if ($step == 3 && $datatoexport)
|
||||
print '</div>';
|
||||
}
|
||||
|
||||
|
||||
if ($step == 4 && $datatoexport)
|
||||
{
|
||||
asort($array_selected);
|
||||
@ -407,13 +412,13 @@ if ($step == 4 && $datatoexport)
|
||||
// Module
|
||||
print '<tr><td width="25%">'.$langs->trans("Module").'</td>';
|
||||
print '<td>';
|
||||
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 '</td></tr>';
|
||||
|
||||
// Lot de données à exporter
|
||||
print '<tr><td width="25%">'.$langs->trans("DatasetToExport").'</td>';
|
||||
print '<td>'.$export->array_export_label[0].'</td></tr>';
|
||||
print '<td>'.$objexport->array_export_label[0].'</td></tr>';
|
||||
|
||||
// Nbre champs exportés
|
||||
print '<tr><td width="25%">'.$langs->trans("ExportedFields").'</td>';
|
||||
@ -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 '<td>'.$list.'</td></tr>';
|
||||
|
||||
@ -429,7 +434,6 @@ if ($step == 4 && $datatoexport)
|
||||
print '<br>';
|
||||
|
||||
print $langs->trans("NowClickToGenerateToBuildExportFile").'<br>';
|
||||
print '<br>';
|
||||
|
||||
// Liste des formats d'exports disponibles
|
||||
$var=true;
|
||||
@ -440,26 +444,27 @@ if ($step == 4 && $datatoexport)
|
||||
print '<td>'.$langs->trans("LibraryVersion").'</td>';
|
||||
print '</tr>';
|
||||
|
||||
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 '<tr '.$bc[$var].'><td>'.$model->getModelName($key).'</td><td>'.$model->getDriverName($key).'</td><td>'.$model->getDriverVersion($key).'</td></tr>';
|
||||
print '<tr '.$bc[$var].'><td>'.$objmodel->getDriverLabel($key).'</td><td>'.$objmodel->getLibLabel($key).'</td><td>'.$objmodel->getLibVersion($key).'</td></tr>';
|
||||
}
|
||||
print '</table>';
|
||||
|
||||
print '</div>';
|
||||
|
||||
if ($mesg) print $mesg;
|
||||
|
||||
$htmlform=new Form($db);
|
||||
print '<table width="100%"><tr><td width="50%">';
|
||||
|
||||
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 '</td><td width="50%"> </td></tr>';
|
||||
print '</table>';
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
/* Copyright (C) 2005 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
/* Copyright (C) 2005-2006 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
*
|
||||
* 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 '<tr '.$bc[$var].'><td>'.$model->getModelName($key).'</td><td>'.$model->getDriverName($key).'</td><td>'.$model->getDriverVersion($key).'</td></tr>';
|
||||
print '<tr '.$bc[$var].'><td>'.$model->getDriverLabel($key).'</td><td>'.$model->getLibLabel($key).'</td><td>'.$model->getLibVersion($key).'</td></tr>';
|
||||
}
|
||||
|
||||
print '</table>';
|
||||
|
||||
@ -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 '<select class="flat" name="'.$name.'">';
|
||||
|
||||
$i = 0;
|
||||
|
||||
if (strlen($id)) {
|
||||
if ($empty == 1)
|
||||
{
|
||||
$array[0] = " ";
|
||||
}
|
||||
reset($array);
|
||||
/**
|
||||
\brief Affiche un select à partir d'un tableau
|
||||
\param htmlname Nom de la zone select
|
||||
\param array Tableau de key+valeur
|
||||
\param id Key pré-sélectionnée
|
||||
\param show_empty 1 si il faut un valeur " " dans la liste, 0 sinon
|
||||
\param key_in_label 1 pour afficher la key dans la valeur "[key] value"
|
||||
\param value_as_key 1 pour utiliser la valeur comme clé
|
||||
*/
|
||||
function select_array($htmlname, $array, $id='', $show_empty=0, $key_in_label=0, $value_as_key=0)
|
||||
{
|
||||
print '<select class="flat" name="'.$htmlname.'">';
|
||||
|
||||
$i = 0;
|
||||
|
||||
if (strlen($id))
|
||||
{
|
||||
if ($show_empty == 1)
|
||||
{
|
||||
$array[0] = " ";
|
||||
}
|
||||
reset($array);
|
||||
}
|
||||
|
||||
while (list($key, $value) = each ($array))
|
||||
{
|
||||
print '<option value="';
|
||||
if ($value_as_key) print $value;
|
||||
else print $key;
|
||||
print '" ';
|
||||
|
||||
// Si il faut présélectionner une valeur
|
||||
if ($id && $id == $key)
|
||||
{
|
||||
print 'selected="true"';
|
||||
}
|
||||
|
||||
if ($key_in_label)
|
||||
{
|
||||
print '>['.$key.'] '.$value."</option>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($value == '-') { $value=' '; }
|
||||
print ">".$value."</option>\n";
|
||||
}
|
||||
}
|
||||
|
||||
print "</select>\n";
|
||||
}
|
||||
|
||||
while (list($key, $value) = each ($array))
|
||||
{
|
||||
print "<option value=\"$key\" ";
|
||||
|
||||
// Si il faut présélectionner une valeur
|
||||
if ($id && $id == $key)
|
||||
{
|
||||
print 'selected="true"';
|
||||
}
|
||||
|
||||
if ($key_libelle)
|
||||
{
|
||||
print ">[$key] $value</option>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($value=="-") { $value=" "; }
|
||||
print ">$value</option>\n";
|
||||
}
|
||||
}
|
||||
|
||||
print "</select>";
|
||||
}
|
||||
|
||||
/**
|
||||
* \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 '<table class="border" width="100%">';
|
||||
|
||||
print '<tr '.$bc[$var].'><td>'.$langs->trans('Model').'</td><td align="center">';
|
||||
$this->select_array('model',$liste,$modelselected);
|
||||
$this->select_array('model',$modellist,$modelselected,0,0,1);
|
||||
$texte=$langs->trans('Generate');
|
||||
print '</td><td align="center" colspan="2"><input class="button" type="submit" value="'.$texte.'">';
|
||||
print '</td></tr>';
|
||||
|
||||
@ -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()
|
||||
{
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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];
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@ -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"));
|
||||
}
|
||||
|
||||
|
||||
@ -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"));
|
||||
|
||||
}
|
||||
|
||||
@ -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"));
|
||||
|
||||
}
|
||||
|
||||
@ -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
|
||||
@ -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é
|
||||
|
||||
@ -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
|
||||
Loading…
Reference in New Issue
Block a user