Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 34420ddb

Von Jan Büren vor fast 10 Jahren hinzugefügt

  • ID 34420ddb07d6ebea006aa96f131aaa050a7037bc
  • Vorgänger f34953ca
  • Nachfolger c1c1deac

Verknüpfung von Einzelpositionen auch bei periodisch erzeugten Rechnungen (Auftrag -> Rechnung)
Für InvoiceItem in Invoice ein converted_from_*_id hinzugefügt wie bei der Verknüpfung von Auftrag zu
Rechnung, bzw. Lieferschein zu Rechnung. Letzterer Weg wird aktuell bei Objekten noch nicht
benutzt. Ferner einen Rückgabewert von create_links (RecordLinks) etwas verbessert (undef bei nicht
erfolgtem Anlegen).
Offen: Implementierung der Verknüpfung von DeliveryOrderItem-Objekten mit InvoiceItem-Objekten.
Diese werden aktuell nicht benutzt und betrifft auch nicht periodische Rechnungen.

Unterschiede anzeigen:

SL/BackgroundJob/CreatePeriodicInvoices.pm
143 143
}
144 144

  
145 145
sub _create_periodic_invoice {
146
  $main::lxdebug->enter_sub();
147

  
146 148
  my $self              = shift;
147 149
  my $config            = shift;
148 150
  my $period_start_date = shift;
......
188 190

  
189 191
    $order->link_to_record($invoice);
190 192

  
193
    foreach my $item (@{ $invoice->items }) {
194
      foreach (qw(orderitems)) {    # expand if needed (delivery_order_items)
195
          if ($item->{"converted_from_${_}_id"}) {
196
            die unless $item->{id};
197
            RecordLinks->create_links('mode'       => 'ids',
198
                                      'from_table' => $_,
199
                                      'from_ids'   => $item->{"converted_from_${_}_id"},
200
                                      'to_table'   => 'invoice',
201
                                      'to_id'      => $item->{id},
202
            ) || die;
203
            delete $item->{"converted_from_${_}_id"};
204
         }
205
      }
206
    }
207

  
191 208
    SL::DB::PeriodicInvoice->new(config_id         => $config->id,
192 209
                                 ar_id             => $invoice->id,
193 210
                                 period_start_date => $period_start_date)
......
198 215
    $::lxdebug->message(LXDebug->WARN(), "_create_invoice failed: " . join("\n", (split(/\n/, $self->{db_obj}->db->error))[0..2]));
199 216
    return undef;
200 217
  }
201

  
218
  $main::lxdebug->leave_sub();
202 219
  return $invoice;
203 220
}
204 221

  

Auch abrufbar als: Unified diff