Reiter am Kunden nur bei vorhandenen Mahnungen
All checks were successful
Deploy mahnung / deploy (push) Has been skipped

Der Reiter stand auf jeder Kundenkarte, auch ohne eine einzige Mahnung.
Die Leiste dort traegt 21 Eintraege; auf Prod gibt es 4 Mahnungen bei 3 von
111 Kunden — bei 108 Kunden zeigte er nichts. completeTabsHead blendet ihn
am Kunden jetzt nur bei Bestand ein; die Zaehlung lief ohnehin schon fuer
die Zahl im Reiter. An der RECHNUNG bleibt er immer sichtbar.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Eduard Wisch 2026-09-07 21:02:25 +02:00
parent b3f78d292f
commit 1c666287f5
2 changed files with 16 additions and 0 deletions

View file

@ -2,6 +2,14 @@
## [Unreleased] ## [Unreleased]
### Reiter am Kunden nur noch, wenn es Mahnungen gibt
Der Reiter „Mahnwesen" stand auf **jeder** Kundenkarte, auch wenn dort nie gemahnt wurde. Die
Reiterleiste trägt dort 21 Einträge; auf Prod gibt es 4 Mahnungen bei 3 von 111 Kunden — bei 108
Kunden zeigte der Reiter also nichts und kostete trotzdem Platz. `completeTabsHead` blendet ihn
am Kunden jetzt nur noch bei vorhandenen Mahnungen ein (die Zählung lief ohnehin schon, für die
Zahl im Reiter). **An der Rechnung bleibt er unverändert immer sichtbar** — dort wird gemahnt,
und dort ist „keine Mahnung" eine Aussage.
### Zahlungserinnerung (Stufe 0) + frei konfigurierbare Mahnstufen ### Zahlungserinnerung (Stufe 0) + frei konfigurierbare Mahnstufen
- **Vor der ersten echten Mahnung steht jetzt eine kostenlose Zahlungserinnerung.** Ob eine Stufe eine Erinnerung ist, entscheidet ausschließlich das neue Flag `llx_mahnung_stufe.ist_erinnerung`**nicht** die Stufennummer. Eine Erinnerung kostet nichts: Mahngebühr, §288-Abs.-5-Pauschale und Verzugszinsen werden in `mahnungBaueVorgang()` hart auf 0 gesetzt, unabhängig davon, was in der Stufe konfiguriert ist. - **Vor der ersten echten Mahnung steht jetzt eine kostenlose Zahlungserinnerung.** Ob eine Stufe eine Erinnerung ist, entscheidet ausschließlich das neue Flag `llx_mahnung_stufe.ist_erinnerung`**nicht** die Stufennummer. Eine Erinnerung kostet nichts: Mahngebühr, §288-Abs.-5-Pauschale und Verzugszinsen werden in `mahnungBaueVorgang()` hart auf 0 gesetzt, unabhängig davon, was in der Stufe konfiguriert ist.
- **Keine feste Obergrenze bei Stufe 3 mehr.** Stufen sind frei konfigurierbar (Nummer 0127, Lücken erlaubt). Einstieg ist die kleinste aktive Stufe (`minStufe()`), die Folgestufe liefert `naechsteStufeNach()` — Lücken werden übersprungen. Auch der Button „Als uneinbringlich klassifizieren" hängt nicht mehr an `stufe === 3`, sondern daran, dass **keine weitere aktive Stufe** mehr folgt. - **Keine feste Obergrenze bei Stufe 3 mehr.** Stufen sind frei konfigurierbar (Nummer 0127, Lücken erlaubt). Einstieg ist die kleinste aktive Stufe (`minStufe()`), die Folgestufe liefert `naechsteStufeNach()` — Lücken werden übersprungen. Auch der Button „Als uneinbringlich klassifizieren" hängt nicht mehr an `stufe === 3`, sondern daran, dass **keine weitere aktive Stufe** mehr folgt.

View file

@ -143,6 +143,14 @@ class ActionsMahnung
} else { } else {
$count = $this->countMahnungen($db, 'fk_soc', (int) $object->id); $count = $this->countMahnungen($db, 'fk_soc', (int) $object->id);
$tabUrl = DOL_URL_ROOT.'/custom/mahnung/list.php?mainmenu=billing&leftmenu=mahnung&mode=archiv&search_socid='.((int) $object->id); $tabUrl = DOL_URL_ROOT.'/custom/mahnung/list.php?mainmenu=billing&leftmenu=mahnung&mode=archiv&search_socid='.((int) $object->id);
// Am Kunden nur zeigen, wenn es wirklich Mahnungen gibt. Die Reiterleiste
// der Kundenkarte traegt 21 Eintraege; ein Reiter, der bei 108 von 111
// Kunden leer ist, kostet dort Platz und Aufmerksamkeit, ohne je etwas zu
// zeigen. An der RECHNUNG bleibt er immer sichtbar — dort mahnt man.
if ($count < 1) {
return 0;
}
} }
$head = &$parameters['head']; $head = &$parameters['head'];