Revision c888c8a7
Von Sven Schöling vor mehr als 1 Jahr hinzugefügt
SL/DB/Order.pm | ||
---|---|---|
273 | 273 |
if (!$self->db->with_transaction(sub { |
274 | 274 |
require SL::DB::Invoice; |
275 | 275 |
$invoice = SL::DB::Invoice->new_from($self, %params)->post || die; |
276 |
$self->link_to_record($invoice); |
|
277 |
# TODO extend link_to_record for items, otherwise long-term no d.r.y. |
|
278 |
foreach my $item (@{ $invoice->items }) { |
|
279 |
foreach (qw(orderitems)) { |
|
280 |
if ($item->{"converted_from_${_}_id"}) { |
|
281 |
die unless $item->{id}; |
|
282 |
RecordLinks->create_links('mode' => 'ids', |
|
283 |
'from_table' => $_, |
|
284 |
'from_ids' => $item->{"converted_from_${_}_id"}, |
|
285 |
'to_table' => 'invoice', |
|
286 |
'to_id' => $item->{id}, |
|
287 |
) || die; |
|
288 |
delete $item->{"converted_from_${_}_id"}; |
|
289 |
} |
|
290 |
} |
|
291 |
} |
|
292 | 276 |
$self->update_attributes(closed => 1); |
293 | 277 |
1; |
294 | 278 |
})) { |
... | ... | |
306 | 290 |
require SL::DB::DeliveryOrder; |
307 | 291 |
$delivery_order = SL::DB::DeliveryOrder->new_from($self, @args); |
308 | 292 |
$delivery_order->save; |
309 |
$self->link_to_record($delivery_order); |
|
310 |
# TODO extend link_to_record for items, otherwise long-term no d.r.y. |
|
311 |
foreach my $item (@{ $delivery_order->items }) { |
|
312 |
foreach (qw(orderitems)) { # expand if needed (delivery_order_items) |
|
313 |
if ($item->{"converted_from_${_}_id"}) { |
|
314 |
die unless $item->{id}; |
|
315 |
RecordLinks->create_links('dbh' => $self->db->dbh, |
|
316 |
'mode' => 'ids', |
|
317 |
'from_table' => $_, |
|
318 |
'from_ids' => $item->{"converted_from_${_}_id"}, |
|
319 |
'to_table' => 'delivery_order_items', |
|
320 |
'to_id' => $item->{id}, |
|
321 |
) || die; |
|
322 |
delete $item->{"converted_from_${_}_id"}; |
|
323 |
} |
|
324 |
} |
|
325 |
} |
|
326 | 293 |
|
327 | 294 |
$self->update_attributes(delivered => 1) unless $::instance_conf->get_shipped_qty_require_stock_out; |
328 | 295 |
1; |
... | ... | |
518 | 485 |
if ( $is_abbr_any->(qw(poso rqsq rqso)) ) { |
519 | 486 |
$current_oe_item->lastcost($source_item->sellprice); |
520 | 487 |
} |
521 |
$current_oe_item->{"converted_from_orderitems_id"} = $_->{id} if ref($item_parent) eq 'SL::DB::Order';
|
|
522 |
$current_oe_item->{"converted_from_reclamation_item_id"} = $_->{id} if ref($item_parent) eq 'SL::DB::Reclamation';
|
|
488 |
$current_oe_item->{ RECORD_ITEM_ID() } = $_->{id};
|
|
489 |
$current_oe_item->{ RECORD_ITEM_TYPE_REF() } = ref($source_item);
|
|
523 | 490 |
$current_oe_item; |
524 | 491 |
} @{ $items }; |
525 | 492 |
|
... | ... | |
529 | 496 |
|
530 | 497 |
$order->items(\@items); |
531 | 498 |
|
499 |
$order->{ RECORD_ID() } = $source->{id}; |
|
500 |
$order->{ RECORD_TYPE_REF() } = ref($source); |
|
501 |
|
|
532 | 502 |
return $order; |
533 | 503 |
} |
534 | 504 |
|
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.