1. Konvertierung von Order-Objekten: Hier wurde das Fälligkeitsdatum
zwar richtig übernommen, nicht aber die Zahlungsbedingungen.
2. Konvertierung von DeliveryOrder-Objekten: Lieferscheine haben gar
keinen Fremdschlüssel auf die Zahlungsbedingungen. Daher wurden hier
weder das Fälligkeitsdatum noch die Zahlungsbedingungen übernommen.
Was jetzt gemacht wird, ist die Zahlungsbedingungen vom Quellobjekt zu
nehmen, wenn dort welche existieren, und ansonsten vom dazugehörigen
Kunden. Wurden Zahlungsbedingungen gefunden, so wird das
Fälligkeitsdatum daraus berechnet und ansonsten auf »Rechnungsdatum + 1
Tag« gesetzt.
require SL::DB::Employee;
require SL::DB::Employee;
- my $terms = $source->can('payment_id') && $source->payment_id ? $source->payment_terms->terms_netto : 0;
+ my $terms = $source->can('payment_id') && $source->payment_id ? $source->payment_terms
+ : $source->customer_id ? $source ->customer->payment_terms
+ : undef;
+
my (@columns, @item_columns, $item_parent_id_column, $item_parent_column);
if (ref($source) eq 'SL::DB::Order') {
my (@columns, @item_columns, $item_parent_id_column, $item_parent_column);
if (ref($source) eq 'SL::DB::Order') {
cp_id language_id taxzone_id shipto_id globalproject_id transaction_description currency_id delivery_term_id), @columns),
transdate => DateTime->today_local,
gldate => DateTime->today_local,
cp_id language_id taxzone_id shipto_id globalproject_id transaction_description currency_id delivery_term_id), @columns),
transdate => DateTime->today_local,
gldate => DateTime->today_local,
- duedate => DateTime->today_local->add(days => $terms * 1),
+ duedate => DateTime->today_local->add(days => ($terms ? $terms->terms_netto * 1 : 1)),
+ payment_id => $terms ? $terms->id : undef,
invoice => 1,
type => 'invoice',
storno => 0,
invoice => 1,
type => 'invoice',
storno => 0,