From 6f063101b0d1c37da024f46b9481267b869a945e Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Thu, 5 Jun 2014 10:07:07 +0200 Subject: [PATCH] =?utf8?q?RDBO=20Invoice->new=5Ffrom:=20F=C3=A4lligkeitsda?= =?utf8?q?tum=20und=20Zahlungsbedingungen=20gefixt?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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. --- SL/DB/Invoice.pm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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, -- 2.20.1