Revision fc890e10
Von Jan Büren vor mehr als 8 Jahren hinzugefügt
SL/DB/DeliveryOrder.pm | ||
---|---|---|
164 | 164 |
$item_parents{$source_item_id} ||= $source_item->$item_parent_column; |
165 | 165 |
my $item_parent = $item_parents{$source_item_id}; |
166 | 166 |
|
167 |
SL::DB::DeliveryOrderItem->new(map({ ( $_ => $source_item->$_ ) } |
|
167 |
my $current_do_item = SL::DB::DeliveryOrderItem->new(map({ ( $_ => $source_item->$_ ) }
|
|
168 | 168 |
qw(base_qty cusordnumber description discount lastcost longdescription marge_price_factor parts_id price_factor price_factor_id |
169 | 169 |
project_id qty reqdate sellprice serialnumber transdate unit active_discount_source active_price_source |
170 | 170 |
)), |
171 | 171 |
custom_variables => \@custom_variables, |
172 | 172 |
ordnumber => ref($item_parent) eq 'SL::DB::Order' ? $item_parent->ordnumber : $source_item->ordnumber, |
173 | 173 |
); |
174 |
|
|
174 |
$current_do_item->{"converted_from_orderitems_id"} = $_->{id} if ref($item_parent) eq 'SL::DB::Order'; |
|
175 |
$current_do_item; |
|
175 | 176 |
} @{ $items }; |
176 | 177 |
|
177 | 178 |
@items = grep { $params{item_filter}->($_) } @items if $params{item_filter}; |
... | ... | |
197 | 198 |
require SL::DB::Invoice; |
198 | 199 |
$invoice = SL::DB::Invoice->new_from($self, %params)->post || die; |
199 | 200 |
$self->link_to_record($invoice); |
201 |
# TODO extend link_to_record for items, otherwise long-term no d.r.y. |
|
200 | 202 |
foreach my $item (@{ $invoice->items }) { |
201 |
foreach (qw(delivery_order_items)) { # expand if needed (delivery_order_items)
|
|
203 |
foreach (qw(delivery_order_items)) { # expand if needed (orderitems)
|
|
202 | 204 |
if ($item->{"converted_from_${_}_id"}) { |
203 | 205 |
die unless $item->{id}; |
204 | 206 |
RecordLinks->create_links('mode' => 'ids', |
Auch abrufbar als: Unified diff
convert_to_delivery_order um record_links auf item-Ebene erweitert
Bisher wurden nur die Belege verknüpft und nicht die einzelnen
Items. Analoge Implementierung wie bei convert_to_invoice.
Sinnvoll wäre ein Auslagern, dieser "zu ähnlichen" Verfahren in beiden
Fällen