1 package SL::Controller::CsvImport::AdditionalBillingAddress;
7 use parent qw(SL::Controller::CsvImport::Base);
9 use Rose::Object::MakeMethods::Generic
11 scalar => [ qw(table) ],
14 sub set_profile_defaults {
19 $self->class('SL::DB::AdditionalBillingAddress');
24 return join('--', map({ s/[\s,\.\-]//g; $_ } ($o->name, $o->street)));
30 $self->controller->track_progress(phase => 'building data', progress => 0);
32 my %existing_by_id_name_street = map { (_hash_object($_) => $_) } @{ $self->existing_objects };
33 my $methods = $self->controller->headers->{methods};
36 my $num_data = scalar @{ $self->controller->data };
37 foreach my $entry (@{ $self->controller->data }) {
38 $self->controller->track_progress(progress => $i/$num_data * 100) if $i % 100 == 0;
40 $self->check_vc($entry, 'customer_id');
42 next if @{ $entry->{errors} };
44 my $object = $entry->{object};
45 my $idx = _hash_object($object);
46 my $existing = $existing_by_id_name_street{$idx};
49 $existing_by_id_name_street{$idx} = $object;
51 $entry->{object_to_save} = $existing;
53 $existing->$_( $object->$_ ) for @{ $methods };
55 push @{ $entry->{information} }, $::locale->text('Updating existing entry in database');
62 $self->add_info_columns({ header => $::locale->text('Customer/Vendor'), method => 'vc_name' });
65 sub setup_displayable_columns {
68 $self->SUPER::setup_displayable_columns;
70 $self->add_displayable_columns(
71 { name => 'default_address', description => $::locale->text('Default address flag') },
72 { name => 'name', description => $::locale->text('Name') },
73 { name => 'department_1', description => $::locale->text('Department 1') },
74 { name => 'department_2', description => $::locale->text('Department 2') },
75 { name => 'street', description => $::locale->text('Street') },
76 { name => 'zipcode', description => $::locale->text('Zipcode') },
77 { name => 'city', description => $::locale->text('City') },
78 { name => 'country', description => $::locale->text('Country') },
79 { name => 'contact', description => $::locale->text('Contact') },
80 { name => 'email', description => $::locale->text('E-mail') },
81 { name => 'fax', description => $::locale->text('Fax') },
82 { name => 'gln', description => $::locale->text('GLN') },
83 { name => 'phone', description => $::locale->text('Phone') },
84 { name => 'customer_id', description => $::locale->text('Customer') },
85 { name => 'customer', description => $::locale->text('Customer (name)') },
86 { name => 'customernumber', description => $::locale->text('Customer Number') },