From 8b12e7c07b68fa992a243254e1335c513eb9bc7d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 19 May 2009 00:14:27 +0000 Subject: [PATCH] Work on import module --- htdocs/exports/export.class.php | 421 ++++---- htdocs/exports/export.php | 16 +- htdocs/imports/import.class.php | 225 ++--- htdocs/imports/import.php | 914 +++++++++--------- .../modules/export/export_csv.modules.php | 41 +- .../modules/export/export_excel.modules.php | 1 + .../modules/export/export_tsv.modules.php | 27 +- .../modules/export/modules_export.php | 10 + .../modules/import/import_csv.modules.php | 27 +- .../modules/import/modules_import.php | 10 + htdocs/includes/modules/modImport.class.php | 11 +- htdocs/includes/modules/modProduit.class.php | 15 +- htdocs/includes/modules/modSociete.class.php | 29 +- htdocs/langs/en_US/exports.lang | 4 +- htdocs/langs/fr_FR/exports.lang | 2 + htdocs/lib/functions.lib.php | 20 +- 16 files changed, 903 insertions(+), 870 deletions(-) diff --git a/htdocs/exports/export.class.php b/htdocs/exports/export.class.php index b4e1e31b55f..5ca179d4834 100644 --- a/htdocs/exports/export.class.php +++ b/htdocs/exports/export.class.php @@ -18,192 +18,199 @@ */ /** - \file htdocs/exports/export.class.php - \ingroup export - \brief Fichier de la classe des exports - \version $Id$ -*/ + * \file htdocs/exports/export.class.php + * \ingroup export + * \brief Fichier de la classe des exports + * \version $Id$ + */ /** - \class Export - \brief Classe permettant la gestion des exports -*/ - + * \class Export + * \brief Classe permettant la gestion des exports + */ class Export { var $db; 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 "libelle de lots" - var $array_export_sql=array(); // Tableau des "requetes sql" - var $array_export_fields=array(); // Tableau des listes de champ+libell� � exporter - var $array_export_alias=array(); // Tableau des listes de champ+alias � exporter - var $array_export_special=array(); // Tableau des operations speciales sur champ + var $array_export_module=array(); // Tableau de "nom de modules" + var $array_export_label=array(); // Tableau de "libelle de lots" + var $array_export_sql=array(); // Tableau des "requetes sql" + var $array_export_fields=array(); // Tableau des listes de champ+libell� � exporter + var $array_export_alias=array(); // Tableau des listes de champ+alias � exporter + var $array_export_special=array(); // Tableau des operations speciales sur champ - // To store export modules - var $hexa; - var $datatoexport; - var $model_name; + // To store export modules + var $hexa; + var $datatoexport; + var $model_name; - var $sqlusedforexport; + var $sqlusedforexport; - /** - * \brief Constructeur de la classe - * \param DB Handler acces base de donnees - */ - function Export($DB) - { - $this->db=$DB; - } + /** + * \brief Constructeur de la classe + * \param DB Handler acces base de donnees + */ + function Export($DB) + { + $this->db=$DB; + } - /** - * \brief Load an exportable dataset - * \param user Object user making export - * \param filter Code export pour charger un lot de donnees particulier - */ - function load_arrays($user,$filter='') - { - global $langs,$conf; + /** + * \brief Load an exportable dataset + * \param user Object user making export + * \param filter Code export pour charger un lot de donnees particulier + */ + function load_arrays($user,$filter='') + { + global $langs,$conf; - dol_syslog("Export::load_arrays user=".$user->id." filter=".$filter); + dol_syslog("Export::load_arrays user=".$user->id." filter=".$filter); - $dir=DOL_DOCUMENT_ROOT."/includes/modules"; - $handle=opendir($dir); + //$dir=DOL_DOCUMENT_ROOT."/includes/modules"; + foreach($conf->file->dol_document_root as $dirroot) + { + $dir = $dirroot.'/includes/modules'; + $handle=opendir($dir); - // Recherche des exports disponibles - $var=True; - $i=0; - while (($file = readdir($handle))!==false) - { - if (eregi("^(mod.*)\.class\.php$",$file,$reg)) - { - $modulename=$reg[1]; + // Search available exports + $handle=@opendir($dir); + if ($handle) + { + $var=True; + $i=0; + while (($file = readdir($handle))!==false) + { + if (eregi("^(mod.*)\.class\.php$",$file,$reg)) + { + $modulename=$reg[1]; - // Defined if module is enabled - $enabled=true; - $part=strtolower(eregi_replace('^mod','',$modulename)); - if (empty($conf->$part->enabled)) $enabled=false; + // Defined if module is enabled + $enabled=true; + $part=strtolower(eregi_replace('^mod','',$modulename)); + if (empty($conf->$part->enabled)) $enabled=false; - if ($enabled) - { - // Chargement de la classe - $file = $dir."/".$modulename.".class.php"; - $classname = $modulename; - require_once($file); - $module = new $classname($this->db); + if ($enabled) + { + // Chargement de la classe + $file = $dir."/".$modulename.".class.php"; + $classname = $modulename; + require_once($file); + $module = new $classname($this->db); - if (is_array($module->export_code)) - { - foreach($module->export_code as $r => $value) - { - if ($filter && ($filter != $module->export_code[$r])) continue; + if (is_array($module->export_code)) + { + foreach($module->export_code as $r => $value) + { + if ($filter && ($filter != $module->export_code[$r])) continue; - // Test si permissions ok \todo tester sur toutes permissions - $perm=$module->export_permission[$r][0]; - //print_r("$perm[0]-$perm[1]-$perm[2]
"); - if ($perm[2]) - { - $bool=$user->rights->$perm[0]->$perm[1]->$perm[2]; - } - else - { - $bool=$user->rights->$perm[0]->$perm[1]; - } - if ($perm[0]=='user' && $user->admin) $bool=true; - //print $bool." $perm[0]"."
"; + // Test si permissions ok \todo tester sur toutes permissions + $perm=$module->export_permission[$r][0]; + //print_r("$perm[0]-$perm[1]-$perm[2]
"); + if ($perm[2]) + { + $bool=$user->rights->$perm[0]->$perm[1]->$perm[2]; + } + else + { + $bool=$user->rights->$perm[0]->$perm[1]; + } + if ($perm[0]=='user' && $user->admin) $bool=true; + //print $bool." $perm[0]"."
"; - // Permissions ok -// if ($bool) -// { - // Charge fichier lang en rapport - $langtoload=$module->getLangFilesArray(); - if (is_array($langtoload)) - { - foreach($langtoload as $key) - { - $langs->load($key); - } - } - - // Module - $this->array_export_module[$i]=$module; - // Permission - $this->array_export_perms[$i]=$bool; - // Icon - $this->array_export_icon[$i]=(isset($module->export_icon[$r])?$module->export_icon[$r]:$module->picto); - // Code du dataset export - $this->array_export_code[$i]=$module->export_code[$r]; - // Libelle du dataset export - $this->array_export_label[$i]=$module->getDatasetLabel($r); - // Tableau des champ a exporter (cle=champ, valeur=libelle) - $this->array_export_fields[$i]=$module->export_fields_array[$r]; - // Tableau des entites a exporter (cle=champ, valeur=entite) - $this->array_export_entities[$i]=$module->export_entities_array[$r]; - // Tableau des alias a exporter (cle=champ, valeur=alias) - $this->array_export_alias[$i]=$module->export_alias_array[$r]; - // Tableau des operations speciales sur champ - $this->array_export_special[$i]=$module->export_special_array[$r]; - - // Requete sql du dataset - $this->array_export_sql_start[$i]=$module->export_sql_start[$r]; - $this->array_export_sql_end[$i]=$module->export_sql_end[$r]; - //$this->array_export_sql[$i]=$module->export_sql[$r]; - - dol_syslog("Export loaded for module ".$modulename." with index ".$i.", dataset=".$module->export_code[$r].", nb of fields=".sizeof($module->export_fields_code[$r])); - $i++; -// } - } - } - } - } - } - closedir($handle); - } + // Permissions ok + // if ($bool) + // { + // Charge fichier lang en rapport + $langtoload=$module->getLangFilesArray(); + if (is_array($langtoload)) + { + foreach($langtoload as $key) + { + $langs->load($key); + } + } - /** - * \brief Lance la generation du fichier - * \param user User qui exporte - * \param model Modele d'export - * \param datatoexport Lot de donnee a exporter - * \param array_selected Tableau des champs a exporter - * \remarks Les tableaux array_export_xxx sont deja chargees pour le bon datatoexport - * aussi le parametre datatoexport est inutilise - */ - function build_file($user, $model, $datatoexport, $array_selected) - { - global $conf,$langs; + // Module + $this->array_export_module[$i]=$module; + // Permission + $this->array_export_perms[$i]=$bool; + // Icon + $this->array_export_icon[$i]=(isset($module->export_icon[$r])?$module->export_icon[$r]:$module->picto); + // Code du dataset export + $this->array_export_code[$i]=$module->export_code[$r]; + // Libelle du dataset export + $this->array_export_label[$i]=$module->getDatasetLabel($r); + // Tableau des champ a exporter (cle=champ, valeur=libelle) + $this->array_export_fields[$i]=$module->export_fields_array[$r]; + // Tableau des entites a exporter (cle=champ, valeur=entite) + $this->array_export_entities[$i]=$module->export_entities_array[$r]; + // Tableau des alias a exporter (cle=champ, valeur=alias) + $this->array_export_alias[$i]=$module->export_alias_array[$r]; + // Tableau des operations speciales sur champ + $this->array_export_special[$i]=$module->export_special_array[$r]; - $indice=0; - asort($array_selected); + // Requete sql du dataset + $this->array_export_sql_start[$i]=$module->export_sql_start[$r]; + $this->array_export_sql_end[$i]=$module->export_sql_end[$r]; + //$this->array_export_sql[$i]=$module->export_sql[$r]; - dol_syslog("Export::build_file $model, $datatoexport, $array_selected"); + dol_syslog("Export loaded for module ".$modulename." with index ".$i.", dataset=".$module->export_code[$r].", nb of fields=".sizeof($module->export_fields_code[$r])); + $i++; + // } + } + } + } + } + } + } + closedir($handle); + } + } - // Creation de la classe d'export du model ExportXXX - $dir = DOL_DOCUMENT_ROOT . "/includes/modules/export/"; - $file = "export_".$model.".modules.php"; - $classname = "Export".$model; - require_once($dir.$file); - $objmodel = new $classname($db); - - // Build the sql request - $sql=$this->array_export_sql_start[$indice]; - $i=0; - //print_r($array_selected); - foreach ($this->array_export_alias[$indice] as $key => $value) - { - if (! array_key_exists($key, $array_selected)) continue; // Field not selected + /** + * \brief Lance la generation du fichier + * \param user User qui exporte + * \param model Modele d'export + * \param datatoexport Lot de donnee a exporter + * \param array_selected Tableau des champs a exporter + * \remarks Les tableaux array_export_xxx sont deja chargees pour le bon datatoexport + * aussi le parametre datatoexport est inutilise + */ + function build_file($user, $model, $datatoexport, $array_selected) + { + global $conf,$langs; - if ($i > 0) $sql.=', '; - else $i++; - $newfield=$key.' as '.$value; - - $sql.=$newfield; - } - $sql.=$this->array_export_sql_end[$indice]; + $indice=0; + asort($array_selected); + + dol_syslog("Export::build_file $model, $datatoexport, $array_selected"); + + // Creation de la classe d'export du model ExportXXX + $dir = DOL_DOCUMENT_ROOT . "/includes/modules/export/"; + $file = "export_".$model.".modules.php"; + $classname = "Export".$model; + require_once($dir.$file); + $objmodel = new $classname($db); + + // Build the sql request + $sql=$this->array_export_sql_start[$indice]; + $i=0; + //print_r($array_selected); + foreach ($this->array_export_alias[$indice] as $key => $value) + { + if (! array_key_exists($key, $array_selected)) continue; // Field not selected + + if ($i > 0) $sql.=', '; + else $i++; + $newfield=$key.' as '.$value; + + $sql.=$newfield; + } + $sql.=$this->array_export_sql_end[$indice]; // Run the sql $this->sqlusedforexport=$sql; @@ -211,24 +218,24 @@ class Export $resql = $this->db->query($sql); if ($resql) { - //$this->array_export_label[$indice] - $filename="export_".$datatoexport; - $filename.='.'.$objmodel->getDriverExtension(); - $dirname=$conf->export->dir_temp.'/'.$user->id; + //$this->array_export_label[$indice] + $filename="export_".$datatoexport; + $filename.='.'.$objmodel->getDriverExtension(); + $dirname=$conf->export->dir_temp.'/'.$user->id; $outputlangs=$langs; // Lang for output // Open file - create_exdir($dirname); - $result=$objmodel->open_file($dirname."/".$filename, $outputlangs); + create_exdir($dirname); + $result=$objmodel->open_file($dirname."/".$filename, $outputlangs); if ($result >= 0) { - // Genere en-tete - $objmodel->write_header($outputlangs); + // Genere en-tete + $objmodel->write_header($outputlangs); - // Genere ligne de titre - $objmodel->write_title($this->array_export_fields[$indice],$array_selected,$outputlangs); + // Genere ligne de titre + $objmodel->write_title($this->array_export_fields[$indice],$array_selected,$outputlangs); while ($objp = $this->db->fetch_object($resql)) { @@ -237,8 +244,8 @@ class Export // Process special operations if (! empty($this->array_export_special[$indice])) { - foreach ($this->array_export_special[$indice] as $key => $value) - { + foreach ($this->array_export_special[$indice] as $key => $value) + { if (! array_key_exists($key, $array_selected)) continue; // Field not selected // Operation NULLIFNEG if ($this->array_export_special[$indice][$key]=='NULLIFNEG') @@ -257,33 +264,33 @@ class Export // end of special operation processing $objmodel->write_record($this->array_export_alias[$indice],$array_selected,$objp,$outputlangs); - } + } - // Genere en-tete - $objmodel->write_footer($outputlangs); + // Genere en-tete + $objmodel->write_footer($outputlangs); - // Close file - $objmodel->close_file(); + // Close file + $objmodel->close_file(); } else { - $this->error=$objmodel->error; - dol_syslog("Export::build_file Error: ".$this->error, LOG_ERR); - return -1; + $this->error=$objmodel->error; + dol_syslog("Export::build_file Error: ".$this->error, LOG_ERR); + return -1; } - } - else - { - $this->error=$this->db->error()." - sql=".$sql; - dol_syslog("Export::build_file Error: ".$this->error, LOG_ERR); - return -1; - } - } + } + else + { + $this->error=$this->db->error()." - sql=".$sql; + dol_syslog("Export::build_file Error: ".$this->error, LOG_ERR); + return -1; + } + } /** - * \brief Create an export model in database - * \param user Objet utilisateur qui cree - */ + * \brief Create an export model in database + * \param user Objet utilisateur qui cree + */ function create($user) { global $conf; @@ -314,9 +321,9 @@ class Export } /** - * \brief Load an export profil from database - * \param rowid id of profil to load - */ + * \brief Load an export profil from database + * \param rowid id of profil to load + */ function fetch($id) { $sql = 'SELECT em.rowid, em.field, em.label, em.type'; @@ -351,10 +358,10 @@ class Export } - /** + /** * \brief Delete object in database - * \param user User that delete - * \param notrigger 0=launch triggers after, 1=disable triggers + * \param user User that delete + * \param notrigger 0=launch triggers after, 1=disable triggers * \return int <0 if KO, >0 if OK */ function delete($user, $notrigger=0) @@ -369,31 +376,31 @@ class Export dol_syslog(get_class($this)."::delete sql=".$sql); $resql = $this->db->query($sql); - if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); } + if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); } if (! $error) { if (! $notrigger) { // Uncomment this and change MYOBJECT to your own tag if you - // want this action call a trigger. + // want this action call a trigger. - //// Call triggers - //include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php"); - //$interface=new Interfaces($this->db); - //$result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf); - //if ($result < 0) { $error++; $this->errors=$interface->errors; } - //// End call triggers + //// Call triggers + //include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php"); + //$interface=new Interfaces($this->db); + //$result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf); + //if ($result < 0) { $error++; $this->errors=$interface->errors; } + //// End call triggers } } - // Commit or rollback + // Commit or rollback if ($error) { foreach($this->errors as $errmsg) { - dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR); - $this->error.=($this->error?', '.$errmsg:$errmsg); + dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR); + $this->error.=($this->error?', '.$errmsg:$errmsg); } $this->db->rollback(); return -1*$error; diff --git a/htdocs/exports/export.php b/htdocs/exports/export.php index 890f5820791..b3791acf42f 100644 --- a/htdocs/exports/export.php +++ b/htdocs/exports/export.php @@ -18,11 +18,11 @@ */ /** - \file htdocs/exports/export.php - \ingroup export - \brief Page d'edition d'un export - \version $Id$ -*/ + * \file htdocs/exports/export.php + * \ingroup export + * \brief Page d'edition d'un export + * \version $Id$ + */ require_once("./pre.inc.php"); require_once(DOL_DOCUMENT_ROOT."/html.formfile.class.php"); @@ -699,7 +699,7 @@ if ($step == 4 && $datatoexport) $var=true; print ''; print ''; - print ''; + print ''; print ''; print ''; print ''; @@ -708,7 +708,9 @@ if ($step == 4 && $datatoexport) foreach($liste as $key) { $var=!$var; - print ''; + print ''; + print ''; + print ''; } print '
'.$langs->trans("AvailableFormats").''.$langs->trans("AvailableFormats").''.$langs->trans("LibraryUsed").''.$langs->trans("LibraryVersion").'
'.$objmodelexport->getDriverLabel($key).''.$objmodelexport->getLibLabel($key).''.$objmodelexport->getLibVersion($key).'
'.img_picto_common($key,$objmodelexport->getPicto($key)).''.$objmodelexport->getDriverLabel($key).''.$objmodelexport->getLibLabel($key).''.$objmodelexport->getLibVersion($key).'
'; diff --git a/htdocs/imports/import.class.php b/htdocs/imports/import.class.php index b356173eea1..95beadcdd2c 100644 --- a/htdocs/imports/import.class.php +++ b/htdocs/imports/import.class.php @@ -37,7 +37,7 @@ class Import { $this->db=$DB; } - + /** * \brief Load an importable dataset @@ -50,101 +50,111 @@ class Import dol_syslog("Import::load_arrays user=".$user->id." filter=".$filter); - $dir=DOL_DOCUMENT_ROOT."/includes/modules"; - $handle=opendir($dir); + //$dir=DOL_DOCUMENT_ROOT."/includes/modules"; + foreach($conf->file->dol_document_root as $dirroot) + { + $dir = $dirroot.'/includes/modules'; + $handle=opendir($dir); - // Recherche des exports disponibles - $var=True; - $i=0; - while (($file = readdir($handle))!==false) - { - if (eregi("^(mod.*)\.class\.php",$file,$reg)) - { - $modulename=$reg[1]; + // Search available exports + $handle=@opendir($dir); + if ($handle) + { + // Recherche des exports disponibles + $var=True; + $i=0; + while (($file = readdir($handle))!==false) + { + if (eregi("^(mod.*)\.class\.php",$file,$reg)) + { + $modulename=$reg[1]; - // Defined if module is enabled - $enabled=true; - $part=strtolower(eregi_replace('^mod','',$modulename)); - if (empty($conf->$part->enabled)) $enabled=false; + // Defined if module is enabled + $enabled=true; + $part=strtolower(eregi_replace('^mod','',$modulename)); + if (empty($conf->$part->enabled)) $enabled=false; - if ($enabled) - { - // Chargement de la classe - $file = $dir."/".$modulename.".class.php"; - $classname = $modulename; - require_once($file); - $module = new $classname($this->db); + if ($enabled) + { + // Chargement de la classe + $file = $dir."/".$modulename.".class.php"; + $classname = $modulename; + require_once($file); + $module = new $classname($this->db); - if (is_array($module->export_code)) - { - foreach($module->export_code as $r => $value) - { - if ($filter && ($filter != $module->export_code[$r])) continue; + if (is_array($module->import_code)) + { + foreach($module->import_code as $r => $value) + { + if ($filter && ($filter != $module->import_code[$r])) continue; - // Test si permissions ok \todo tester sur toutes permissions - $perm=$module->export_permission[$r][0]; - //print_r("$perm[0]-$perm[1]-$perm[2]
"); - if ($perm[2]) - { - $bool=$user->rights->$perm[0]->$perm[1]->$perm[2]; - } - else - { - $bool=$user->rights->$perm[0]->$perm[1]; - } - if ($perm[0]=='user' && $user->admin) $bool=true; - //print $bool." $perm[0]"."
"; + // Test if permissions are ok + /*$perm=$module->import_permission[$r][0]; + //print_r("$perm[0]-$perm[1]-$perm[2]
"); + if ($perm[2]) + { + $bool=$user->rights->$perm[0]->$perm[1]->$perm[2]; + } + else + { + $bool=$user->rights->$perm[0]->$perm[1]; + } + if ($perm[0]=='user' && $user->admin) $bool=true; + //print $bool." $perm[0]"."
"; + */ - // Permissions ok -// if ($bool) -// { - // Charge fichier lang en rapport - $langtoload=$module->getLangFilesArray(); - if (is_array($langtoload)) - { - foreach($langtoload as $key) - { - $langs->load($key); - } - } + // Permissions ok + // if ($bool) + // { + // Charge fichier lang en rapport + $langtoload=$module->getLangFilesArray(); + if (is_array($langtoload)) + { + foreach($langtoload as $key) + { + $langs->load($key); + } + } - // Module - $this->array_export_module[$i]=$module; - // Permission - $this->array_export_perms[$i]=$bool; - // Icon - $this->array_export_icon[$i]=(isset($module->export_icon[$r])?$module->export_icon[$r]:$module->picto); - // Code du dataset export - $this->array_export_code[$i]=$module->export_code[$r]; - // Libelle du dataset export - $this->array_export_label[$i]=$module->getDatasetLabel($r); - // Tableau des champ a exporter (cle=champ, valeur=libelle) - $this->array_export_fields[$i]=$module->export_fields_array[$r]; - // Tableau des entites a exporter (cle=champ, valeur=entite) - $this->array_export_entities[$i]=$module->export_entities_array[$r]; - // Tableau des alias a exporter (cle=champ, valeur=alias) - $this->array_export_alias[$i]=$module->export_alias_array[$r]; - // Tableau des operations speciales sur champ - $this->array_export_special[$i]=$module->export_special_array[$r]; + // Module + $this->array_import_module[$i]=$module; + // Permission + $this->array_import_perms[$i]=$user->admin; + // Icon + $this->array_import_icon[$i]=(isset($module->export_icon[$r])?$module->export_icon[$r]:$module->picto); + // Code du dataset export + $this->array_import_code[$i]=$module->export_code[$r]; + // Libelle du dataset export + $this->array_import_label[$i]=$module->getDatasetLabel($r); + // Tableau des champ a exporter (cle=champ, valeur=libelle) + $this->array_import_fields[$i]=$module->export_fields_array[$r]; + // Tableau des entites a exporter (cle=champ, valeur=entite) + $this->array_import_entities[$i]=$module->export_entities_array[$r]; + // Tableau des alias a exporter (cle=champ, valeur=alias) + $this->array_import_alias[$i]=$module->export_alias_array[$r]; + // Tableau des operations speciales sur champ + $this->array_import_special[$i]=$module->export_special_array[$r]; - // Requete sql du dataset - $this->array_export_sql_start[$i]=$module->export_sql_start[$r]; - $this->array_export_sql_end[$i]=$module->export_sql_end[$r]; - //$this->array_export_sql[$i]=$module->export_sql[$r]; + // Requete sql du dataset + $this->array_import_sql_start[$i]=$module->export_sql_start[$r]; + $this->array_import_sql_end[$i]=$module->export_sql_end[$r]; + //$this->array_import_sql[$i]=$module->export_sql[$r]; - dol_syslog("Import loaded for module ".$modulename." with index ".$i.", dataset=".$module->export_code[$r].", nb of fields=".sizeof($module->export_fields_code[$r])); - $i++; -// } - } - } - } - } + dol_syslog("Import loaded for module ".$modulename." with index ".$i.", dataset=".$module->export_code[$r].", nb of fields=".sizeof($module->export_fields_code[$r])); + $i++; + // } + } + } + } + } + } + } } closedir($handle); } - - - + + + /* * \brief Importe un fichier clients */ @@ -227,13 +237,13 @@ class Import while (!feof($hf) ) { $cont = fgets($hf, 1024); - + if (strlen(trim($cont)) > 0) { $this->lines[$i] = explode(";", $cont); } $i++; - + } } else @@ -243,49 +253,6 @@ class Import return $errno; } - - /* - \brief Cree le repertoire de backup - */ - function CreateBackupDir() - { - $time = time(); - $upload_dir = DOL_DATA_ROOT."/import/"; - - if (! is_dir($upload_dir)) - { - umask(0); - if (! mkdir($upload_dir, 0755)) - { - dol_syslog("Import::ReadFile Impossible de creer $upload_dir",LOG_ERR); - } - } - - $upload_dir = DOL_DATA_ROOT."/import/".strftime("%Y",$time); - - if (! is_dir($upload_dir)) - { - umask(0); - if (! mkdir($upload_dir, 0755)) - { - dol_syslog("Import::ReadFile Impossible de creer $upload_dir",LOG_ERR); - } - } - - $upload_dir = DOL_DATA_ROOT."/import/".strftime("%Y",$time)."/".strftime("%d-%m-%Y",$time); - - if (! is_dir($upload_dir)) - { - umask(0); - if (! mkdir($upload_dir, 0755)) - { - dol_syslog("Import::ReadFile Impossible de creer $upload_dir",LOG_ERR); - } - } - - $this->upload_dir = DOL_DATA_ROOT."/import/".strftime("%Y",$time)."/".strftime("%d-%m-%Y",$time); - - } } ?> diff --git a/htdocs/imports/import.php b/htdocs/imports/import.php index 590a7ad6fc3..6362a45030d 100644 --- a/htdocs/imports/import.php +++ b/htdocs/imports/import.php @@ -34,7 +34,7 @@ $langs->load("exports"); if (! $user->societe_id == 0) - accessforbidden(); +accessforbidden(); $entitytoicon=array( 'invoice'=>'bill','invoice_line'=>'bill', @@ -46,8 +46,8 @@ $entitytoicon=array( 'payment'=>'payment', 'product'=>'product','stock'=>'generic','warehouse'=>'stock', 'category'=>'generic', - 'other'=>'generic', - ); + 'other'=>'generic' +); $entitytolang=array( // Translation code 'user'=>'User', 'company'=>'Company','contact'=>'Contact', @@ -61,7 +61,7 @@ $entitytolang=array( // Translation code 'product'=>'Product','stock'=>'Stock','warehouse'=>'Warehouse', 'category'=>'Category', 'other'=>'Other' - ); +); $array_selected=isset($_SESSION["import_selected_fields"])?$_SESSION["import_selected_fields"]:array(); $datatoimport=isset($_GET["datatoimport"])? $_GET["datatoimport"] : (isset($_POST["datatoimport"])?$_POST["datatoimport"]:''); @@ -87,91 +87,91 @@ $sqlusedforimport=''; if ($action=='selectfield') { - if ($_GET["field"]=='all') - { + if ($_GET["field"]=='all') + { $fieldsarray=$objimport->array_import_alias[0]; foreach($fieldsarray as $key=>$val) { if (! empty($array_selected[$key])) continue; // If already selected, select next $array_selected[$key]=sizeof($array_selected)+1; - //print_r($array_selected); - $_SESSION["import_selected_fields"]=$array_selected; + //print_r($array_selected); + $_SESSION["import_selected_fields"]=$array_selected; } - } - else - { + } + else + { $array_selected[$_GET["field"]]=sizeof($array_selected)+1; - //print_r($array_selected); - $_SESSION["import_selected_fields"]=$array_selected; - } + //print_r($array_selected); + $_SESSION["import_selected_fields"]=$array_selected; + } } if ($action=='unselectfield') { - if ($_GET["field"]=='all') - { + if ($_GET["field"]=='all') + { $array_selected=array(); $_SESSION["import_selected_fields"]=$array_selected; - } - else - { - unset($array_selected[$_GET["field"]]); - // Renumber fields of array_selected (from 1 to nb_elements) - asort($array_selected); - $i=0; - $array_selected_save=$array_selected; - foreach($array_selected as $code=>$value) - { - $i++; - $array_selected[$code]=$i; - //print "x $code x $i y
"; - } - $_SESSION["import_selected_fields"]=$array_selected; - } + } + else + { + unset($array_selected[$_GET["field"]]); + // Renumber fields of array_selected (from 1 to nb_elements) + asort($array_selected); + $i=0; + $array_selected_save=$array_selected; + foreach($array_selected as $code=>$value) + { + $i++; + $array_selected[$code]=$i; + //print "x $code x $i y
"; + } + $_SESSION["import_selected_fields"]=$array_selected; + } } if ($action=='downfield' || $action=='upfield') { - $pos=$array_selected[$_GET["field"]]; - if ($action=='downfield') $newpos=$pos+1; - if ($action=='upfield') $newpos=$pos-1; - // Recherche code avec qui switch� - $newcode=""; - foreach($array_selected as $code=>$value) - { - if ($value == $newpos) - { - $newcode=$code; - break; - } - } - //print("Switch pos=$pos (code=".$_GET["field"].") and newpos=$newpos (code=$newcode)"); - if ($newcode) // Si newcode trouv� (prtoection contre resoumission de page - { - $array_selected[$_GET["field"]]=$newpos; - $array_selected[$newcode]=$pos; - $_SESSION["import_selected_fields"]=$array_selected; - } + $pos=$array_selected[$_GET["field"]]; + if ($action=='downfield') $newpos=$pos+1; + if ($action=='upfield') $newpos=$pos-1; + // Recherche code avec qui switch� + $newcode=""; + foreach($array_selected as $code=>$value) + { + if ($value == $newpos) + { + $newcode=$code; + break; + } + } + //print("Switch pos=$pos (code=".$_GET["field"].") and newpos=$newpos (code=$newcode)"); + if ($newcode) // Si newcode trouv� (prtoection contre resoumission de page + { + $array_selected[$_GET["field"]]=$newpos; + $array_selected[$newcode]=$pos; + $_SESSION["import_selected_fields"]=$array_selected; + } } if ($step == 1 || $action == 'cleanselect') { - $_SESSION["import_selected_fields"]=array(); - $array_selected=array(); + $_SESSION["import_selected_fields"]=array(); + $array_selected=array(); } if ($action == 'builddoc') { - // Build import file + // Build import file $result=$objimport->build_file($user, $_POST['model'], $datatoimport, $array_selected); if ($result < 0) { - $mesg='
'.$objimport->error.'
'; + $mesg='
'.$objimport->error.'
'; } else { - $mesg='
'.$langs->trans("FileSuccessfullyBuilt").'
'; - $sqlusedforimport=$objimport->sqlusedforimport; - } + $mesg='
'.$langs->trans("FileSuccessfullyBuilt").'
'; + $sqlusedforimport=$objimport->sqlusedforimport; + } } if ($action == 'deleteprof') @@ -197,14 +197,14 @@ if ($action == 'add_import_model') $hexa.=$key; } - $objimport->model_name = $import_name; - $objimport->datatoimport = $datatoimport; - $objimport->hexa = $hexa; + $objimport->model_name = $import_name; + $objimport->datatoimport = $datatoimport; + $objimport->hexa = $hexa; - $result = $objimport->create($user); + $result = $objimport->create($user); if ($result >= 0) { - $mesg='
'.$langs->trans("ImportModelSaved",$objimport->model_name).'
'; + $mesg='
'.$langs->trans("ImportModelSaved",$objimport->model_name).'
'; } else { @@ -218,17 +218,17 @@ if ($action == 'add_import_model') } else { - $mesg='
'.$langs->trans("ErrorFieldRequired",$langs->transnoentities("ImportModelName")).'
'; + $mesg='
'.$langs->trans("ErrorFieldRequired",$langs->transnoentities("ImportModelName")).'
'; } } if ($step == 2 && $action == 'select_model') { - $_SESSION["import_selected_fields"]=array(); - $array_selected=array(); - $result = $objimport->fetch($importmodelid); - if ($result > 0) - { + $_SESSION["import_selected_fields"]=array(); + $array_selected=array(); + $result = $objimport->fetch($importmodelid); + if ($result > 0) + { $fieldsarray=split(',',$objimport->hexa); $i=1; foreach($fieldsarray as $val) @@ -237,7 +237,7 @@ if ($step == 2 && $action == 'select_model') $i++; } $_SESSION["import_selected_fields"]=$array_selected; - } + } } @@ -246,244 +246,268 @@ if ($step == 2 && $action == 'select_model') * Affichage Pages des Etapes */ +$objmodelimport=new ModeleImports(); + if ($step == 1 || ! $datatoimport) { - llxHeader('',$langs->trans("NewImport")); + llxHeader('',$langs->trans("NewImport")); - /* - * Affichage onglets - */ - $h = 0; + /* + * Affichage onglets + */ + $h = 0; - $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=1'; - $head[$h][1] = $langs->trans("Step")." 1"; - $hselected=$h; - $h++; + $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=1'; + $head[$h][1] = $langs->trans("Step")." 1"; + $hselected=$h; + $h++; - /* - $head[$h][0] = ''; - $head[$h][1] = $langs->trans("Step")." 2"; - $h++; - */ + /* + $head[$h][0] = ''; + $head[$h][1] = $langs->trans("Step")." 2"; + $h++; + */ - dol_fiche_head($head, $hselected, $langs->trans("NewImport")); + dol_fiche_head($head, $hselected, $langs->trans("NewImport")); - print ''; + print '
'; - print $langs->trans("SelectImportDataSet").'
'; + print $langs->trans("SelectImportDataSet").'
'; - // Affiche les modules d'imports - print '
'; - print ''; - print ''; - print ''; - print ''; - print ''; - $val=true; - if (sizeof($objimport->array_import_code)) - { - foreach ($objimport->array_import_code as $key => $value) - { - $val=!$val; - print ''; + } + } + else + { + print ''; + } + print '
'.$langs->trans("Module").''.$langs->trans("ImportableDatas").' 
'; - //print img_object($objimport->array_import_module[$key]->getName(),$import->array_import_module[$key]->picto).' '; - print $objimport->array_import_module[$key]->getName(); - print ''; + // Affiche les modules d'imports + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + $val=true; + if (sizeof($objimport->array_import_code)) + { + foreach ($objimport->array_import_code as $key => $value) + { + $val=!$val; + print ''; - } - } - else - { - print ''; - } - print '
'.$langs->trans("Module").''.$langs->trans("ImportableDatas").' 
'; + //print img_object($objimport->array_import_module[$key]->getName(),$import->array_import_module[$key]->picto).' '; + print $objimport->array_import_module[$key]->getName(); + print ''; //print $value; - print img_object($objimport->array_import_module[$key]->getName(),$objimport->array_import_icon[$key]).' '; - print $objimport->array_import_label[$key]; - print ''; - if ($objimport->array_import_perms[$key]) - { - print ''.img_picto($langs->trans("NewImport"),'filenew').''; - } - else - { - print $langs->trans("NotEnoughPermissions"); - } - print '
'.$langs->trans("NoImportableData").'
'; + print img_object($objimport->array_import_module[$key]->getName(),$objimport->array_import_icon[$key]).' '; + print $objimport->array_import_label[$key]; + print '
'; + if ($objimport->array_import_perms[$key]) + { + print ''.img_picto($langs->trans("NewImport"),'filenew').''; + } + else + { + print $langs->trans("NotEnoughPermissions"); + } + print '
'.$langs->trans("NoImportableData").'
'; - print ''; + print ''; - print ''; + print ''; - if ($mesg) print $mesg; + if ($mesg) print $mesg; } if ($step == 2 && $datatoimport) { - llxHeader('',$langs->trans("NewImport")); + llxHeader('',$langs->trans("NewImport")); + + /* + * Affichage onglets + */ + $h = 0; + + $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=1'; + $head[$h][1] = $langs->trans("Step")." 1"; + $h++; + + $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=2&datatoimport='.$datatoimport; + $head[$h][1] = $langs->trans("Step")." 2"; + $hselected=$h; + $h++; + + dol_fiche_head($head, $hselected, $langs->trans("NewImport")); - /* - * Affichage onglets - */ - $h = 0; + print ''; - $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=1'; - $head[$h][1] = $langs->trans("Step")." 1"; - $h++; + // Module + print ''; + print ''; + + // Lot de donnees a importer + print ''; + print ''; + + print '
'.$langs->trans("Module").''; + //print img_object($objimport->array_import_module[0]->getName(),$objimport->array_import_module[0]->picto).' '; + print $objimport->array_import_module[0]->getName(); + print '
'.$langs->trans("DatasetToImport").''; + print img_object($objimport->array_import_module[0]->getName(),$objimport->array_import_icon[0]).' '; + print $objimport->array_import_label[0]; + print '
'; + print '
'; - $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=2&datatoimport='.$datatoimport; - $head[$h][1] = $langs->trans("Step")." 2"; - $hselected=$h; - $h++; - dol_fiche_head($head, $hselected, $langs->trans("NewImport")); - print '
'; - print ''; + print ''; print ''; - + print ''; - print ''; - - print "\n"; - print '
Importer un fichier clients
"; - print '
'; - print '   '; - print '
'; - - print "
'; - - if ( $_POST["sendit"] && ! empty($conf->global->MAIN_UPLOAD_DOC)) + + $var=true; + + // Add help informations + print ''; + print $langs->trans("FileMustHaveOneOfFollowingFormat"); + print ''; + $liste=$objmodelimport->liste_modeles($db); + foreach($liste as $key) { - $imp = new DolibarrImport($db); - $imp->CreateBackupDir(); - if (dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $imp->upload_dir . "/" . $_FILES['userfile']['name'],1) > 0) - { - - $imp->ImportClients($imp->upload_dir . "/" . $_FILES['userfile']['name']); - - print "Imports : ".$imp->nb_import."
"; - print "Imports corrects : ".$imp->nb_import_ok."
"; - print "Imports erreurs : ".$imp->nb_import_ko."
"; - - } - else - { - $mesg = "Le fichier n'a pas �t� t�l�charg�"; - } + $var=!$var; + print ''; + print ''.img_picto_common($key,$objmodelimport->getPicto($key)).''; + print ''.$objmodelimport->getDriverLabel($key).''; + //print ''.$objmodelimport->getLibLabel($key).''.$objmodelimport->getLibVersion($key).''; + print ''; } - - print ''; + print ''; - // Module - print ''; - print ''; + // Input file name box + $var=!$var; + print ''; - print ''; + print "\n"; + print '
'.$langs->trans("FileWithDataToImport").'
'.$langs->trans("Module").''; - //print img_object($objimport->array_import_module[0]->getName(),$objimport->array_import_module[0]->picto).' '; - print $objimport->array_import_module[0]->getName(); - print '
'; + print '     '; + print ''; + //print '  
'; - // Lot de donnees a importer - print '
'.$langs->trans("DatasetToImport").''; - print img_object($objimport->array_import_module[0]->getName(),$objimport->array_import_icon[0]).' '; - print $objimport->array_import_label[0]; - print '
'; - print ''; - print '
'; + if ( $_POST["sendit"] && ! empty($conf->global->MAIN_UPLOAD_DOC)) + { + $imp = new DolibarrImport($db); + print "eee".$conf->import->dir_temp; + create_ext_dir($conf->import->dir_temp); + if (dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $imp->upload_dir . "/" . $_FILES['userfile']['name'],1) > 0) + { - // Liste deroulante des modeles d'import - print '
'; - print ''; - print ''; - print ''; - print ''; - print '
'; - print $langs->trans("SelectImportFields"); + $imp->ImportClients($imp->upload_dir . "/" . $_FILES['userfile']['name']); + + print "Imports : ".$imp->nb_import."
"; + print "Imports corrects : ".$imp->nb_import_ok."
"; + print "Imports erreurs : ".$imp->nb_import_ko."
"; + + } + else + { + $mesg = "Files was not read"; + } + } + + // List deroulante des modeles d'import + /* print ''; + print ''; + print ''; + print ''; + print ''; + print '
'; + print $langs->trans("SelectImportFields"); print ''; - $htmlother->select_import_model($importmodelid,'importmodelid',$datatoimport,1); - print ''; - print '
'; - print ''; + $htmlother->select_import_model($importmodelid,'importmodelid',$datatoimport,1); + print ''; + print '
'; + print ''; - print ''; - print ''; + print '
'; + print ''; print ''; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; - // Champs importables - $fieldsarray=$objimport->array_import_fields[0]; + // Champs importables + $fieldsarray=$objimport->array_import_fields[0]; -# $this->array_import_module[0]=$module; -# $this->array_import_code[0]=$module->import_code[$r]; -# $this->array_import_label[0]=$module->import_label[$r]; -# $this->array_import_sql[0]=$module->import_sql[$r]; -# $this->array_import_fields[0]=$module->import_fields_array[$r]; -# $this->array_import_entities[0]=$module->import_fields_entities[$r]; -# $this->array_import_alias[0]=$module->import_fields_alias[$r]; + # $this->array_import_module[0]=$module; + # $this->array_import_code[0]=$module->import_code[$r]; + # $this->array_import_label[0]=$module->import_label[$r]; + # $this->array_import_sql[0]=$module->import_sql[$r]; + # $this->array_import_fields[0]=$module->import_fields_array[$r]; + # $this->array_import_entities[0]=$module->import_fields_entities[$r]; + # $this->array_import_alias[0]=$module->import_fields_alias[$r]; - $var=true; - $i = 0; + $var=true; + $i = 0; - foreach($fieldsarray as $code=>$label) - { - $var=!$var; - print ""; + foreach($fieldsarray as $code=>$label) + { + $var=!$var; + print ""; - $i++; + $i++; - $entity=$objimport->array_import_entities[0][$code]; - $entityicon=$entitytoicon[$entity]?$entitytoicon[$entity]:$entity; - $entitylang=$entitytolang[$entity]?$entitytolang[$entity]:$entity; + $entity=$objimport->array_import_entities[0][$code]; + $entityicon=$entitytoicon[$entity]?$entitytoicon[$entity]:$entity; + $entitylang=$entitytolang[$entity]?$entitytolang[$entity]:$entity; - print ''; - if ((isset($array_selected[$code]) && $array_selected[$code]) || $modelchoice == 1) - { - // Selected fields - print ''; - print ''; - print ''; - $bit=1; - } - else - { - // Fields not selected - print ''; - print ''; - print ''; - $bit=0; - } + print ''; + if ((isset($array_selected[$code]) && $array_selected[$code]) || $modelchoice == 1) + { + // Selected fields + print ''; + print ''; + print ''; + $bit=1; + } + else + { + // Fields not selected + print ''; + print ''; + print ''; + $bit=0; + } - print ''; - $save_select.=$bit; - } + print ''; + $save_select.=$bit; + } - print '
'.$langs->trans("Entities").''.$langs->trans("ImportableFields").''; - print ''.$langs->trans("All").""; - print '/'; - print ''.$langs->trans("None").""; - print ''.$langs->trans("ImportedFields").'
'.$langs->trans("ImportableFields").''; + print ''.$langs->trans("All").""; + print '/'; + print ''.$langs->trans("None").""; + print ''.$langs->trans("ImportedFields").'
'.img_object('',$entityicon).' '.$langs->trans($entitylang).' '.img_left().''.$langs->trans($label).' ('.$code.')'.$langs->trans($label).' ('.$code.')'.img_right().' '.img_object('',$entityicon).' '.$langs->trans($entitylang).' '.img_left().''.$langs->trans($label).' ('.$code.')'.$langs->trans($label).' ('.$code.')'.img_right().' 
'; + print ''; + */ - print ''; + print ''; - if ($mesg) print $mesg; + if ($mesg) print $mesg; - /* - * Barre d'action - * - */ - print '
'; + /* + * Barre d'action + * + */ + print '
'; - if (sizeof($array_selected)) + if (sizeof($array_selected)) { print ''.$langs->trans("NextStep").''; } @@ -492,139 +516,139 @@ if ($step == 2 && $datatoimport) print ''.$langs->trans("NextStep").''; } - print '
'; + print '
'; } if ($step == 3 && $datatoimport) { - asort($array_selected); + asort($array_selected); - llxHeader('',$langs->trans("NewImport")); + llxHeader('',$langs->trans("NewImport")); - /* - * Affichage onglets - */ - $h = 0; + /* + * Affichage onglets + */ + $h = 0; - $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=1'; - $head[$h][1] = $langs->trans("Step")." 1"; - $h++; + $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=1'; + $head[$h][1] = $langs->trans("Step")." 1"; + $h++; - $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=2&datatoimport='.$datatoimport; - $head[$h][1] = $langs->trans("Step")." 2"; - $h++; + $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=2&datatoimport='.$datatoimport; + $head[$h][1] = $langs->trans("Step")." 2"; + $h++; - $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=3&datatoimport='.$datatoimport; - $head[$h][1] = $langs->trans("Step")." 3"; - $hselected=$h; - $h++; + $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=3&datatoimport='.$datatoimport; + $head[$h][1] = $langs->trans("Step")." 3"; + $hselected=$h; + $h++; - dol_fiche_head($head, $hselected, $langs->trans("NewImport")); + dol_fiche_head($head, $hselected, $langs->trans("NewImport")); - print ''; + print '
'; - // Module - print ''; - print ''; + // Module + print ''; + print ''; - // Lot de donn�es � importer - print ''; - print ''; + // Lot de donn�es � importer + print ''; + print ''; - // Nbre champs import�s - print ''; - $list=''; - foreach($array_selected as $code=>$value) - { - $list.=($list?',':''); - $list.=$langs->trans($objimport->array_import_fields[0][$code]); - } - print ''; + // Nbre champs import�s + print ''; + $list=''; + foreach($array_selected as $code=>$value) + { + $list.=($list?',':''); + $list.=$langs->trans($objimport->array_import_fields[0][$code]); + } + print ''; - print '
'.$langs->trans("Module").''; - //print img_object($objimport->array_import_module[0]->getName(),$objimport->array_import_module[0]->picto).' '; - print $objimport->array_import_module[0]->getName(); - print '
'.$langs->trans("Module").''; + //print img_object($objimport->array_import_module[0]->getName(),$objimport->array_import_module[0]->picto).' '; + print $objimport->array_import_module[0]->getName(); + print '
'.$langs->trans("DatasetToImport").''; - print img_object($objimport->array_import_module[0]->getName(),$objimport->array_import_icon[0]).' '; - print $objimport->array_import_label[0]; - print '
'.$langs->trans("DatasetToImport").''; + print img_object($objimport->array_import_module[0]->getName(),$objimport->array_import_icon[0]).' '; + print $objimport->array_import_label[0]; + print '
'.$langs->trans("ImportedFields").''.$list.'
'.$langs->trans("ImportedFields").''.$list.'
'; - print '
'; + print ''; + print '
'; - print $langs->trans("ChooseFieldsOrdersAndTitle").'
'; + print $langs->trans("ChooseFieldsOrdersAndTitle").'
'; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; + print '
'.$langs->trans("Entities").''.$langs->trans("ImportedFields").''.$langs->trans("Position").' '.$langs->trans("FieldsTitle").'
'; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; - $var=true; - foreach($array_selected as $code=>$value) - { - $var=!$var; - print ""; + $var=true; + foreach($array_selected as $code=>$value) + { + $var=!$var; + print ""; - $entity=$objimport->array_import_entities[0][$code]; - $entityicon=$entitytoicon[$entity]?$entitytoicon[$entity]:$entity; - $entitylang=$entitytolang[$entity]?$entitytolang[$entity]:$entity; + $entity=$objimport->array_import_entities[0][$code]; + $entityicon=$entitytoicon[$entity]?$entitytoicon[$entity]:$entity; + $entitylang=$entitytolang[$entity]?$entitytolang[$entity]:$entity; - print ''; + print ''; - print ''; + print ''; - print ''; + print ''; - print ''; + print ''; - print ''; + print ''; - print ''; - } + print ''; + } - print '
'.$langs->trans("Entities").''.$langs->trans("ImportedFields").''.$langs->trans("Position").' '.$langs->trans("FieldsTitle").'
'.img_object('',$entityicon).' '.$langs->trans($entitylang).''.img_object('',$entityicon).' '.$langs->trans($entitylang).''.$langs->trans($objimport->array_import_fields[0][$code]).' ('.$code.')'.$langs->trans($objimport->array_import_fields[0][$code]).' ('.$code.')'; - print $value.' '; - print ''; - if ($value < sizeof($array_selected)) print ''.img_down().''; - if ($value > 1) print ''.img_up().''; - print ''; + print $value.' '; + print ''; + if ($value < sizeof($array_selected)) print ''.img_down().''; + if ($value > 1) print ''.img_up().''; + print '  '.$langs->trans($objimport->array_import_fields[0][$code]).''.$langs->trans($objimport->array_import_fields[0][$code]).'
'; + print ''; - print ''; + print ''; - if ($mesg) print $mesg; + if ($mesg) print $mesg; - /* - * Barre d'action - * - */ - print '
'; + /* + * Barre d'action + * + */ + print '
'; - if (sizeof($array_selected)) - { - print ''.$langs->trans("NextStep").''; - } + if (sizeof($array_selected)) + { + print ''.$langs->trans("NextStep").''; + } - print '
'; + print '
'; // Area for profils import if (sizeof($array_selected)) - { + { print '
'; - print $langs->trans("SaveImportModel"); + print $langs->trans("SaveImportModel"); print '
'; print ''; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; - print ''; + print '
'; print ''; print ''; print ''; @@ -632,11 +656,11 @@ if ($step == 3 && $datatoimport) $var=false; print ''; print ''; + print ''; + print ''; - // List of existing import profils - $sql = "SELECT rowid, label"; + // List of existing import profils + $sql = "SELECT rowid, label"; $sql.= " FROM ".MAIN_DB_PREFIX."import_model"; $sql.= " WHERE type = '".$datatoimport."'"; $sql.= " ORDER BY rowid"; @@ -664,129 +688,129 @@ if ($step == 3 && $datatoimport) dol_print_error($this->db); } - print '
'.$langs->trans("ImportModelName").' 
'; - print ''; - print '
'; - print '
'; - } + print ''; + print ''; + } } if ($step == 4 && $datatoimport) { - asort($array_selected); + asort($array_selected); - llxHeader('',$langs->trans("NewImport")); + llxHeader('',$langs->trans("NewImport")); - /* - * Affichage onglets - */ - $h = 0; + /* + * Affichage onglets + */ + $h = 0; - $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=1'; - $head[$h][1] = $langs->trans("Step")." 1"; - $h++; + $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=1'; + $head[$h][1] = $langs->trans("Step")." 1"; + $h++; - $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=2&datatoimport='.$datatoimport; - $head[$h][1] = $langs->trans("Step")." 2"; - $h++; + $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=2&datatoimport='.$datatoimport; + $head[$h][1] = $langs->trans("Step")." 2"; + $h++; - $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=3&datatoimport='.$datatoimport; - $head[$h][1] = $langs->trans("Step")." 3"; - $h++; + $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=3&datatoimport='.$datatoimport; + $head[$h][1] = $langs->trans("Step")." 3"; + $h++; - $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=4&datatoimport='.$datatoimport; - $head[$h][1] = $langs->trans("Step")." 4"; - $hselected=$h; - $h++; + $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=4&datatoimport='.$datatoimport; + $head[$h][1] = $langs->trans("Step")." 4"; + $hselected=$h; + $h++; - dol_fiche_head($head, $hselected, $langs->trans("NewImport")); + dol_fiche_head($head, $hselected, $langs->trans("NewImport")); - print ''; + print '
'; - // Module - print ''; - print ''; + // Module + print ''; + print ''; - // Lot de donnees a importer - print ''; - print ''; + // Lot de donnees a importer + print ''; + print ''; - // Nbre champs importes - print ''; - $list=''; - foreach($array_selected as $code=>$label) - { - $list.=($list?',':''); - $list.=$langs->trans($objimport->array_import_fields[0][$code]); - } - print ''; + // Nbre champs importes + print ''; + $list=''; + foreach($array_selected as $code=>$label) + { + $list.=($list?',':''); + $list.=$langs->trans($objimport->array_import_fields[0][$code]); + } + print ''; - print '
'.$langs->trans("Module").''; - //print img_object($objimport->array_import_module[0]->getName(),$objimport->array_import_module[0]->picto).' '; - print $objimport->array_import_module[0]->getName(); - print '
'.$langs->trans("Module").''; + //print img_object($objimport->array_import_module[0]->getName(),$objimport->array_import_module[0]->picto).' '; + print $objimport->array_import_module[0]->getName(); + print '
'.$langs->trans("DatasetToImport").''; - print img_object($objimport->array_import_module[0]->getName(),$objimport->array_import_icon[0]).' '; - print $objimport->array_import_label[0]; - print '
'.$langs->trans("DatasetToImport").''; + print img_object($objimport->array_import_module[0]->getName(),$objimport->array_import_icon[0]).' '; + print $objimport->array_import_label[0]; + print '
'.$langs->trans("ImportedFields").''.$list.'
'.$langs->trans("ImportedFields").''.$list.'
'; - print '
'; + print ''; + print '
'; - print $langs->trans("NowClickToGenerateToBuildImportFile").'
'; + print $langs->trans("NowClickToGenerateToBuildImportFile").'
'; - // Liste des formats d'imports disponibles - $var=true; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; + // Liste des formats d'imports disponibles + $var=true; + print '
'.$langs->trans("AvailableFormats").''.$langs->trans("LibraryUsed").''.$langs->trans("LibraryVersion").'
'; + print ''; + print ''; + print ''; + print ''; + print ''; - $liste=$objmodelimport->liste_modeles($db); - foreach($liste as $key) - { - $var=!$var; - print ''; - } - print '
'.$langs->trans("AvailableFormats").''.$langs->trans("LibraryUsed").''.$langs->trans("LibraryVersion").'
'.$objmodelimport->getDriverLabel($key).''.$objmodelimport->getLibLabel($key).''.$objmodelimport->getLibVersion($key).'
'; - - print ''; - - print ''; - if ($mesg) - { - print ''; - } - if ($sqlusedforimport && $user->admin) - { - print ''; - } + $liste=$objmodelimport->liste_modeles($db); + foreach($liste as $key) + { + $var=!$var; + print ''; + } print '
'; - print $mesg; - print '
'; - print info_admin($langs->trans("SQLUsedForImport").':
'.$sqlusedforimport); - print '
'.$objmodelimport->getDriverLabel($key).''.$objmodelimport->getLibLabel($key).''.$objmodelimport->getLibVersion($key).'
'; - print ''; + print '
'; + print ''; - if (! is_dir($conf->import->dir_temp)) create_exdir($conf->import->dir_temp); + print ''; + if ($mesg) + { + print ''; + } + if ($sqlusedforimport && $user->admin) + { + print ''; + } + print '
'; + print $mesg; + print '
'; + print info_admin($langs->trans("SQLUsedForImport").':
'.$sqlusedforimport); + print '
'; - // Affiche liste des documents - // NB: La fonction show_documents rescanne les modules qd genallowed=1 - $formfile->show_documents('import','',$conf->import->dir_temp.'/'.$user->id,$_SERVER["PHP_SELF"].'?step=4&datatoimport='.$datatoimport,$liste,1,(! empty($_POST['model'])?$_POST['model']:'csv'),'',1); + print ''; - print '
'; - print ' 
'; + if (! is_dir($conf->import->dir_temp)) create_exdir($conf->import->dir_temp); + + // Affiche liste des documents + // NB: La fonction show_documents rescanne les modules qd genallowed=1 + $formfile->show_documents('import','',$conf->import->dir_temp.'/'.$user->id,$_SERVER["PHP_SELF"].'?step=4&datatoimport='.$datatoimport,$liste,1,(! empty($_POST['model'])?$_POST['model']:'csv'),'',1); + + print '
 
