diff --git a/htdocs/imports/import.class.php b/htdocs/imports/import.class.php index f80474ad988..ae4df7d89d2 100644 --- a/htdocs/imports/import.class.php +++ b/htdocs/imports/import.class.php @@ -1,5 +1,6 @@ + * Copyright (C) 2009 Laurent Destailleur * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -122,21 +123,21 @@ class Import // 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]; + $this->array_import_code[$i]=$module->import_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]; + $this->array_import_fields[$i]=$module->import_fields_array[$r]; // Tableau des entites a exporter (cle=champ, valeur=entite) - $this->array_import_entities[$i]=$module->export_entities_array[$r]; + $this->array_import_entities[$i]=$module->import_entities_array[$r]; // Tableau des alias a exporter (cle=champ, valeur=alias) - $this->array_import_alias[$i]=$module->export_alias_array[$r]; + $this->array_import_alias[$i]=$module->import_alias_array[$r]; // Tableau des operations speciales sur champ - $this->array_import_special[$i]=$module->export_special_array[$r]; + $this->array_import_special[$i]=$module->import_special_array[$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_start[$i]=$module->import_sql_start[$r]; + $this->array_import_sql_end[$i]=$module->import_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])); diff --git a/htdocs/imports/import.php b/htdocs/imports/import.php index 0bd23eb94c5..46b326b9044 100644 --- a/htdocs/imports/import.php +++ b/htdocs/imports/import.php @@ -383,8 +383,8 @@ if ($step == 2 && $datatoimport) { $var=!$var; print ''; - print ''.img_picto_common($key,$objmodelimport->getPicto($key)).''; - print ''.$objmodelimport->getDriverLabel($key).''; + print ''.img_picto_common($key,$objmodelimport->getPicto($key)).''; + print ''.$objmodelimport->getDriverLabel($key).''; //print ''.$objmodelimport->getLibLabel($key).''.$objmodelimport->getLibVersion($key).''; print ''; } @@ -427,20 +427,20 @@ if ($step == 2 && $datatoimport) $handle=@opendir($dir); if ($handle) { - //print ''; + //print ''; //print ''; // Search available files to import - $i=0; - while (($file = readdir($handle))!==false) - { - if (eregi('^\.',$file)) continue; + $i=0; + while (($file = readdir($handle))!==false) + { + if (eregi('^\.',$file)) continue; - $modulepart='import'; - $urlsource=$_SERVER["PHP_SELF"].'?step='.$step.'&datatoimport='.$datatoimport; - $relativepath=$file; - $var=!$var; - print ''; + $modulepart='import'; + $urlsource=$_SERVER["PHP_SELF"].'?step='.$step.'&datatoimport='.$datatoimport; + $relativepath=$file; + $var=!$var; + print ''; print ''; print ''; // Affiche taille fichier @@ -456,8 +456,8 @@ if ($step == 2 && $datatoimport) print ''.img_picto($langs->trans("NewImport"),'filenew').''; print ''; print ''; - } - //print '
'.img_mime($file).''.$file.'
'; + } + //print ''; } print ''; @@ -518,98 +518,91 @@ if ($step == 3 && $datatoimport) print ''; print '
'; + + // Load source fields + $fieldssource=array( + 1=>array('name'=>'aa','example1'=>'val1','example2'=>'val2'), + 2=>array('name'=>'bb','example1'=>'valb1','example2'=>'valb2') + ); + + // Load targets fileds in database + $fieldstarget=$objimport->array_import_fields[0]; + + $maxpos=max(sizeof($fieldssource),sizeof($fieldstarget)); + + print $langs->trans("SelectImportFields"); - print ''; + print '
'; print ''; - print ''; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; print ''; + print ''; + + print '
'.$langs->trans("FieldsTitle").' '.$langs->trans("Entities").''.$langs->trans("ImportedFields").''.$langs->trans("Position").''.$langs->trans("FieldsInSourceFile").' '.$langs->trans("FieldsInTargetDatabase").'
'; - // 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]; - + // List of source fields + print ''; + $pos=1; $var=true; - $i = 0; - - foreach($fieldsarray as $code=>$label) + while($pos <= $maxpos) { - $var=!$var; - print ""; - - $i++; - - $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 ''; - $save_select.=$bit; + $var=!$var; + print "'; + print ''; + print ''; + $pos++; } print '
'.img_object('',$entityicon).' '.$langs->trans($entitylang).' '.img_left().''.$langs->trans($label).' ('.$code.')'.$langs->trans($label).' ('.$code.')'.img_right().' 
'; + if (! empty($fieldssource[$pos]['name'])) print $fieldssource[$pos]['name'].' ('.$fieldssource[$pos]['example1'].')'; + else print ' '; + print '
'; - + print '
'; + // Arrows + print ''; + $pos=1; $var=true; - foreach($array_selected as $code=>$value) + while ($pos <= $maxpos) { $var=!$var; - print ""; + print "'; + print ''; + print ''; + $pos++; + } + print '
 '; + if ($pos <= sizeof($fieldssource)) print img_right(); + print ' 
