From: Moritz Bunkus Date: Thu, 5 Jun 2014 08:07:07 +0000 (+0200) Subject: RDBO Invoice->new_from: Fälligkeitsdatum und Zahlungsbedingungen gefixt X-Git-Tag: release-3.2.0beta~418 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=6f063101b0d1c37da024f46b9481267b869a945e;p=kivitendo-erp.git RDBO Invoice->new_from: Fälligkeitsdatum und Zahlungsbedingungen gefixt 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. --- diff --git a/SL/DB/Invoice.pm b/SL/DB/Invoice.pm index 3f94795ee..0e9616651 100644 --- a/SL/DB/Invoice.pm +++ b/SL/DB/Invoice.pm @@ -130,7 +130,10 @@ sub new_from { 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') { @@ -151,7 +154,8 @@ sub new_from { 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,