Zum Inhalt

FA-07 – Verbrauch / Guthaben buchen

Stand: 12.10.2026 11:23 Branch: main Status: erster Vorschlag

Änderungshistorie anzeigen


Use Case: UC03 – Füll-Abo & Füllkarten-Verwaltung
Screen: FA-07


Wireframe

FA-07 – Verbrauch / Guthaben buchen

Zum Vergrössern auf das Bild klicken; es öffnet sich in voller Grösse.


1. Zweck

FA-07 ist der verbindliche Buchungsschritt für einen Füllvorgang. Der Screen zeigt die Verbrauchsvorschau mit Restguthaben vorher und nachher, prüft Sperren und Konflikte und erzeugt nach Bestätigung die wirksame Ledger-Buchung.

FA-07 ist damit der fachlich kritische Punkt, an dem aus einem vorbereiteten Füllvorgang eine verbindliche Verbrauchsbuchung wird.


2. Primäre Nutzer

Rolle Nutzung
mitarbeiter prüft und bestätigt den Verbrauch im Tagesbetrieb
tenant_admin kann Sonderfälle prüfen und berechtigte Korrekturwege einleiten
kunde indirekt betroffen; bei Self-Service ggf. Auslöser des Abrufs

3. Einstieg / Auslöser

Einstieg Beschreibung
FA-04 Füllvorgang wurde vorbereitet
FA-06 Gasart und Verbrauchsdaten wurden erfasst
FA-12 offener Kundenabruf wurde zur Bestätigung geöffnet
Self-Service Kunde hat Abruf gestartet, Mitarbeiter bestätigt

4. Angezeigte Informationen

4.1 Kontext

Feld Beschreibung
Kunde ausgewählter Kunde
Füllkonto Karte, Bonuskarte, Punktekarte oder Abo
Modell z. B. 10+3 Bonuskarte Luft
Status aktiv, pending_sync, conflict, leer, gesperrt
Self-Service mitarbeitergeführt, kundeninitiiert oder echter Self-Service

4.2 Verbrauchsvorschau

Feld Beschreibung
Gasart Luft oder Nitrox
Nitrox-Variante z. B. Nitrox 32 / 36 / 40
FO₂ optional erfasster Sauerstoffanteil
Verbrauch Füllungen oder Punkte
Restguthaben vorher aktueller Stand vor Buchung
Restguthaben nachher Vorschau nach Buchung
Buchungstyp consume
Ledger-Wirkung Reduktion von current_balance

4.3 Prüfhinweise

Prüfung Bedeutung
Guthaben ausreichend Buchung darf nur erfolgen, wenn Verbrauch gedeckt ist
kein pending_sync neue Kundenabbuchung nur ohne offene Offline-Buchungen
kein Konflikt Konflikte müssen vorher gelöst werden
Status aktiv gesperrte, leere oder abgelaufene Konten blockieren Buchung
Analysehinweis bei Nitrox optional sichtbare Analyseinformationen

5. Eingaben / Aktionen

Aktion Beschreibung
Buchung bestätigen erzeugt Ledger-Eintrag consume
Zurück zu FA-06 Verbrauchsdaten ändern
Als Entwurf speichern Füllvorgang ohne Ledger-Buchung speichern
Abbrechen Vorgang verwerfen
Korrekturpfad öffnen nur falls vor Bestätigung ein Fehler erkannt wird

6. Verbindliche Buchungslogik

6.1 Online-Buchung

Für UC03 V1 gilt:

Online-Buchungen werden in einer Datenbank-Transaktion mit Row Lock verarbeitet.

Ablauf:

1. Füllkonto-Zeile sperren
2. aktuellen Saldo erneut prüfen
3. Verbrauch gegen verfügbares Guthaben prüfen
4. Ledger-Eintrag `consume` erzeugen
5. `current_balance` aktualisieren
6. Transaktion committen

6.2 Offline-Buchung

Offline-Buchungen werden nicht endgültig abgezogen, sondern vorgemerkt:

Offline-Buchungen erhalten `pending_sync`.
Der endgültige Abzug erfolgt erst nach Online-Abgleich, Berechnung und Prüfung.

6.3 Ledger-Regel

Bereits synchronisierte Ledger-Einträge werden nicht geändert.
Fehler werden später nur über `reverse` oder `correction` korrigiert.

7. Validierungen / Regeln