'; + print '
'; + + $i = 0; + $var=true; + print ''; + foreach($fieldstarget as $code=>$label) + { + $var=!$var; + print "'; + + $i++; $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 ''; + $save_select.=$bit; } - print '
'.img_object('',$entityicon).' '.$langs->trans($entitylang).''.$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 ' '.$langs->trans($objimport->array_import_fields[0][$code]).''.img_object('',$entityicon).' '.$langs->trans($entitylang).''.$langs->trans($label).' ('.$code.')
'; + print '
'; print ''; @@ -763,7 +756,7 @@ if ($step == 4 && $datatoimport) { $var=!$var; print ''; - print ''.img_picto_common($key,$objmodelimport->getPicto($key)).''; + print ''.img_picto_common($key,$objmodelimport->getPicto($key)).''; print ''.$objmodelimport->getDriverLabel($key).''.$objmodelimport->getLibLabel($key).''.$objmodelimport->getLibVersion($key).''; } print ''; diff --git a/htdocs/includes/modules/modProduit.class.php b/htdocs/includes/modules/modProduit.class.php index 7e06e1b826d..3011a2cb2d2 100644 --- a/htdocs/includes/modules/modProduit.class.php +++ b/htdocs/includes/modules/modProduit.class.php @@ -160,8 +160,8 @@ class modProduit extends DolibarrModules $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_fields_array[$r]=array('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.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_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 288ed8c7bf3..891756b9a8d 100644 --- a/htdocs/includes/modules/modSociete.class.php +++ b/htdocs/includes/modules/modSociete.class.php @@ -230,8 +230,8 @@ class modSociete extends DolibarrModules $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_fields_array[$r]=array('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.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 3c291158552..955fa9f765f 100644 --- a/htdocs/langs/en_US/exports.lang +++ b/htdocs/langs/en_US/exports.lang @@ -56,4 +56,6 @@ TypeOfLineServiceOrProduct=Type of line (0=product, 1=service) FileWithDataToImport=File with data to import FileToImport=File to import FileMustHaveOneOfFollowingFormat=File to import must have one of following format -ChooseFileToImport=Choose file to import... \ No newline at end of file +ChooseFileToImport=Choose file to import... +FieldsInSourceFile=Fields in source file +FieldsInTargetDatabase=Target fields in Dolibarr database diff --git a/htdocs/langs/fr_FR/exports.lang b/htdocs/langs/fr_FR/exports.lang index 24bc19c187f..32b96767bce 100644 --- a/htdocs/langs/fr_FR/exports.lang +++ b/htdocs/langs/fr_FR/exports.lang @@ -56,4 +56,6 @@ TypeOfLineServiceOrProduct=Type de ligne (0=produit, 1=service) FileWithDataToImport=Fichier contenant les données à importer FileToImport=Fichier à importer FileMustHaveOneOfFollowingFormat=Le fichier à importer doit avoir un des formats suivants -ChooseFileToImport=Choisissez le fichier à importer... \ No newline at end of file +ChooseFileToImport=Choisissez le fichier à importer... +FieldsInSourceFile=Champs dans le fichier source +FieldsInTargetDatabase=Champs cibles dans la base Dolibarr \ No newline at end of file