projects
/
kivitendo-erp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'b-3.6.1' of ../kivitendo-erp_20220811
[kivitendo-erp.git]
/
SL
/
BackgroundJob
/
CsvImport.pm
diff --git
a/SL/BackgroundJob/CsvImport.pm
b/SL/BackgroundJob/CsvImport.pm
index
7df8b9b
..
00f76d5
100644
(file)
--- a/
SL/BackgroundJob/CsvImport.pm
+++ b/
SL/BackgroundJob/CsvImport.pm
@@
-4,9
+4,9
@@
use strict;
use parent qw(SL::BackgroundJob::Base);
use parent qw(SL::BackgroundJob::Base);
-use YAML ();
+use SL::JSON;
+use SL::YAML;
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) = @_;
@@
-14,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,
);
@@
-28,7
+23,7
@@
sub create_job {
type => 'once',
active => 1,
package_name => $package,
type => 'once',
active => 1,
package_name => $package,
- data => YAML::Dump(\%data),
+ data =>
SL::
YAML::Dump(\%data),
);
return $job;
);
return $job;
@@
-38,7
+33,7
@@
sub profile {
my ($self) = @_;
if (!$self->{profile}) {
my ($self) = @_;
if (!$self->{profile}) {
- my $data = YAML::Load($self->{db_obj}->data);
+ my $data =
SL::
YAML::Load($self->{db_obj}->data);
$self->{profile} = SL::DB::Manager::CsvImportProfile->find_by(id => $data->{profile_id});
}
$self->{profile} = SL::DB::Manager::CsvImportProfile->find_by(id => $data->{profile_id});
}
@@
-60,6
+55,7
@@
sub do_import {
my $job = $self->{db_obj};
$c->profile($self->profile);
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};
$c->type($job->data_as_hash->{type});
$c->{employee_id} = $job->data_as_hash->{employee_id};
@@
-82,20
+78,25
@@
sub do_import {
);
$c->add_progress_tracker($self);
);
$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;
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 {