my $object = $entry->{object};
- # Check wether or non part ID is valid.
+ # Check wether or not part ID is valid.
if ($object->parts_id && !$self->parts_by->{id}->{ $object->parts_id }) {
push @{ $entry->{errors} }, $::locale->text('Error: Invalid part');
return 0;
$object->parts_id($part->id);
}
+ # Map description to ID if given.
+ if (!$object->parts_id && $entry->{raw_data}->{description}) {
+ my $part = $self->parts_by->{description}->{ $entry->{raw_data}->{description} };
+ if (!$part) {
+ push @{ $entry->{errors} }, $::locale->text('Error: Invalid part');
+ return 0;
+ }
+
+ $object->parts_id($part->id);
+ }
+
if ($object->parts_id) {
$entry->{info_data}->{partnumber} = $self->parts_by->{id}->{ $object->parts_id }->partnumber;
} else {
my $order_entry;
my @orderitems;
foreach my $entry (@{ $self->controller->data }) {
- # search first order
+ # search first/next order
if ($entry->{raw_data}->{datatype} eq $self->_order_column) {
- # new order entry: add collected orderitems to the previous one
+ # next order entry: add collected orderitems to the previous one
if (defined $order_entry) {
$order_entry->{object}->orderitems(@orderitems);
@orderitems = ();