Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision fc890e10

Von Jan Büren vor mehr als 8 Jahren hinzugefügt

  • ID fc890e1040a469ee62b3661c5da2f3d2efb4cce9
  • Vorgänger d04a436f
  • Nachfolger 109745f3

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

Unterschiede anzeigen:

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