diff --git a/htdocs/imports/import.php b/htdocs/imports/import.php index 2ab7e3976aa..fc4a6330b71 100644 --- a/htdocs/imports/import.php +++ b/htdocs/imports/import.php @@ -142,6 +142,8 @@ $updatekeys = (GETPOST('updatekeys', 'array') ? GETPOST('updatekeys', 'array') $separator = (GETPOST('separator', 'nohtml') ? GETPOST('separator', 'nohtml') : (!empty($conf->global->IMPORT_CSV_SEPARATOR_TO_USE) ? $conf->global->IMPORT_CSV_SEPARATOR_TO_USE : ',')); $enclosure = (GETPOST('enclosure', 'nohtml') ? GETPOST('enclosure', 'nohtml') : '"'); +$import_wip = 0; + $objimport = new Import($db); $objimport->load_arrays($user, ($step == 1 ? '' : $datatoimport)); @@ -321,15 +323,30 @@ if ($action == 'saveorder') { $serialized_array_match_file_to_database = ''; $array_match_file_to_database = array(); $fieldsarray = explode(',', $list); - $pos = 0; + if (empty($import_wip)) { + $pos = 0; + } foreach ($fieldsarray as $fieldnb) { // For each elem in list. fieldnb start from 1 to ... // Get name of database fields at position $pos and put it into $namefield - $posbis = 0; $namefield = ''; + if (empty($import_wip)) { + $posbis = 0; + } else { + $pos = 1; + } + + $namefield = ''; foreach ($fieldstarget as $key => $val) { // key: val: //dol_syslog('AjaxImport key='.$key.' val='.$val); - if ($posbis < $pos) { - $posbis++; - continue; + if (empty($import_wip)) { + if ($posbis < $pos) { + $posbis++; + continue; + } + } else { + if ($pos < $fieldnb) { + $pos++; + continue; + } } // We found the key of targets that is at position pos $namefield = $key; @@ -1000,9 +1017,9 @@ if ($step == 4 && $datatoimport) { // List of source fields $var = true; $lefti = 1; - foreach ($array_match_file_to_database as $key => $val) { + foreach ($import_wip?$fieldssource:$array_match_file_to_database as $key => $val) { $var = !$var; - show_elem($fieldssource, $key, $val, $var); // key is field number in source file + show_elem($fieldssource, $key, $val, $var, '', $import_wip); // key is field number in source file //print '> '.$lefti.'-'.$key.'-'.$val; $listofkeys[$key] = 1; $fieldsplaced[$key] = 1; @@ -1021,7 +1038,7 @@ if ($step == 4 && $datatoimport) { while ($lefti <= $num) { $var = !$var; $newkey = getnewkey($fieldssource, $listofkeys); - show_elem($fieldssource, $newkey, '', $var); // key start after field number in source file + show_elem($fieldssource, $newkey, '', $var, '', $import_wip); // key start after field number in source file //print '> '.$lefti.'-'.$newkey; $listofkeys[$key] = 1; $lefti++; @@ -1035,11 +1052,20 @@ if ($step == 4 && $datatoimport) { print '
| =>'.img_object('', $entityicon).' '.$langs->trans($entitylang).' | '; print ''; - $newlabel = preg_replace('/\*$/', '', $label); - $text = $langs->trans($newlabel); - $more = ''; - if (preg_match('/\*$/', $label)) { - $text = ''.$text.''; - $more = ((!empty($valforsourcefieldnb[$i]) && $valforsourcefieldnb[$i] <= count($fieldssource)) ? '' : img_warning($langs->trans("FieldNeedSource"))); - if ($mandatoryfieldshavesource) { - $mandatoryfieldshavesource = (!empty($valforsourcefieldnb[$i]) && ($valforsourcefieldnb[$i] <= count($fieldssource))); + if (empty($import_wip)) { + $newlabel = preg_replace('/\*$/', '', $label); + $text = $langs->trans($newlabel); + $more = ''; + if (preg_match('/\*$/', $label)) { + $text = ''.$text.''; + $more = ((!empty($valforsourcefieldnb[$i]) && $valforsourcefieldnb[$i] <= count($fieldssource)) ? '' : img_warning($langs->trans("FieldNeedSource"))); + if ($mandatoryfieldshavesource) { + $mandatoryfieldshavesource = (!empty($valforsourcefieldnb[$i]) && ($valforsourcefieldnb[$i] <= count($fieldssource))); + } + //print 'xx'.($i).'-'.$valforsourcefieldnb[$i].'-'.$mandatoryfieldshavesource; } - //print 'xx'.($i).'-'.$valforsourcefieldnb[$i].'-'.$mandatoryfieldshavesource; + print $text; + } else { + print ''; } - print $text; print ' | '; // Info field print ''; @@ -1127,6 +1180,9 @@ if ($step == 4 && $datatoimport) { print ' | '; print '