+sub create_additional_part_order_item {
+ my ($self, %params) = @_;
+
+ my $add_part = $params{additional_part};
+ my $item = $params{item} || SL::DB::OrderItem->new;
+ my $part = $self->parts->{ $add_part->part_id };
+ my $translation = $params{language_id} ? first { $params{language_id} == $_->language_id } @{ $part->translations } : {};
+ my $description = $item->description || $add_part->description;
+ my $longdescription = $translation->{longdescription} || $part->notes;
+
+ $item->assign_attributes(
+ parts_id => $part->id,
+ description => $description,
+ longdescription => $longdescription,
+ qty => $add_part->qty,
+ unit => $add_part->unit->name,
+ sellprice => $add_part->unit->convert_to($part->sellprice, $part->unit_obj),
+ lastcost => $part->lastcost,
+ discount => 0,
+ project_id => $self->requirement_spec->project_id,
+ );
+
+ return $item;
+}
+