Zahlungsbedingungen: "calc_date" überschreibt Referenzdatum
authorMartin Helmling martin.helmling@octosoft.eu <martin.helmling@octosoft.eu>
Wed, 8 Jul 2020 05:49:17 +0000 (07:49 +0200)
committerBernd Bleßmann <bernd@kivitendo-premium.de>
Wed, 15 Sep 2021 11:17:34 +0000 (13:17 +0200)
Die Methode "calc_date" erzeugt das neue Datum ohne ein neues Objekt zu
erzeugen.
Deshalb wird ggf der Parameter "reference_date" überschrieben.

Nun wird ein neues Datumsobjekt per "clone" erzeugt.

gefunden bei egw 13209

(cherry picked from commit ac77e995e74bef6f408045eda95ebc775430b17d)
(cherry-pick vonm odyn)

SL/DB/PaymentTerm.pm

index db443e9..2f62bd9 100644 (file)
@@ -35,7 +35,7 @@ sub calc_date {
   }
 
   my $terms           = ($params{terms} // 'net') eq 'discount' ? 'terms_skonto' : 'terms_netto';
-  my $date            = $reference_date->add(days => $self->$terms);
+  my $date            = $reference_date->clone->add(days => $self->$terms);
 
   my $dow             = $date->day_of_week;
   $date               = $date->add(days => 8 - $dow) if $dow > 5;