From 2dff0687d1c3131bb8d7b912bed96d5511699cc3 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Thu, 21 Jun 2018 13:20:35 +0200 Subject: [PATCH] =?utf8?q?Finanz=C3=BCbersicht:=20=C2=BBeinmalige=C2=AB=20?= =?utf8?q?Periodizit=C3=A4t=20bei=20wiederkehrenden=20Rechnung=20gefixt?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Die Finanzübersicht nutzt die Funktion `SL::DB::PeriodicInvoicesConfig::calculate_invoice_dates`, um jedes Ausführungsdatum innerhalb eines Zeitraumes zu berechnen. Dort wurde »einmalig« fälschlicherweise wie »jeden Monat wiederholen« behandelt. Dadurch tauchten die solche wiederkehrenden Rechnungen in der Finanzübersicht in jedem Monat auf, sofern die Konfiguration noch aktiv ist. Beim eigentlichen Erzeugen der wiederkehrenden Rechnungen hingegen war das deshalb kein Problem, weil so eine Konfiguration direkt nach dem ersten Erzeugen der Rechnung auf inaktiv gesetzt wird. --- SL/DB/PeriodicInvoicesConfig.pm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/SL/DB/PeriodicInvoicesConfig.pm b/SL/DB/PeriodicInvoicesConfig.pm index 26ce33631..081be3577 100644 --- a/SL/DB/PeriodicInvoicesConfig.pm +++ b/SL/DB/PeriodicInvoicesConfig.pm @@ -96,6 +96,10 @@ sub calculate_invoice_dates { $start_date = max($start_date, $params{start_date}) if $params{start_date}; $end_date = min($end_date, $params{end_date}) if $params{end_date}; + if ($self->periodicity eq 'o') { + return ($cur_date >= $start_date) && ($cur_date <= $end_date) ? ($cur_date) : (); + } + my @dates; while ($cur_date <= $end_date) { -- 2.20.1