Revision 34420ddb
Von Jan Büren vor fast 10 Jahren hinzugefügt
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
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.