X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FCsvImport.pm;h=b74b04be038926c822cbd8471030d2abec34a3d4;hb=a21015406d710a4fc3025422738ec297df078fb0;hp=3cd0da24f741e9c54852cef3f3ce07c4e6ba9951;hpb=1adadc3007e658f3c0723701e79f42569e71df9f;p=kivitendo-erp.git diff --git a/SL/Controller/CsvImport.pm b/SL/Controller/CsvImport.pm index 3cd0da24f..b74b04be0 100644 --- a/SL/Controller/CsvImport.pm +++ b/SL/Controller/CsvImport.pm @@ -17,6 +17,8 @@ use SL::Controller::CsvImport::Inventory; use SL::Controller::CsvImport::Shipto; use SL::Controller::CsvImport::Project; use SL::Controller::CsvImport::Order; +use SL::JSON; +use SL::Controller::CsvImport::BankTransaction; use SL::BackgroundJob::CsvImport; use SL::System::TaskServer; @@ -222,7 +224,7 @@ sub check_auth { sub check_type { my ($self) = @_; - die "Invalid CSV import type" if none { $_ eq $::form->{profile}->{type} } qw(parts inventories customers_vendors addresses contacts projects orders); + die "Invalid CSV import type" if none { $_ eq $::form->{profile}->{type} } qw(parts inventories customers_vendors addresses contacts projects orders bank_transactions); $self->type($::form->{profile}->{type}); } @@ -267,6 +269,7 @@ sub render_inputs { : $self->type eq 'inventories' ? $::locale->text('CSV import: inventories') : $self->type eq 'projects' ? $::locale->text('CSV import: projects') : $self->type eq 'orders' ? $::locale->text('CSV import: orders') + : $self->type eq 'bank_transactions' ? $::locale->text('CSV import: bank transactions') : die; if ($self->{type} eq 'customers_vendors' or $self->{type} eq 'orders' ) { @@ -286,7 +289,11 @@ sub render_inputs { sub test_and_import_deferred { my ($self, %params) = @_; - $self->profile_from_form; + if ( $::form->{force_profile} && $::form->{profile}->{id} ) { + $self->load_default_profile; + } else { + $self->profile_from_form; + }; if ($::form->{file}) { my $file = SL::SessionFile->new($self->csv_file_name, mode => '>'); @@ -318,7 +325,11 @@ sub test_and_import_deferred { $self->{deferred} = 1; - $self->render_inputs; + if ($::request->type eq 'json') { + $self->render(\ SL::JSON::to_json($self->{background_job}->as_tree), { type => 'json' }) + } else { + $self->render_inputs; + } } sub test_and_import { @@ -359,6 +370,7 @@ sub load_default_profile { $profile ||= SL::DB::CsvImportProfile->new(type => $self->{type}, login => $::myconfig{login}); $self->profile($profile); + $self->worker->set_profile_defaults; $self->profile->set_defaults; } @@ -613,6 +625,7 @@ sub init_worker { : $self->{type} eq 'inventories' ? SL::Controller::CsvImport::Inventory->new(@args) : $self->{type} eq 'projects' ? SL::Controller::CsvImport::Project->new(@args) : $self->{type} eq 'orders' ? SL::Controller::CsvImport::Order->new(@args) + : $self->{type} eq 'bank_transactions' ? SL::Controller::CsvImport::BankTransaction->new(@args) : die "Program logic error"; }