Berechnung des Mahnungszeitraumes: nur zuletzt ausgestellte Mahnung heranziehen
authorMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 28 Dec 2010 14:32:15 +0000 (15:32 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 28 Dec 2010 14:32:15 +0000 (15:32 +0100)
Werden für ein und dieselbe Rechnung mehrere Mahnungen auf demselben
Mahnlevel erzeugt ("ich schicke der Kundin lieber noch eine weitere
freundliche Zahlungserinnerung"), so darf für die Berechnung des
aktuell gültigen Zahlungszieles nur die zuletzt ausgestellte Mahnung
benutzt werden.

Fix für Bug 1432.

SL/DN.pm

index 272bddc..2cc87df 100644 (file)
--- a/SL/DN.pm
+++ b/SL/DN.pm
@@ -504,7 +504,12 @@ sub get_invoices {
               ORDER BY dunning_level ASC
               LIMIT 1)
              , ?))
-       LEFT JOIN dunning d ON ((d.trans_id = a.id) AND (cfg.dunning_level = d.dunning_level))
+       LEFT JOIN dunning d ON (d.id = (
+         SELECT MAX(d2.id)
+         FROM dunning d2
+         WHERE (d2.trans_id      = a.id)
+           AND (d2.dunning_level = cfg.dunning_level)
+       ))
 
        WHERE (a.paid < a.amount)
          AND (a.duedate < current_date)