Files
Holzleitner-Lieferservice-App/packages/holzleitner_api
Dennis Nemec dd7fe9a8eb feat(zahlung): eigener Step "Zahlung" vor der Uebersicht
- Neuer Workflow-Step "Zahlung" zeigt ausgelieferte Artikel mit Menge und
  Preis, Betragsaufstellung, Zahlungsstatus und einen grossen Button
  "Zahlung abwickeln" (fest unten)
- Zahlungs-Modal: grosser offener Betrag, Methoden als Cards aus den
  Backend-Stammdaten, bei EC-Karte gross die Kundennummer; schliesst nur
  ueber Abbrechen, "Zahlung erhalten" oder "Lieferung abbrechen" (mit Grund)
- Bestaetigung wird am Server protokolliert (RecordDeliveryPayment); bis
  dahin sind "Weiter" und die Uebersicht gesperrt, ausser es ist nichts
  offen (bereits bezahlt). Aendert sich der Betrag danach, wird die Zahlung
  als veraltet markiert und muss erneut abgewickelt werden
- Uebersicht zeigt die abgewickelte Zahlung statt eigener Methodenauswahl;
  Unterschrift-Flow ohne doppelte Inkasso-Stufe; Abschluss sendet Methode
  und Inkasso-Flag der gueltigen Zahlung
- DeliveryPaymentStatus als einzige Quelle fuer offenen Betrag
  (gleiche Formel wie Backend); Artikelliste/Betragskarte als geteilte
  Widgets; Begruendungs-Dialog geteilt mit Info-Step
- API-Client aus aktueller Backend-Spec neu generiert
- Tests fuer Zahlungsstatus und Modal

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 14:04:36 +02:00
..

holzleitner_api (EXPERIMENTAL)

Backend für die Holzleitner-Lieferservice-App — Tour, Beladung, Ausführung.

This Dart package is automatically generated by the OpenAPI Generator project:

  • API version: 0.1.0
  • Generator version: 7.10.0
  • Build package: org.openapitools.codegen.languages.DartDioClientCodegen

Requirements

Installation & Usage

pub.dev

To use the package from pub.dev, please include the following in pubspec.yaml

dependencies:
  holzleitner_api: 1.0.0

Github

If this Dart package is published to Github, please include the following in pubspec.yaml

dependencies:
  holzleitner_api:
    git:
      url: https://github.com/GIT_USER_ID/GIT_REPO_ID.git
      #ref: main

Local development

To use the package from your local drive, please include the following in pubspec.yaml

dependencies:
  holzleitner_api:
    path: /path/to/holzleitner_api

Getting Started

Please follow the installation procedure and then run the following:

import 'package:holzleitner_api/holzleitner_api.dart';


final api = HolzleitnerApi().getAccountsApi();
final int personalnummer = 789; // int | Personalnummer des Accounts

try {
    final response = await api.getAccount(personalnummer);
    print(response);
} catch on DioException (e) {
    print("Exception when calling AccountsApi->getAccount: $e\n");
}

Documentation for API Endpoints

All URIs are relative to http://localhost

Class Method HTTP request Description
AccountsApi getAccount GET /accounts/{personalnummer} Liest den Account zu einer Personalnummer.
AdminApi belegeDetails GET /admin/belege/{belegnummer} Liefert das volle Detail-Paket zu einer ERP-Belegnummer: die Lieferung mit Positionen (inkl. Scan-Ständen), Kunde + Ansprechpartner, referenzierte Artikel/Lager, Notizen, Geld-Gutschrift, Dienstleistungswerte und Kontakte — destilliert aus dem Tour-Aggregat. Jede Lieferung, unabhängig vom Status. `404`, wenn die Belegnummer unbekannt ist.
AdminApi completedDeliveries GET /admin/completed-deliveries Liefert alle abgeschlossenen (ausgelieferten) Lieferungen — optional auf einen Datumsbereich eingegrenzt, unabhängig vom Mail-Versand-Status. Gefiltert wird über den Berliner Kalendertag des Abschluss-Zeitpunkts (`completed_at`).
AdminApi deliveredBelegnummern GET /admin/delivered-belegnummern Liefert die Belegnummern ausgelieferter (abgeschlossener) Lieferungen, deren Liefermail noch nicht versendet wurde (`mail_sent_at IS NULL`). „Ausgeliefert&quot; = es existiert ein Abschluss. Mit `day` (DD-MM-YYYY) nur Abschlüsse dieses Berliner Kalendertages; ohne `day` alle offenen (über alle Tage) — so bleiben Belege über Mitternacht nicht hängen.
AdminApi importErp POST /admin/import-erp Stößt den ERP-Import für ein Datum an und liefert die Zusammenfassung.
AdminApi listReviews GET /admin/reviews Listet alle geänderten Lieferscheine, die noch auf eine manuelle Bestätigung (Vier-Augen) warten — Entfernungen und/oder Geld-Gutschriften.
AdminApi markMailSent POST /admin/mark-mail-sent Markiert die Liefermails der angegebenen Belegnummern als versendet (`mail_sent_at = now()`, nur wo noch offen). Vom Mailclient aufzurufen, NACHDEM ERPframe die Mails erfolgreich verschickt hat — danach erscheinen die Belege nicht mehr in `GET /admin/delivered-belegnummern`.
AdminApi positionsModified GET /admin/belege/{belegnummer}/positions-modified Liefert zu einer ERP-Belegnummer, ob an der Lieferung Positionen verändert wurden (Menge reduziert/Zeile entfernt oder Geld-Gutschrift) — unabhängig vom Zustand der Lieferung. `404`, wenn die Belegnummer unbekannt ist. Gibt es mehrere Lieferungen mit derselben Belegnummer, ist das Flag `true`, sobald eine davon verändert ist.
AdminApi pushCompletion POST /admin/push-completion Stößt das ERP-Rückschreiben eines bereits lokal abgeschlossenen Lieferabschlusses erneut an (idempotenter Retry, falls der automatische Push beim Abschluss fehlschlug).
AdminApi resolveReview POST /admin/reviews/{delivery_id}/resolve Bestätigt die Prüfung einer geänderten Lieferung (Vier-Augen) — die Lieferung verschwindet danach aus `GET /admin/reviews` (sofern nicht erneut geändert).
AttachmentsApi getAttachment GET /attachments/{id} Liefert ein gerendertes Vorschaubild des Attachments (Bytes), geladen aus DOCUframe. Auflösung/Format über Query-Parameter steuerbar (`?w=&h=&q=&ext=&page=`).
CarsApi createMyCar POST /me/cars Legt ein neues Fahrzeug für den angemeldeten Fahrer an.
CarsApi listMyCars GET /me/cars Listet die Fahrzeuge des angemeldeten Fahrers.
CarsApi updateMyCar PATCH /me/cars/{car_id} Aktualisiert ein Fahrzeug (Kennzeichen ändern / deaktivieren).
DeliveriesApi applyCredit POST /deliveries/{delivery_id}/credit Wendet ein Betrags-Gutschrift-Ereignis an (`set`/`remove`). Append-only, idempotent über `clientEventId`. Nur bei aktiver Lieferung; bei `set` sind Betrag (0 < x ≤ 150 €, 10-€-Schritte) und Grund Pflicht. Antwort: der aktuelle Gutschrift-Stand (`null`, wenn entfernt).
DeliveriesApi assignCar PUT /deliveries/{delivery_id}/assigned-car Setzt das `assigned_car_id` einer Lieferung. `carId: null` löst die Zuordnung wieder. Der Use Case stellt sicher, dass das Fahrzeug zum angemeldeten Account gehört.
DeliveriesApi cancel POST /deliveries/{delivery_id}/cancel Setzt die Lieferung auf `canceled` — endgültig. Erlaubt aus `active` und `held`.
DeliveriesApi complete POST /deliveries/{delivery_id}/complete Schließt die Lieferung ab — `state = completed`. Nur aus `active`.
DeliveriesApi createNote POST /deliveries/{delivery_id}/notes Legt eine neue Notiz an einer Lieferung an. Mindestens eines von `text` und `imageAttachment` muss inhaltlich gefüllt sein (Leerstrings werden serverseitig getrimmt und als leer behandelt).
DeliveriesApi deleteNote DELETE /deliveries/{delivery_id}/notes/{note_id} Löscht eine Notiz. Antwortet mit `204 No Content`.
DeliveriesApi deleteServiceValue DELETE /deliveries/{delivery_id}/services/{service_id} Entfernt den Service-Wert einer Lieferung (Service „nicht gesetzt&quot;). Nur bei aktiver Lieferung. Antwort `204`.
DeliveriesApi hold POST /deliveries/{delivery_id}/hold Setzt die Lieferung auf `held`. Nur aus `active` zulässig.
DeliveriesApi recordPayment POST /deliveries/{delivery_id}/payment Protokolliert die Zahlungsabwicklung („Abkassieren&quot;) einer Lieferung. Append-only, idempotent über `clientEventId`. Der Server berechnet den offenen Betrag selbst; er muss > 0 sein und `expectedAmountCents` entsprechen. Nur bei aktiver Lieferung und aktiver Zahlungsmethode.
DeliveriesApi resume POST /deliveries/{delivery_id}/resume Setzt die Lieferung zurück auf `active`. Nur aus `held` zulässig.
DeliveriesApi setService PUT /deliveries/{delivery_id}/services/{service_id} Setzt (Upsert) den Wert eines Service für eine Lieferung. Genau das zum Service-Typ passende Feld (`boolValue`/`numericValue`) muss gesetzt sein; numerische Werte werden gegen min/max geprüft. Nur bei aktiver Lieferung.
DeliveriesApi updateNote PATCH /deliveries/{delivery_id}/notes/{note_id} Ändert Text/Bild einer Notiz. Innerhalb des (geteilten) Accounts darf jeder Fahrer Notizen pflegen — kein Autor-Check. `delivery_id` ist Teil des Pfads (REST-Konsistenz), die Notiz wird über `note_id` adressiert.
DeliveriesApi uploadNoteImage POST /deliveries/{delivery_id}/notes/image Lädt ein Bild zu einer Lieferung hoch (multipart/form-data, Feld `file`) und legt dafür eine Bild-Notiz an. Das Bild geht in den DOCUframe-Dokumentenspeicher; gespeichert wird die zurückgelieferte Referenz (`~ObjectID`) als `image_attachment` der Notiz.
HealthApi health GET /health Health-Endpoint für Load-Balancer und Container-Probes. Bewusst kein Auth — eine `200 ok`-Antwort darf nicht von der Auth abhängen.
PaymentMethodsApi createPaymentMethod POST /payment-methods Legt eine neue Zahlungsmethode an.
PaymentMethodsApi deletePaymentMethod DELETE /payment-methods/{id} Hartes Löschen. `409 Conflict`, wenn die Methode von einer Lieferung referenziert wird — der Admin soll dann den `active = false`-Pfad nutzen.
PaymentMethodsApi listPaymentMethods GET /payment-methods Listet die Zahlungsmethoden.
PaymentMethodsApi updatePaymentMethod PATCH /payment-methods/{id} Patcht Anzeige-Name und/oder Aktiv-Flag.
ScansApi applyScans POST /scans Wendet eine Liste von Scan-Events idempotent an.
ServicesApi createService POST /services Legt einen neuen Service an.
ServicesApi deleteService DELETE /services/{id} Hartes Löschen. `409 Conflict`, wenn der Service noch von einer Lieferung referenziert wird — dann stattdessen deaktivieren.
ServicesApi listServices GET /services Listet die Services (sortiert nach `sortOrder`).
ServicesApi updateService PATCH /services/{id} Patcht Name/Grenzen/Aktiv-Flag/Sortierung. `kind` ist nicht änderbar.
SyncApi syncTour POST /sync/tour Sync-Endpoint für das ERP: legt eine Tagestour samt Lieferungen und Positionen idempotent an. Identität pro Tour `(driver_personalnummer, tour_date)`, pro Lieferung `(belegart_id, belegnummer)`.
ToursApi getTour GET /tours/{tour_id} Lädt eine Tour mit allen Lieferungen, Positionen und referenzierten Stammdaten — die App nutzt das als einzigen großen Read.
ToursApi listMyTours GET /me/tours Listet die Touren des angemeldeten Fahrers (Filter aus dem JWT) für ein Ziel-Datum. Ohne `?date=` gilt „heute&quot;. Der Fahrer wählt das Datum aktiv im Kopf-Kalender der App (z. B. um die Tour von morgen vorab zu sehen).
ToursApi setDeliveryOrder PUT /tours/{tour_id}/delivery-order Schreibt die Sortier-Reihenfolge aller Lieferungen einer Tour neu. Der Client schickt die vollständige neue Reihenfolge; fehlende oder fremde Lieferungs-Ids werden mit `400 validation` abgelehnt.

Documentation For Models

Documentation For Authorization

Authentication schemes defined for the API:

admin_api_key

  • Type: API key
  • API key parameter name: X-Admin-Api-Key
  • Location: HTTP header

bearer_auth

  • Type: HTTP Bearer Token authentication (JWT)

Author