chore: remove obsolete Android app configuration files
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 44s

- Deleted build.gradle.kts, gradle.properties, and gradlew files as part of the cleanup process.
- Removed local.properties and various generated files from the .gradle directory to streamline the project structure.
- Cleared out unnecessary build artifacts and intermediate files to improve project maintainability.
This commit is contained in:
Torsten Schulz (local)
2026-04-21 15:15:21 +02:00
parent c8dedb10cc
commit 41bbf81958
4144 changed files with 4975 additions and 61401 deletions

52
docs/abrechnung_mockup.md Normal file
View File

@@ -0,0 +1,52 @@
# Mockup: Abrechnung (Wireframe)
## Seite: Abrechnung
```text
+--------------------------------------------------------------------------------------------------+
| Abrechnung |
| [Vorlage] [Feld-Mapping] [Erstellen & Drucken] |
+--------------------------------------------------------------------------------------------------+
| Abrechnungslauf | PDF-Vorschau |
|----------------------------------------------------------|---------------------------------------|
| Verein: [ TSV Bonames v ] | +-----------------------------------+ |
| Vorlage: [ Übungsstunden-Abrechnung v1 v ] | | Übungsstunden-Abrechnung PDF | |
| Von Monat: [ 03/2026 v ] | | | |
| Bis Monat: [ 03/2026 v ] | | [trainer_name] | |
| Eigener Name: [ Max Mustermann_______________ ] | | [self_recipient_name] | |
| Stunden-Gehalt: [ 20,00 ] EUR | | [hourly_rate] | |
| Ort: [ Frankfurt____________________ ] | | [same_account_checkbox] | |
| Datum: [ 20.04.2026 v ] | | [iban] | |
| | | [lessons_rows] | |
| [ ] Gleiches Konto wie letzte Abrechnung | | [hours_total] [hourly_rate] | |
| | | [amount_total] | |
| Regeln: | | [location_text] [document_date] | |
| [ IBAN ohne Länderkennung ] [ Standardwert: X ] | | [receipt_number] | |
| | +-----------------------------------+ |
| [ PDFs erzeugen ] | Hinweis: AcroForm + Overlay |
+--------------------------------------------------------------------------------------------------+
| Eigene Abrechnung |
|--------------------------------------------------------------------------------------------------|
| Name Zeitraum Stunden-Gehalt Betrag Status |
| Max Mustermann 03/2026 20,00 EUR 240,00 EUR [Entwurf] |
+--------------------------------------------------------------------------------------------------+
| [ Sammel-PDF herunterladen ] [ ZIP herunterladen ] |
+--------------------------------------------------------------------------------------------------+
```
## Interaktionen
1. Nutzer wählt Verein + Vorlage.
2. Nutzer setzt Zeitraum (Monat oder Monatsbereich), Ort und Datum.
3. Nutzer prüft Vorschau (Felder/Positionen).
4. Nutzer startet `PDFs erzeugen`.
5. Das eigene Dokument erscheint mit Status in der Tabelle.
6. Export als Sammel-PDF oder ZIP möglich.
## Hinweise zur Umsetzung
- Vorschau muss beide Modi unterstützen:
- AcroForm-Befüllung
- Overlay-Positionierung
- Feldwerte immer vor dem Rendern aufbereiten (Formatter wie `iban_no_country`).
- Bei Fehlern den Status `error` und eine Fehlermeldung anzeigen.

View File

