X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/6bfa402637ee758834d72fd74b75f872566e8873..21187f8b1b6904183bf887e8abed77bd807b4aa1:/SL/Controller/CsvImport/Base.pm diff --git a/SL/Controller/CsvImport/Base.pm b/SL/Controller/CsvImport/Base.pm index b3b9368c7..de12c1552 100644 --- a/SL/Controller/CsvImport/Base.pm +++ b/SL/Controller/CsvImport/Base.pm @@ -31,8 +31,7 @@ sub run { my $profile = $self->profile; $self->csv(SL::Helper::Csv->new(file => $self->file->file_name, encoding => $self->controller->profile->get('charset'), - class => $self->class, - profile => $profile, + profile => [{ profile => $profile, class => $self->class }], ignore_unknown_columns => 1, strict_profile => 1, case_insensitive_header => 1, @@ -52,7 +51,7 @@ sub run { return if ( !$self->csv->header || $self->csv->errors ); - my $headers = { headers => [ grep { $profile->{$_} } @{ $self->csv->header } ] }; + my $headers = { headers => [ grep { $profile->{$_} } @{ $self->csv->header->[0] } ] }; $headers->{methods} = [ map { $profile->{$_} } @{ $headers->{headers} } ]; $headers->{used} = { map { ($_ => 1) } @{ $headers->{headers} } }; $self->controller->headers($headers); @@ -308,6 +307,8 @@ sub init_manager_class { $self->manager_class("SL::DB::Manager::" . $1); } +sub is_multiplexed { 0 } + sub check_objects { } @@ -413,7 +414,10 @@ sub save_objects { my $object = $entry->{object_to_save} || $entry->{object}; - if ( !$object->save(cascade => !!$self->save_with_cascade()) ) { + my $ret; + if (!eval { $ret = $object->save(cascade => !!$self->save_with_cascade()); 1 }) { + push @{ $entry->{errors} }, $::locale->text('Error when saving: #1', $@); + } elsif ( !$ret ) { push @{ $entry->{errors} }, $::locale->text('Error when saving: #1', $entry->{object}->db->error); } else { $self->_save_history($object);