Sperrt nachträgliche Aufgabenabschlüsse in App und Backend und zeigt erledigte Aufträge trotz offener optionaler Aufgaben grün an. Ergänzt Regressionstests, die Anredeauswahl und optionale Steuerangaben für Kunden. Enthält App-Version 0.9.25, Backend-Version 0.9.26 und das aktualisierte Frontend-Bundle.
- HHA-Systemrechnungsvorlage mit durchgehendem Rahmen und PDF-Vorschau ergänzen
- Zeichenreihenfolge im Editor und Schriftformatierung beim PDF-Export korrigieren
- Stationsbetreff vereinheitlichen und Tätigkeitsbeschreibung in Aufgabenmails aufnehmen
- Regressionstests, aktualisierte Frontend-Bundles und Backend-Version 0.9.25 aufnehmen
- Docker-Release-Build mit sauberem Maven-Build und Stacktrace ausführen
Preisanzeige in der App entfernen und Auftragsbezeichnungen vereinheitlichen.
Stationsabschlüsse und Benachrichtigungen absichern sowie Historie um Aufgabenbeschreibungen und ausführende Nutzer erweitern.
Regressionstests ergänzen und App sowie Backend auf Version 0.9.24 anheben.
Fracht mit Maßen und Gewicht anzeigen und Stationsabschlüsse gegen Wiederholung absichern. Backend-Abschluss atomar ausführen und mit Regressionstests abdecken. Optionale Aufgaben beim Kopieren erhalten und Kunden mit Adressen anzeigen. App und Backend auf Version 0.9.23 aktualisieren.
- Version auf 0.9.21 angehoben (App und Backend)
- Gradle 8.14.3, AGP 8.11.1, Kotlin 2.2.20; Flutter-Migrator-Flags in gradle.properties
- camera ^0.12.0, mobile_scanner ^7.0.0
- tsconfig ignoreDeprecations auf 5.0, prod.bundle neu gebaut
- upload.sh entfernt
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- Preistabelle: App-Nutzungslizenz und Umsatzbeteiligung durch Gebühr pro App-Nutzer ersetzt, Abrechnung pro konfiguriertem App-Nutzer (countByErstelltVon)
- Rechnungen erstellen: Prüf-Dialog mit Vor/Zurück-Navigation, Entfernen einzelner Rechnungen und Versand als PDF-Anhang an die Kunden (EmailService mit Anhang-Unterstützung)
- Rabatt pro Kunde über Icon-Dialog mit Prozentwert und Grund, als eigene Position auf der Rechnung berücksichtigt
- E-Mail-Spalte entfernt, Rechnung-erstellen-Button durch Icon ersetzt, (0 App-Nutzer)-Zusatz entfällt
- Version 0.9.20
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- LLM-Integration von LM Studio (Spring AI OpenAI) auf Anthropic Java SDK umgestellt
- Rechnungsgenerator: System-Template für Rechnungen an Nutzer, Canvas leeren, PDF-Vorschau
- Job manuell beenden sendet job_deleted an verbundene App-Clients
- MessageController: nur offene Jobs ausliefern, station_completed per jobId auflösen
- App: Task-Erledigungsstatus aus Server-Tasks auf Stations-Snapshots übernehmen, lokale Task-Status bei Offline-Pufferung erhalten
- Adressbuch-Wording in allen Sprachdateien, Version 0.9.18
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Entfernt ZUGFeRD/Factur-X-Anreicherung (Mustangproject), PAdES-Signatur
(BouncyCastle/DSS) inkl. nutzerseitiger Keystore-Verwaltung, den
Approval-Workflow für Storno-/Berichtigungsbelege sowie den DATEV-CSV-Export.
Navigation kehrt zur klassischen Rechnungsansicht zurück; Version auf 0.9.17.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Größerer Wurf rund um Rechnungen: das vollständige E-Rechnungs- und
Lifecycle-Backend wird eingecheckt, die UI-seitige Rechnungserstellung wird
zugunsten eines DATEV-Exports zurückgebaut, und die Test-Infrastruktur wird
auf JDK 25 angehoben.
E-Rechnung & Signatur
- ZUGFeRD/Factur-X/XRechnung-Anreicherung via Mustang (EInvoiceService).
- PAdES-Detached-Signatur via PDFBox + BouncyCastle, System- und Nutzer-
Keystore-Pfad, Nutzer-Keystores AES-GCM-verschlüsselt (AesGcmCipher,
SigningCredentialsService, UserSigningCredentials).
- Konfiguration via EInvoiceProperties + EInvoiceSecurityInitializer.
- Approval-Workflow für kritische Rechnungsvorgänge (Storno, Berichtigung):
InvoiceApprovalService, InvoiceApprovalRequest, ApprovalsView,
InvoicePermissionService, InvoiceRoles.
Lifecycle & Audit
- InvoiceStatus DRAFT/ISSUED/SENT/CANCELLED/CORRECTED, InvoiceType
INVOICE/CORRECTION/CANCELLATION, PaymentStatus, lückenloser Audit-Trail
via InvoiceAuditEntry/Action.
- InvoiceLifecycleService verwaltet alle Übergänge inklusive Storno- und
Berichtigungsbelegen mit Querverweis zur Originalrechnung.
- InvoiceLifecycleMigration zieht Bestandsdaten in das neue Lifecycle-Modell.
- InvoiceExportService bündelt Original + Folgebelege als ZIP für die
Auslieferung an den Steuerberater.
Pflichtangaben-Validator (§ 14 UStG)
- InvoiceComplianceValidator + Exception sammeln alle Verstöße in einem
Lauf (Pflichtfelder, Adressen, Steuernummer/USt-IdNr, Items, Betrags-
konsistenz, Hinweispflicht bei 0 % USt).
- Wird vor jedem DRAFT-→-ISSUED-Übergang im Lifecycle aufgerufen, sodass
festgeschriebene Rechnungen keine Pflichtfeld-Lücken mehr haben können.
Rechnungsnummer-Audit (§ 14 Abs. 4 Nr. 4 UStG / GoBD)
- InvoiceNumberReservation + Status RESERVED/USED/VOIDED protokollieren
jede aus dem Counter gezogene Nummer.
- UserInvoiceDataService schreibt bei Vergabe ein RESERVED-Audit, der
Lifecycle setzt nach Festschreiben USED bzw. nach Löschen eines Entwurfs
VOIDED — Lücken im Nummernkreis sind dadurch erklärbar.
- InvoiceNumberAuditService liefert markUsed/markVoided/findUnused für
Folge-UI und Betriebsprüfungs-Reports.
UI-Rückbau und DATEV-Export
- Routen für CreateInvoiceView, InvoicesView, MyInvoicesView auskommentiert
(Code bleibt erhalten, Reaktivierung dokumentiert).
- Rechnungs-Buttons aus ShowJobsView entfernt, Nav-Eintrag „Rechnungen"
durch „DATEV-Export" ersetzt.
- DatevExportService erzeugt einen DATEV-EXTF-Buchungsstapel (Version 7,
Windows-1252, CRLF) mit SKR03-Erlöskonten (8400/8300/8125), Sammel-
debitor 10000 und korrektem S/H-Verhalten für Stornorechnungen.
- DatevExportView mit Zeitraum-Picker und Auto-Download.
- i18n-Keys (de/en) für nav.datev.export und datev.export.*.
Tests & Build
- EInvoiceServiceTest (Signatur-Pfade), EInvoiceServiceDssValidationTest
(PAdES-Profil via EU DSS 6.2 — dokumentiert PKCS7-B als Ist-Stand),
InvoiceComplianceValidatorTest (26 Cases als Spezifikation der
Pflichtangaben), InvoiceNumberAuditServiceTest, DatevExportServiceTest.
- Mockito 5.18 + ByteBuddy 1.17.5 in <dependencyManagement> gepinnt;
die Spring-Boot-3.4.3-Defaults (Mockito 5.14.2 / ByteBuddy 1.15.11)
konnten den Inline-Mock-Maker auf JDK 25 nicht laden, weshalb die
beiden DemoModeServiceTests vorher rot waren.
- DSS-Test-Dependencies (dss-pades-pdfbox, dss-validation,
dss-utils-apache-commons, dss-crl-parser-x509crl 6.2) im Test-Scope.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
App:
- Skip-Button für optionale Aufgaben entfernt — optionale Aufgaben blockieren
nicht mehr den Fortschritt und können jederzeit nachträglich bearbeitet werden
Backend:
- Manuelle Auftragsbeendigung mit Begründung in der Job-Zusammenfassung hinzugefügt
- Leere Lieferstationen werden beim Übernehmen automatisch entfernt
- E-Mail-Benachrichtigungen zeigen jetzt den tatsächlichen App-Benutzernamen an
- WebSocket: konfigurierbare Max-Nachrichtengröße und Session-Idle-Timeout
- docker_push.sh Pfadkorrektur
- Lokalisierungen für 10 Sprachen aktualisiert
- EmailService-Test hinzugefügt
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- E-Mail-Feld in Abhol- und Zustellstationsdialogen hinzugefügt
- E-Mail-Pflichtfeld bei "Adresse speichern" mit Validierung
- Kundenvalidierung im Backend (E-Mail Pflicht und Formatprüfung)
- "Adresse speichern" wird bei Auswahl existierender Kunden deaktiviert
- Verbessertes Kunden-Matching über alle Felder inkl. E-Mail
- Übersetzung "Template" → "Vorlage" in messages_de.properties