'; // If external library PHPEXCELREADER is available // and defined by PHPEXCELREADER constant. - if (file_exists(PHPEXCELREADER.'excelreader.php')) - { - // Test d'affichage du tableau excel et csv - //print '
'; - //require_once(DOL_DOCUMENT_ROOT.'/lib/viewfiles.lib.php'); + if (file_exists(PHPEXCELREADER.'excelreader.php')) + { + // Test d'affichage du tableau excel et csv + //print '
'; + //require_once(DOL_DOCUMENT_ROOT.'/lib/viewfiles.lib.php'); //viewExcelFileContent($conf->import->dir_temp.'/1/import_member_1.xls',5,3); - //viewCsvFileContent($conf->import->dir_temp.'/1/import_member_1.csv',5); - //print '
'; - } + //viewCsvFileContent($conf->import->dir_temp.'/1/import_member_1.csv',5); + //print '
'; + } } diff --git a/htdocs/includes/modules/export/export_csv.modules.php b/htdocs/includes/modules/export/export_csv.modules.php index 12764335449..7af2debfeed 100644 --- a/htdocs/includes/modules/export/export_csv.modules.php +++ b/htdocs/includes/modules/export/export_csv.modules.php @@ -43,10 +43,10 @@ class ExportCsv extends ModeleExports var $version_lib; var $separator; - + var $handle; // Handle fichier - + /** * \brief Constructeur * \param db Handler acces base de donnee @@ -59,13 +59,14 @@ class ExportCsv extends ModeleExports $this->id='csv'; // Same value then xxx in file name export_xxx.modules.php $this->label='Csv (Comma Separated Value)'; // Label of driver $this->extension='csv'; // Extension for generated file by this driver + $this->picto='mime/other'; // Picto $ver=split(' ','$Revision$'); $this->version=$ver[2]; // Driver version // If driver use an external library, put its name here - $this->label_lib='Dolibarr'; + $this->label_lib='Dolibarr'; $this->version_lib=DOL_VERSION; - + $this->separator=','; if (! empty($conf->global->EXPORT_CSV_SEPARATOR_TO_USE)) $this->separator=$conf->global->EXPORT_CSV_SEPARATOR_TO_USE; } @@ -109,11 +110,11 @@ class ExportCsv extends ModeleExports function open_file($file,$outputlangs) { global $langs; - + dol_syslog("ExportCsv::open_file file=".$file); $ret=1; - + $outputlangs->load("exports"); $this->handle = fopen($file, "wt"); if (! $this->handle) @@ -122,7 +123,7 @@ class ExportCsv extends ModeleExports $this->error=$langs->trans("ErrorFailToCreateFile",$file); $ret=-1; } - + return $ret; } @@ -143,7 +144,7 @@ class ExportCsv extends ModeleExports function write_title($array_export_fields_label,$array_selected_sorted,$outputlangs) { global $conf; - + if (! empty($conf->global->EXPORT_CSV_FORCE_CHARSET)) { $outputlangs->charset_output = $conf->global->EXPORT_CSV_FORCE_CHARSET; @@ -152,12 +153,12 @@ class ExportCsv extends ModeleExports { $outputlangs->charset_output = 'ISO-8859-1'; } - + foreach($array_selected_sorted as $code => $value) { $newvalue=$outputlangs->transnoentities($array_export_fields_label[$code]); $newvalue=$this->csv_clean($newvalue); - + fwrite($this->handle,$newvalue.$this->separator); } fwrite($this->handle,"\n"); @@ -171,7 +172,7 @@ class ExportCsv extends ModeleExports function write_record($array_alias,$array_selected_sorted,$objp,$outputlangs) { global $conf; - + if (! empty($conf->global->EXPORT_CSV_FORCE_CHARSET)) { $outputlangs->charset_output = $conf->global->EXPORT_CSV_FORCE_CHARSET; @@ -187,19 +188,19 @@ class ExportCsv extends ModeleExports $alias=$array_alias[$code]; if (empty($alias)) dol_print_error('','Bad value for field with code='.$code.'. Try to redefine export.'); $newvalue=$outputlangs->convToOutputCharset($objp->$alias); - + // Translation newvalue if (eregi('^\((.*)\)$',$newvalue,$reg)) { $newvalue=$outputlangs->transnoentities($reg[1]); } - + $newvalue=$this->csv_clean($newvalue); - + fwrite($this->handle,$newvalue.$this->separator); $this->col++; } - + fwrite($this->handle,"\n"); return 0; } @@ -212,7 +213,7 @@ class ExportCsv extends ModeleExports { return 0; } - + /** * \brief Close file handle */ @@ -230,14 +231,14 @@ class ExportCsv extends ModeleExports function csv_clean($newvalue) { $addquote=0; - + // Rule Dolibarr: No HTML $newvalue=dol_string_nohtmltag($newvalue); // Rule 1 CSV: No CR, LF in cells $newvalue=ereg_replace("\r",'',$newvalue); $newvalue=ereg_replace("\n",'\n',$newvalue); - + // Rule 2 CSV: If value contains ", we must duplicate ", and add " if (ereg('"',$newvalue)) { @@ -250,10 +251,10 @@ class ExportCsv extends ModeleExports { $addquote=1; } - + return ($addquote?'"':'').$newvalue.($addquote?'"':''); } - + } ?> diff --git a/htdocs/includes/modules/export/export_excel.modules.php b/htdocs/includes/modules/export/export_excel.modules.php index 0b4f5c0abe9..598d761ef76 100644 --- a/htdocs/includes/modules/export/export_excel.modules.php +++ b/htdocs/includes/modules/export/export_excel.modules.php @@ -64,6 +64,7 @@ class ExportExcel extends ModeleExports $this->id='excel'; // Same value then xxx in file name export_xxx.modules.php $this->label='Excel'; // Label of driver $this->extension='xls'; // Extension for generated file by this driver + $this->picto='mime/xls'; // Picto $ver=split(' ','$Revision$'); $this->version=$ver[2]; // Driver version diff --git a/htdocs/includes/modules/export/export_tsv.modules.php b/htdocs/includes/modules/export/export_tsv.modules.php index 325f7b416ca..ca89ec2eb5b 100644 --- a/htdocs/includes/modules/export/export_tsv.modules.php +++ b/htdocs/includes/modules/export/export_tsv.modules.php @@ -43,10 +43,10 @@ class ExportTsv extends ModeleExports var $version_lib; var $separator="\t"; - + var $handle; // Handle fichier - + /** \brief Constructeur \param db Handler acc�s base de donn�e @@ -59,11 +59,12 @@ class ExportTsv extends ModeleExports $this->id='tsv'; // Same value then xxx in file name export_xxx.modules.php $this->label='Tsv (Tab Separated Value)'; // Label of driver $this->extension='tsv'; // Extension for generated file by this driver + $this->picto='mime/other'; // Picto $ver=split(' ','$Revision$'); $this->version=$ver[2]; // Driver version // If driver use an external library, put its name here - $this->label_lib='Dolibarr'; + $this->label_lib='Dolibarr'; $this->version_lib=DOL_VERSION; } @@ -106,11 +107,11 @@ class ExportTsv extends ModeleExports function open_file($file,$outputlangs) { global $langs; - + dol_syslog("ExportTsv::open_file file=".$file); $ret=1; - + $outputlangs->load("exports"); $this->handle = fopen($file, "wt"); if (! $this->handle) @@ -119,7 +120,7 @@ class ExportTsv extends ModeleExports $this->error=$langs->trans("ErrorFailToCreateFile",$file); $ret=-1; } - + return $ret; } @@ -143,7 +144,7 @@ class ExportTsv extends ModeleExports { $newvalue=$outputlangs->transnoentities($array_export_fields_label[$code]); $newvalue=$this->tsv_clean($newvalue); - + fwrite($this->handle,$newvalue.$this->separator); } fwrite($this->handle,"\n"); @@ -168,9 +169,9 @@ class ExportTsv extends ModeleExports { $newvalue=$outputlangs->transnoentities($reg[1]); } - + $newvalue=$this->tsv_clean($newvalue); - + fwrite($this->handle,$newvalue.$this->separator); $this->col++; } @@ -186,7 +187,7 @@ class ExportTsv extends ModeleExports { return 0; } - + /** * \brief Close file handle */ @@ -209,16 +210,16 @@ class ExportTsv extends ModeleExports // Rule 1 TSV: No CR, LF in cells $newvalue=ereg_replace("\r",'',$newvalue); $newvalue=ereg_replace("\n",'\n',$newvalue); - + // Rule 2 TSV: If value contains tab, we must replace by space if (ereg($this->separator,$newvalue)) { $newvalue=ereg_replace("\t"," ",$newvalue); } - + return $newvalue; } - + } ?> diff --git a/htdocs/includes/modules/export/modules_export.php b/htdocs/includes/modules/export/modules_export.php index e79468be4b7..57c7265953f 100644 --- a/htdocs/includes/modules/export/modules_export.php +++ b/htdocs/includes/modules/export/modules_export.php @@ -77,6 +77,8 @@ class ModeleExports require_once($file); $module = new $classname($db); + // Picto + $this->picto[$module->id]=$module->picto; // Driver properties $this->driverlabel[$module->id]=$module->getDriverLabel(); $this->driverversion[$module->id]=$module->getDriverVersion(); @@ -92,6 +94,14 @@ class ModeleExports } + /** + * \brief Return picto of export driver + */ + function getPicto($key) + { + return $this->picto[$key]; + } + /** * \brief Renvoi libelle d'un driver export */ diff --git a/htdocs/includes/modules/import/import_csv.modules.php b/htdocs/includes/modules/import/import_csv.modules.php index 2281daf1df8..8f2c281df6c 100644 --- a/htdocs/includes/modules/import/import_csv.modules.php +++ b/htdocs/includes/modules/import/import_csv.modules.php @@ -43,10 +43,10 @@ class ImportCsv extends ModeleImports var $version_lib; var $separator; - + var $handle; // Handle fichier - + /** * \brief Constructeur * \param db Handler acces base de donnee @@ -59,13 +59,14 @@ class ImportCsv extends ModeleImports $this->id='csv'; // Same value then xxx in file name export_xxx.modules.php $this->label='Csv (Comma Separated Value)'; // Label of driver $this->extension='csv'; // Extension for generated file by this driver + $this->picto='mime/other'; // Picto $ver=split(' ','$Revision$'); $this->version=$ver[2]; // Driver version // If driver use an external library, put its name here - $this->label_lib='Dolibarr'; + $this->label_lib='Dolibarr'; $this->version_lib=DOL_VERSION; - + $this->separator=','; if (! empty($conf->global->EXPORT_CSV_SEPARATOR_TO_USE)) $this->separator=$conf->global->EXPORT_CSV_SEPARATOR_TO_USE; } @@ -109,11 +110,11 @@ class ImportCsv extends ModeleImports function open_file($file,$outputlangs) { global $langs; - + dol_syslog("ImportCsv::open_file file=".$file); $ret=1; - + $outputlangs->load("exports"); $this->handle = fread($file, "wt"); if (! $this->handle) @@ -122,7 +123,7 @@ class ImportCsv extends ModeleImports $this->error=$langs->trans("ErrorFailToOpenFile",$file); $ret=-1; } - + return $ret; } @@ -156,9 +157,9 @@ class ImportCsv extends ModeleImports { $newvalue=$outputlangs->transnoentities($reg[1]); } - + $newvalue=$this->csv_clean($newvalue); - + fwrite($this->handle,$newvalue.$this->separator); $this->col++; } @@ -183,14 +184,14 @@ class ImportCsv extends ModeleImports function csv_clean($newvalue) { $addquote=0; - + // Rule Dolibarr: No HTML $newvalue=dol_string_nohtmltag($newvalue); // Rule 1 CSV: No CR, LF in cells $newvalue=ereg_replace("\r",'',$newvalue); $newvalue=ereg_replace("\n",'\n',$newvalue); - + // Rule 2 CSV: If value contains ", we must duplicate ", and add " if (ereg('"',$newvalue)) { @@ -203,10 +204,10 @@ class ImportCsv extends ModeleImports { $addquote=1; } - + return ($addquote?'"':'').$newvalue.($addquote?'"':''); } - + } ?> diff --git a/htdocs/includes/modules/import/modules_import.php b/htdocs/includes/modules/import/modules_import.php index 7622c70cc61..78f9b182f2f 100644 --- a/htdocs/includes/modules/import/modules_import.php +++ b/htdocs/includes/modules/import/modules_import.php @@ -77,6 +77,8 @@ class ModeleImports require_once($file); $module = new $classname($db); + // Picto + $this->picto[$module->id]=$module->picto; // Driver properties $this->driverlabel[$module->id]=$module->getDriverLabel(); $this->driverversion[$module->id]=$module->getDriverVersion(); @@ -92,6 +94,14 @@ class ModeleImports } + /** + * \brief Return picto of import driver + */ + function getPicto($key) + { + return $this->picto[$key]; + } + /** * \brief Renvoi libelle d'un driver export */ diff --git a/htdocs/includes/modules/modImport.class.php b/htdocs/includes/modules/modImport.class.php index 95b5ca67ed5..f95d71b4bc6 100644 --- a/htdocs/includes/modules/modImport.class.php +++ b/htdocs/includes/modules/modImport.class.php @@ -78,18 +78,13 @@ class modImport extends DolibarrModules $this->rights = array(); $this->rights_class = 'import'; + /* $this->rights[1][0] = 1401; - $this->rights[1][1] = 'Lire les imports'; + $this->rights[1][1] = 'Réaliser un import'; $this->rights[1][2] = 'r'; $this->rights[1][3] = 1; $this->rights[1][4] = 'lire'; - - $this->rights[2][0] = 1402; - $this->rights[2][1] = 'Creer/modifier un import'; - $this->rights[2][2] = 'w'; - $this->rights[2][3] = 0; - $this->rights[2][4] = 'creer'; - + */ } /** diff --git a/htdocs/includes/modules/modProduit.class.php b/htdocs/includes/modules/modProduit.class.php index 934374f656f..7e06e1b826d 100644 --- a/htdocs/includes/modules/modProduit.class.php +++ b/htdocs/includes/modules/modProduit.class.php @@ -159,21 +159,12 @@ class modProduit extends DolibarrModules $r++; $this->import_code[$r]=$this->rights_class.'_'.$r; $this->import_label[$r]="ProductsOrServices"; // Translation key + //$this->import_permission[$r]=array(array("societe","import")); $this->import_fields_array[$r]=array('p.rowid'=>"Id",'p.ref'=>"Ref",'p.fk_product_type'=>"Type",'p.label'=>"Label",'p.description'=>"Description",'p.note'=>"Note",'p.price'=>"SellingPriceHT",'p.price_ttc'=>"SellingPriceTTC",'p.tva_tx'=>'VAT','p.envente'=>"OnSell",'p.duration'=>"Duration"); $this->import_entities_array[$r]=array('p.rowid'=>"product",'p.ref'=>"product",'p.fk_product_type'=>"product",'p.label'=>"product",'p.description'=>"product",'p.note'=>"product",'p.price'=>"product",'p.price_ttc'=>"product",'p.tva_tx'=>'product','p.envente'=>"product",'p.duration'=>"product"); - //$this->import_alias_array[$r]=array('p.rowid'=>"id",'p.ref'=>"ref",'p.fk_product_type'=>"type",'p.label'=>"label",'p.description'=>"description",'p.note'=>"note",'p.price'=>"price",'p.tva_tx'=>'vat','p.envente'=>"onsell",'p.duration'=>"duration"); - - if($conf->global->PRODUIT_MULTIPRICES) - { - $this->import_multiprices[$r]=array(); - - for($i=1;$i<=$conf->global->PRODUIT_MULTIPRICES_LIMIT;$i++) - { - $this->import_multiprices[$r][$i]["price_ht"] = "SellingPriceHT ".$i; - $this->import_multiprices[$r][$i]["price_ttc"] = "SellingPriceTTC ".$i; - } - } + $this->import_sql_start[$r]='INSERT INTO '.MAIN_DB_PREFIX.'produit as s'; + $this->import_sql_end[$r] .=''; } diff --git a/htdocs/includes/modules/modSociete.class.php b/htdocs/includes/modules/modSociete.class.php index 674b402e278..288ed8c7bf3 100644 --- a/htdocs/includes/modules/modSociete.class.php +++ b/htdocs/includes/modules/modSociete.class.php @@ -21,9 +21,9 @@ */ /** - \defgroup societe Module societe - \brief Module pour gerer les societes et contacts clients - \version $Id$ + * \defgroup societe Module societe + * \brief Module to manage third parties (customers, prospects) + * \version $Id$ */ /** @@ -69,7 +69,7 @@ class modSociete extends DolibarrModules // Data directories to create when module is enabled $this->dirs = array("/societe/temp","/societe/logos"); - + // Dependances $this->depends = array(); $this->requiredby = array("modExpedition","modFacture","modFournisseur","modFicheinter","modPropale","modContrat","modCommande"); @@ -187,7 +187,7 @@ class modSociete extends DolibarrModules //-------- $r=0; - // Export liste des societes et attributs + // Export list of third parties and attributes $r++; $this->export_code[$r]=$this->rights_class.'_'.$r; $this->export_label[$r]='ExportDataset_company_1'; @@ -204,7 +204,7 @@ class modSociete extends DolibarrModules $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'c_forme_juridique as cfj ON s.fk_forme_juridique = cfj.code'; $this->export_sql_end[$r] .=' WHERE s.entity = '.$conf->entity; - // Export liste des contacts et attributs + // Export list of contacts and attributes $r++; $this->export_code[$r]=$this->rights_class.'_'.$r; $this->export_label[$r]='ExportDataset_company_2'; @@ -219,6 +219,23 @@ class modSociete extends DolibarrModules $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'societe as s ON c.fk_soc = s.rowid'; $this->export_sql_end[$r] .=' WHERE c.fk_pays = p.rowid'; $this->export_sql_end[$r] .=' AND c.entity = '.$conf->entity; + + + // Imports + //-------- + $r=0; + + // Import list of third parties and attributes + $r++; + $this->import_code[$r]=$this->rights_class.'_'.$r; + $this->import_label[$r]='ImportDataset_company_1'; + //$this->import_permission[$r]=array(array("societe","export")); + $this->import_fields_array[$r]=array('s.rowid'=>"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.email'=>"Email",'s.siret'=>"IdProf1",'s.siren'=>"IdProf2",'s.ape'=>"IdProf3",'s.idprof4'=>"IdProf4",'s.tva_intra'=>"VATIntraShort",'s.capital'=>"Capital",'s.note'=>"Note",'t.libelle'=>"ThirdPartyType",'ce.code'=>"Effectif","cfj.libelle"=>"JuridicalStatus",'s.fk_prospectlevel'=>'ProspectLevel','fk_stcomm'=>'ProspectStatus'); + $this->import_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>"company",'s.prefix_comm'=>"company",'s.client'=>"company",'s.fournisseur'=>"company",'s.datec'=>"company",'s.tms'=>"company",'s.code_client'=>"company",'s.code_fournisseur'=>"company",'s.address'=>"company",'s.cp'=>"company",'s.ville'=>"company",'p.libelle'=>"company",'p.code'=>"company",'s.tel'=>"company",'s.fax'=>"company",'s.url'=>"company",'s.email'=>"company",'s.siret'=>"company",'s.siren'=>"company",'s.ape'=>"company",'s.idprof4'=>"company",'s.tva_intra'=>"company",'s.capital'=>"company",'s.note'=>"company",'t.libelle'=>"company",'ce.code'=>"company","cfj.libelle"=>"company",'s.fk_prospectlevel'=>'company','fk_stcomm'=>'company'); + + $this->import_sql_start[$r]='INSERT INTO '.MAIN_DB_PREFIX.'societe as s'; + $this->import_sql_end[$r] .=''; + } diff --git a/htdocs/langs/en_US/exports.lang b/htdocs/langs/en_US/exports.lang index 12bf29941fa..4526983912c 100644 --- a/htdocs/langs/en_US/exports.lang +++ b/htdocs/langs/en_US/exports.lang @@ -52,5 +52,5 @@ LineTotalHT=Amount net of tax for line LineTotalTTC=Amount with tax for line LineTotalVAT=Amount of VAT for line TypeOfLineServiceOrProduct=Type of line (0=product, 1=service) - -TypeOfLineServiceOrProduct=Type of line (0=product, 1=service) \ No newline at end of file +FileWithDataToImport=File with data to import +FileMustHaveOneOfFollowingFormat=File to import must have one of following format diff --git a/htdocs/langs/fr_FR/exports.lang b/htdocs/langs/fr_FR/exports.lang index 372482bcba7..11dd945d070 100644 --- a/htdocs/langs/fr_FR/exports.lang +++ b/htdocs/langs/fr_FR/exports.lang @@ -52,3 +52,5 @@ LineTotalHT=Montant HT de la ligne LineTotalTTC=Montant TTC de la ligne LineTotalVAT=Montant TVA de la ligne TypeOfLineServiceOrProduct=Type de ligne (0=produit, 1=service) +FileWithDataToImport=Fichier contenant les données à importer +FileMustHaveOneOfFollowingFormat=Le fichier à importer doit avoir un des formats suivants \ No newline at end of file diff --git a/htdocs/lib/functions.lib.php b/htdocs/lib/functions.lib.php index c479b202494..9a776293925 100644 --- a/htdocs/lib/functions.lib.php +++ b/htdocs/lib/functions.lib.php @@ -904,7 +904,7 @@ function img_object($alt, $object) /** * \brief Show picto (generic function) - * \param alt Texte sur le alt de l'image + * \param alt Text on alt and title of image * \param picto Nom de l'image a afficher (Si pas d'extension, on met '.png') * \param options Attribut supplementaire a la balise img * \param pictoisfullpath If 1, image path is a full path @@ -920,7 +920,7 @@ function img_picto($alt, $picto, $options='', $pictoisfullpath=0) /** * \brief Show picto (generic function) - * \param alt Texte sur le alt de l'image + * \param alt Text on alt and title of image * \param picto Nom de l'image a afficher (Si pas d'extension, on met '.png') * \param options Attribut supplementaire a la balise img * \param pictoisfullpath If 1, image path is a full path @@ -1305,16 +1305,21 @@ function img_allow($allow) function img_mime($file,$alt='') { $mime='other'; + + if (eregi('\.xls',$file) || eregi('\.xlsx',$file)) { $mime='xls'; } + if (eregi('\.ppt',$file) || eregi('\.pptx',$file)) { $mime='ppt'; } + if (eregi('\.doc',$file) || eregi('\.docx',$file)) { $mime='doc'; } + if (eregi('\.pdf',$file)) { $mime='pdf'; } if (eregi('\.(html|htm)',$file)) { $mime='html'; } if (eregi('\.txt',$file)) { $mime='other'; } if (eregi('\.php',$file)) { $mime='php'; } if (eregi('\.pl',$file)) { $mime='pl'; } if (eregi('\.js',$file)) { $mime='jscript'; } - if (eregi('\.(png|bmp|jpg|jpeg|gif)',$file)) $mime='image'; - if (eregi('\.(mp3|ogg|au)',$file)) $mime='audio'; - if (eregi('\.(avi|mvw|divx|xvid)',$file)) $mime='video'; - if (eregi('\.(zip|rar|gz|tgz|z|cab|bz2)',$file)) $mime='archive'; + if (eregi('\.(png|bmp|jpg|jpeg|gif)',$file)) $mime='image'; + if (eregi('\.(mp3|ogg|au)',$file)) $mime='audio'; + if (eregi('\.(avi|mvw|divx|xvid)',$file)) $mime='video'; + if (eregi('\.(zip|rar|gz|tgz|z|cab|bz2)',$file)) $mime='archive'; if (empty($alt)) $alt='Mime type: '.$mime; $mime.='.png'; @@ -1357,7 +1362,6 @@ function info_admin($texte,$infoonimgalt=0) * \param feature2 Feature to check (second level of permission) * \param dbt_keyfield Field name for socid foreign key if not fk_soc. (optionnal) * \param dbt_select Field name for select if not rowid. (optionnal) - * \param dbt_tablename2 Secondary table name for compare keyfield. (optionnal) */ function restrictedArea($user, $feature='societe', $objectid=0, $dbtablename='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid') { @@ -1529,7 +1533,7 @@ function restrictedArea($user, $feature='societe', $objectid=0, $dbtablename='', } } - print $sql."
"; + //print $sql."
"; if ($sql) { $resql=$db->query($sql);