ID Regel
FA07-R01 Vor Buchung muss der aktuelle Saldo serverseitig erneut geprüft werden
FA07-R02 Online-Buchungen nutzen Datenbank-Transaktion mit Row Lock
FA07-R03 Verbrauch darf das verfügbare Guthaben nicht überschreiten
FA07-R04 Bei pending_sync sind neue Kundenabbuchungen gesperrt
FA07-R05 Bei conflict ist Buchung gesperrt
FA07-R06 Gesperrte, leere oder abgelaufene Füllkonten dürfen nicht bebucht werden
FA07-R07 Nach Bestätigung wird ein Ledger-Eintrag consume erzeugt
FA07-R08 current_balance wird bei erfolgreicher Buchung synchron aktualisiert
FA07-R09 Manuelle Übersteuerungen müssen Pflichtgrund und Auditdaten enthalten
FA07-R10 Bei Self-Service mit Mitarbeiterbestätigung wird die Buchung erst nach Freigabe wirksam

8. Status- und Fehlermeldungen

Situation Meldung / Darstellung
Buchung möglich „Verbrauch kann gebucht werden.“
Guthaben reicht nicht „Restguthaben reicht für diesen Verbrauch nicht aus.“
pending_sync vorhanden „Nicht synchronisierte Buchungen vorhanden. Neue Abbuchung gesperrt.“
Konflikt vorhanden „Konflikt muss vor Buchung gelöst werden.“
Füllkonto gesperrt „Füllkonto ist gesperrt.“
parallele Buchung erkannt „Saldo hat sich geändert. Bitte Verbrauch erneut prüfen.“
Buchung erfolgreich „Verbrauch wurde gebucht.“

9. Bezug zu Datenmodell / Ledger

Bereich Bezug
Füllkonto fill_accounts
Füllvorgang fill_transactions
Ledger-Eintrag fill_ledger_entries
Buchungstyp entry_type = consume
Saldo vorher balance_before
Saldo nachher balance_after
aktuelles Guthaben current_balance
Sync sync_status
Self-Service confirmation_status, confirmed_by_user_id
Audit created_by, created_at, ggf. Pflichtgrund

10. Self-Service-Bezug

FA-07 kann eine kundeninitiierte Buchung abschliessen.

Fall Bedeutung
kundeninitiierter Abruf Kunde hat Abruf gestartet, Mitarbeiter bestätigt
Mitarbeiterbestätigung erforderlich Standardmodus für V1
echter Self-Service Buchung kann tenant-spezifisch direkt oder als pending_confirmation verarbeitet werden
Bestätigung abgelehnt keine Ledger-Buchung; Vorgang wird abgebrochen oder abgelehnt gespeichert

11. Akzeptanzkriterien

ID Kriterium
FA07-AC01 Mitarbeiter sieht Verbrauchsvorschau mit Restguthaben vorher und nachher
FA07-AC02 Mitarbeiter kann Buchung verbindlich bestätigen
FA07-AC03 System prüft vor Buchung den aktuellen Saldo erneut
FA07-AC04 System verhindert Buchung bei zu geringem Guthaben
FA07-AC05 System sperrt Buchung bei pending_sync oder conflict
FA07-AC06 System erzeugt nach Bestätigung einen Ledger-Eintrag consume
FA07-AC07 System aktualisiert current_balance synchron nach Buchung
FA07-AC08 Bei paralleler Änderung wird der Benutzer zur erneuten Prüfung aufgefordert
FA07-AC09 Kundeninitiierte Abrufe können durch Mitarbeiter bestätigt werden

12. Offene Punkte

ID Frage Status
FA07-O01 Wird bei erfolgreicher Buchung sofort ein Beleg / Quittung vorbereitet? nicht V1
FA07-O02 Wird nach Buchung automatisch FA-08 oder FA-09 angeboten? Vorschlag: ja, als Schnellaktion
FA07-O03 Wie wird parallele Saldoänderung im UI genau visualisiert? offen
FA07-O04 Darf eine Buchung offline überhaupt bestätigt oder nur vorgemerkt werden? V1: nur vormerken mit pending_sync

Änderungshistorie

Datum, Uhrzeit Version Änderung Autor
12.10.2026 11:23 1.3 Abschnitt «Wireframe» mit klickbarem Bild des Screens ergänzt Claude
12.10.2026 09:58 1.2 Änderungshistorie ans Dokumentende verschoben und Sprunglink «Änderungshistorie anzeigen» unter dem Kopf ergänzt (einheitlicher Dokumentaufbau gemäss AGENTS.md) Claude
12.10.2026 09:08 1.1 Branch-Angabe im Kopfbereich auf main korrigiert Claude
01.08.2026 14:55 1.0 Kopfbereich vereinheitlicht David Mittig