Kaffeeliste-Ausdruck: adaptives Layout nach Mitgliederzahl

Der PDF-Export war bisher immer zweiseitig (Vieltrinker-/Wenigtrinker)
mit fester Mindestzeilenzahl, unabhängig von der tatsächlichen
Mitgliederzahl. Umgestellt auf:

- Bis 49 aktive Mitglieder: eine Seite ohne Trennung.
- Ab 50 Mitgliedern: weiterhin zwei Seiten (Vorder-/Rückseite).
- Zeilenhöhe richtet sich nach der Mitgliederzahl (16-40px), statt fest
  16px für alle.
- Neue Mandanten-Einstellungen: freie Zeilen für neue Mitglieder an/aus,
  Trennmodus bei zwei Seiten (Trinkverhalten oder alphabetisch).

Migration 0015 ergänzt die dafür nötigen tenant_settings-Spalten.
Gegen die Dev-DB verifiziert: 8 Mitglieder -> einseitiges PDF,
53 Mitglieder (temporäre Testdaten) -> zweiseitiges PDF, Einstellungen
inkl. Validierung geprüft.
This commit is contained in:
2026-07-19 22:42:12 +02:00
parent 7630a35bf4
commit 5e6262b6a8
6 changed files with 193 additions and 92 deletions
+26
View File
@@ -99,6 +99,32 @@ Live getestet: gültiges zweiseitiges PDF (58 KB) mit korrektem
stichprobenartig verifiziert (unkomprimierte Testausgabe), Vieltrinker-/
Wenigtrinker-Aufteilung stimmt mit den Ledger-Daten überein.
### Nachtrag: Adaptives Layout nach Mitgliederzahl (2026-07-19)
Der Export war bis dahin immer zweiseitig mit fester Mindestzeilenzahl
(63/64 Zeilen a 16px), unabhängig von der tatsächlichen Mitgliederzahl.
Umgestellt auf:
- Bis 49 aktive Mitglieder: eine Seite, keine Vieltrinker-/Wenigtrinker-
Trennung. Ab 50 (`EXPORT_MULTI_PAGE_THRESHOLD` in
`exportKaffeeliste.php`): zwei Seiten wie bisher.
- Zeilenhöhe wird aus einem festen Platzbudget pro Seite errechnet
(`export_row_height_px()`), begrenzt auf 1640px weniger Mitglieder
ergeben größere statt winziger Zeilen.
- Neue Mandanten-Einstellungen (`tenant_settings.pdf_show_empty_rows`,
`tenant_settings.pdf_split_mode`, Migration
`0015_saas_pdf_export_settings.sql`, Formular in
`mandant-einstellungen.php`): Admin legt fest, ob freie Zeilen für neue
Mitglieder aufgefüllt werden, und ob die Zweiseiten-Trennung nach
Trinkverhalten (wie bisher) oder alphabetisch erfolgt.
- Verifiziert gegen die Dev-DB: 8 aktive Mitglieder ergeben ein
einseitiges PDF (`/Count 1`), 53 aktive Mitglieder ein zweiseitiges
(`/Count 2`); `saas_update_tenant_settings()` speichert und validiert
die neuen Felder korrekt (ungültiger `pdf_split_mode` wird abgelehnt).
- RFID-Kartenerfassung als künftige Erfassungsmethode ist weiterhin nur
im Backlog vermerkt (`docs/backlog-druck-und-landingpage.md`), nicht
umgesetzt und nicht beworben.
## Mailversand
Umgesetzte Dateien: