From f0e9746de88f6778e59e8b90a32a590d95a198e0 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 14 Sep 2009 22:36:36 +0000 Subject: [PATCH] Work on import module --- htdocs/imports/import.php | 221 +++++++++++++++++++------------- htdocs/langs/en_US/exports.lang | 2 + htdocs/langs/fr_FR/exports.lang | 2 + 3 files changed, 138 insertions(+), 87 deletions(-) diff --git a/htdocs/imports/import.php b/htdocs/imports/import.php index 78526d9c31d..ee11d1d2bfa 100644 --- a/htdocs/imports/import.php +++ b/htdocs/imports/import.php @@ -64,6 +64,7 @@ $entitytolang=array( // Translation code ); $datatoimport=isset($_GET["datatoimport"])? $_GET["datatoimport"] : (isset($_POST["datatoimport"])?$_POST["datatoimport"]:''); +$format=isset($_GET["format"])? $_GET["format"] : (isset($_POST["format"])?$_POST["format"]:''); $filetoimport=isset($_GET["filetoimport"])? $_GET["filetoimport"] : (isset($_POST["filetoimport"])?$_POST["filetoimport"]:''); $action=isset($_GET["action"]) ? $_GET["action"] : (isset($_POST["action"])?$_POST["action"]:''); $step=isset($_GET["step"])? $_GET["step"] : (isset($_POST["step"])?$_POST["step"]:1); @@ -186,7 +187,7 @@ if ($action == 'add_import_model') } } -if ($step == 3 && $action == 'select_model') +if ($step == 4 && $action == 'select_model') { // Reinit match arrays $_SESSION["dol_array_match_file_to_database"]=''; @@ -303,9 +304,6 @@ if ($step == 2 && $datatoimport) { llxHeader('',$langs->trans("NewImport"),'EN:Module_Imports_En|FR:Module_Imports|ES:Módulo_Importaciones'); - /* - * Affichage onglets - */ $h = 0; $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=1'; @@ -351,6 +349,7 @@ if ($step == 2 && $datatoimport) $var=true; // Add format informations and link to download example + print ''.$langs->trans("ChooseFormatOfFileToImport",img_picto('','filenew')).''; print ''; print $langs->trans("FileMustHaveOneOfFollowingFormat"); print ''; @@ -361,12 +360,82 @@ if ($step == 2 && $datatoimport) print ''; print ''.img_picto_common($key,$objmodelimport->getPicto($key)).''; print ''.$objmodelimport->getDriverLabel($key).''; - print ''.$langs->trans("DownloadEmptyExample").''; - //print ''.$objmodelimport->getLibLabel($key).''.$objmodelimport->getLibVersion($key).''; + print ''.$langs->trans("DownloadEmptyExample").''; + // Action button + print ''; + print ''.img_picto($langs->trans("SelectFormat"),'filenew').''; + print ''; print ''; } - print ' '; + print ''; + + print ''; + + if ($mesg) print $mesg; +} + +if ($step == 3 && $datatoimport) +{ + llxHeader('',$langs->trans("NewImport"),'EN:Module_Imports_En|FR:Module_Imports|ES:Módulo_Importaciones'); + + $param='step=3&datatoimport='.$datatoimport.'&format='.$format; + + $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++; + + $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?'.$param; + $head[$h][1] = $langs->trans("Step")." 3"; + $hselected=$h; + $h++; + + + dol_fiche_head($head, $hselected, $langs->trans("NewImport")); + + + print ''; + + // Module + print ''; + print ''; + + // Lot de donnees a importer + print ''; + print ''; + + // Source file format + 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 '
'.$langs->trans("SourceFileFormat").''; + print $format; + print '
'; + print '
'."\n"; + + + print '
'; + print ''; + print ''; + + print ''; + + $filetoimport=''; + $fullpathfiletoimport=''; + $var=true; print ''; @@ -378,6 +447,7 @@ if ($step == 2 && $datatoimport) print '     '; print ''; print ''; + print ''; print ''; print "\n"; @@ -414,7 +484,7 @@ if ($step == 2 && $datatoimport) if (eregi('^\.',$file)) continue; $modulepart='import'; - $urlsource=$_SERVER["PHP_SELF"].'?step='.$step.'&datatoimport='.$datatoimport.'&filetoimport='.urlencode($filetoimport); + $urlsource=$_SERVER["PHP_SELF"].'?step='.$step.'&format='.$format.'&datatoimport='.$datatoimport.'&filetoimport='.urlencode($filetoimport); $relativepath=$file; $var=!$var; print ''; @@ -425,12 +495,12 @@ if ($step == 2 && $datatoimport) // Affiche date fichier print ''; // Del button - print ''; // Action button print ''; print ''; } @@ -443,24 +513,24 @@ if ($step == 2 && $datatoimport) print ''; if ($mesg) print $mesg; - } + // Page to make matching between source file and database fields -if ($step == 3 && $datatoimport) +if ($step == 4 && $datatoimport) { // Load source fields in input file $fieldssource=array( 1=>array('name'=>'aa','example1'=>'val1','example2'=>'val2'), 2=>array('name'=>'bb','example1'=>'valb1','example2'=>'valb2'), 3=>array('name'=>'cc','example1'=>'valc1','example2'=>'valc2'), - 4=>array('name'=>'dd','example1'=>'valc1','example2'=>'valc2'), +/* 4=>array('name'=>'dd','example1'=>'valc1','example2'=>'valc2'), 5=>array('name'=>'ee','example1'=>'valc1','example2'=>'valc2'), 6=>array('name'=>'ff','example1'=>'valc1','example2'=>'valc2'), 7=>array('name'=>'gg','example1'=>'valc1','example2'=>'valc2'), 8=>array('name'=>'hh','example1'=>'valc1','example2'=>'valc2'), 9=>array('name'=>'ii','example1'=>'valc1','example2'=>'valc2'), - ); +*/ ); // Load targets fields in database $fieldstarget=$objimport->array_import_fields[0]; @@ -505,11 +575,10 @@ if ($step == 3 && $datatoimport) // Now $array_match_file_to_database contains fieldnb(1,2,3...)=>fielddatabase(key in $array_match_file_to_database) + $param='&format='.$format.'&datatoimport='.$datatoimport.'&filetoimport='.urlencode($filetoimport); llxHeader('',$langs->trans("NewImport"),'EN:Module_Imports_En|FR:Module_Imports|ES:Módulo_Importaciones'); - $param='step=3&datatoimport='.$datatoimport.'&filetoimport='.urlencode($filetoimport); - $h = 0; $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=1'; @@ -520,11 +589,16 @@ if ($step == 3 && $datatoimport) $head[$h][1] = $langs->trans("Step")." 2"; $h++; - $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?'.$param; + $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=3'.$param; $head[$h][1] = $langs->trans("Step")." 3"; $hselected=$h; $h++; + $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=4'.$param; + $head[$h][1] = $langs->trans("Step")." 4"; + $hselected=$h; + $h++; + dol_fiche_head($head, $hselected, $langs->trans("NewImport")); print '
'.$langs->trans("ChooseFileToImport",img_picto('','filenew')).'
'.dol_print_date(filemtime($dir.'/'.$file),'dayhour').''.img_delete().''; - print ''.img_picto($langs->trans("NewImport"),'filenew').''; + print ''.img_picto($langs->trans("NewImport"),'filenew').''; print '
'; @@ -543,7 +617,13 @@ if ($step == 3 && $datatoimport) print $objimport->array_import_label[0]; print ''; - // Nbre champs importes + // Source file format + print ''; + print ''; + + // File to import print ''; print ''; @@ -556,7 +636,8 @@ if ($step == 3 && $datatoimport) print ''; print ''; print ''; - print ''; + print ''; + print ''; print ''; print ''; print '
'.$langs->trans("SourceFileFormat").''; + print $format; + print '
'.$langs->trans("FileToImport").''.$filetoimport.'
'; @@ -813,15 +894,14 @@ if ($step == 3 && $datatoimport) } -if ($step == 4 && $datatoimport) +if ($step == 5 && $datatoimport) { asort($array_match_file_to_database); + $param='&format='.$format.'&datatoimport='.$datatoimport.'&filetoimport='.urlencode($filetoimport); + llxHeader('',$langs->trans("NewImport"),'EN:Module_Imports_En|FR:Module_Imports|ES:Módulo_Importaciones'); - /* - * Affichage onglets - */ $h = 0; $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=1'; @@ -832,12 +912,16 @@ if ($step == 4 && $datatoimport) $head[$h][1] = $langs->trans("Step")." 2"; $h++; - $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=3&datatoimport='.$datatoimport; + $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=3&'.$param; $head[$h][1] = $langs->trans("Step")." 3"; $h++; - $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=4&datatoimport='.$datatoimport; + $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=4&'.$param; $head[$h][1] = $langs->trans("Step")." 4"; + $h++; + + $head[$h][0] = DOL_URL_ROOT.'/imports/import.php?step=5&'.$param; + $head[$h][1] = $langs->trans("Step")." 5"; $hselected=$h; $h++; @@ -859,79 +943,42 @@ if ($step == 4 && $datatoimport) print $objimport->array_import_label[0]; print ''; + // Source file format + print ''; + print ''; + + // File to import + print ''; + print ''; + + print '
'; @@ -708,7 +789,7 @@ if ($step == 3 && $datatoimport) print 'var url = "ajaximport.php";'."\n"; print 'var datatoimport = "'.$datatoimport.'";'."\n"; print 'o_options = new Object();'."\n"; - print 'o_options = {asynchronous:true,method: \'get\',parameters: \'step=3&boxorder=\' + boxorder + \'&userid=\' + userid + \'&datatoimport=\' + datatoimport};'."\n"; + print 'o_options = {asynchronous:true,method: \'get\',parameters: \'step=4&boxorder=\' + boxorder + \'&userid=\' + userid + \'&datatoimport=\' + datatoimport};'."\n"; print 'var myAjax = new Ajax.Request(url, o_options);'."\n"; //print 'document. print '}'."\n"; @@ -746,7 +827,7 @@ if ($step == 3 && $datatoimport) if (sizeof($array_match_file_to_database)) { - print ''.$langs->trans("NextStep").''; + print ''.$langs->trans("NextStep").''; } print ''; @@ -796,7 +877,7 @@ if ($step == 3 && $datatoimport) print '
'; print $obj->label; print ''; - print 'rowid.'&filetoimport='.urlencode($filetoimport).'">'; + print 'rowid.'&filetoimport='.urlencode($filetoimport).'">'; print img_delete(); print ''; print '
'.$langs->trans("SourceFileFormat").''; + print $format; + print '
'.$langs->trans("FileToImport").''.$filetoimport.'
'; + print '
'; + + // Nbre champs importes - print ''.$langs->trans("ImportedFields").''; + print $langs->trans("ImportedFields"); $list=''; foreach($array_match_file_to_database as $code=>$label) { $list.=($list?',':''); $list.=$langs->trans($objimport->array_import_fields[0][$code]); } - print ''.$list.''; - print ''; - print '
'; - print $langs->trans("NowClickToGenerateToBuildImportFile").'
'; + print '
'; + print $langs->trans("NowClickToLoadImportFile").'
'; + print ''; - // Liste des formats d'imports disponibles - $var=true; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; + print ''; - $liste=$objmodelimport->liste_modeles($db); - foreach($liste as $key) - { - $var=!$var; - print ''; - print ''; - print ''; - } - print '
'.$langs->trans("AvailableFormats").''.$langs->trans("LibraryUsed").''.$langs->trans("LibraryVersion").'
'.img_picto_common($key,$objmodelimport->getPicto($key)).''.$objmodelimport->getDriverLabel($key).''.$objmodelimport->getLibLabel($key).''.$objmodelimport->getLibVersion($key).'
'; + print ''; + print '
'; print ''; - print ''; - if ($mesg) - { - print ''; - } - if ($sqlusedforimport && $user->admin) - { - print ''; - } - print '
'; - print $mesg; - print '
'; - print info_admin($langs->trans("SQLUsedForImport").':
'.$sqlusedforimport); - 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'); - //viewExcelFileContent($conf->import->dir_temp.'/1/import_member_1.xls',5,3); - //viewCsvFileContent($conf->import->dir_temp.'/1/import_member_1.csv',5); - //print '
'; - } + if ($mesg) print $mesg; } diff --git a/htdocs/langs/en_US/exports.lang b/htdocs/langs/en_US/exports.lang index 8c082ba6a54..89ee2a77c4c 100644 --- a/htdocs/langs/en_US/exports.lang +++ b/htdocs/langs/en_US/exports.lang @@ -59,7 +59,9 @@ FileWithDataToImport=File with data to import FileToImport=Source file to import FileMustHaveOneOfFollowingFormat=File to import must have one of following format DownloadEmptyExample=Download example of empty source file +ChooseFormatOfFileToImport=Choose file format to use as import file format by clicking on picto %s to select it... ChooseFileToImport=Upload file then click on picto %s to select file as source import file... +SourceFileFormat=Source file format FieldsInSourceFile=Fields in source file FieldsInTargetDatabase=Target fields in Dolibarr database NoFields=No fields diff --git a/htdocs/langs/fr_FR/exports.lang b/htdocs/langs/fr_FR/exports.lang index 2175cbcc7e2..e7d1895b092 100644 --- a/htdocs/langs/fr_FR/exports.lang +++ b/htdocs/langs/fr_FR/exports.lang @@ -58,8 +58,10 @@ TypeOfLineServiceOrProduct=Type de ligne (0=produit, 1=service) FileWithDataToImport=Fichier contenant les données à importer FileToImport=Fichier source à importer FileMustHaveOneOfFollowingFormat=Le fichier à importer doit avoir un des formats suivants +ChooseFormatOfFileToImport=Choisissez le format de fichier à importer en cliquant sur le picto %s pour le sélectionner... ChooseFileToImport=Ajouter le fichier à importer puis cliquez sur le picto %s pour le sélectionner comme fichier source d'import... DownloadEmptyExample=Télécharger fichier vierge exemple +SourceFileFormat=Format du fichier source FieldsInSourceFile=Champs dans le fichier source FieldsInTargetDatabase=Champs cibles dans la base Dolibarr NoFields=Aucun champ