CsvImport: Im Report die Werte des gespeicherten Objekts speichern.
authorBernd Bleßmann <bernd@kivitendo-premium.de>
Tue, 15 Aug 2017 14:11:58 +0000 (16:11 +0200)
committerBernd Bleßmann <bernd@kivitendo-premium.de>
Tue, 6 Apr 2021 14:19:30 +0000 (16:19 +0200)
Bei den Workern, die Objekte aktualisieren können, kann statt dem object
das object_to_save gespeichert werden. Die Werte dieses Objekts sollten im
Report angezeigt werden, auch wenn die eigentlich gleich sein müssten.
Aber so können einem evtl. Fehler auffallen.

SL/Controller/CsvImport.pm

index bb1e8d6..05043d9 100644 (file)
@@ -604,8 +604,9 @@ sub save_report_single {
       $self->track_progress(progress => $row / @{ $self->data } * 100) if $row % 1000 == 0;
       my $data_row = $self->{data}[$row];
 
+      my $object = $data_row->{object_to_save} || $data_row->{object};
       do_statement($::form, $sth, $query, $report->id,       $_, $row + 1, $data_row->{info_data}{ $info_methods[$_] }) for 0 .. $#info_methods;
-      do_statement($::form, $sth, $query, $report->id, $o1 + $_, $row + 1, $data_row->{object}->${ \ $methods[$_] })    for 0 .. $#methods;
+      do_statement($::form, $sth, $query, $report->id, $o1 + $_, $row + 1, $object->${ \ $methods[$_] })                for 0 .. $#methods;
       do_statement($::form, $sth, $query, $report->id, $o2 + $_, $row + 1, $data_row->{raw_data}{ $raw_methods[$_] })   for 0 .. $#raw_methods;
 
       do_statement($::form, $sth2, $query2, $report->id, $row + 1, 'information', $_) for @{ $data_row->{information} || [] };
@@ -694,8 +695,9 @@ sub save_report_multi {
       my $o1 = $off1->{$row_ident};
       my $o2 = $off2->{$row_ident};
 
+      my $object = $data_row->{object_to_save} || $data_row->{object};
       do_statement($::form, $sth, $query, $report->id,       $_, $row + $n_header_rows, $data_row->{info_data}{ $info_methods->{$row_ident}->[$_] }) for 0 .. $#{ $info_methods->{$row_ident} };
-      do_statement($::form, $sth, $query, $report->id, $o1 + $_, $row + $n_header_rows, $data_row->{object}->${ \ $methods->{$row_ident}->[$_] })    for 0 .. $#{ $methods->{$row_ident} };
+      do_statement($::form, $sth, $query, $report->id, $o1 + $_, $row + $n_header_rows, $object->${ \ $methods->{$row_ident}->[$_] })                for 0 .. $#{ $methods->{$row_ident} };
       do_statement($::form, $sth, $query, $report->id, $o2 + $_, $row + $n_header_rows, $data_row->{raw_data}{ $raw_methods->{$row_ident}->[$_] })   for 0 .. $#{ $raw_methods->{$row_ident} };
 
       do_statement($::form, $sth2, $query2, $report->id, $row + $n_header_rows, 'information', $_) for @{ $data_row->{information} || [] };