@@ -134,20 +134,21 @@ public function Prepare()
134134
135135 return false ;
136136 }
137-
138- array_multisort ($ aCurrentConfiguredHeaderColumns );
139- $ this ->aConfiguredHeaderColumns = array_keys ($ aCurrentConfiguredHeaderColumns );
140-
141- if ($ this ->bHasHeader ) {
142- foreach ($ aCurrentConfiguredHeaderColumns as $ sSynchroField => $ sCsvColumn ) {
143- $ this ->aMappingCsvColumnNameToFields [$ sCsvColumn ][] = $ sSynchroField ;
144- $ this ->aMappedFields [$ sSynchroField ] = '' ;
145- }
146- }
137+ $ this ->aConfiguredHeaderColumns = [];
138+ if ($ this ->bHasHeader ) {
139+ array_multisort ($ aCurrentConfiguredHeaderColumns );
140+ $ this ->aConfiguredHeaderColumns = array_keys ($ aCurrentConfiguredHeaderColumns );
141+
142+ foreach ($ aCurrentConfiguredHeaderColumns as $ sSynchroField => $ sCsvColumn ) {
143+ $ this ->aMappingCsvColumnNameToFields [$ sCsvColumn ][] = $ sSynchroField ;
144+ $ this ->aMappedFields [$ sSynchroField ] = '' ;
145+ }
146+ } else {
147+ $ this ->aConfiguredHeaderColumns = $ aCurrentConfiguredHeaderColumns ;
147148 }
148-
149- }
150- }
149+ }
150+ }
151+ }
151152
152153 if ($ sCsvFilePath === '' ) {
153154 // No query at all !!
@@ -158,15 +159,15 @@ public function Prepare()
158159 }
159160
160161 Utils::Log (LOG_INFO , "[ " .get_class ($ this )."] CSV file is [ " .$ sCsvFilePath ."] " );
161- Utils::Log (LOG_DEBUG , "[ " .get_class ($ this )."] Has cs header [ " .$ this ->bHasHeader ."] " );
162+ Utils::Log (LOG_DEBUG , "[ " .get_class ($ this )."] Has csv header [ " .( $ this ->bHasHeader ? " yes " : " no " ) ."] " );
162163 Utils::Log (LOG_DEBUG , "[ " .get_class ($ this )."] Separator used is [ " .$ this ->sCsvSeparator ."] " );
163164 Utils::Log (LOG_DEBUG , "[ " .get_class ($ this )."] Encoding used is [ " .$ this ->sCsvEncoding ."] " );
164165 Utils::Log (LOG_DEBUG , "[ " .get_class ($ this )."] Fields [ " .var_export ($ this ->aConfiguredHeaderColumns , true )."] " );
165166 Utils::Log (LOG_DEBUG , "[ " .get_class ($ this )."] Ignored csv fields [ " .var_export ($ this ->aIgnoredCsvColumns , true )."] " );
166167 Utils::Log (LOG_DEBUG , "[ " .get_class ($ this )."] Default values [ " .var_export ($ this ->aSynchroFieldsToDefaultValues , true )."] " );
167168
168169 if (!empty ($ this ->sCsvCliCommand )) {
169- Utils::Exec ($ this ->sCsvCliCommand );
170+ Utils::Exec ($ this ->sCsvCliCommand );
170171 }
171172
172173 try {
@@ -314,13 +315,14 @@ protected function Configure($aCsvHeaderColumns)
314315 }
315316 }
316317 } else {
317-
318- foreach ($ this ->aConfiguredHeaderColumns as $ sSynchroColumn ) {
319- $ this ->aMappingCsvColumnIndexToFields [] = [$ sSynchroColumn ];
320- $ this ->aMappedFields [$ sSynchroColumn ] = '' ;
318+ foreach ($ this ->aConfiguredHeaderColumns as $ sSynchroField => $ sCsvColumn ) {
319+ $ this ->aMappingCsvColumnIndexToFields [$ sCsvColumn -1 ][] = $ sSynchroField ;
320+ $ this ->aMappedFields [$ sSynchroField ] = '' ;
321321 }
322- }
323-
322+ foreach ( $ this ->aIgnoredCsvColumns as $ sCsvColumn ) {
323+ $ this ->aMappingCsvColumnIndexToFields [$ sCsvColumn -1 ] = ['ignored_attribute_ ' .$ sCsvColumn ];
324+ }
325+ }
324326 foreach ($ this ->aIgnoredCsvColumns as $ sIgnoredCsvColumn ) {
325327 $ this ->aIgnoredSynchroFields = array_merge ( $ this ->aIgnoredSynchroFields , ($ this ->bHasHeader ) ? $ this ->aMappingCsvColumnNameToFields [$ sIgnoredCsvColumn ] : $ this ->aMappingCsvColumnIndexToFields [$ sIgnoredCsvColumn - 1 ]);
326328 }
0 commit comments