b29a268b1d
- Move completed plan files to .plans/done/ - Move 18 open plan files to .plans/open/ - Update .gitignore to exclude .verified_plans temp file - Verified all 18 open plans still describe unimplemented issues
1.4 KiB
1.4 KiB
Plan: Issue #46 — ReportService + PDF generation
Summary
Server-side report generation with PDF output using TCPDF. ReportService provides structured data for 8 report types, PdfService renders HTML tables to PDF with configurable header, ReportController exposes preview/PDF/encrypted endpoints.
Implementation
composer.json— addtecnickcom/tcpdfdependencylib/Service/ReportService.php— data generation for all report typeslib/Service/PdfService.php— TCPDF wrapper with HTML table renderinglib/Controller/ReportController.php— REST endpoints (preview, PDF, encrypted)appinfo/routes.php— new report routes
Report Types
- Mitgliederliste (optionally filtered by status)
- Beitragsliste (by year)
- Stufenliste (grouped by Stufe)
- Allergieliste (members with allergies/KV)
- Geburtstagsliste (upcoming N months)
- Kontaktliste (optionally filtered by Stufe)
- Bankverbindungen (restricted, requires canSeeBanking)
- Familienliste (families with members)
Acceptance Criteria
- ReportService with methods for each report type
- PDF generation using TCPDF
- Configurable header (Verein name from app settings)
- Consistent styling across all reports
- Each method returns structured data for both preview and PDF
- Banking report requires canSeeBanking permission
- Preview endpoint returns JSON for frontend table display
- Encrypted PDF option via password-protected ZIP