map { $self->add_raw_data_columns("make_${_}", "model_${_}", "lastcost_${_}") } sort { $a <=> $b } keys %{ $self->makemodel_columns };
}
-sub check_duplicates {
- my ($self, %params) = @_;
-
- my $normalizer = sub { my $name = $_[0]; $name =~ s/[\s,\.\-]//g; return $name; };
- my $name_maker = sub { return $normalizer->($_[0]->description) };
-
- my %by_name;
- if ('check_db' eq $self->controller->profile->get('duplicates')) {
- %by_name = map { ( $name_maker->($_) => 'db' ) } @{ $self->existing_objects };
- }
-
- foreach my $entry (@{ $self->controller->data }) {
- next if @{ $entry->{errors} };
-
- my $name = $name_maker->($entry->{object});
-
- if (!$by_name{ $name }) {
- $by_name{ $name } = 'csv';
-
- } else {
- push @{ $entry->{errors} }, $by_name{ $name } eq 'db' ? $::locale->text('Duplicate in database') : $::locale->text('Duplicate in CSV file');
- }
- }
+sub get_duplicate_check_fields {
+ return {
+ partnumber => {
+ label => $::locale->text('Part Number'),
+ default => 0
+ },
+
+ description => {
+ label => $::locale->text('Description'),
+ default => 1,
+ maker => sub {
+ my $desc = shift->description;
+ $desc =~ s/[\s,\.\-]//g;
+ return $desc;
+ }
+ },
+ };
}
sub check_buchungsgruppe {
my $found_any;
my @makemodels;
- foreach my $idx (map { substr $_, 5 } grep { m/^make_\d+$/ && $entry->{raw_data}->{$_} } keys %{ $entry->{raw_data} }) {
+ foreach my $idx (sort map { substr $_, 5 } grep { m/^make_\d+$/ && $entry->{raw_data}->{$_} } keys %{ $entry->{raw_data} }) {
my $vendor = $entry->{raw_data}->{"make_${idx}"};
$vendor = $self->vc_by->{id}-> { $vendor }
|| $self->vc_by->{number}->{vendors}->{ $vendor }
{ name => 'image', description => $::locale->text('Image') },
{ name => 'lastcost', description => $::locale->text('Last Cost') },
{ name => 'listprice', description => $::locale->text('List Price') },
- { name => 'make_X', description => $::locale->text('Make (with X being a number)') },
+ { name => 'make_X', description => $::locale->text('Make (vendor\'s database ID, number or name; with X being a number)') . ' [1]' },
{ name => 'microfiche', description => $::locale->text('Microfiche') },
- { name => 'model_X', description => $::locale->text('Model (with X being a number)') },
- { name => 'lastcost_X', description => $::locale->text('Lastcost (with X being a number)') },
+ { name => 'model_X', description => $::locale->text('Model (with X being a number)') . ' [1]' },
+ { name => 'lastcost_X', description => $::locale->text('Lastcost (with X being a number)') . ' [1]' },
{ name => 'not_discountable', description => $::locale->text('Not Discountable') },
{ name => 'notes', description => $::locale->text('Notes') },
{ name => 'obsolete', description => $::locale->text('Obsolete') },
}
}
-1;
+1;
\ No newline at end of file