X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/5fab9350eab8c95b77b5f02faa547c9118d45233..5c41c19b68c3edeb374b32fd75ac4253aafc4df1:/SL/Controller/CsvImport/Part.pm diff --git a/SL/Controller/CsvImport/Part.pm b/SL/Controller/CsvImport/Part.pm index ca9d22a93..3be6f2a44 100644 --- a/SL/Controller/CsvImport/Part.pm +++ b/SL/Controller/CsvImport/Part.pm @@ -194,11 +194,19 @@ sub check_existing { my $object = $entry->{object}; - $entry->{part} = $self->parts_by->{partnumber}->{ $object->type }->{ $object->partnumber }; + $entry->{part} = SL::DB::Manager::Part->find_by( + SL::DB::Manager::Part->type_filter($object->type), + ( partnumber => $object->partnumber ) x!! $object->partnumber, + ); if ($self->settings->{article_number_policy} eq 'update_prices') { if ($entry->{part}) { - map { $entry->{part}->$_( $object->$_ ) } qw(sellprice listprice lastcost prices); + map { $entry->{part}->$_( $object->$_ ) if defined $object->$_ } qw(sellprice listprice lastcost); + + # merge prices + my %prices_by_pricegroup_id = map { $_->pricegroup->id => $_ } $entry->{part}->prices, $object->prices; + $entry->{part}->prices(grep { $_ } map { $prices_by_pricegroup_id{$_->id} } @{ $self->all_pricegroups }); + push @{ $entry->{information} }, $::locale->text('Updating prices of existing entry in database'); $entry->{object_to_save} = $entry->{part}; }