Final commit.

This commit is contained in:
Dennis Nemec
2026-06-01 17:12:28 +02:00
parent 3ecbc82885
commit a9bf8ecdd1
385 changed files with 29081 additions and 12089 deletions

View File

@ -0,0 +1,196 @@
# holzleitner_api.api.AdminApi
## Load the API package
```dart
import 'package:holzleitner_api/api.dart';
```
All URIs are relative to *http://localhost*
Method | HTTP request | Description
------------- | ------------- | -------------
[**deliveredBelegnummern**](AdminApi.md#deliveredbelegnummern) | **GET** /admin/delivered-belegnummern | 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.
[**importErp**](AdminApi.md#importerp) | **POST** /admin/import-erp | Stößt den ERP-Import für ein Datum an und liefert die Zusammenfassung.
[**markMailSent**](AdminApi.md#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`.
[**pushCompletion**](AdminApi.md#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).
# **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
```dart
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**](DeliveredBelegnummernResponse.md)
### Authorization
[admin_api_key](../README.md#admin_api_key)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **importErp**
> ImportSummary importErp(date)
Stößt den ERP-Import für ein Datum an und liefert die Zusammenfassung.
### Example
```dart
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**](ImportSummary.md)
### Authorization
[admin_api_key](../README.md#admin_api_key)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **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
```dart
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**](MarkMailSentRequest.md)| |
### Return type
[**MarkMailSentResponse**](MarkMailSentResponse.md)
### Authorization
[admin_api_key](../README.md#admin_api_key)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **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
```dart
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](../README.md#admin_api_key)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: Not defined
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)

View File

@ -0,0 +1,64 @@
# holzleitner_api.api.AttachmentsApi
## Load the API package
```dart
import 'package:holzleitner_api/api.dart';
```
All URIs are relative to *http://localhost*
Method | HTTP request | Description
------------- | ------------- | -------------
[**getAttachment**](AttachmentsApi.md#getattachment) | **GET** /attachments/{id} | Liefert ein gerendertes Vorschaubild des Attachments (Bytes), geladen aus DOCUframe. Auflösung/Format über Query-Parameter steuerbar (&#x60;?w&#x3D;&amp;h&#x3D;&amp;q&#x3D;&amp;ext&#x3D;&amp;page&#x3D;&#x60;).
# **getAttachment**
> getAttachment(id, w, h, q, ext, page)
Liefert ein gerendertes Vorschaubild des Attachments (Bytes), geladen aus DOCUframe. Auflösung/Format über Query-Parameter steuerbar (`?w=&h=&q=&ext=&page=`).
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getAttachmentsApi();
final String id = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | Attachment-Id (unsere UUID)
final int w = 56; // int | Breite in Pixeln (Default 1024)
final int h = 56; // int | Höhe in Pixeln (Default 1024)
final int q = 56; // int | Qualität 0100 (Default 85)
final String ext = ext_example; // String | png|jpeg|jpg|webp|tiff (Default jpeg)
final String page = page_example; // String | Seitennummer (Default 1)
try {
api.getAttachment(id, w, h, q, ext, page);
} catch on DioException (e) {
print('Exception when calling AttachmentsApi->getAttachment: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**id** | **String**| Attachment-Id (unsere UUID) |
**w** | **int**| Breite in Pixeln (Default 1024) | [optional]
**h** | **int**| Höhe in Pixeln (Default 1024) | [optional]
**q** | **int**| Qualität 0100 (Default 85) | [optional]
**ext** | **String**| png|jpeg|jpg|webp|tiff (Default jpeg) | [optional]
**page** | **String**| Seitennummer (Default 1) | [optional]
### Return type
void (empty response body)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: image/jpeg
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)

View File

@ -0,0 +1,20 @@
# holzleitner_api.model.CompleteDeliveryAcknowledgements
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**acknowledgedNoteIds** | **BuiltList&lt;String&gt;** | Notiz-IDs, die zum Abschlusszeitpunkt sichtbar waren und mit-bestätigt wurden (Audit-Robustheit). | [optional]
**authorCarId** | **String** | Fahrzeug des Akteurs (Audit-Spur). Muss zum Account gehören. | [optional]
**notesAcknowledged** | **bool** | „Anmerkungen zur Lieferung zur Kenntnis genommen.\" — Pflicht nur, wenn Notizen existieren (das prüft der Server). | [optional]
**paymentCollected** | **bool** | Inkasso-Bestätigung des Fahrers: „der offene Betrag wurde erhalten (bar) bzw. über das EC-Gerät abgerechnet.\" Pflicht nur, wenn beim Abschluss ein offener Betrag > 0 besteht UND die Methode ein Vor-Ort- Inkasso ist (Bar/EC) — das prüft der Server. Der kassierte Betrag wird server-seitig autoritativ berechnet (nicht vom Client übernommen). | [optional]
**paymentMethodId** | **String** | Optionale Zahlungsmethode, die der Fahrer beim Abschluss gewählt hat. `None` = die am Beleg hinterlegte Methode bleibt. Falls gesetzt, muss sie existieren **und** aktiv sein (vom Server geprüft). | [optional]
**receiptConfirmed** | **bool** | „Ware im ordnungsgemäßen Zustand erhalten / Aufbau korrekt.\" — Pflicht. |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,19 @@
# holzleitner_api.model.ContactChannel
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**id** | **String** | |
**kind** | [**ContactKind**](ContactKind.md) | |
**position** | **int** | |
**sourceId** | **String** | |
**value** | **String** | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,14 @@
# holzleitner_api.model.ContactKind
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,14 @@
# holzleitner_api.model.ContactRole
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,24 @@
# holzleitner_api.model.ContactSource
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**abteilung** | **String** | | [optional]
**anrede** | **String** | | [optional]
**deliveryId** | **String** | |
**funktion** | **String** | | [optional]
**id** | **String** | |
**name1** | **String** | | [optional]
**name2** | **String** | | [optional]
**name3** | **String** | | [optional]
**role** | [**ContactRole**](ContactRole.md) | |
**titel** | **String** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -9,7 +9,9 @@ import 'package:holzleitner_api/api.dart';
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**authorCarId** | **String** | Fahrzeug, das die Notiz erzeugt hat. Muss zum angemeldeten Account gehören. `None` ist erlaubt. | [optional]
**creditDeliveryItemId** | **String** | Optionaler Gutschrift-Bezug: die Belegzeile, für die diese Notiz als Gutschrift-Grund angelegt wird. Ermöglicht das gezielte Löschen beim Unremove. `None` für normale Notizen. | [optional]
**imageAttachment** | **String** | Object-Storage-Key oder URL eines vorab hochgeladenen Bildes. | [optional]
**isAmountCreditNote** | **bool** | `true` markiert die Notiz als Grund einer Betrags-Gutschrift (Lieferungs-Ebene). Default `false`. | [optional]
**text** | **String** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,16 @@
# holzleitner_api.model.CreatePaymentMethodRequest
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**code** | **String** | Eindeutiger Programm-Identifier (z. B. `\"paypal\"`, `\"klarna\"`). |
**name** | **String** | Anzeige-Name in der UI. |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,20 @@
# holzleitner_api.model.CreateServiceRequest
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**key** | **String** | Eindeutiger Programm-Identifier (z. B. `\"podium_setup\"`). |
**kind** | [**ServiceKind**](ServiceKind.md) | |
**maxValue** | **int** | | [optional]
**minValue** | **int** | Nur bei `Numeric` sinnvoll. | [optional]
**name** | **String** | |
**sortOrder** | **int** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,14 @@
# holzleitner_api.model.CreditAction
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,17 @@
# holzleitner_api.model.DeliveredBelegnummernResponse
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**belegnummern** | **BuiltList&lt;String&gt;** | Belegnummern aller **ausgelieferten** (abgeschlossenen) Lieferungen, deren Liefermail noch **nicht versendet** wurde, aufsteigend nach Abschluss-Zeitpunkt. |
**count** | **int** | Anzahl der offenen (noch nicht versendeten) Belege. |
**day** | **String** | Tag, nach dem gefiltert wurde (ISO `YYYY-MM-DD`), oder `\"all\"` wenn kein `day` angegeben war. |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -9,14 +9,63 @@ All URIs are relative to *http://localhost*
Method | HTTP request | Description
------------- | ------------- | -------------
[**applyCredit**](DeliveriesApi.md#applycredit) | **POST** /deliveries/{delivery_id}/credit | Wendet ein Betrags-Gutschrift-Ereignis an (&#x60;set&#x60;/&#x60;remove&#x60;). Append-only, idempotent über &#x60;clientEventId&#x60;. Nur bei aktiver Lieferung; bei &#x60;set&#x60; sind Betrag (0 &lt; x ≤ 150 €, 10-€-Schritte) und Grund Pflicht. Antwort: der aktuelle Gutschrift-Stand (&#x60;null&#x60;, wenn entfernt).
[**assignCar**](DeliveriesApi.md#assigncar) | **PUT** /deliveries/{delivery_id}/assigned-car | Setzt das &#x60;assigned_car_id&#x60; einer Lieferung. &#x60;carId: null&#x60; löst die Zuordnung wieder. Der Use Case stellt sicher, dass das Fahrzeug zum angemeldeten Account gehört.
[**cancel**](DeliveriesApi.md#cancel) | **POST** /deliveries/{delivery_id}/cancel | Setzt die Lieferung auf &#x60;canceled&#x60; — endgültig. Erlaubt aus &#x60;active&#x60; und &#x60;held&#x60;.
[**complete**](DeliveriesApi.md#complete) | **POST** /deliveries/{delivery_id}/complete | Schließt die Lieferung ab — &#x60;state &#x3D; completed&#x60;. Nur aus &#x60;active&#x60;.
[**createNote**](DeliveriesApi.md#createnote) | **POST** /deliveries/{delivery_id}/notes | Legt eine neue Notiz an einer Lieferung an. Mindestens eines von &#x60;text&#x60; und &#x60;imageAttachment&#x60; muss inhaltlich gefüllt sein (Leerstrings werden serverseitig getrimmt und als leer behandelt).
[**deleteNote**](DeliveriesApi.md#deletenote) | **DELETE** /deliveries/{delivery_id}/notes/{note_id} | Löscht eine Notiz. Antwortet mit &#x60;204 No Content&#x60;.
[**deleteServiceValue**](DeliveriesApi.md#deleteservicevalue) | **DELETE** /deliveries/{delivery_id}/services/{service_id} | Entfernt den Service-Wert einer Lieferung (Service „nicht gesetzt\&quot;). Nur bei aktiver Lieferung. Antwort &#x60;204&#x60;.
[**hold**](DeliveriesApi.md#hold) | **POST** /deliveries/{delivery_id}/hold | Setzt die Lieferung auf &#x60;held&#x60;. Nur aus &#x60;active&#x60; zulässig.
[**resume**](DeliveriesApi.md#resume) | **POST** /deliveries/{delivery_id}/resume | Setzt die Lieferung zurück auf &#x60;active&#x60;. Nur aus &#x60;held&#x60; zulässig.
[**setService**](DeliveriesApi.md#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 (&#x60;boolValue&#x60;/&#x60;numericValue&#x60;) muss gesetzt sein; numerische Werte werden gegen min/max geprüft. Nur bei aktiver Lieferung.
[**updateNote**](DeliveriesApi.md#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. &#x60;delivery_id&#x60; ist Teil des Pfads (REST-Konsistenz), die Notiz wird über &#x60;note_id&#x60; adressiert.
[**uploadNoteImage**](DeliveriesApi.md#uploadnoteimage) | **POST** /deliveries/{delivery_id}/notes/image | Lädt ein Bild zu einer Lieferung hoch (multipart/form-data, Feld &#x60;file&#x60;) und legt dafür eine Bild-Notiz an. Das Bild geht in den DOCUframe-Dokumentenspeicher; gespeichert wird die zurückgelieferte Referenz (&#x60;~ObjectID&#x60;) als &#x60;image_attachment&#x60; der Notiz.
# **applyCredit**
> DeliveryCreditResponse applyCredit(deliveryId, deliveryCreditEventRequest)
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).
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getDeliveriesApi();
final String deliveryId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String |
final DeliveryCreditEventRequest deliveryCreditEventRequest = ; // DeliveryCreditEventRequest |
try {
final response = api.applyCredit(deliveryId, deliveryCreditEventRequest);
print(response);
} catch on DioException (e) {
print('Exception when calling DeliveriesApi->applyCredit: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**deliveryId** | **String**| |
**deliveryCreditEventRequest** | [**DeliveryCreditEventRequest**](DeliveryCreditEventRequest.md)| |
### Return type
[**DeliveryCreditResponse**](DeliveryCreditResponse.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **assignCar**
> DeliveryResponse assignCar(deliveryId, assignCarRequest)
@ -108,6 +157,8 @@ Name | Type | Description | Notes
Schließt die Lieferung ab `state = completed`. Nur aus `active`.
`multipart/form-data` mit drei Feldern: * `customer_signature` — PNG der Kunden-Unterschrift (Pflicht) * `driver_signature` PNG der Fahrer-Unterschrift (Pflicht) * `acknowledgements` JSON (`CompleteDeliveryAcknowledgements`): `receiptConfirmed` (Pflicht true), `notesAcknowledged`, `acknowledgedNoteIds`, `authorCarId`. Atomar: Signaturen werden lokal gespeichert, die Abschluss-Zeile geschrieben und der Status auf `completed` gesetzt alles oder nichts. Gates: Lieferung aktiv, alle scanbaren Positionen fertig, Notizen bestätigt (falls vorhanden).
### Example
```dart
import 'package:holzleitner_api/api.dart';
@ -139,7 +190,7 @@ Name | Type | Description | Notes
### HTTP request headers
- **Content-Type**: Not defined
- **Content-Type**: multipart/form-data
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
@ -187,6 +238,90 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **deleteNote**
> deleteNote(deliveryId, noteId)
Löscht eine Notiz. Antwortet mit `204 No Content`.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getDeliveriesApi();
final String deliveryId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String |
final String noteId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String |
try {
api.deleteNote(deliveryId, noteId);
} catch on DioException (e) {
print('Exception when calling DeliveriesApi->deleteNote: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**deliveryId** | **String**| |
**noteId** | **String**| |
### Return type
void (empty response body)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: Not defined
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **deleteServiceValue**
> deleteServiceValue(deliveryId, serviceId)
Entfernt den Service-Wert einer Lieferung (Service nicht gesetzt\"). Nur bei aktiver Lieferung. Antwort `204`.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getDeliveriesApi();
final String deliveryId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String |
final String serviceId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String |
try {
api.deleteServiceValue(deliveryId, serviceId);
} catch on DioException (e) {
print('Exception when calling DeliveriesApi->deleteServiceValue: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**deliveryId** | **String**| |
**serviceId** | **String**| |
### Return type
void (empty response body)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: Not defined
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **hold**
> DeliveryResponse hold(deliveryId, holdDeliveryRequest)
@ -271,3 +406,134 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **setService**
> DeliveryServiceResponse setService(deliveryId, serviceId, setDeliveryServiceRequest)
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.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getDeliveriesApi();
final String deliveryId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String |
final String serviceId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String |
final SetDeliveryServiceRequest setDeliveryServiceRequest = ; // SetDeliveryServiceRequest |
try {
final response = api.setService(deliveryId, serviceId, setDeliveryServiceRequest);
print(response);
} catch on DioException (e) {
print('Exception when calling DeliveriesApi->setService: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**deliveryId** | **String**| |
**serviceId** | **String**| |
**setDeliveryServiceRequest** | [**SetDeliveryServiceRequest**](SetDeliveryServiceRequest.md)| |
### Return type
[**DeliveryServiceResponse**](DeliveryServiceResponse.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **updateNote**
> DeliveryNoteResponse updateNote(deliveryId, noteId, updateDeliveryNoteRequest)
Ä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.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getDeliveriesApi();
final String deliveryId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String |
final String noteId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String |
final UpdateDeliveryNoteRequest updateDeliveryNoteRequest = ; // UpdateDeliveryNoteRequest |
try {
final response = api.updateNote(deliveryId, noteId, updateDeliveryNoteRequest);
print(response);
} catch on DioException (e) {
print('Exception when calling DeliveriesApi->updateNote: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**deliveryId** | **String**| |
**noteId** | **String**| |
**updateDeliveryNoteRequest** | [**UpdateDeliveryNoteRequest**](UpdateDeliveryNoteRequest.md)| |
### Return type
[**DeliveryNoteResponse**](DeliveryNoteResponse.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **uploadNoteImage**
> DeliveryNoteResponse uploadNoteImage(deliveryId)
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.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getDeliveriesApi();
final String deliveryId = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String |
try {
final response = api.uploadNoteImage(deliveryId);
print(response);
} catch on DioException (e) {
print('Exception when calling DeliveriesApi->uploadNoteImage: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**deliveryId** | **String**| |
### Return type
[**DeliveryNoteResponse**](DeliveryNoteResponse.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: multipart/form-data
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)

View File

@ -16,6 +16,8 @@ Name | Type | Description | Notes
**erpBelegartId** | **int** | ERP-Beleg-Bezug: business-stabiles Paar `(Belegart, Belegnummer)`. Überlebt den Belegkopf-Archivübergang. |
**erpBelegnummer** | **String** | |
**id** | **String** | |
**paymentMethodId** | **String** | Für den Restbetrag gewählte Zahlungsart — FK auf `payment_methods`. Vom Kunden bei Bestellung festgelegt, der Fahrer übernimmt nur die Abwicklung. Aktiv-Flag und Anzeige-Name werden über die Stammdaten-Tabelle aufgelöst, nicht hier embeddet. |
**prepaidAmount** | **double** | Bei Bestellung schon bezahlter Betrag in EUR. `0.0` wenn der Kunde alles bei Lieferung zahlt. Wird vom ERP-Sync gefüllt. |
**specialAgreements** | **String** | Sondervereinbarungen (z. B. „Türklingel defekt, hintenrum klopfen\"). | [optional]
**state** | [**DeliveryState**](DeliveryState.md) | |
**stateReason** | **String** | Begründung bei `state == Held` oder `state == Canceled`. Beim Resume / Complete wieder `None`. | [optional]

View File

@ -0,0 +1,17 @@
# holzleitner_api.model.DeliveryCredit
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**amountCents** | **int** | Gutschrift-Betrag in Cent (> 0, ≤ 15000). |
**deliveryId** | **String** | |
**reason** | **String** | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,19 @@
# holzleitner_api.model.DeliveryCreditEventRequest
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**action** | [**CreditAction**](CreditAction.md) | |
**amountCents** | **int** | Bei `Set` Pflicht: Betrag in Cent (> 0, ≤ 15000, Vielfaches von 1000). | [optional]
**authorCarId** | **String** | Fahrzeug des Akteurs (Audit-Spur). Muss zum Account gehören. | [optional]
**clientEventId** | **String** | Idempotenz-Schlüssel — pro erzeugtem Ereignis genau einmal vergeben. Ein Retry mit derselben Id wendet nichts erneut an. |
**reason** | **String** | Bei `Set` Pflicht: Begründung. | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,15 @@
# holzleitner_api.model.DeliveryCreditResponse
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**credit** | [**DeliveryCredit**](DeliveryCredit.md) | Aktueller Stand nach dem Ereignis — `None`, wenn (zuletzt) entfernt. | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -13,8 +13,10 @@ Name | Type | Description | Notes
**deliveryId** | **String** | |
**id** | **String** | |
**komponentenArtikelNr** | **String** | Bei Items aus einer Stückliste: Artikelnummer der Komponente. Bei regulären Belegzeilen: `None`. | [optional]
**parentArtikelNr** | **String** | Artikelnummer des Oberartikels, zu dem diese Komponente gehört. `None` bei Oberartikeln/regulären Zeilen — die App rückt Komponenten darüber unter ihrem Oberartikel ein. | [optional]
**requiredQuantity** | **int** | |
**scanState** | [**ScanState**](ScanState.md) | |
**unitPrice** | **double** | Stückpreis (brutto, EUR) aus dem ERP-Sync. Der Warenwert einer Lieferung = Σ `unit_price` × ausgelieferte Menge. |
**warehouseId** | **String** | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -11,9 +11,12 @@ Name | Type | Description | Notes
**authorCarId** | **String** | Fahrzeug, falls bekannt — nullable bis das Backend Cars verwaltet. | [optional]
**authorPersonalnummer** | **int** | Personalnummer des Akteurs (aus dem JWT). Pflicht. |
**createdAt** | [**DateTime**](DateTime.md) | |
**creditDeliveryItemId** | **String** | Wenn die Notiz als Gutschrift-Grund zu einer Belegzeile angelegt wurde: deren `DeliveryItem`-Id. Erlaubt dem Client, die Notiz beim Zurücknehmen der Gutschrift (Unremove) gezielt wieder zu löschen. `None` bei normalen Text-/Foto-Notizen. | [optional]
**deliveryId** | **String** | |
**id** | **String** | |
**imageAttachment** | **String** | Referenz auf einen Bild-Anhang (z. B. Object-Storage-Key/URL). | [optional]
**imageAttachmentDeleted** | **bool** | `true`, wenn die lokale Bilddatei nach erfolgreichem Report-Upload gelöscht wurde (das Bild steckt nun im Lieferbericht in DOCUframe). Read-only; die App zeigt dann statt der Vorschau einen Hinweis. Bei Text-Notizen / vorhandenem Bild: `false`. | [optional]
**isAmountCreditNote** | **bool** | `true`, wenn die Notiz den Grund einer **Betrags-Gutschrift** (Geld-Nachlass, Lieferungs-Ebene) dokumentiert. Erlaubt dem Client, sie beim Entfernen der Gutschrift gezielt zu löschen. |
**text** | **String** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,15 @@
# holzleitner_api.model.DeliveryServiceResponse
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**value** | [**DeliveryServiceValue**](DeliveryServiceValue.md) | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,18 @@
# holzleitner_api.model.DeliveryServiceValue
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**boolValue** | **bool** | | [optional]
**deliveryId** | **String** | |
**numericValue** | **int** | | [optional]
**serviceId** | **String** | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -16,6 +16,8 @@ Name | Type | Description | Notes
**erpBelegartId** | **int** | ERP-Beleg-Bezug: business-stabiles Paar `(Belegart, Belegnummer)`. Überlebt den Belegkopf-Archivübergang. |
**erpBelegnummer** | **String** | |
**id** | **String** | |
**paymentMethodId** | **String** | Für den Restbetrag gewählte Zahlungsart — FK auf `payment_methods`. Vom Kunden bei Bestellung festgelegt, der Fahrer übernimmt nur die Abwicklung. Aktiv-Flag und Anzeige-Name werden über die Stammdaten-Tabelle aufgelöst, nicht hier embeddet. |
**prepaidAmount** | **double** | Bei Bestellung schon bezahlter Betrag in EUR. `0.0` wenn der Kunde alles bei Lieferung zahlt. Wird vom ERP-Sync gefüllt. |
**specialAgreements** | **String** | Sondervereinbarungen (z. B. „Türklingel defekt, hintenrum klopfen\"). | [optional]
**state** | [**DeliveryState**](DeliveryState.md) | |
**stateReason** | **String** | Begründung bei `state == Held` oder `state == Canceled`. Beim Resume / Complete wieder `None`. | [optional]

View File

@ -0,0 +1,21 @@
# holzleitner_api.model.ImportSummary
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**date** | [**Date**](Date.md) | |
**driversProvisioned** | **int** | Anzahl der **neu** im Identity-Provider (Keycloak) angelegten Fahrer-Konten in diesem Lauf (0, wenn Provisionierung deaktiviert ist oder alle Konten bereits existierten). | [optional]
**errors** | **BuiltList&lt;String&gt;** | Fehlertexte je fehlgeschlagener Fahrer-Tour (z. B. unbekannter Fahrer → FK auf `accounts`, oder Validierungsfehler). |
**provisioningErrors** | **BuiltList&lt;String&gt;** | Fehlertexte der Konto-Provisionierung (Keycloak). Best-effort: ein Fehler hier blockiert den Touren-Import **nicht**. | [optional]
**toursFailed** | **int** | |
**toursOk** | **int** | |
**toursTotal** | **int** | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,15 @@
# holzleitner_api.model.MarkMailSentRequest
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**belegnummern** | **BuiltList&lt;String&gt;** | Belegnummern, deren Liefermail erfolgreich versendet wurde und die als versendet markiert werden sollen. |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,15 @@
# holzleitner_api.model.MarkMailSentResponse
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**marked** | **int** | Anzahl frisch markierter (vorher offener) Belege. Bereits markierte zählen nicht mit (idempotent). |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,19 @@
# holzleitner_api.model.PaymentMethod
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**active** | **bool** | |
**code** | **String** | Stabiler Programm-Identifier — z. B. `\"cash\"`, `\"ec_card\"`. Eindeutig pro Eintrag. Wird vom Aufrufer beim Anlegen gesetzt. |
**createdAt** | [**DateTime**](DateTime.md) | |
**id** | **String** | |
**name** | **String** | Display-Name in der UI — frei via PATCH änderbar. |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,15 @@
# holzleitner_api.model.PaymentMethodResponse
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**method** | [**PaymentMethod**](PaymentMethod.md) | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,182 @@
# holzleitner_api.api.PaymentMethodsApi
## Load the API package
```dart
import 'package:holzleitner_api/api.dart';
```
All URIs are relative to *http://localhost*
Method | HTTP request | Description
------------- | ------------- | -------------
[**createPaymentMethod**](PaymentMethodsApi.md#createpaymentmethod) | **POST** /payment-methods | Legt eine neue Zahlungsmethode an.
[**deletePaymentMethod**](PaymentMethodsApi.md#deletepaymentmethod) | **DELETE** /payment-methods/{id} | Hartes Löschen. &#x60;409 Conflict&#x60;, wenn die Methode von einer Lieferung referenziert wird — der Admin soll dann den &#x60;active &#x3D; false&#x60;-Pfad nutzen.
[**listPaymentMethods**](PaymentMethodsApi.md#listpaymentmethods) | **GET** /payment-methods | Listet die Zahlungsmethoden.
[**updatePaymentMethod**](PaymentMethodsApi.md#updatepaymentmethod) | **PATCH** /payment-methods/{id} | Patcht Anzeige-Name und/oder Aktiv-Flag.
# **createPaymentMethod**
> PaymentMethodResponse createPaymentMethod(createPaymentMethodRequest)
Legt eine neue Zahlungsmethode an.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getPaymentMethodsApi();
final CreatePaymentMethodRequest createPaymentMethodRequest = ; // CreatePaymentMethodRequest |
try {
final response = api.createPaymentMethod(createPaymentMethodRequest);
print(response);
} catch on DioException (e) {
print('Exception when calling PaymentMethodsApi->createPaymentMethod: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**createPaymentMethodRequest** | [**CreatePaymentMethodRequest**](CreatePaymentMethodRequest.md)| |
### Return type
[**PaymentMethodResponse**](PaymentMethodResponse.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **deletePaymentMethod**
> deletePaymentMethod(id)
Hartes Löschen. `409 Conflict`, wenn die Methode von einer Lieferung referenziert wird — der Admin soll dann den `active = false`-Pfad nutzen.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getPaymentMethodsApi();
final String id = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | Zahlungsmethoden-Id
try {
api.deletePaymentMethod(id);
} catch on DioException (e) {
print('Exception when calling PaymentMethodsApi->deletePaymentMethod: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**id** | **String**| Zahlungsmethoden-Id |
### Return type
void (empty response body)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: Not defined
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **listPaymentMethods**
> PaymentMethodsList listPaymentMethods(includeInactive)
Listet die Zahlungsmethoden.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getPaymentMethodsApi();
final bool includeInactive = true; // bool | Wenn true, werden inaktive Methoden mitgeliefert (default: false)
try {
final response = api.listPaymentMethods(includeInactive);
print(response);
} catch on DioException (e) {
print('Exception when calling PaymentMethodsApi->listPaymentMethods: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**includeInactive** | **bool**| Wenn true, werden inaktive Methoden mitgeliefert (default: false) | [optional]
### Return type
[**PaymentMethodsList**](PaymentMethodsList.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **updatePaymentMethod**
> PaymentMethodResponse updatePaymentMethod(id, updatePaymentMethodRequest)
Patcht Anzeige-Name und/oder Aktiv-Flag.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getPaymentMethodsApi();
final String id = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | Zahlungsmethoden-Id
final UpdatePaymentMethodRequest updatePaymentMethodRequest = ; // UpdatePaymentMethodRequest |
try {
final response = api.updatePaymentMethod(id, updatePaymentMethodRequest);
print(response);
} catch on DioException (e) {
print('Exception when calling PaymentMethodsApi->updatePaymentMethod: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**id** | **String**| Zahlungsmethoden-Id |
**updatePaymentMethodRequest** | [**UpdatePaymentMethodRequest**](UpdatePaymentMethodRequest.md)| |
### Return type
[**PaymentMethodResponse**](PaymentMethodResponse.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)

View File

@ -0,0 +1,15 @@
# holzleitner_api.model.PaymentMethodsList
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**methods** | [**BuiltList&lt;PaymentMethod&gt;**](PaymentMethod.md) | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -13,6 +13,8 @@ Name | Type | Description | Notes
**clientScanId** | **String** | |
**clientScannedAt** | [**DateTime**](DateTime.md) | |
**deliveryItemId** | **String** | |
**manual** | **bool** | `true`, wenn der Fahrer die Position **manuell** als geladen bestätigt hat (Fallback ohne Barcode-Scan). Wird nur im Audit (`scan_audit.manual`) festgehalten; an der Mengen-/Status-Logik ändert es nichts. Default `false` (regulärer Barcode-Scan). | [optional]
**quantity** | **int** | Menge für `Remove` / `Unremove` (Mengen-Gutschrift): wie viele Stück der Belegzeile gutgeschrieben bzw. wieder hergestellt werden. `None` = ganze Restmenge (abwärtskompatibel zum bisherigen „ganze Zeile entfernen\"). Bei `Scan`/`Unscan`/`Hold`/`Unhold` ignoriert. Muss, wenn gesetzt, `> 0` sein. | [optional]
**reason** | **String** | Pflicht bei `Hold` und `Remove`. Sonst ignoriert. | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -8,6 +8,7 @@ import 'package:holzleitner_api/api.dart';
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**creditedQuantity** | **int** | Als Gutschrift entfernte Menge (0..=required_quantity). Eigene Dimension neben `scanned_quantity`: „wie viele Stück dieser Zeile hat der Kunde nicht angenommen\". `status == Removed` entspricht `credited_quantity == required_quantity` (ganze Zeile gutgeschrieben). |
**heldReason** | **String** | Grund bei `status == Held` oder `status == Removed`. | [optional]
**lastUpdatedAt** | [**DateTime**](DateTime.md) | |
**scannedQuantity** | **int** | |

View File

@ -0,0 +1,22 @@
# holzleitner_api.model.Service
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**active** | **bool** | |
**id** | **String** | |
**key** | **String** | |
**kind** | [**ServiceKind**](ServiceKind.md) | |
**maxValue** | **int** | | [optional]
**minValue** | **int** | | [optional]
**name** | **String** | |
**sortOrder** | **int** | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,14 @@
# holzleitner_api.model.ServiceKind
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,15 @@
# holzleitner_api.model.ServiceResponse
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**service** | [**Service**](Service.md) | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,182 @@
# holzleitner_api.api.ServicesApi
## Load the API package
```dart
import 'package:holzleitner_api/api.dart';
```
All URIs are relative to *http://localhost*
Method | HTTP request | Description
------------- | ------------- | -------------
[**createService**](ServicesApi.md#createservice) | **POST** /services | Legt einen neuen Service an.
[**deleteService**](ServicesApi.md#deleteservice) | **DELETE** /services/{id} | Hartes Löschen. &#x60;409 Conflict&#x60;, wenn der Service noch von einer Lieferung referenziert wird — dann stattdessen deaktivieren.
[**listServices**](ServicesApi.md#listservices) | **GET** /services | Listet die Services (sortiert nach &#x60;sortOrder&#x60;).
[**updateService**](ServicesApi.md#updateservice) | **PATCH** /services/{id} | Patcht Name/Grenzen/Aktiv-Flag/Sortierung. &#x60;kind&#x60; ist nicht änderbar.
# **createService**
> ServiceResponse createService(createServiceRequest)
Legt einen neuen Service an.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getServicesApi();
final CreateServiceRequest createServiceRequest = ; // CreateServiceRequest |
try {
final response = api.createService(createServiceRequest);
print(response);
} catch on DioException (e) {
print('Exception when calling ServicesApi->createService: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**createServiceRequest** | [**CreateServiceRequest**](CreateServiceRequest.md)| |
### Return type
[**ServiceResponse**](ServiceResponse.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **deleteService**
> deleteService(id)
Hartes Löschen. `409 Conflict`, wenn der Service noch von einer Lieferung referenziert wird — dann stattdessen deaktivieren.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getServicesApi();
final String id = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | Service-Id
try {
api.deleteService(id);
} catch on DioException (e) {
print('Exception when calling ServicesApi->deleteService: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**id** | **String**| Service-Id |
### Return type
void (empty response body)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: Not defined
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **listServices**
> ServicesList listServices(includeInactive)
Listet die Services (sortiert nach `sortOrder`).
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getServicesApi();
final bool includeInactive = true; // bool | Wenn true, werden inaktive Services mitgeliefert (default: false)
try {
final response = api.listServices(includeInactive);
print(response);
} catch on DioException (e) {
print('Exception when calling ServicesApi->listServices: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**includeInactive** | **bool**| Wenn true, werden inaktive Services mitgeliefert (default: false) | [optional]
### Return type
[**ServicesList**](ServicesList.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **updateService**
> ServiceResponse updateService(id, updateServiceRequest)
Patcht Name/Grenzen/Aktiv-Flag/Sortierung. `kind` ist nicht änderbar.
### Example
```dart
import 'package:holzleitner_api/api.dart';
final api = HolzleitnerApi().getServicesApi();
final String id = 38400000-8cf0-11bd-b23e-10b96e4ef00d; // String | Service-Id
final UpdateServiceRequest updateServiceRequest = ; // UpdateServiceRequest |
try {
final response = api.updateService(id, updateServiceRequest);
print(response);
} catch on DioException (e) {
print('Exception when calling ServicesApi->updateService: $e\n');
}
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**id** | **String**| Service-Id |
**updateServiceRequest** | [**UpdateServiceRequest**](UpdateServiceRequest.md)| |
### Return type
[**ServiceResponse**](ServiceResponse.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)

View File

@ -0,0 +1,15 @@
# holzleitner_api.model.ServicesList
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**services** | [**BuiltList&lt;Service&gt;**](Service.md) | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,17 @@
# holzleitner_api.model.SetDeliveryServiceRequest
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**authorCarId** | **String** | | [optional]
**boolValue** | **bool** | | [optional]
**numericValue** | **int** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,17 @@
# holzleitner_api.model.SyncContactChannel
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**kind** | [**ContactKind**](ContactKind.md) | |
**position** | **int** | 1-basiert: spiegelt ERP-Spaltenposition (Telefon → 1, Telefon2 → 2, …). |
**value** | **String** | |
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,23 @@
# holzleitner_api.model.SyncContactSource
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**abteilung** | **String** | | [optional]
**anrede** | **String** | | [optional]
**channels** | [**BuiltList&lt;SyncContactChannel&gt;**](SyncContactChannel.md) | | [optional]
**funktion** | **String** | | [optional]
**name1** | **String** | | [optional]
**name2** | **String** | | [optional]
**name3** | **String** | | [optional]
**role** | [**ContactRole**](ContactRole.md) | |
**titel** | **String** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -8,14 +8,19 @@ import 'package:holzleitner_api/api.dart';
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**belegartCode** | **String** | Belegart-Kurzcode (z. B. „VL5\"), aus `Belegarten.Belegart` (getrimmt). | [optional]
**belegartId** | **int** | |
**belegartName** | **String** | Belegart-Klartext (z. B. „Lieferschein EH\"), aus `Belegarten.Bezeichnung`. | [optional]
**belegnummer** | **String** | |
**contactSources** | [**BuiltList&lt;SyncContactSource&gt;**](SyncContactSource.md) | Alle vom ERP an diesem Beleg hängenden Kontakt-Adressen (Beleg-/ Liefer-/Rechnungsadresse, Ansprechpartner, Kundenstamm). Leere Quellen (kein einziger ausgefüllter Kanal *und* kein Name) lässt der Sync weg. | [optional]
**customerAddress** | [**Address**](Address.md) | |
**customerName** | **String** | |
**deliveryAddress** | [**Address**](Address.md) | Snapshot der Lieferadresse (kann von der Stammadresse abweichen). |
**desiredTime** | **String** | | [optional]
**erpCustomerId** | **int** | |
**items** | [**BuiltList&lt;SyncDeliveryItem&gt;**](SyncDeliveryItem.md) | |
**paymentMethodCode** | **String** | Für den Restbetrag gewählte Zahlungsart — Referenz per `code` (z. B. `\"cash\"`, `\"invoice\"`). Das ERP kennt seine Standard-Codes, der Sync-Code resolvet sie zur UUID. Wenn `None`, fällt der Backend-Code auf `\"cash\"` zurück. | [optional]
**prepaidAmount** | **double** | Bei Bestellung schon bezahlter Betrag in EUR. Default `0.0`, wenn der Kunde alles bei Lieferung zahlt. Der ERP-Sync liefert den Wert mit. | [optional]
**sortOrder** | **int** | 1-basiert, definiert die initiale Reihenfolge in der App. |
**specialAgreements** | **String** | | [optional]

View File

@ -13,8 +13,10 @@ Name | Type | Description | Notes
**articleNumber** | **String** | |
**articleScannable** | **bool** | |
**belegzeilenNr** | **int** | |
**komponentenArtikelNr** | **String** | Komponenten-Artikelnummer bei aufgelösten Stücklisten, sonst leer. | [optional]
**komponentenArtikelNr** | **String** | Komponenten-Artikelnummer bei aufgelösten Stücklisten, sonst leer. Trägt die **eigene** Nummer der Komponente (eindeutig je Belegzeile). | [optional]
**parentArtikelNr** | **String** | Artikelnummer des **Oberartikels**, zu dem diese Komponente gehört. `None` bei Oberartikeln/regulären Zeilen. Erlaubt der App, Komponenten unter ihrem Oberartikel einzurücken. | [optional]
**requiredQuantity** | **int** | |
**unitPrice** | **double** | Stückpreis (brutto, EUR). Default `0.0`. Liefert der ERP-Sync mit; die App rechnet daraus den Warenwert. | [optional]
**warehouseCode** | **String** | |
**warehouseName** | **String** | |

View File

@ -9,10 +9,15 @@ import 'package:holzleitner_api/api.dart';
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**articles** | [**BuiltList&lt;Article&gt;**](Article.md) | |
**contactChannels** | [**BuiltList&lt;ContactChannel&gt;**](ContactChannel.md) | Die zu `contact_sources` gehörenden Einzel-Kanäle (Telefon, Mobil, E-Mail, Web). Join per `source_id`. |
**contactSources** | [**BuiltList&lt;ContactSource&gt;**](ContactSource.md) | Alle vom ERP gespiegelten Kontaktquellen aller Lieferungen dieser Tour. Die App joint clientseitig per `delivery_id` und gruppiert nach `role` (Lieferadresse / Rechnungsadresse / Ansprechpartner / Kundenstamm / Belegadresse). |
**credits** | [**BuiltList&lt;DeliveryCredit&gt;**](DeliveryCredit.md) | Aktuelle Betrags-Gutschriften (jüngster Stand pro Lieferung), nur für Lieferungen, deren letztes Ereignis `set` war. Join per `delivery_id`. |
**customerContacts** | [**BuiltList&lt;CustomerContact&gt;**](CustomerContact.md) | |
**customers** | [**BuiltList&lt;Customer&gt;**](Customer.md) | |
**deliveries** | [**BuiltList&lt;DeliveryWithItems&gt;**](DeliveryWithItems.md) | |
**deliveryServices** | [**BuiltList&lt;DeliveryServiceValue&gt;**](DeliveryServiceValue.md) | Pro-Lieferung gesetzte Service-Werte. Join per `delivery_id` + `service_id`. |
**notes** | [**BuiltList&lt;DeliveryNote&gt;**](DeliveryNote.md) | Alle Notizen aller Lieferungen dieser Tour, in einer Liste. Die App joint clientseitig per `delivery_id`. Reihenfolge: pro Lieferung aufsteigend nach `created_at`. |
**services** | [**BuiltList&lt;Service&gt;**](Service.md) | Aktive Service-Definitionen (Stammdaten) — die App rendert daraus Phase 4. Bewusst hier mitgeliefert, damit die Detailseite alles aus dem Tour-Aggregat hat. |
**tour** | [**Tour**](Tour.md) | |
**warehouses** | [**BuiltList&lt;Warehouse&gt;**](Warehouse.md) | |

View File

@ -0,0 +1,16 @@
# holzleitner_api.model.UpdateDeliveryNoteRequest
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**imageAttachment** | **String** | Object-Storage-Key oder URL eines vorab hochgeladenen Bildes. | [optional]
**text** | **String** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,16 @@
# holzleitner_api.model.UpdatePaymentMethodRequest
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**active** | **bool** | Wenn gesetzt: aktiv/inaktiv. Inaktive Methoden bleiben für historische Lieferungen referenzierbar, tauchen aber im Default-Listing nicht auf. | [optional]
**name** | **String** | Wenn gesetzt: neuer Anzeige-Name. | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,19 @@
# holzleitner_api.model.UpdateServiceRequest
## Load the model package
```dart
import 'package:holzleitner_api/api.dart';
```
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**active** | **bool** | | [optional]
**maxValue** | **int** | | [optional]
**minValue** | **int** | | [optional]
**name** | **String** | | [optional]
**sortOrder** | **int** | | [optional]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)