@@ -0,0 +1,106 @@
# Feature-Konzept: Abrechnung (PDF-Template-basiert)
## Ziel
Das Feature `Abrechnung` soll für verschiedene Vereine funktionieren, obwohl sich die PDF-Formulare im Aufbau unterscheiden. Die Lösung basiert daher auf konfigurierbaren Vorlagen mit Feld-Mapping statt auf einem festen Formular.
## Ausgangssituation
- Beispielformular: `Abrechungen_Übungsstunden_blanko.pdf`
- Typische Felder:
- Übungsleiter/in
- Gleiches Konto wie letzte Abrechnung (Checkbox)
- IBAN (optional ohne Länderkennung)
- Übungsstunden-Zeilen (Datum, Bezeichnung, Dauer)
- Summenformel (`Ü-Stdn. * € = €`)
- Ort, Datum
- Belegnummer, Buchungsanweisung
- Vereinsabhängig abweichende Layouts und Feldpositionen müssen unterstützt werden.
## Kernanforderungen
1. PDF-Vorlage pro Verein hochladen und versionieren.
2. Felder frei definieren und Datenquellen zuordnen.
3. Bearbeitbare und nicht bearbeitbare PDFs unterstützen.
4. Monats- oder Monatsbereich für den Abrechnungslauf auswählbar machen.
5. Empfänger ist immer der eingeloggte Nutzer (eigene Abrechnung).
6. Stunden-Gehalt pro Abrechnungslauf erfassen.
7. Ort und Datum pro Lauf erfassen.
8. Sonderwerte und Formatierungen erlauben (`X`, IBAN ohne Länderkennung).
9. Optionalen Scanner/OCR als Vorschlagslogik für Feldpositionen vorsehen.
## Technischer Ansatz
### 1) Template-Verwaltung
- Entität `billing_template` enthält PDF-Datei und Metadaten.
- Mehrere Vorlagen pro Verein möglich (Versionierung).
### 2) Felddefinition und Mapping
- Entität `billing_template_field` beschreibt je Feld:
- Feldtyp (Text, Zahl, Checkbox, Formel, Wiederholungszeile)
- Quelle (manuell, Trainer, Mitglied, Verein, Konstante, Formel)
- Formatierer (z. B. `iban_no_country`)
- Mapping-Art:
- `acroform`: via PDF-Formularfeldname
- `overlay`: manuelle Position (`page`, `x`, `y`, `width`, `height`, Schriftgröße)
### 3) Abrechnungslauf
- Entität `billing_run` enthält Zeitraum, Ort, Datum, Stunden-Gehalt und den aktuellen Nutzer als festen Empfänger.
- Pro Lauf wird ein eigenes `billing_document` für den Nutzer erzeugt.
- Verwendete Werte werden in `billing_document_value` gespeichert (Audit/Nachvollziehbarkeit).
## Scanner/OCR-Option
- Scanner soll nur als Assistenz dienen:
- erkennt Textanker wie `IBAN`, `Ort, Datum`, `Belegnummer`
- schlägt Feldpositionen vor
- Nutzer kann und soll Vorschläge im Mapping-Editor korrigieren.
- Das finale Mapping wird immer gespeichert und hat Vorrang vor neuen OCR-Ergebnissen.
## Feld-Keys für das Beispiel-PDF
Empfohlene standardisierte `field_key`-Namen:
- `trainer_name`
- `same_account_checkbox`
- `iban`
- `lessons_rows`
- `hours_total`
- `hourly_rate`
- `amount_total`
- `self_recipient_name`
- `location_text`
- `document_date`
- `receipt_number`
- `booking_instruction`
## Geplante API (MVP)
- `POST /api/billing/templates`
- `GET /api/billing/templates`
- `GET /api/billing/templates/:id`
- `PUT /api/billing/templates/:id/fields`
- `POST /api/billing/runs`
- `POST /api/billing/runs/:id/generate`
- `GET /api/billing/runs/:id/documents`
- `GET /api/billing/documents/:id/download`
- `GET /api/billing/runs/:id/download-zip`
## MVP-Umfang
1. Migrationen für Abrechnungs-Tabellen
2. Template-Upload
3. Manueller Feld-Mapping-Editor (Overlay + AcroForm)
4. Lauf-Erstellung mit Zeitraum, Ort, Datum
5. Lauf-Erstellung mit Zeitraum, Stunden-Gehalt, Ort, Datum
6. PDF-Erzeugung und Download
## Erweiterungen nach MVP
- OCR-gestützter Positionsvorschlag
- Sammelunterschrift-Workflows
- Export für externe Buchhaltung
- Freigabeprozess (`draft -> generated -> finalized`)