- $form->{"id_${idx}"} = $item->parts_id;
- $form->{"partnumber_${idx}"} = $item->part->partnumber;
- _copy($item, $form, '', "_${idx}", 0, qw(description project_id ship serialnumber pricegroup_id ordnumber cusordnumber unit
- subtotal longdescription price_factor_id marge_price_factor approved_sellprice reqdate transdate));
- _copy($item, $form, '', "_${idx}", $format_amounts, qw(qty sellprice marge_total marge_percent lastcost));
- _copy($item, $form, '', "_${idx}", $format_notnull, qw(discount));
- _copy($item->project, $form, 'project', "_${idx}", 0, qw(number description)) if _has($item, 'project_id');
-
- _copy_custom_variables($item, $form, 'ic_cvar_', "_${idx}");
+ $form->{"std_warehouse_${idx}"} = $item->part->warehouse->description if _has($item->part, 'warehouse_id');
+ $form->{"std_bin_${idx}"} = $item->part->bin->description if _has($item->part, 'bin_id');
+ $form->{"partsgroup_${idx}"} = $item->part->partsgroup->partsgroup if _has($item->part, 'partsgroup_id');
+ _copy($item, $form, "${items_name}_", "_${idx}", 0, qw(id)) if $items_name;
+ # TODO: is part_type correct here? Do we need to set part_type as default?
+ _copy($item->part, $form, '', "_${idx}", 0, qw(id partnumber weight part_type));
+ _copy($item->part, $form, '', "_${idx}", 0, qw(listprice));
+ _copy($item, $form, '', "_${idx}", 0, qw(description project_id ship serialnumber pricegroup_id ordnumber donumber cusordnumber unit
+ subtotal longdescription price_factor_id marge_price_factor reqdate transdate
+ active_price_source active_discount_source));
+ _copy($item, $form, '', "_${idx}", $format_noround, qw(qty sellprice fxsellprice));
+ _copy($item, $form, '', "_${idx}", $format_amounts, qw(marge_total marge_percent lastcost));
+ _copy($item, $form, '', "_${idx}", $format_percent, qw(discount));
+ _copy($item->project, $form, 'project', "_${idx}", 0, qw(number description)) if _has($item, 'project_id');
+
+ _copy_custom_variables($item, $form, 'ic_cvar_', "_${idx}", $cvar_validity{items}->{ $item->parts_id });
+
+ if (ref($self) eq 'SL::DB::Invoice') {
+ my $date = $item->deliverydate ? $item->deliverydate->to_lxoffice : undef;
+ $form->{"deliverydate_oe_${idx}"} = $date;
+ $form->{"reqdate_${idx}"} = $date;
+ }