X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/7579216c032f0793a11c7050fbc885b89b1d0ff9..2c597c2df21ae8025159665f39845ccfe9b7dabd:/SL/Controller/CsvImport.pm diff --git a/SL/Controller/CsvImport.pm b/SL/Controller/CsvImport.pm index 0e598a5b3..19922109f 100644 --- a/SL/Controller/CsvImport.pm +++ b/SL/Controller/CsvImport.pm @@ -13,9 +13,11 @@ use SL::SessionFile; use SL::Controller::CsvImport::Contact; use SL::Controller::CsvImport::CustomerVendor; use SL::Controller::CsvImport::Part; +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::BackgroundJob::CsvImport; use SL::System::TaskServer; @@ -27,7 +29,7 @@ use parent qw(SL::Controller::Base); use Rose::Object::MakeMethods::Generic ( scalar => [ qw(type profile file all_profiles all_charsets sep_char all_sep_chars quote_char all_quote_chars escape_char all_escape_chars all_buchungsgruppen all_units - import_status errors headers raw_data_headers info_headers data num_imported num_importable displayable_columns file) ], + import_status errors headers raw_data_headers info_headers data num_imported num_importable displayable_columns file all_taxzones) ], 'scalar --get_set_init' => [ qw(worker task_server) ], 'array' => [ progress_tracker => { }, @@ -221,7 +223,7 @@ sub check_auth { sub check_type { my ($self) = @_; - die "Invalid CSV import type" if none { $_ eq $::form->{profile}->{type} } qw(parts 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); $self->type($::form->{profile}->{type}); } @@ -263,10 +265,15 @@ sub render_inputs { : $self->type eq 'addresses' ? $::locale->text('CSV import: shipping addresses') : $self->type eq 'contacts' ? $::locale->text('CSV import: contacts') : $self->type eq 'parts' ? $::locale->text('CSV import: parts and services') + : $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') : die; + if ($self->{type} eq 'customers_vendors' or $self->{type} eq 'orders' ) { + $self->all_taxzones(SL::DB::Manager::TaxZone->get_all_sorted(query => [ obsolete => 0 ])); + }; + if ($self->{type} eq 'parts') { $self->all_buchungsgruppen(SL::DB::Manager::Buchungsgruppe->get_all_sorted); $self->all_units(SL::DB::Manager::Unit->get_all_sorted); @@ -308,11 +315,15 @@ sub test_and_import_deferred { $self->task_server->start; } - flash('info', $::locale->text('Your import is beig processed.')); + flash('info', $::locale->text('Your import is being processed.')); $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 { @@ -604,6 +615,7 @@ sub init_worker { : $self->{type} eq 'contacts' ? SL::Controller::CsvImport::Contact->new(@args) : $self->{type} eq 'addresses' ? SL::Controller::CsvImport::Shipto->new(@args) : $self->{type} eq 'parts' ? SL::Controller::CsvImport::Part->new(@args) + : $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) : die "Program logic error";