Files
Holzleitner-Lieferservice-App/packages/holzleitner_api/doc/AdminApi.md
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

18 KiB

holzleitner_api.api.AdminApi

Load the API package

import 'package:holzleitner_api/api.dart';

All URIs are relative to http://localhost

Method HTTP request Description
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.
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`).
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.
importErp POST /admin/import-erp Stößt den ERP-Import für ein Datum an und liefert die Zusammenfassung.
listReviews GET /admin/reviews Listet alle geänderten Lieferscheine, die noch auf eine manuelle Bestätigung (Vier-Augen) warten — Entfernungen und/oder Geld-Gutschriften.
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`.
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.
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).
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).

belegeDetails

DeliveryDetails belegeDetails(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.

Example

import 'package:holzleitner_api/api.dart';
// TODO Configure API key authorization: admin_api_key
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKey = 'YOUR_API_KEY';
// uncomment below to setup prefix (e.g. Bearer) for API key, if needed
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKeyPrefix = 'Bearer';

final api = HolzleitnerApi().getAdminApi();
final String belegnummer = belegnummer_example; // String | ERP-Belegnummer, z. B. V-30690291

try {
    final response = api.belegeDetails(belegnummer);
    print(response);
} catch on DioException (e) {
    print('Exception when calling AdminApi->belegeDetails: $e\n');
}

Parameters

Name Type Description Notes
belegnummer String ERP-Belegnummer, z. B. V-30690291

Return type

DeliveryDetails

Authorization

admin_api_key

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

completedDeliveries

CompletedDeliveriesResponse completedDeliveries(day, from, to)

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).

Parameter (alle DD-MM-YYYY, alle optional): day = Einzeltag (Kurzform from=to=day), sonst from/to als inklusive Bereichsgrenzen (je offen). Ohne jeden Parameter → ALLE ausgelieferten Belege (kein Datumsfilter). Pro Lieferung: Belegnummer + positions_modified (Menge reduziert/Zeile entfernt oder Geld-Gutschrift). Die Halb-Grenzen-Variante ist für Range-Filter gedacht: ?from=… und ?to=… liefern je eine Menge, deren SQL-AND-Schnitt den Zeitraum ergibt.

Example

import 'package:holzleitner_api/api.dart';
// TODO Configure API key authorization: admin_api_key
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKey = 'YOUR_API_KEY';
// uncomment below to setup prefix (e.g. Bearer) for API key, if needed
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKeyPrefix = 'Bearer';

final api = HolzleitnerApi().getAdminApi();
final String day = day_example; // String | Einzeltag DD-MM-YYYY (Kurzform from=to)
final String from = from_example; // String | Untere Grenze DD-MM-YYYY (inklusive)
final String to = to_example; // String | Obere Grenze DD-MM-YYYY (inklusive)

try {
    final response = api.completedDeliveries(day, from, to);
    print(response);
} catch on DioException (e) {
    print('Exception when calling AdminApi->completedDeliveries: $e\n');
}

Parameters

Name Type Description Notes
day String Einzeltag DD-MM-YYYY (Kurzform from=to) [optional]
from String Untere Grenze DD-MM-YYYY (inklusive) [optional]
to String Obere Grenze DD-MM-YYYY (inklusive) [optional]

Return type

CompletedDeliveriesResponse

Authorization

admin_api_key

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

deliveredBelegnummern

DeliveredBelegnummernResponse deliveredBelegnummern(day)

Liefert die Belegnummern ausgelieferter (abgeschlossener) Lieferungen, deren Liefermail noch nicht versendet wurde (mail_sent_at IS NULL). „Ausgeliefert" = 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.

Example

import 'package:holzleitner_api/api.dart';
// TODO Configure API key authorization: admin_api_key
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKey = 'YOUR_API_KEY';
// uncomment below to setup prefix (e.g. Bearer) for API key, if needed
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKeyPrefix = 'Bearer';

final api = HolzleitnerApi().getAdminApi();
final String day = day_example; // String | Tag DD-MM-YYYY; ohne Angabe ALLE offenen Belege

try {
    final response = api.deliveredBelegnummern(day);
    print(response);
} catch on DioException (e) {
    print('Exception when calling AdminApi->deliveredBelegnummern: $e\n');
}

Parameters

Name Type Description Notes
day String Tag DD-MM-YYYY; ohne Angabe ALLE offenen Belege [optional]

Return type

DeliveredBelegnummernResponse

Authorization

admin_api_key

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

importErp

ImportSummary importErp(date)

Stößt den ERP-Import für ein Datum an und liefert die Zusammenfassung.

Example

import 'package:holzleitner_api/api.dart';
// TODO Configure API key authorization: admin_api_key
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKey = 'YOUR_API_KEY';
// uncomment below to setup prefix (e.g. Bearer) for API key, if needed
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKeyPrefix = 'Bearer';

final api = HolzleitnerApi().getAdminApi();
final String date = date_example; // String | Ziel-Tourdatum YYYY-MM-DD (Default: heute)

try {
    final response = api.importErp(date);
    print(response);
} catch on DioException (e) {
    print('Exception when calling AdminApi->importErp: $e\n');
}

Parameters

