projects
/
kivitendo-erp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
WebshopApi: BackgroundJob ShopPartMassUpload.pm
[kivitendo-erp.git]
/
SL
/
BackgroundJob
/
CsvImport.pm
diff --git
a/SL/BackgroundJob/CsvImport.pm
b/SL/BackgroundJob/CsvImport.pm
index
5471add
..
1736721
100644
(file)
--- 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 parent qw(SL::BackgroundJob::Base);
use YAML ();
-use SL::
Controller::CsvImport
;
+use SL::
JSON
;
use SL::DB::CsvImportProfile;
use SL::DB::CsvImportProfile;
-use SL::SessionFile::Random;
sub create_job {
my ($self_or_class, %params) = @_;
sub create_job {
my ($self_or_class, %params) = @_;
@@
-15,13
+14,8
@@
sub create_job {
my $package = ref($self_or_class) || $self_or_class;
$package =~ s/SL::BackgroundJob:://;
my $package = ref($self_or_class) || $self_or_class;
$package =~ s/SL::BackgroundJob:://;
- my $profile = delete $params{profile} || SL::DB::CsvImportProfile->new;
- my $new_profile = $profile->clone_and_reset_deep;
- $new_profile->save;
-
my %data = (
%params,
my %data = (
%params,
- profile_id => $new_profile->id,
session_id => $::auth->get_session_id,
);
session_id => $::auth->get_session_id,
);
@@
-56,11
+50,14
@@
sub run {
sub do_import {
my ($self) = @_;
sub do_import {
my ($self) = @_;
+ require SL::Controller::CsvImport;
my $c = SL::Controller::CsvImport->new;
my $job = $self->{db_obj};
$c->profile($self->profile);
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->type($job->data_as_hash->{type});
+ $c->{employee_id} = $job->data_as_hash->{employee_id};
my $test = $job->data_as_hash->{test};
my $test = $job->data_as_hash->{test};
@@
-74,27
+71,32
@@
sub do_import {
plan => {
'parsing csv' => 1,
'building data' => 2,
plan => {
'parsing csv' => 1,
'building data' => 2,
- ( 'saving data' => 3, )x!
!
$test,
+ ( 'saving data' => 3, )x!$test,
'building report' => ($test ? 3 : 4),
},
num_phases => ($test ? 3 : 4),
);
$c->add_progress_tracker($self);
'building report' => ($test ? 3 : 4),
},
num_phases => ($test ? 3 : 4),
);
$c->add_progress_tracker($self);
+ my $session_id = $job->data_as_hash->{session_id};
- $c->test_and_import(test =>
1, 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;
if ($c->errors) {
$job->set_data(
errors => $c->errors,
)->save;
+ $result = $::locale->text('Import finished with errors.');
} else {
} 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);
$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 {
}
sub track_progress {