X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/cff0e9be7e6925c22dab7cb0b52ab9e23af0d56a..09479f022ab9e0815ceee55923ae46df51afbd42:/SL/Controller/CsvImport.pm diff --git a/SL/Controller/CsvImport.pm b/SL/Controller/CsvImport.pm index 19922109f..a17740188 100644 --- a/SL/Controller/CsvImport.pm +++ b/SL/Controller/CsvImport.pm @@ -17,7 +17,9 @@ use SL::Controller::CsvImport::Inventory; use SL::Controller::CsvImport::Shipto; use SL::Controller::CsvImport::Project; use SL::Controller::CsvImport::Order; +use SL::Controller::CsvImport::ARTransaction; use SL::JSON; +use SL::Controller::CsvImport::BankTransaction; use SL::BackgroundJob::CsvImport; use SL::System::TaskServer; @@ -29,8 +31,8 @@ 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 all_taxzones) ], - 'scalar --get_set_init' => [ qw(worker task_server) ], + import_status errors headers raw_data_headers info_headers data num_importable displayable_columns file all_taxzones) ], + 'scalar --get_set_init' => [ qw(worker task_server num_imported) ], 'array' => [ progress_tracker => { }, add_progress_tracker => { interface => 'add', hash_key => 'progress_tracker' }, @@ -99,7 +101,7 @@ sub action_result { $self->profile($profile); if ($data->{errors} and my $first_error = $data->{errors}->[0]) { - flash('error', $::locale->text('There was an error parsing the csv file: #1 in line #2.', $first_error->[2], $first_error->[0])); + flash('error', $::locale->text('There was an error parsing the csv file: #1 in line #2: #3', $first_error->[2], $first_error->[0], $first_error->[1])); } if ($data->{progress}{finished} || $data->{errors}) { @@ -223,7 +225,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 ar_transactions); $self->type($::form->{profile}->{type}); } @@ -268,9 +270,11 @@ 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') + : $self->type eq 'ar_transactions' ? $::locale->text('CSV import: ar transactions') : die; - if ($self->{type} eq 'customers_vendors' or $self->{type} eq 'orders' ) { + if ($self->{type} eq 'customers_vendors' or $self->{type} eq 'orders' or $self->{type} eq 'ar_transactions' ) { $self->all_taxzones(SL::DB::Manager::TaxZone->get_all_sorted(query => [ obsolete => 0 ])); }; @@ -287,7 +291,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 => '>'); @@ -364,6 +372,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; } @@ -618,9 +627,13 @@ 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) + : $self->{type} eq 'ar_transactions' ? SL::Controller::CsvImport::ARTransaction->new(@args) : die "Program logic error"; } +sub init_num_imported { 0 } + sub setup_help { my ($self) = @_;