Files
Mitgliederverwaltung/.plans/done/issue-46-reportservice-pdf.md
T
shahondin1624 b29a268b1d Restructure .plans/ into done/ and open/ subdirectories
- 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
2026-04-28 20:30:55 +02:00

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

  1. composer.json — add tecnickcom/tcpdf dependency
  2. lib/Service/ReportService.php — data generation for all report types
  3. lib/Service/PdfService.php — TCPDF wrapper with HTML table rendering
  4. lib/Controller/ReportController.php — REST endpoints (preview, PDF, encrypted)
  5. 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

  1. ReportService with methods for each report type
  2. PDF generation using TCPDF
  3. Configurable header (Verein name from app settings)
  4. Consistent styling across all reports
  5. Each method returns structured data for both preview and PDF
  6. Banking report requires canSeeBanking permission
  7. Preview endpoint returns JSON for frontend table display
  8. Encrypted PDF option via password-protected ZIP