Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision c84c3960

Von Sven Schöling vor 8 Monaten hinzugefügt

  • ID c84c3960cc2e665d0e8536f5391ac25ecf68b296
  • Vorgänger 320b8908
  • Nachfolger 2bb40d4e

RecordLink: converted_from_* Felder in allen convert_to und new_from korrekt setzen.

Das hier benutzt jetzt das neue Reclamation Format. Statt

converted_from_oe_id

wird jetzt

converted_from_record_id
converted_from_record_type_ref = SL::DB::Order

benutzt.

Unterschiede anzeigen:

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