Revision c84c3960
Von Sven Schöling vor 8 Monaten hinzugefügt
SL/DB/Order.pm | ||
---|---|---|
275 | 275 |
if (!$self->db->with_transaction(sub { |
276 | 276 |
require SL::DB::Invoice; |
277 | 277 |
$invoice = SL::DB::Invoice->new_from($self, %params)->post || die; |
278 |
$self->link_to_record($invoice); |
|
279 |
# TODO extend link_to_record for items, otherwise long-term no d.r.y. |
|
280 |
foreach my $item (@{ $invoice->items }) { |
|
281 |
foreach (qw(orderitems)) { |
|
282 |
if ($item->{"converted_from_${_}_id"}) { |
|
283 |
die unless $item->{id}; |
|
284 |
RecordLinks->create_links('mode' => 'ids', |
|
285 |
'from_table' => $_, |
|
286 |
'from_ids' => $item->{"converted_from_${_}_id"}, |
|
287 |
'to_table' => 'invoice', |
|
288 |
'to_id' => $item->{id}, |
|
289 |
) || die; |
|
290 |
delete $item->{"converted_from_${_}_id"}; |
|
291 |
} |
|
292 |
} |
|
293 |
} |
|
294 | 278 |
$self->update_attributes(closed => 1); |
295 | 279 |
1; |
296 | 280 |
})) { |
... | ... | |
308 | 292 |
require SL::DB::DeliveryOrder; |
309 | 293 |
$delivery_order = SL::DB::DeliveryOrder->new_from($self, @args); |
310 | 294 |
$delivery_order->save; |
311 |
$self->link_to_record($delivery_order); |
|
312 |
# TODO extend link_to_record for items, otherwise long-term no d.r.y. |
|
313 |
foreach my $item (@{ $delivery_order->items }) { |
|
314 |
foreach (qw(orderitems)) { # expand if needed (delivery_order_items) |
|
315 |
if ($item->{"converted_from_${_}_id"}) { |
|
316 |
die unless $item->{id}; |
|
317 |
RecordLinks->create_links('dbh' => $self->db->dbh, |
|
318 |
'mode' => 'ids', |
|
319 |
'from_table' => $_, |
|
320 |
'from_ids' => $item->{"converted_from_${_}_id"}, |
|
321 |
'to_table' => 'delivery_order_items', |
|
322 |
'to_id' => $item->{id}, |
|
323 |
) || die; |
|
324 |
delete $item->{"converted_from_${_}_id"}; |
|
325 |
} |
|
326 |
} |
|
327 |
} |
|
328 | 295 |
|
329 | 296 |
$self->update_attributes(delivered => 1) unless $::instance_conf->get_shipped_qty_require_stock_out; |
330 | 297 |
1; |
... | ... | |
543 | 510 |
if ( $is_abbr_any->(qw(poso rqsq rqso pqisq pqiso)) ) { |
544 | 511 |
$current_oe_item->lastcost($source_item->sellprice); |
545 | 512 |
} |
546 |
$current_oe_item->{"converted_from_orderitems_id"} = $_->{id} if ref($item_parent) eq 'SL::DB::Order';
|
|
547 |
$current_oe_item->{"converted_from_reclamation_item_id"} = $_->{id} if ref($item_parent) eq 'SL::DB::Reclamation';
|
|
513 |
$current_oe_item->{ RECORD_ITEM_ID() } = $_->{id};
|
|
514 |
$current_oe_item->{ RECORD_ITEM_TYPE_REF() } = ref($source_item);
|
|
548 | 515 |
$current_oe_item; |
549 | 516 |
} @{ $items }; |
550 | 517 |
|
... | ... | |
554 | 521 |
|
555 | 522 |
$order->items(\@items); |
556 | 523 |
|
524 |
$order->{ RECORD_ID() } = $source->{id}; |
|
525 |
$order->{ RECORD_TYPE_REF() } = ref($source); |
|
526 |
|
|
557 | 527 |
return $order; |
558 | 528 |
} |
559 | 529 |
|
Auch abrufbar als: Unified diff
RecordLink: converted_from_* Felder in allen convert_to und new_from korrekt setzen.
Das hier benutzt jetzt das neue Reclamation Format. Statt
wird jetzt
benutzt.