feat: add ReportService and PDF generation with TCPDF (Closes #46) #98

Merged
shahondin1624 merged 1 commits from feature/issue-46-reportservice-pdf-generation into main 2026-04-07 14:58:56 +02:00
Owner

Summary

  • Add ReportService with 8 report types: Mitgliederliste, Beitragsliste, Stufenliste, Allergieliste, Geburtstagsliste, Kontaktliste, Bankverbindungen, Familienliste
  • Add PdfService using TCPDF for formatted PDF output with configurable Verein header, alternating row colors, landscape A4 layout
  • Add ReportController with preview (JSON), PDF download, and encrypted PDF (password-protected ZIP) endpoints
  • Banking report requires canSeeBanking permission
  • Add TCPDF composer dependency (tecnickcom/tcpdf ^6.7)

Closes #46

Files Changed

  • composer.json (added TCPDF dependency)
  • lib/Service/ReportService.php (new — 8 report generators)
  • lib/Service/PdfService.php (new — TCPDF wrapper)
  • lib/Controller/ReportController.php (new — preview/PDF/encrypted endpoints)
  • appinfo/routes.php (added 4 report routes)

Test Plan

  • Verify each report type returns valid structured data
  • Verify PDF generation produces valid PDF with correct headers
  • Verify Bankverbindungen requires canSeeBanking permission
  • Verify encrypted endpoint wraps PDF in password-protected ZIP
  • Verify preview endpoint returns JSON suitable for table display
## Summary - Add `ReportService` with 8 report types: Mitgliederliste, Beitragsliste, Stufenliste, Allergieliste, Geburtstagsliste, Kontaktliste, Bankverbindungen, Familienliste - Add `PdfService` using TCPDF for formatted PDF output with configurable Verein header, alternating row colors, landscape A4 layout - Add `ReportController` with preview (JSON), PDF download, and encrypted PDF (password-protected ZIP) endpoints - Banking report requires `canSeeBanking` permission - Add TCPDF composer dependency (`tecnickcom/tcpdf ^6.7`) Closes #46 ## Files Changed - `composer.json` (added TCPDF dependency) - `lib/Service/ReportService.php` (new — 8 report generators) - `lib/Service/PdfService.php` (new — TCPDF wrapper) - `lib/Controller/ReportController.php` (new — preview/PDF/encrypted endpoints) - `appinfo/routes.php` (added 4 report routes) ## Test Plan - [ ] Verify each report type returns valid structured data - [ ] Verify PDF generation produces valid PDF with correct headers - [ ] Verify Bankverbindungen requires canSeeBanking permission - [ ] Verify encrypted endpoint wraps PDF in password-protected ZIP - [ ] Verify preview endpoint returns JSON suitable for table display
shahondin1624 added 1 commit 2026-04-07 14:58:52 +02:00
Add ReportService with 8 report types (Mitgliederliste, Beitragsliste,
Stufenliste, Allergieliste, Geburtstagsliste, Kontaktliste,
Bankverbindungen, Familienliste). PdfService renders reports as
formatted PDF using TCPDF with configurable Verein header.

- ReportController with preview (JSON), PDF download, and encrypted endpoints
- Banking report requires canSeeBanking permission
- TCPDF dependency added to composer.json
- Consistent table styling with alternating row colors

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
shahondin1624 merged commit 1abae92b38 into main 2026-04-07 14:58:56 +02:00
shahondin1624 deleted branch feature/issue-46-reportservice-pdf-generation 2026-04-07 14:58:57 +02:00
Sign in to join this conversation.