X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FBackgroundJob%2FCsvImport.pm;h=14ad33625abe3cf13a744ffa3f44742f38bed4bc;hb=4fef059183b047e18d8fee7b4b75195b83d6ef23;hp=18cf7cf0d375f0fc09b81be124cef239dc788d17;hpb=6c9ab8b5b01ddf0bf4fd7ab6e5a17aa87603e6b8;p=kivitendo-erp.git diff --git a/SL/BackgroundJob/CsvImport.pm b/SL/BackgroundJob/CsvImport.pm index 18cf7cf0d..14ad33625 100644 --- a/SL/BackgroundJob/CsvImport.pm +++ b/SL/BackgroundJob/CsvImport.pm @@ -5,9 +5,8 @@ use strict; use parent qw(SL::BackgroundJob::Base); use YAML (); -use SL::Controller::CsvImport; +use SL::JSON; use SL::DB::CsvImportProfile; -use SL::SessionFile::Random; sub create_job { my ($self_or_class, %params) = @_; @@ -56,11 +55,14 @@ sub run { sub do_import { my ($self) = @_; + require SL::Controller::CsvImport; my $c = SL::Controller::CsvImport->new; my $job = $self->{db_obj}; $c->profile($self->profile); + $c->mappings(SL::JSON::from_json($self->profile->get('json_mappings'))) if $self->profile->get('json_mappings'); $c->type($job->data_as_hash->{type}); + $c->{employee_id} = $job->data_as_hash->{employee_id}; my $test = $job->data_as_hash->{test}; @@ -81,20 +83,25 @@ sub do_import { ); $c->add_progress_tracker($self); + my $session_id = $job->data_as_hash->{session_id}; - $c->test_and_import(test => $test, session_id => $job->data_as_hash->{session_id}); - + $c->test_and_import(test => $test, session_id => $session_id); + my $result; if ($c->errors) { $job->set_data( errors => $c->errors, )->save; + $result = $::locale->text('Import finished with errors.'); } else { - my $report_id = $c->save_report; + my $report_id = $c->save_report(session_id => $session_id, test => $test); $job->set_data(report_id => $report_id)->save; $c->track_progress(finished => 1); + $result = $::locale->text('Import finished without errors.'); } + + return $result; } sub track_progress {