Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 5144a28b

Von Tamino Steinert vor etwa 1 Jahr hinzugefügt

  • ID 5144a28bbd589b3c626a22fe5481bb2b0383bbdc
  • Vorgänger 96ff2c0b
  • Nachfolger c9a2c038

Order: Nutze Type und ID zum Erstellen von verknüpften Belegen

Unterschiede anzeigen:

SL/DB/Order.pm
514 514
    any { $from_to->{abbr} eq $_ } @_;
515 515
  };
516 516

  
517
  my ($item_parent_id_column, $item_parent_column);
518

  
519
  if (ref($source) eq 'SL::DB::Order') {
520
    $item_parent_id_column = 'trans_id';
521
    $item_parent_column    = 'order';
522
  } elsif ( ref($source) eq 'SL::DB::Reclamation') {
523
    $item_parent_id_column = 'reclamation_id';
524
    $item_parent_column    = 'reclamation';
525
  }
526

  
527 517
  my %args;
528 518
  if (ref($source) eq 'SL::DB::Order') {
529 519
    %args = ( map({ ( $_ => $source->$_ ) } qw(amount cp_id currency_id cusordnumber customer_id delivery_customer_id delivery_term_id delivery_vendor_id
......
613 603
  $order->assign_attributes(%{ $params{attributes} }) if $params{attributes};
614 604
  my $items = delete($params{items}) || $source->items_sorted;
615 605

  
616
  my %item_parents;
617

  
618 606
  my @items = map {
619 607
    my $source_item      = $_;
620
    my $source_item_id   = $_->$item_parent_id_column;
621 608
    my @custom_variables = map { _clone_orderitem_cvar($_) } @{ $source_item->custom_variables };
622 609

  
623
    $item_parents{$source_item_id} ||= $source_item->$item_parent_column;
624
    my $item_parent                  = $item_parents{$source_item_id};
625

  
626 610
    my $current_oe_item;
627 611
    if (ref($source) eq 'SL::DB::Order') {
628 612
      $current_oe_item = SL::DB::OrderItem->new(map({ ( $_ => $source_item->$_ ) }
......
654 638
      $current_oe_item->lastcost($source_item->sellprice);
655 639
    }
656 640
    unless ($params{no_linked_records}) {
657
      $current_oe_item->{ RECORD_ITEM_ID() } = $_->{id};
641
      $current_oe_item->{ RECORD_ITEM_ID() } = $source_item->{id};
658 642
      $current_oe_item->{ RECORD_ITEM_TYPE_REF() } = ref($source_item);
659 643
    }
660 644
    $current_oe_item;
......
742 726
                               attributes       => \%attributes,
743 727
                               items            => \@items,
744 728
                               %params);
729
  $order->{RECORD_ID()} = join ' ', map { $_->id } @$sources; # link all sources
745 730

  
746 731
  return $order;
747 732
}

Auch abrufbar als: Unified diff