X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FCsvImport%2FBase.pm;h=8544cf79d0a9a8dede36f5bca6cbb90dc092ba50;hb=c8c1042a337f37b85c1dc3d550e3cbd7bc57e9d8;hp=c94f1bac3337ce364d3fa49775debcf2537786fb;hpb=22cf5fb67293f9bde99b9f0a48f982e3d396d3bd;p=kivitendo-erp.git diff --git a/SL/Controller/CsvImport/Base.pm b/SL/Controller/CsvImport/Base.pm index c94f1bac3..8544cf79d 100644 --- a/SL/Controller/CsvImport/Base.pm +++ b/SL/Controller/CsvImport/Base.pm @@ -6,6 +6,8 @@ use English qw(-no_match_vars); use List::MoreUtils qw(pairwise any); use SL::Helper::Csv; + +use SL::DB::BankAccount; use SL::DB::Customer; use SL::DB::Language; use SL::DB::PaymentTerm; @@ -19,7 +21,7 @@ use parent qw(Rose::Object); use Rose::Object::MakeMethods::Generic ( scalar => [ qw(controller file csv test_run save_with_cascade) ], - 'scalar --get_set_init' => [ qw(profile displayable_columns existing_objects class manager_class cvar_columns all_cvar_configs all_languages payment_terms_by delivery_terms_by all_vc vc_by clone_methods) ], + 'scalar --get_set_init' => [ qw(profile displayable_columns existing_objects class manager_class cvar_columns all_cvar_configs all_languages payment_terms_by delivery_terms_by all_bank_accounts all_vc vc_by clone_methods) ], ); sub run { @@ -59,7 +61,7 @@ sub run { $self->controller->raw_data_headers({ used => { }, headers => [ ] }); $self->controller->info_headers({ used => { }, headers => [ ] }); - my @objects = $self->csv->get_objects; + my $objects = $self->csv->get_objects; $self->controller->track_progress(progress => 70); @@ -67,7 +69,7 @@ sub run { $self->controller->track_progress(progress => 80); - $self->controller->data([ pairwise { { object => $a, raw_data => $b, errors => [], information => [], info_data => {} } } @objects, @raw_data ]); + $self->controller->data([ pairwise { { object => $a, raw_data => $b, errors => [], information => [], info_data => {} } } @$objects, @raw_data ]); $self->controller->track_progress(progress => 90); @@ -141,6 +143,12 @@ sub init_all_languages { return SL::DB::Manager::Language->get_all; } +sub init_all_bank_accounts { + my ($self) = @_; + + return SL::DB::Manager::BankAccount->get_all_sorted( query => [ obsolete => 0 ] ); +} + sub init_payment_terms_by { my ($self) = @_; @@ -192,8 +200,8 @@ sub check_vc { } if (!$entry->{object}->$id_column) { - my $vc = $self->vc_by->{number}->{customers}->{ $entry->{raw_data}->{customernumber} } - || $self->vc_by->{number}->{vendors}->{ $entry->{raw_data}->{vendornumber} }; + my $vc = ($entry->{raw_data}->{customernumber} && $self->vc_by->{number}->{customers}->{ $entry->{raw_data}->{customernumber} }) + || ($entry->{raw_data}->{vendornumber} && $self->vc_by->{number}->{vendors}->{ $entry->{raw_data}->{vendornumber} }); $entry->{object}->$id_column($vc->id) if $vc; } @@ -514,11 +522,12 @@ sub clean_fields { sub _save_history { my ($self, $object) = @_; - if (any { $_ eq $self->controller->{type} } qw(parts customers_vendors orders)) { + if (any { $self->controller->{type} && $_ eq $self->controller->{type} } qw(parts customers_vendors orders ar_transactions)) { my $snumbers = $self->controller->{type} eq 'parts' ? 'partnumber_' . $object->partnumber : $self->controller->{type} eq 'customers_vendors' ? ($self->table eq 'customer' ? 'customernumber_' . $object->customernumber : 'vendornumber_' . $object->vendornumber) : $self->controller->{type} eq 'orders' ? 'ordnumber_' . $object->ordnumber + : $self->controller->{type} eq 'ar_transactions' ? 'invnumber_' . $object->invnumber : ''; my $what_done = $self->controller->{type} eq 'orders' ? 'sales_order'