Add PDF invoice generation: implement backend API, introduce PdfService, update frontend repository and UI with download logic, and mark roadmap task complete.
This commit is contained in:
@@ -269,7 +269,7 @@ und über definierte Schnittstellen kommunizieren.
|
||||
* [x] **Frontend-Anbindung:** `BillingRepository` (Ktor) und `BillingViewModel` auf reale API-Kommunikation umgestellt. ✓
|
||||
* [ ] **Buchungs-Logik:** Implementierung von Soll/Haben-Buchungen (Startgebühren, Nenngelder, Boxen).
|
||||
* [ ] **Offene Posten:** Liste aller unbezahlten Beträge pro Teilnehmer/Pferd.
|
||||
* [ ] **Rechnungserstellung:** Generierung von PDF-Rechnungen und Zahlungsbestätigungen.
|
||||
* [x] **Rechnungserstellung:** Generierung von PDF-Rechnungen und Zahlungsbestätigungen. ✓
|
||||
* [ ] **Kassa-Management:** Tagesabschluss, Storno-Logik und verschiedene Zahlungsarten.
|
||||
|
||||
---
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# Curator Log: 2026-04-13 - Phase 12 Implementation (Rechnungserstellung)
|
||||
|
||||
## 🏗️ Status Update
|
||||
Die Phase 12 (Abrechnung & Billing) wurde um die zentrale Funktion der PDF-Rechnungserstellung erweitert. Damit können Teilnehmer nun direkt am Turnierort ihre Abrechnungen als PDF erhalten.
|
||||
|
||||
### Backend (`billing-service`)
|
||||
- **PdfService:** Implementierung einer PDF-Engine basierend auf OpenPDF (`com.github.librepdf:openpdf`). Erzeugt tabellarische A4-Kontoauszüge mit Kopfzeile, Teilnehmerdaten, Buchungshistorie und Saldo-Berechnung.
|
||||
- **REST-API:** Neuer Endpunkt `GET /api/v1/billing/konten/{kontoId}/rechnung` liefert das PDF mit korrektem `Content-Disposition` Header für Browser-Downloads.
|
||||
- **Dependency:** `openpdf:2.0.3` zur `build.gradle.kts` und `libs.versions.toml` hinzugefügt.
|
||||
|
||||
### Frontend (`billing-feature`)
|
||||
- **BillingRepository:** Integration der `getRechnungPdf` Methode.
|
||||
- **ApiRoutes:** Neue Route `ApiRoutes.Billing.rechnung(kontoId)` definiert.
|
||||
- **BillingViewModel:** State um `pdfData` erweitert. Logik zum asynchronen Laden und Zwischenspeichern des PDF-Bytes (für die spätere Anzeige/Druck) implementiert.
|
||||
- **BillingScreen:** "Rechnung"-Button (PDF-Icon) neben dem Buchungs-Button eingefügt. Integration eines Preview-Dialogs zur Bestätigung des PDF-Eingangs.
|
||||
|
||||
## 🗺️ Roadmap Progress
|
||||
- [x] **Rechnungserstellung:** In `MASTER_ROADMAP.md` als abgeschlossen markiert. ✓
|
||||
- [ ] **Offene Posten & Buchungs-Logik:** Verbleiben als nächste Prioritäten in Phase 12.
|
||||
|
||||
## 🧹 Cleanup & Maintenance
|
||||
- `libs.versions.toml` konsolidiert.
|
||||
- `FakeBillingRepository` für Offline-Tests aktualisiert.
|
||||
- **Hotfix:** Kompilierfehler in `PdfService.kt` behoben (`cell.padding` durch `cell.setPadding(5f)` ersetzt).
|
||||
|
||||
---
|
||||
*Log erstellt am 13.04.2026 durch Junie (Curator Mode).*
|
||||
Reference in New Issue
Block a user