Name Type Description Notes
date String Ziel-Tourdatum YYYY-MM-DD (Default: heute) [optional]

Return type

ImportSummary

Authorization

admin_api_key

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

listReviews

BuiltList listReviews()

Listet alle geänderten Lieferscheine, die noch auf eine manuelle Bestätigung (Vier-Augen) warten — Entfernungen und/oder Geld-Gutschriften.

Example

import 'package:holzleitner_api/api.dart';
// TODO Configure API key authorization: admin_api_key
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKey = 'YOUR_API_KEY';
// uncomment below to setup prefix (e.g. Bearer) for API key, if needed
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKeyPrefix = 'Bearer';

final api = HolzleitnerApi().getAdminApi();

try {
    final response = api.listReviews();
    print(response);
} catch on DioException (e) {
    print('Exception when calling AdminApi->listReviews: $e\n');
}

Parameters

This endpoint does not need any parameter.

Return type

BuiltList<PendingReviewResponse>

Authorization

admin_api_key

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

markMailSent

MarkMailSentResponse markMailSent(markMailSentRequest)

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.

Example

import 'package:holzleitner_api/api.dart';
// TODO Configure API key authorization: admin_api_key
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKey = 'YOUR_API_KEY';
// uncomment below to setup prefix (e.g. Bearer) for API key, if needed
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKeyPrefix = 'Bearer';

final api = HolzleitnerApi().getAdminApi();
final MarkMailSentRequest markMailSentRequest = ; // MarkMailSentRequest | 

try {
    final response = api.markMailSent(markMailSentRequest);
    print(response);
} catch on DioException (e) {
    print('Exception when calling AdminApi->markMailSent: $e\n');
}

Parameters

Name Type Description Notes
markMailSentRequest MarkMailSentRequest

Return type

MarkMailSentResponse

Authorization

admin_api_key

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

positionsModified

PositionsModifiedResponse positionsModified(belegnummer)

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.

Example

import 'package:holzleitner_api/api.dart';
// TODO Configure API key authorization: admin_api_key
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKey = 'YOUR_API_KEY';
// uncomment below to setup prefix (e.g. Bearer) for API key, if needed
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKeyPrefix = 'Bearer';

final api = HolzleitnerApi().getAdminApi();
final String belegnummer = belegnummer_example; // String | ERP-Belegnummer, z. B. V-30690291

try {
    final response = api.positionsModified(belegnummer);
    print(response);
} catch on DioException (e) {
    print('Exception when calling AdminApi->positionsModified: $e\n');
}

Parameters

Name Type Description Notes
belegnummer String ERP-Belegnummer, z. B. V-30690291

Return type

PositionsModifiedResponse

Authorization

admin_api_key

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

pushCompletion

pushCompletion(deliveryId)

Stößt das ERP-Rückschreiben eines bereits lokal abgeschlossenen Lieferabschlusses erneut an (idempotenter Retry, falls der automatische Push beim Abschluss fehlschlug).

Example

import 'package:holzleitner_api/api.dart';
// TODO Configure API key authorization: admin_api_key
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKey = 'YOUR_API_KEY';
// uncomment below to setup prefix (e.g. Bearer) for API key, if needed
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKeyPrefix = 'Bearer';

final api = HolzleitnerApi().getAdminApi();
final String deliveryId = deliveryId_example; // String | UUID der abgeschlossenen Lieferung

try {
    api.pushCompletion(deliveryId);
} catch on DioException (e) {
    print('Exception when calling AdminApi->pushCompletion: $e\n');
}

Parameters

Name Type Description Notes
deliveryId String UUID der abgeschlossenen Lieferung

Return type

void (empty response body)

Authorization

admin_api_key

HTTP request headers

  • Content-Type: Not defined
  • Accept: Not defined

[Back to top] [Back to API list] [Back to Model list] [Back to README]

resolveReview

resolveReview(deliveryId, resolveReviewRequest)

Bestätigt die Prüfung einer geänderten Lieferung (Vier-Augen) — die Lieferung verschwindet danach aus GET /admin/reviews (sofern nicht erneut geändert).

Example

import 'package:holzleitner_api/api.dart';
// TODO Configure API key authorization: admin_api_key
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKey = 'YOUR_API_KEY';
// uncomment below to setup prefix (e.g. Bearer) for API key, if needed
//defaultApiClient.getAuthentication<ApiKeyAuth>('admin_api_key').apiKeyPrefix = 'Bearer';

final api = HolzleitnerApi().getAdminApi();
final String deliveryId = deliveryId_example; // String | UUID der Lieferung
final ResolveReviewRequest resolveReviewRequest = ; // ResolveReviewRequest | 

try {
    api.resolveReview(deliveryId, resolveReviewRequest);
} catch on DioException (e) {
    print('Exception when calling AdminApi->resolveReview: $e\n');
}

Parameters

Name Type Description Notes
deliveryId String UUID der Lieferung
resolveReviewRequest ResolveReviewRequest

Return type

void (empty response body)

Authorization

admin_api_key

HTTP request headers

  • Content-Type: application/json
  • Accept: Not defined

[Back to top] [Back to API list] [Back to Model list] [Back to README]