← Übersicht

F03 Rechnungsextraktion fachlich korrekt und belegbar machen

Rechnungsextraktion fachlich korrekt und belegbar machen

Finding: F03 Priorität: P0 Status: IN UMSETZUNG Stand: 2026-07-16

Problembeschreibung

  • Deutsche Dezimalzahlen werden direkt zu float gecastet (PdftotextExtractor.php:71; TesseractInvoiceExtractor.php:70).
  • firstLine entfernt vor Zeilentrennung Umbrüche (PdftotextExtractor.php:130).
  • 0+0=0 gilt als konsistent; positiver Bruttobetrag ist nicht Pflicht.
  • Reales PDF nennt 04.07.2026, State desselben SHA-256 speichert 14.07.2026.
  • Tesseract erhält PDF ohne definierte Rasterpipeline.

Ziel

Buchungsfelder sind formatrobust, quellenbelegt und gegen das Original geprüft; Unsicherheit stoppt vor Lexware.

Aufgabe

  1. Decimal-Value-Object ohne Float bauen.
  2. Label-/Positionsparser samt Seite/Matcher/Confidence umsetzen.
  3. PDF seitenweise rasterisieren; Review-Quarantäne und Golden Masters einführen.

Scope

  • In Scope: alle unter Code Blast genannten Komponenten, Daten, Verträge und Tests.
  • Out of Scope: neue Features und produktive externe Mutation ohne separate Freigabe.

Harte Spezifikation

  • MUST: Geld als Minor Units/Decimal-String.
  • MUST: Brutto > 0, Währung/Rundung explizit.
  • MUST: Nummer/Datum besitzen Textbeleg.
  • MUST: Widerspruch/geringe Confidence führt REVIEW_REQUIRED.

Harte Quality Gateways

  • Reales Fixture erwartet 2026-07-04, RF183233049809, 26.0504, 4.9496, 31.0000.
  • Property-Tests für Komma/Punkt/vier Nachkommastellen.
  • Mutiertes Datum/Summe verhindert Posting.
  • Global: PHPStan Level 8 und PHPUnit liefern 0 Fehler; kein Ignore oder Baseline.

Code Blast

  • Direkt: beide Extractors, Fallback, ExtractedInvoiceData, Amount, Extract Use Case.
  • State erhält Feldbelege/Confidence; Betrieb erhält Reviewfälle.

Code-Impact-Analyse

  • Verhindert falsche Buchungsdaten.
  • Bestand wird revalidiert, nie automatisch neu gepostet.

Risikoanalyse

| Risiko | Eintritt | Schaden | |---|---|---| | Falscher Betrag/Datum | hoch | kritisch | | False negative | mittel | mittel |

Strategie zur Risikonullierung

  1. Prevent: typisierte Parser.
  2. Detect: Golden Masters/Kreuzsummen.
  3. Contain: Review.
  4. Recover: Original plus versionierte Korrektur.

Abschlussnachweis

Erledigt erst, wenn alle MUST-Spezifikationen implementiert, alle Gateways mit unveränderlicher Evidenz grün und Restrisiken technisch ausgeschlossen oder ausdrücklich fachlich akzeptiert sind.

Supervisionsfortschritt 2026-07-16

  • Exakte Dezimalarithmetik, positive Betraege, Net/Gross-Steuerableitung, Raster-OCR-Fallback und strukturierte Adresse implementiert. Golden-Parser gruen; reales Wetell-PDF derzeit nicht vorhanden.

Frühere Versionen

VersionZeitpunktOperation
34 2026-07-16 19:53:19.686903+02 UPDATE