X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/af2053931fb484b246ba42f93df4889c4257ab42..6f45549b6f3d1f4f178b8799c9997fdc6e1447d0:/SL/Controller/CsvImport/Base.pm diff --git a/SL/Controller/CsvImport/Base.pm b/SL/Controller/CsvImport/Base.pm index 92ee5565c..09a488617 100644 --- a/SL/Controller/CsvImport/Base.pm +++ b/SL/Controller/CsvImport/Base.pm @@ -18,7 +18,7 @@ use parent qw(Rose::Object); use Rose::Object::MakeMethods::Generic ( scalar => [ qw(controller file csv test_run save_with_cascade) ], - 'scalar --get_set_init' => [ qw(profile displayable_columns existing_objects class manager_class cvar_columns all_cvar_configs all_languages payment_terms_by all_currencies default_currency_id all_vc vc_by) ], + 'scalar --get_set_init' => [ qw(is_multiplexed profile displayable_columns existing_objects class manager_class cvar_columns all_cvar_configs all_languages payment_terms_by all_currencies default_currency_id all_vc vc_by) ], ); sub run { @@ -311,6 +311,12 @@ sub init_manager_class { $self->manager_class("SL::DB::Manager::" . $1); } +sub init_is_multiplexed { + my ($self) = @_; + + $self->is_multiplexed('ARRAY' eq ref ($self->class) && scalar @{ $self->class } > 1); +} + sub check_objects { } @@ -416,7 +422,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);