X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FCsvImport%2FBase.pm;h=4667677c6687e49de84acfb4fe0e3b755b072488;hb=73a58f3dceeb378343ceb151942828eea686b75a;hp=92ee5565c325268999370ee3ad997d3263da6f91;hpb=af2053931fb484b246ba42f93df4889c4257ab42;p=kivitendo-erp.git diff --git a/SL/Controller/CsvImport/Base.pm b/SL/Controller/CsvImport/Base.pm index 92ee5565c..4667677c6 100644 --- a/SL/Controller/CsvImport/Base.pm +++ b/SL/Controller/CsvImport/Base.pm @@ -47,15 +47,11 @@ sub run { $self->controller->track_progress(progress => 50); - if ($self->csv->is_multiplexed) { - die "controller for multiplex data is not implemented yet"; - } - $self->controller->errors([ $self->csv->errors ]) if $self->csv->errors; return if ( !$self->csv->header || $self->csv->errors ); - my $headers = { headers => [ grep { $profile->{$_} } @{ $self->csv->header->[0] } ] }; + my $headers = { headers => [ grep { $profile->{$_} } @{ $self->csv->header } ] }; $headers->{methods} = [ map { $profile->{$_} } @{ $headers->{headers} } ]; $headers->{used} = { map { ($_ => 1) } @{ $headers->{headers} } }; $self->controller->headers($headers); @@ -311,6 +307,8 @@ sub init_manager_class { $self->manager_class("SL::DB::Manager::" . $1); } +sub is_multiplexed { 0 } + sub check_objects { } @@ -416,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); @@ -465,17 +466,22 @@ sub clean_fields { sub _save_history { my ($self, $object) = @_; - if (any { $_ eq $self->controller->{type} } qw(parts customers_vendors)) { + if (any { $_ eq $self->controller->{type} } qw(parts customers_vendors orders)) { my $snumbers = $self->controller->{type} eq 'parts' ? 'partnumber_' . $object->partnumber : $self->controller->{type} eq 'customers_vendors' ? ($self->table eq 'customer' ? 'customernumber_' . $object->customernumber : 'vendornumber_' . $object->vendornumber) + : $self->controller->{type} eq 'orders' ? 'ordnumber_' . $object->ordnumber : ''; + my $what_done = $self->controller->{type} eq 'orders' ? 'sales_order' + : ''; + SL::DB::History->new( trans_id => $object->id, snumbers => $snumbers, employee_id => $self->controller->{employee_id}, addition => 'SAVED', + what_done => $what_done, )->save(); } }