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>
This commit is contained in:
Dennis Nemec
2026-09-25 14:04:36 +02:00
parent f832b69b9d
commit dd7fe9a8eb
78 changed files with 7466 additions and 874 deletions

View File

@ -34,6 +34,8 @@ export 'package:holzleitner_api/src/model/car.dart';
export 'package:holzleitner_api/src/model/car_response.dart';
export 'package:holzleitner_api/src/model/cars_list.dart';
export 'package:holzleitner_api/src/model/complete_delivery_acknowledgements.dart';
export 'package:holzleitner_api/src/model/completed_deliveries_response.dart';
export 'package:holzleitner_api/src/model/completed_delivery_item.dart';
export 'package:holzleitner_api/src/model/contact_channel.dart';
export 'package:holzleitner_api/src/model/contact_kind.dart';
export 'package:holzleitner_api/src/model/contact_role.dart';
@ -50,10 +52,13 @@ export 'package:holzleitner_api/src/model/delivery.dart';
export 'package:holzleitner_api/src/model/delivery_credit.dart';
export 'package:holzleitner_api/src/model/delivery_credit_event_request.dart';
export 'package:holzleitner_api/src/model/delivery_credit_response.dart';
export 'package:holzleitner_api/src/model/delivery_details.dart';
export 'package:holzleitner_api/src/model/delivery_item.dart';
export 'package:holzleitner_api/src/model/delivery_note.dart';
export 'package:holzleitner_api/src/model/delivery_note_response.dart';
export 'package:holzleitner_api/src/model/delivery_order_entry.dart';
export 'package:holzleitner_api/src/model/delivery_payment.dart';
export 'package:holzleitner_api/src/model/delivery_payment_response.dart';
export 'package:holzleitner_api/src/model/delivery_response.dart';
export 'package:holzleitner_api/src/model/delivery_service_response.dart';
export 'package:holzleitner_api/src/model/delivery_service_value.dart';
@ -66,6 +71,11 @@ export 'package:holzleitner_api/src/model/mark_mail_sent_response.dart';
export 'package:holzleitner_api/src/model/payment_method.dart';
export 'package:holzleitner_api/src/model/payment_method_response.dart';
export 'package:holzleitner_api/src/model/payment_methods_list.dart';
export 'package:holzleitner_api/src/model/pending_review_response.dart';
export 'package:holzleitner_api/src/model/positions_modified_response.dart';
export 'package:holzleitner_api/src/model/record_delivery_payment_request.dart';
export 'package:holzleitner_api/src/model/resolve_review_request.dart';
export 'package:holzleitner_api/src/model/reviewed_item_response.dart';
export 'package:holzleitner_api/src/model/scan_event.dart';
export 'package:holzleitner_api/src/model/scan_result.dart';
export 'package:holzleitner_api/src/model/scan_result_status.dart';

View File

@ -8,11 +8,17 @@ import 'package:built_value/json_object.dart';
import 'package:built_value/serializer.dart';
import 'package:dio/dio.dart';
import 'package:built_collection/built_collection.dart';
import 'package:holzleitner_api/src/api_util.dart';
import 'package:holzleitner_api/src/model/completed_deliveries_response.dart';
import 'package:holzleitner_api/src/model/delivered_belegnummern_response.dart';
import 'package:holzleitner_api/src/model/delivery_details.dart';
import 'package:holzleitner_api/src/model/import_summary.dart';
import 'package:holzleitner_api/src/model/mark_mail_sent_request.dart';
import 'package:holzleitner_api/src/model/mark_mail_sent_response.dart';
import 'package:holzleitner_api/src/model/pending_review_response.dart';
import 'package:holzleitner_api/src/model/positions_modified_response.dart';
import 'package:holzleitner_api/src/model/resolve_review_request.dart';
class AdminApi {
@ -22,6 +28,181 @@ class AdminApi {
const AdminApi(this._dio, this._serializers);
/// 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. &#x60;404&#x60;, wenn die Belegnummer unbekannt ist.
///
///
/// Parameters:
/// * [belegnummer] - ERP-Belegnummer, z. B. V-30690291
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future] containing a [Response] with a [DeliveryDetails] as data
/// Throws [DioException] if API call or serialization fails
Future<Response<DeliveryDetails>> belegeDetails({
required String belegnummer,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/admin/belege/{belegnummer}'.replaceAll('{' r'belegnummer' '}', encodeQueryParameter(_serializers, belegnummer, const FullType(String)).toString());
final _options = Options(
method: r'GET',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'apiKey',
'name': 'admin_api_key',
'keyName': 'X-Admin-Api-Key',
'where': 'header',
},
],
...?extra,
},
validateStatus: validateStatus,
);
final _response = await _dio.request<Object>(
_path,
options: _options,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
DeliveryDetails? _responseData;
try {
final rawResponse = _response.data;
_responseData = rawResponse == null ? null : _serializers.deserialize(
rawResponse,
specifiedType: const FullType(DeliveryDetails),
) as DeliveryDetails;
} catch (error, stackTrace) {
throw DioException(
requestOptions: _response.requestOptions,
response: _response,
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
return Response<DeliveryDetails>(
data: _responseData,
headers: _response.headers,
isRedirect: _response.isRedirect,
requestOptions: _response.requestOptions,
redirects: _response.redirects,
statusCode: _response.statusCode,
statusMessage: _response.statusMessage,
extra: _response.extra,
);
}
/// 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 (&#x60;completed_at&#x60;).
/// Parameter (alle &#x60;DD-MM-YYYY&#x60;, alle optional): &#x60;day&#x60; &#x3D; Einzeltag (Kurzform &#x60;from&#x3D;to&#x3D;day&#x60;), sonst &#x60;from&#x60;/&#x60;to&#x60; als **inklusive** Bereichsgrenzen (je offen). **Ohne jeden Parameter → ALLE ausgelieferten Belege** (kein Datumsfilter). Pro Lieferung: Belegnummer + &#x60;positions_modified&#x60; (Menge reduziert/Zeile entfernt oder Geld-Gutschrift). Die Halb-Grenzen-Variante ist für Range-Filter gedacht: &#x60;?from&#x3D;…&#x60; und &#x60;?to&#x3D;…&#x60; liefern je eine Menge, deren SQL-&#x60;AND&#x60;-Schnitt den Zeitraum ergibt.
///
/// Parameters:
/// * [day] - Einzeltag DD-MM-YYYY (Kurzform from=to)
/// * [from] - Untere Grenze DD-MM-YYYY (inklusive)
/// * [to] - Obere Grenze DD-MM-YYYY (inklusive)
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future] containing a [Response] with a [CompletedDeliveriesResponse] as data
/// Throws [DioException] if API call or serialization fails
Future<Response<CompletedDeliveriesResponse>> completedDeliveries({
String? day,
String? from,
String? to,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/admin/completed-deliveries';
final _options = Options(
method: r'GET',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'apiKey',
'name': 'admin_api_key',
'keyName': 'X-Admin-Api-Key',
'where': 'header',
},
],
...?extra,
},
validateStatus: validateStatus,
);
final _queryParameters = <String, dynamic>{
if (day != null) r'day': encodeQueryParameter(_serializers, day, const FullType(String)),
if (from != null) r'from': encodeQueryParameter(_serializers, from, const FullType(String)),
if (to != null) r'to': encodeQueryParameter(_serializers, to, const FullType(String)),
};
final _response = await _dio.request<Object>(
_path,
options: _options,
queryParameters: _queryParameters,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
CompletedDeliveriesResponse? _responseData;
try {
final rawResponse = _response.data;
_responseData = rawResponse == null ? null : _serializers.deserialize(
rawResponse,
specifiedType: const FullType(CompletedDeliveriesResponse),
) as CompletedDeliveriesResponse;
} catch (error, stackTrace) {
throw DioException(
requestOptions: _response.requestOptions,
response: _response,
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
return Response<CompletedDeliveriesResponse>(
data: _responseData,
headers: _response.headers,
isRedirect: _response.isRedirect,
requestOptions: _response.requestOptions,
redirects: _response.redirects,
statusCode: _response.statusCode,
statusMessage: _response.statusMessage,
extra: _response.extra,
);
}
/// Liefert die Belegnummern ausgelieferter (abgeschlossener) Lieferungen, **deren Liefermail noch nicht versendet wurde** (&#x60;mail_sent_at IS NULL&#x60;). „Ausgeliefert\&quot; &#x3D; es existiert ein Abschluss. Mit &#x60;day&#x60; (DD-MM-YYYY) nur Abschlüsse dieses Berliner Kalendertages; **ohne &#x60;day&#x60; alle offenen** (über alle Tage) — so bleiben Belege über Mitternacht nicht hängen.
///
///
@ -196,6 +377,86 @@ class AdminApi {
);
}
/// Listet alle geänderten Lieferscheine, die noch auf eine manuelle Bestätigung (Vier-Augen) warten — Entfernungen und/oder Geld-Gutschriften.
///
///
/// Parameters:
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future] containing a [Response] with a [BuiltList<PendingReviewResponse>] as data
/// Throws [DioException] if API call or serialization fails
Future<Response<BuiltList<PendingReviewResponse>>> listReviews({
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/admin/reviews';
final _options = Options(
method: r'GET',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'apiKey',
'name': 'admin_api_key',
'keyName': 'X-Admin-Api-Key',
'where': 'header',
},
],
...?extra,
},
validateStatus: validateStatus,
);
final _response = await _dio.request<Object>(
_path,
options: _options,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
BuiltList<PendingReviewResponse>? _responseData;
try {
final rawResponse = _response.data;
_responseData = rawResponse == null ? null : _serializers.deserialize(
rawResponse,
specifiedType: const FullType(BuiltList, [FullType(PendingReviewResponse)]),
) as BuiltList<PendingReviewResponse>;
} catch (error, stackTrace) {
throw DioException(
requestOptions: _response.requestOptions,
response: _response,
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
return Response<BuiltList<PendingReviewResponse>>(
data: _responseData,
headers: _response.headers,
isRedirect: _response.isRedirect,
requestOptions: _response.requestOptions,
redirects: _response.redirects,
statusCode: _response.statusCode,
statusMessage: _response.statusMessage,
extra: _response.extra,
);
}
/// Markiert die Liefermails der angegebenen Belegnummern als **versendet** (&#x60;mail_sent_at &#x3D; now()&#x60;, nur wo noch offen). Vom Mailclient aufzurufen, NACHDEM ERPframe die Mails erfolgreich verschickt hat — danach erscheinen die Belege nicht mehr in &#x60;GET /admin/delivered-belegnummern&#x60;.
///
///
@ -298,6 +559,88 @@ class AdminApi {
);
}
/// 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. &#x60;404&#x60;, wenn die Belegnummer unbekannt ist. Gibt es mehrere Lieferungen mit derselben Belegnummer, ist das Flag &#x60;true&#x60;, sobald **eine** davon verändert ist.
///
///
/// Parameters:
/// * [belegnummer] - ERP-Belegnummer, z. B. V-30690291
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future] containing a [Response] with a [PositionsModifiedResponse] as data
/// Throws [DioException] if API call or serialization fails
Future<Response<PositionsModifiedResponse>> positionsModified({
required String belegnummer,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/admin/belege/{belegnummer}/positions-modified'.replaceAll('{' r'belegnummer' '}', encodeQueryParameter(_serializers, belegnummer, const FullType(String)).toString());
final _options = Options(
method: r'GET',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'apiKey',
'name': 'admin_api_key',
'keyName': 'X-Admin-Api-Key',
'where': 'header',
},
],
...?extra,
},
validateStatus: validateStatus,
);
final _response = await _dio.request<Object>(
_path,
options: _options,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
PositionsModifiedResponse? _responseData;
try {
final rawResponse = _response.data;
_responseData = rawResponse == null ? null : _serializers.deserialize(
rawResponse,
specifiedType: const FullType(PositionsModifiedResponse),
) as PositionsModifiedResponse;
} catch (error, stackTrace) {
throw DioException(
requestOptions: _response.requestOptions,
response: _response,
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
return Response<PositionsModifiedResponse>(
data: _responseData,
headers: _response.headers,
isRedirect: _response.isRedirect,
requestOptions: _response.requestOptions,
redirects: _response.redirects,
statusCode: _response.statusCode,
statusMessage: _response.statusMessage,
extra: _response.extra,
);
}
/// Stößt das ERP-Rückschreiben eines bereits lokal abgeschlossenen Lieferabschlusses erneut an (idempotenter Retry, falls der automatische Push beim Abschluss fehlschlug).
///
///
@ -357,4 +700,80 @@ class AdminApi {
return _response;
}
/// Bestätigt die Prüfung einer geänderten Lieferung (Vier-Augen) — die Lieferung verschwindet danach aus &#x60;GET /admin/reviews&#x60; (sofern nicht erneut geändert).
///
///
/// Parameters:
/// * [deliveryId] - UUID der Lieferung
/// * [resolveReviewRequest]
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future]
/// Throws [DioException] if API call or serialization fails
Future<Response<void>> resolveReview({
required String deliveryId,
required ResolveReviewRequest resolveReviewRequest,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/admin/reviews/{delivery_id}/resolve'.replaceAll('{' r'delivery_id' '}', encodeQueryParameter(_serializers, deliveryId, const FullType(String)).toString());
final _options = Options(
method: r'POST',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'apiKey',
'name': 'admin_api_key',
'keyName': 'X-Admin-Api-Key',
'where': 'header',
},
],
...?extra,
},
contentType: 'application/json',
validateStatus: validateStatus,
);
dynamic _bodyData;
try {
const _type = FullType(ResolveReviewRequest);
_bodyData = _serializers.serialize(resolveReviewRequest, specifiedType: _type);
} catch(error, stackTrace) {
throw DioException(
requestOptions: _options.compose(
_dio.options,
_path,
),
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
_path,
data: _bodyData,
options: _options,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
return _response;
}
}

View File

@ -15,9 +15,11 @@ import 'package:holzleitner_api/src/model/create_delivery_note_request.dart';
import 'package:holzleitner_api/src/model/delivery_credit_event_request.dart';
import 'package:holzleitner_api/src/model/delivery_credit_response.dart';
import 'package:holzleitner_api/src/model/delivery_note_response.dart';
import 'package:holzleitner_api/src/model/delivery_payment_response.dart';
import 'package:holzleitner_api/src/model/delivery_response.dart';
import 'package:holzleitner_api/src/model/delivery_service_response.dart';
import 'package:holzleitner_api/src/model/hold_delivery_request.dart';
import 'package:holzleitner_api/src/model/record_delivery_payment_request.dart';
import 'package:holzleitner_api/src/model/set_delivery_service_request.dart';
import 'package:holzleitner_api/src/model/update_delivery_note_request.dart';
@ -736,6 +738,109 @@ class DeliveriesApi {
);
}
/// Protokolliert die Zahlungsabwicklung („Abkassieren\&quot;) einer Lieferung. Append-only, idempotent über &#x60;clientEventId&#x60;. Der Server berechnet den offenen Betrag selbst; er muss &gt; 0 sein und &#x60;expectedAmountCents&#x60; entsprechen. Nur bei aktiver Lieferung und aktiver Zahlungsmethode.
///
///
/// Parameters:
/// * [deliveryId]
/// * [recordDeliveryPaymentRequest]
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
/// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
/// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
/// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
///
/// Returns a [Future] containing a [Response] with a [DeliveryPaymentResponse] as data
/// Throws [DioException] if API call or serialization fails
Future<Response<DeliveryPaymentResponse>> recordPayment({
required String deliveryId,
required RecordDeliveryPaymentRequest recordDeliveryPaymentRequest,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/deliveries/{delivery_id}/payment'.replaceAll('{' r'delivery_id' '}', encodeQueryParameter(_serializers, deliveryId, const FullType(String)).toString());
final _options = Options(
method: r'POST',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'http',
'scheme': 'bearer',
'name': 'bearer_auth',
},
],
...?extra,
},
contentType: 'application/json',
validateStatus: validateStatus,
);
dynamic _bodyData;
try {
const _type = FullType(RecordDeliveryPaymentRequest);
_bodyData = _serializers.serialize(recordDeliveryPaymentRequest, specifiedType: _type);
} catch(error, stackTrace) {
throw DioException(
requestOptions: _options.compose(
_dio.options,
_path,
),
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
final _response = await _dio.request<Object>(
_path,
data: _bodyData,
options: _options,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
DeliveryPaymentResponse? _responseData;
try {
final rawResponse = _response.data;
_responseData = rawResponse == null ? null : _serializers.deserialize(
rawResponse,
specifiedType: const FullType(DeliveryPaymentResponse),
) as DeliveryPaymentResponse;
} catch (error, stackTrace) {
throw DioException(
requestOptions: _response.requestOptions,
response: _response,
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
return Response<DeliveryPaymentResponse>(
data: _responseData,
headers: _response.headers,
isRedirect: _response.isRedirect,
requestOptions: _response.requestOptions,
redirects: _response.redirects,
statusCode: _response.statusCode,
statusMessage: _response.statusMessage,
extra: _response.extra,
);
}
/// Setzt die Lieferung zurück auf &#x60;active&#x60;. Nur aus &#x60;held&#x60; zulässig.
///
///

View File

@ -103,11 +103,11 @@ class ToursApi {
);
}
/// Listet die Touren des angemeldeten Fahrers (Filter aus dem JWT) für ein
/// Ziel-Datum. Ohne [date] gilt serverseitig „heute".
/// Listet die Touren des angemeldeten Fahrers (Filter aus dem JWT) für ein Ziel-Datum. Ohne &#x60;?date&#x3D;&#x60; 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).
///
///
/// Parameters:
/// * [date] - Ziel-Tourdatum im Format YYYY-MM-DD (Default: heute)
/// * [date] - Ziel-Tourdatum YYYY-MM-DD (Default: heute)
/// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
/// * [headers] - Can be used to add additional headers to the request
/// * [extras] - Can be used to add flags to the request
@ -117,7 +117,7 @@ class ToursApi {
///
/// Returns a [Future] containing a [Response] with a [TourSummaryList] as data
/// Throws [DioException] if API call or serialization fails
Future<Response<TourSummaryList>> listMyTours({
Future<Response<TourSummaryList>> listMyTours({
String? date,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
@ -146,7 +146,7 @@ class ToursApi {
);
final _queryParameters = <String, dynamic>{
if (date != null) r'date': date,
if (date != null) r'date': encodeQueryParameter(_serializers, date, const FullType(String)),
};
final _response = await _dio.request<Object>(

View File

@ -0,0 +1,166 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:holzleitner_api/src/model/completed_delivery_item.dart';
import 'package:built_collection/built_collection.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'completed_deliveries_response.g.dart';
/// CompletedDeliveriesResponse
///
/// Properties:
/// * [count] - Anzahl der abgeschlossenen Lieferungen im Bereich.
/// * [deliveries] - Die abgeschlossenen Lieferungen, aufsteigend nach Abschluss-Zeitpunkt.
/// * [from] - Wirksame untere Grenze (ISO `YYYY-MM-DD`) oder `null` (offen).
/// * [to] - Wirksame obere Grenze (ISO `YYYY-MM-DD`) oder `null` (offen).
@BuiltValue()
abstract class CompletedDeliveriesResponse implements Built<CompletedDeliveriesResponse, CompletedDeliveriesResponseBuilder> {
/// Anzahl der abgeschlossenen Lieferungen im Bereich.
@BuiltValueField(wireName: r'count')
int get count;
/// Die abgeschlossenen Lieferungen, aufsteigend nach Abschluss-Zeitpunkt.
@BuiltValueField(wireName: r'deliveries')
BuiltList<CompletedDeliveryItem> get deliveries;
/// Wirksame untere Grenze (ISO `YYYY-MM-DD`) oder `null` (offen).
@BuiltValueField(wireName: r'from')
String? get from;
/// Wirksame obere Grenze (ISO `YYYY-MM-DD`) oder `null` (offen).
@BuiltValueField(wireName: r'to')
String? get to;
CompletedDeliveriesResponse._();
factory CompletedDeliveriesResponse([void updates(CompletedDeliveriesResponseBuilder b)]) = _$CompletedDeliveriesResponse;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(CompletedDeliveriesResponseBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<CompletedDeliveriesResponse> get serializer => _$CompletedDeliveriesResponseSerializer();
}
class _$CompletedDeliveriesResponseSerializer implements PrimitiveSerializer<CompletedDeliveriesResponse> {
@override
final Iterable<Type> types = const [CompletedDeliveriesResponse, _$CompletedDeliveriesResponse];
@override
final String wireName = r'CompletedDeliveriesResponse';
Iterable<Object?> _serializeProperties(
Serializers serializers,
CompletedDeliveriesResponse object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
yield r'count';
yield serializers.serialize(
object.count,
specifiedType: const FullType(int),
);
yield r'deliveries';
yield serializers.serialize(
object.deliveries,
specifiedType: const FullType(BuiltList, [FullType(CompletedDeliveryItem)]),
);
if (object.from != null) {
yield r'from';
yield serializers.serialize(
object.from,
specifiedType: const FullType.nullable(String),
);
}
if (object.to != null) {
yield r'to';
yield serializers.serialize(
object.to,
specifiedType: const FullType.nullable(String),
);
}
}
@override
Object serialize(
Serializers serializers,
CompletedDeliveriesResponse object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required CompletedDeliveriesResponseBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'count':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(int),
) as int;
result.count = valueDes;
break;
case r'deliveries':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(BuiltList, [FullType(CompletedDeliveryItem)]),
) as BuiltList<CompletedDeliveryItem>;
result.deliveries.replace(valueDes);
break;
case r'from':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(String),
) as String?;
if (valueDes == null) continue;
result.from = valueDes;
break;
case r'to':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(String),
) as String?;
if (valueDes == null) continue;
result.to = valueDes;
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
CompletedDeliveriesResponse deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = CompletedDeliveriesResponseBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,147 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'completed_deliveries_response.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$CompletedDeliveriesResponse extends CompletedDeliveriesResponse {
@override
final int count;
@override
final BuiltList<CompletedDeliveryItem> deliveries;
@override
final String? from;
@override
final String? to;
factory _$CompletedDeliveriesResponse(
[void Function(CompletedDeliveriesResponseBuilder)? updates]) =>
(CompletedDeliveriesResponseBuilder()..update(updates))._build();
_$CompletedDeliveriesResponse._(
{required this.count, required this.deliveries, this.from, this.to})
: super._();
@override
CompletedDeliveriesResponse rebuild(
void Function(CompletedDeliveriesResponseBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
CompletedDeliveriesResponseBuilder toBuilder() =>
CompletedDeliveriesResponseBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is CompletedDeliveriesResponse &&
count == other.count &&
deliveries == other.deliveries &&
from == other.from &&
to == other.to;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, count.hashCode);
_$hash = $jc(_$hash, deliveries.hashCode);
_$hash = $jc(_$hash, from.hashCode);
_$hash = $jc(_$hash, to.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'CompletedDeliveriesResponse')
..add('count', count)
..add('deliveries', deliveries)
..add('from', from)
..add('to', to))
.toString();
}
}
class CompletedDeliveriesResponseBuilder
implements
Builder<CompletedDeliveriesResponse,
CompletedDeliveriesResponseBuilder> {
_$CompletedDeliveriesResponse? _$v;
int? _count;
int? get count => _$this._count;
set count(int? count) => _$this._count = count;
ListBuilder<CompletedDeliveryItem>? _deliveries;
ListBuilder<CompletedDeliveryItem> get deliveries =>
_$this._deliveries ??= ListBuilder<CompletedDeliveryItem>();
set deliveries(ListBuilder<CompletedDeliveryItem>? deliveries) =>
_$this._deliveries = deliveries;
String? _from;
String? get from => _$this._from;
set from(String? from) => _$this._from = from;
String? _to;
String? get to => _$this._to;
set to(String? to) => _$this._to = to;
CompletedDeliveriesResponseBuilder() {
CompletedDeliveriesResponse._defaults(this);
}
CompletedDeliveriesResponseBuilder get _$this {
final $v = _$v;
if ($v != null) {
_count = $v.count;
_deliveries = $v.deliveries.toBuilder();
_from = $v.from;
_to = $v.to;
_$v = null;
}
return this;
}
@override
void replace(CompletedDeliveriesResponse other) {
_$v = other as _$CompletedDeliveriesResponse;
}
@override
void update(void Function(CompletedDeliveriesResponseBuilder)? updates) {
if (updates != null) updates(this);
}
@override
CompletedDeliveriesResponse build() => _build();
_$CompletedDeliveriesResponse _build() {
_$CompletedDeliveriesResponse _$result;
try {
_$result = _$v ??
_$CompletedDeliveriesResponse._(
count: BuiltValueNullFieldError.checkNotNull(
count, r'CompletedDeliveriesResponse', 'count'),
deliveries: deliveries.build(),
from: from,
to: to,
);
} catch (_) {
late String _$failedField;
try {
_$failedField = 'deliveries';
deliveries.build();
} catch (e) {
throw BuiltValueNestedFieldError(
r'CompletedDeliveriesResponse', _$failedField, e.toString());
}
rethrow;
}
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -0,0 +1,124 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'completed_delivery_item.g.dart';
/// Eine abgeschlossene Lieferung im Tagesabruf.
///
/// Properties:
/// * [belegnummer] - ERP-Belegnummer der Lieferung.
/// * [positionsModified] - `true`, wenn an der Lieferung Positionen verändert wurden — eine Zeile wurde entfernt oder in der Menge reduziert (Stück-Gutschrift) **oder** es liegt eine aktive Geld-Gutschrift vor.
@BuiltValue()
abstract class CompletedDeliveryItem implements Built<CompletedDeliveryItem, CompletedDeliveryItemBuilder> {
/// ERP-Belegnummer der Lieferung.
@BuiltValueField(wireName: r'belegnummer')
String get belegnummer;
/// `true`, wenn an der Lieferung Positionen verändert wurden — eine Zeile wurde entfernt oder in der Menge reduziert (Stück-Gutschrift) **oder** es liegt eine aktive Geld-Gutschrift vor.
@BuiltValueField(wireName: r'positions_modified')
bool get positionsModified;
CompletedDeliveryItem._();
factory CompletedDeliveryItem([void updates(CompletedDeliveryItemBuilder b)]) = _$CompletedDeliveryItem;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(CompletedDeliveryItemBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<CompletedDeliveryItem> get serializer => _$CompletedDeliveryItemSerializer();
}
class _$CompletedDeliveryItemSerializer implements PrimitiveSerializer<CompletedDeliveryItem> {
@override
final Iterable<Type> types = const [CompletedDeliveryItem, _$CompletedDeliveryItem];
@override
final String wireName = r'CompletedDeliveryItem';
Iterable<Object?> _serializeProperties(
Serializers serializers,
CompletedDeliveryItem object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
yield r'belegnummer';
yield serializers.serialize(
object.belegnummer,
specifiedType: const FullType(String),
);
yield r'positions_modified';
yield serializers.serialize(
object.positionsModified,
specifiedType: const FullType(bool),
);
}
@override
Object serialize(
Serializers serializers,
CompletedDeliveryItem object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required CompletedDeliveryItemBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'belegnummer':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.belegnummer = valueDes;
break;
case r'positions_modified':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(bool),
) as bool;
result.positionsModified = valueDes;
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
CompletedDeliveryItem deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = CompletedDeliveryItemBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,110 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'completed_delivery_item.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$CompletedDeliveryItem extends CompletedDeliveryItem {
@override
final String belegnummer;
@override
final bool positionsModified;
factory _$CompletedDeliveryItem(
[void Function(CompletedDeliveryItemBuilder)? updates]) =>
(CompletedDeliveryItemBuilder()..update(updates))._build();
_$CompletedDeliveryItem._(
{required this.belegnummer, required this.positionsModified})
: super._();
@override
CompletedDeliveryItem rebuild(
void Function(CompletedDeliveryItemBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
CompletedDeliveryItemBuilder toBuilder() =>
CompletedDeliveryItemBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is CompletedDeliveryItem &&
belegnummer == other.belegnummer &&
positionsModified == other.positionsModified;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, belegnummer.hashCode);
_$hash = $jc(_$hash, positionsModified.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'CompletedDeliveryItem')
..add('belegnummer', belegnummer)
..add('positionsModified', positionsModified))
.toString();
}
}
class CompletedDeliveryItemBuilder
implements Builder<CompletedDeliveryItem, CompletedDeliveryItemBuilder> {
_$CompletedDeliveryItem? _$v;
String? _belegnummer;
String? get belegnummer => _$this._belegnummer;
set belegnummer(String? belegnummer) => _$this._belegnummer = belegnummer;
bool? _positionsModified;
bool? get positionsModified => _$this._positionsModified;
set positionsModified(bool? positionsModified) =>
_$this._positionsModified = positionsModified;
CompletedDeliveryItemBuilder() {
CompletedDeliveryItem._defaults(this);
}
CompletedDeliveryItemBuilder get _$this {
final $v = _$v;
if ($v != null) {
_belegnummer = $v.belegnummer;
_positionsModified = $v.positionsModified;
_$v = null;
}
return this;
}
@override
void replace(CompletedDeliveryItem other) {
_$v = other as _$CompletedDeliveryItem;
}
@override
void update(void Function(CompletedDeliveryItemBuilder)? updates) {
if (updates != null) updates(this);
}
@override
CompletedDeliveryItem build() => _build();
_$CompletedDeliveryItem _build() {
final _$result = _$v ??
_$CompletedDeliveryItem._(
belegnummer: BuiltValueNullFieldError.checkNotNull(
belegnummer, r'CompletedDeliveryItem', 'belegnummer'),
positionsModified: BuiltValueNullFieldError.checkNotNull(
positionsModified, r'CompletedDeliveryItem', 'positionsModified'),
);
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -0,0 +1,334 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:holzleitner_api/src/model/delivery_credit.dart';
import 'package:holzleitner_api/src/model/delivery_note.dart';
import 'package:holzleitner_api/src/model/delivery_with_items.dart';
import 'package:holzleitner_api/src/model/delivery_payment.dart';
import 'package:holzleitner_api/src/model/article.dart';
import 'package:holzleitner_api/src/model/contact_channel.dart';
import 'package:holzleitner_api/src/model/customer.dart';
import 'package:holzleitner_api/src/model/contact_source.dart';
import 'package:holzleitner_api/src/model/tour.dart';
import 'package:holzleitner_api/src/model/warehouse.dart';
import 'package:built_collection/built_collection.dart';
import 'package:holzleitner_api/src/model/customer_contact.dart';
import 'package:holzleitner_api/src/model/service.dart';
import 'package:holzleitner_api/src/model/delivery_service_value.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'delivery_details.g.dart';
/// DeliveryDetails
///
/// Properties:
/// * [articles] - Nur die von den Positionen referenzierten Artikel.
/// * [contactChannels] - Die zu `contactSources` gehörenden Einzel-Kanäle. Join per `sourceId`.
/// * [contactSources] - Kontaktquellen der Lieferung (Liefer-/Rechnungsadresse, Ansprechpartner …).
/// * [credit] - Aktuelle Betrags-Gutschrift (`null`, wenn keine aktiv).
/// * [customer] - Der Kunde der Lieferung (`null`, falls unauffindbar — sollte nicht vorkommen).
/// * [customerContacts] - Ansprechpartner des Kunden.
/// * [delivery] - Die Lieferung selbst inkl. Positionen (mit Scan-Ständen) und `sortOrder`.
/// * [deliveryServices] - Für diese Lieferung gesetzte Service-Werte.
/// * [notes] - Notizen der Lieferung, aufsteigend nach `createdAt`.
/// * [payment] - Jüngste protokollierte Zahlungsabwicklung (`None` = keine).
/// * [services] - Aktive Service-Definitionen (Stammdaten).
/// * [tour] - Die Tour, zu der die Lieferung gehört.
/// * [warehouses] - Nur die von den Positionen referenzierten Lager.
@BuiltValue()
abstract class DeliveryDetails implements Built<DeliveryDetails, DeliveryDetailsBuilder> {
/// Nur die von den Positionen referenzierten Artikel.
@BuiltValueField(wireName: r'articles')
BuiltList<Article> get articles;
/// Die zu `contactSources` gehörenden Einzel-Kanäle. Join per `sourceId`.
@BuiltValueField(wireName: r'contactChannels')
BuiltList<ContactChannel> get contactChannels;
/// Kontaktquellen der Lieferung (Liefer-/Rechnungsadresse, Ansprechpartner …).
@BuiltValueField(wireName: r'contactSources')
BuiltList<ContactSource> get contactSources;
/// Aktuelle Betrags-Gutschrift (`null`, wenn keine aktiv).
@BuiltValueField(wireName: r'credit')
DeliveryCredit? get credit;
/// Der Kunde der Lieferung (`null`, falls unauffindbar — sollte nicht vorkommen).
@BuiltValueField(wireName: r'customer')
Customer? get customer;
/// Ansprechpartner des Kunden.
@BuiltValueField(wireName: r'customerContacts')
BuiltList<CustomerContact> get customerContacts;
/// Die Lieferung selbst inkl. Positionen (mit Scan-Ständen) und `sortOrder`.
@BuiltValueField(wireName: r'delivery')
DeliveryWithItems get delivery;
/// Für diese Lieferung gesetzte Service-Werte.
@BuiltValueField(wireName: r'deliveryServices')
BuiltList<DeliveryServiceValue> get deliveryServices;
/// Notizen der Lieferung, aufsteigend nach `createdAt`.
@BuiltValueField(wireName: r'notes')
BuiltList<DeliveryNote> get notes;
/// Jüngste protokollierte Zahlungsabwicklung (`None` = keine).
@BuiltValueField(wireName: r'payment')
DeliveryPayment? get payment;
/// Aktive Service-Definitionen (Stammdaten).
@BuiltValueField(wireName: r'services')
BuiltList<Service> get services;
/// Die Tour, zu der die Lieferung gehört.
@BuiltValueField(wireName: r'tour')
Tour get tour;
/// Nur die von den Positionen referenzierten Lager.
@BuiltValueField(wireName: r'warehouses')
BuiltList<Warehouse> get warehouses;
DeliveryDetails._();
factory DeliveryDetails([void updates(DeliveryDetailsBuilder b)]) = _$DeliveryDetails;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(DeliveryDetailsBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<DeliveryDetails> get serializer => _$DeliveryDetailsSerializer();
}
class _$DeliveryDetailsSerializer implements PrimitiveSerializer<DeliveryDetails> {
@override
final Iterable<Type> types = const [DeliveryDetails, _$DeliveryDetails];
@override
final String wireName = r'DeliveryDetails';
Iterable<Object?> _serializeProperties(
Serializers serializers,
DeliveryDetails object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
yield r'articles';
yield serializers.serialize(
object.articles,
specifiedType: const FullType(BuiltList, [FullType(Article)]),
);
yield r'contactChannels';
yield serializers.serialize(
object.contactChannels,
specifiedType: const FullType(BuiltList, [FullType(ContactChannel)]),
);
yield r'contactSources';
yield serializers.serialize(
object.contactSources,
specifiedType: const FullType(BuiltList, [FullType(ContactSource)]),
);
if (object.credit != null) {
yield r'credit';
yield serializers.serialize(
object.credit,
specifiedType: const FullType.nullable(DeliveryCredit),
);
}
if (object.customer != null) {
yield r'customer';
yield serializers.serialize(
object.customer,
specifiedType: const FullType.nullable(Customer),
);
}
yield r'customerContacts';
yield serializers.serialize(
object.customerContacts,
specifiedType: const FullType(BuiltList, [FullType(CustomerContact)]),
);
yield r'delivery';
yield serializers.serialize(
object.delivery,
specifiedType: const FullType(DeliveryWithItems),
);
yield r'deliveryServices';
yield serializers.serialize(
object.deliveryServices,
specifiedType: const FullType(BuiltList, [FullType(DeliveryServiceValue)]),
);
yield r'notes';
yield serializers.serialize(
object.notes,
specifiedType: const FullType(BuiltList, [FullType(DeliveryNote)]),
);
if (object.payment != null) {
yield r'payment';
yield serializers.serialize(
object.payment,
specifiedType: const FullType.nullable(DeliveryPayment),
);
}
yield r'services';
yield serializers.serialize(
object.services,
specifiedType: const FullType(BuiltList, [FullType(Service)]),
);
yield r'tour';
yield serializers.serialize(
object.tour,
specifiedType: const FullType(Tour),
);
yield r'warehouses';
yield serializers.serialize(
object.warehouses,
specifiedType: const FullType(BuiltList, [FullType(Warehouse)]),
);
}
@override
Object serialize(
Serializers serializers,
DeliveryDetails object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required DeliveryDetailsBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'articles':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(BuiltList, [FullType(Article)]),
) as BuiltList<Article>;
result.articles.replace(valueDes);
break;
case r'contactChannels':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(BuiltList, [FullType(ContactChannel)]),
) as BuiltList<ContactChannel>;
result.contactChannels.replace(valueDes);
break;
case r'contactSources':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(BuiltList, [FullType(ContactSource)]),
) as BuiltList<ContactSource>;
result.contactSources.replace(valueDes);
break;
case r'credit':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(DeliveryCredit),
) as DeliveryCredit?;
if (valueDes == null) continue;
result.credit.replace(valueDes);
break;
case r'customer':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(Customer),
) as Customer?;
if (valueDes == null) continue;
result.customer.replace(valueDes);
break;
case r'customerContacts':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(BuiltList, [FullType(CustomerContact)]),
) as BuiltList<CustomerContact>;
result.customerContacts.replace(valueDes);
break;
case r'delivery':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(DeliveryWithItems),
) as DeliveryWithItems;
result.delivery.replace(valueDes);
break;
case r'deliveryServices':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(BuiltList, [FullType(DeliveryServiceValue)]),
) as BuiltList<DeliveryServiceValue>;
result.deliveryServices.replace(valueDes);
break;
case r'notes':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(BuiltList, [FullType(DeliveryNote)]),
) as BuiltList<DeliveryNote>;
result.notes.replace(valueDes);
break;
case r'payment':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(DeliveryPayment),
) as DeliveryPayment?;
if (valueDes == null) continue;
result.payment.replace(valueDes);
break;
case r'services':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(BuiltList, [FullType(Service)]),
) as BuiltList<Service>;
result.services.replace(valueDes);
break;
case r'tour':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(Tour),
) as Tour;
result.tour.replace(valueDes);
break;
case r'warehouses':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(BuiltList, [FullType(Warehouse)]),
) as BuiltList<Warehouse>;
result.warehouses.replace(valueDes);
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
DeliveryDetails deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = DeliveryDetailsBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,291 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'delivery_details.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$DeliveryDetails extends DeliveryDetails {
@override
final BuiltList<Article> articles;
@override
final BuiltList<ContactChannel> contactChannels;
@override
final BuiltList<ContactSource> contactSources;
@override
final DeliveryCredit? credit;
@override
final Customer? customer;
@override
final BuiltList<CustomerContact> customerContacts;
@override
final DeliveryWithItems delivery;
@override
final BuiltList<DeliveryServiceValue> deliveryServices;
@override
final BuiltList<DeliveryNote> notes;
@override
final DeliveryPayment? payment;
@override
final BuiltList<Service> services;
@override
final Tour tour;
@override
final BuiltList<Warehouse> warehouses;
factory _$DeliveryDetails([void Function(DeliveryDetailsBuilder)? updates]) =>
(DeliveryDetailsBuilder()..update(updates))._build();
_$DeliveryDetails._(
{required this.articles,
required this.contactChannels,
required this.contactSources,
this.credit,
this.customer,
required this.customerContacts,
required this.delivery,
required this.deliveryServices,
required this.notes,
this.payment,
required this.services,
required this.tour,
required this.warehouses})
: super._();
@override
DeliveryDetails rebuild(void Function(DeliveryDetailsBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
DeliveryDetailsBuilder toBuilder() => DeliveryDetailsBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is DeliveryDetails &&
articles == other.articles &&
contactChannels == other.contactChannels &&
contactSources == other.contactSources &&
credit == other.credit &&
customer == other.customer &&
customerContacts == other.customerContacts &&
delivery == other.delivery &&
deliveryServices == other.deliveryServices &&
notes == other.notes &&
payment == other.payment &&
services == other.services &&
tour == other.tour &&
warehouses == other.warehouses;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, articles.hashCode);
_$hash = $jc(_$hash, contactChannels.hashCode);
_$hash = $jc(_$hash, contactSources.hashCode);
_$hash = $jc(_$hash, credit.hashCode);
_$hash = $jc(_$hash, customer.hashCode);
_$hash = $jc(_$hash, customerContacts.hashCode);
_$hash = $jc(_$hash, delivery.hashCode);
_$hash = $jc(_$hash, deliveryServices.hashCode);
_$hash = $jc(_$hash, notes.hashCode);
_$hash = $jc(_$hash, payment.hashCode);
_$hash = $jc(_$hash, services.hashCode);
_$hash = $jc(_$hash, tour.hashCode);
_$hash = $jc(_$hash, warehouses.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'DeliveryDetails')
..add('articles', articles)
..add('contactChannels', contactChannels)
..add('contactSources', contactSources)
..add('credit', credit)
..add('customer', customer)
..add('customerContacts', customerContacts)
..add('delivery', delivery)
..add('deliveryServices', deliveryServices)
..add('notes', notes)
..add('payment', payment)
..add('services', services)
..add('tour', tour)
..add('warehouses', warehouses))
.toString();
}
}
class DeliveryDetailsBuilder
implements Builder<DeliveryDetails, DeliveryDetailsBuilder> {
_$DeliveryDetails? _$v;
ListBuilder<Article>? _articles;
ListBuilder<Article> get articles =>
_$this._articles ??= ListBuilder<Article>();
set articles(ListBuilder<Article>? articles) => _$this._articles = articles;
ListBuilder<ContactChannel>? _contactChannels;
ListBuilder<ContactChannel> get contactChannels =>
_$this._contactChannels ??= ListBuilder<ContactChannel>();
set contactChannels(ListBuilder<ContactChannel>? contactChannels) =>
_$this._contactChannels = contactChannels;
ListBuilder<ContactSource>? _contactSources;
ListBuilder<ContactSource> get contactSources =>
_$this._contactSources ??= ListBuilder<ContactSource>();
set contactSources(ListBuilder<ContactSource>? contactSources) =>
_$this._contactSources = contactSources;
DeliveryCreditBuilder? _credit;
DeliveryCreditBuilder get credit =>
_$this._credit ??= DeliveryCreditBuilder();
set credit(DeliveryCreditBuilder? credit) => _$this._credit = credit;
CustomerBuilder? _customer;
CustomerBuilder get customer => _$this._customer ??= CustomerBuilder();
set customer(CustomerBuilder? customer) => _$this._customer = customer;
ListBuilder<CustomerContact>? _customerContacts;
ListBuilder<CustomerContact> get customerContacts =>
_$this._customerContacts ??= ListBuilder<CustomerContact>();
set customerContacts(ListBuilder<CustomerContact>? customerContacts) =>
_$this._customerContacts = customerContacts;
DeliveryWithItemsBuilder? _delivery;
DeliveryWithItemsBuilder get delivery =>
_$this._delivery ??= DeliveryWithItemsBuilder();
set delivery(DeliveryWithItemsBuilder? delivery) =>
_$this._delivery = delivery;
ListBuilder<DeliveryServiceValue>? _deliveryServices;
ListBuilder<DeliveryServiceValue> get deliveryServices =>
_$this._deliveryServices ??= ListBuilder<DeliveryServiceValue>();
set deliveryServices(ListBuilder<DeliveryServiceValue>? deliveryServices) =>
_$this._deliveryServices = deliveryServices;
ListBuilder<DeliveryNote>? _notes;
ListBuilder<DeliveryNote> get notes =>
_$this._notes ??= ListBuilder<DeliveryNote>();
set notes(ListBuilder<DeliveryNote>? notes) => _$this._notes = notes;
DeliveryPaymentBuilder? _payment;
DeliveryPaymentBuilder get payment =>
_$this._payment ??= DeliveryPaymentBuilder();
set payment(DeliveryPaymentBuilder? payment) => _$this._payment = payment;
ListBuilder<Service>? _services;
ListBuilder<Service> get services =>
_$this._services ??= ListBuilder<Service>();
set services(ListBuilder<Service>? services) => _$this._services = services;
TourBuilder? _tour;
TourBuilder get tour => _$this._tour ??= TourBuilder();
set tour(TourBuilder? tour) => _$this._tour = tour;
ListBuilder<Warehouse>? _warehouses;
ListBuilder<Warehouse> get warehouses =>
_$this._warehouses ??= ListBuilder<Warehouse>();
set warehouses(ListBuilder<Warehouse>? warehouses) =>
_$this._warehouses = warehouses;
DeliveryDetailsBuilder() {
DeliveryDetails._defaults(this);
}
DeliveryDetailsBuilder get _$this {
final $v = _$v;
if ($v != null) {
_articles = $v.articles.toBuilder();
_contactChannels = $v.contactChannels.toBuilder();
_contactSources = $v.contactSources.toBuilder();
_credit = $v.credit?.toBuilder();
_customer = $v.customer?.toBuilder();
_customerContacts = $v.customerContacts.toBuilder();
_delivery = $v.delivery.toBuilder();
_deliveryServices = $v.deliveryServices.toBuilder();
_notes = $v.notes.toBuilder();
_payment = $v.payment?.toBuilder();
_services = $v.services.toBuilder();
_tour = $v.tour.toBuilder();
_warehouses = $v.warehouses.toBuilder();
_$v = null;
}
return this;
}
@override
void replace(DeliveryDetails other) {
_$v = other as _$DeliveryDetails;
}
@override
void update(void Function(DeliveryDetailsBuilder)? updates) {
if (updates != null) updates(this);
}
@override
DeliveryDetails build() => _build();
_$DeliveryDetails _build() {
_$DeliveryDetails _$result;
try {
_$result = _$v ??
_$DeliveryDetails._(
articles: articles.build(),
contactChannels: contactChannels.build(),
contactSources: contactSources.build(),
credit: _credit?.build(),
customer: _customer?.build(),
customerContacts: customerContacts.build(),
delivery: delivery.build(),
deliveryServices: deliveryServices.build(),
notes: notes.build(),
payment: _payment?.build(),
services: services.build(),
tour: tour.build(),
warehouses: warehouses.build(),
);
} catch (_) {
late String _$failedField;
try {
_$failedField = 'articles';
articles.build();
_$failedField = 'contactChannels';
contactChannels.build();
_$failedField = 'contactSources';
contactSources.build();
_$failedField = 'credit';
_credit?.build();
_$failedField = 'customer';
_customer?.build();
_$failedField = 'customerContacts';
customerContacts.build();
_$failedField = 'delivery';
delivery.build();
_$failedField = 'deliveryServices';
deliveryServices.build();
_$failedField = 'notes';
notes.build();
_$failedField = 'payment';
_payment?.build();
_$failedField = 'services';
services.build();
_$failedField = 'tour';
tour.build();
_$failedField = 'warehouses';
warehouses.build();
} catch (e) {
throw BuiltValueNestedFieldError(
r'DeliveryDetails', _$failedField, e.toString());
}
rethrow;
}
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -0,0 +1,223 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'delivery_payment.g.dart';
/// Protokollierte Zahlungsabwicklung („Abkassieren\") einer Lieferung. Append-only: jede Bestätigung des Fahrers ist ein eigener Eintrag; im Tour-Aggregat wird pro Lieferung nur der jüngste mitgeliefert. Der Betrag ist der server-seitig berechnete offene Betrag zum Zeitpunkt der Bestätigung. Weicht der aktuelle offene Betrag davon ab (z. B. nach einer neuen Gutschrift), ist der Eintrag veraltet und muss erneuert werden.
///
/// Properties:
/// * [amountCents] - Abgewickelter Betrag in Cent (offener Betrag bei Bestätigung).
/// * [deliveryId]
/// * [id]
/// * [paymentMethodCode] - Snapshot des Methoden-Codes (`cash`, `ec_card`, `invoice`, …).
/// * [paymentMethodId]
/// * [recordedAt]
/// * [recordedByCarId]
/// * [recordedByPersonalnummer]
@BuiltValue()
abstract class DeliveryPayment implements Built<DeliveryPayment, DeliveryPaymentBuilder> {
/// Abgewickelter Betrag in Cent (offener Betrag bei Bestätigung).
@BuiltValueField(wireName: r'amountCents')
int get amountCents;
@BuiltValueField(wireName: r'deliveryId')
String get deliveryId;
@BuiltValueField(wireName: r'id')
String get id;
/// Snapshot des Methoden-Codes (`cash`, `ec_card`, `invoice`, …).
@BuiltValueField(wireName: r'paymentMethodCode')
String get paymentMethodCode;
@BuiltValueField(wireName: r'paymentMethodId')
String get paymentMethodId;
@BuiltValueField(wireName: r'recordedAt')
DateTime get recordedAt;
@BuiltValueField(wireName: r'recordedByCarId')
String? get recordedByCarId;
@BuiltValueField(wireName: r'recordedByPersonalnummer')
int get recordedByPersonalnummer;
DeliveryPayment._();
factory DeliveryPayment([void updates(DeliveryPaymentBuilder b)]) = _$DeliveryPayment;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(DeliveryPaymentBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<DeliveryPayment> get serializer => _$DeliveryPaymentSerializer();
}
class _$DeliveryPaymentSerializer implements PrimitiveSerializer<DeliveryPayment> {
@override
final Iterable<Type> types = const [DeliveryPayment, _$DeliveryPayment];
@override
final String wireName = r'DeliveryPayment';
Iterable<Object?> _serializeProperties(
Serializers serializers,
DeliveryPayment object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
yield r'amountCents';
yield serializers.serialize(
object.amountCents,
specifiedType: const FullType(int),
);
yield r'deliveryId';
yield serializers.serialize(
object.deliveryId,
specifiedType: const FullType(String),
);
yield r'id';
yield serializers.serialize(
object.id,
specifiedType: const FullType(String),
);
yield r'paymentMethodCode';
yield serializers.serialize(
object.paymentMethodCode,
specifiedType: const FullType(String),
);
yield r'paymentMethodId';
yield serializers.serialize(
object.paymentMethodId,
specifiedType: const FullType(String),
);
yield r'recordedAt';
yield serializers.serialize(
object.recordedAt,
specifiedType: const FullType(DateTime),
);
if (object.recordedByCarId != null) {
yield r'recordedByCarId';
yield serializers.serialize(
object.recordedByCarId,
specifiedType: const FullType.nullable(String),
);
}
yield r'recordedByPersonalnummer';
yield serializers.serialize(
object.recordedByPersonalnummer,
specifiedType: const FullType(int),
);
}
@override
Object serialize(
Serializers serializers,
DeliveryPayment object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required DeliveryPaymentBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'amountCents':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(int),
) as int;
result.amountCents = valueDes;
break;
case r'deliveryId':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.deliveryId = valueDes;
break;
case r'id':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.id = valueDes;
break;
case r'paymentMethodCode':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.paymentMethodCode = valueDes;
break;
case r'paymentMethodId':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.paymentMethodId = valueDes;
break;
case r'recordedAt':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(DateTime),
) as DateTime;
result.recordedAt = valueDes;
break;
case r'recordedByCarId':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(String),
) as String?;
if (valueDes == null) continue;
result.recordedByCarId = valueDes;
break;
case r'recordedByPersonalnummer':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(int),
) as int;
result.recordedByPersonalnummer = valueDes;
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
DeliveryPayment deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = DeliveryPaymentBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,190 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'delivery_payment.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$DeliveryPayment extends DeliveryPayment {
@override
final int amountCents;
@override
final String deliveryId;
@override
final String id;
@override
final String paymentMethodCode;
@override
final String paymentMethodId;
@override
final DateTime recordedAt;
@override
final String? recordedByCarId;
@override
final int recordedByPersonalnummer;
factory _$DeliveryPayment([void Function(DeliveryPaymentBuilder)? updates]) =>
(DeliveryPaymentBuilder()..update(updates))._build();
_$DeliveryPayment._(
{required this.amountCents,
required this.deliveryId,
required this.id,
required this.paymentMethodCode,
required this.paymentMethodId,
required this.recordedAt,
this.recordedByCarId,
required this.recordedByPersonalnummer})
: super._();
@override
DeliveryPayment rebuild(void Function(DeliveryPaymentBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
DeliveryPaymentBuilder toBuilder() => DeliveryPaymentBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is DeliveryPayment &&
amountCents == other.amountCents &&
deliveryId == other.deliveryId &&
id == other.id &&
paymentMethodCode == other.paymentMethodCode &&
paymentMethodId == other.paymentMethodId &&
recordedAt == other.recordedAt &&
recordedByCarId == other.recordedByCarId &&
recordedByPersonalnummer == other.recordedByPersonalnummer;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, amountCents.hashCode);
_$hash = $jc(_$hash, deliveryId.hashCode);
_$hash = $jc(_$hash, id.hashCode);
_$hash = $jc(_$hash, paymentMethodCode.hashCode);
_$hash = $jc(_$hash, paymentMethodId.hashCode);
_$hash = $jc(_$hash, recordedAt.hashCode);
_$hash = $jc(_$hash, recordedByCarId.hashCode);
_$hash = $jc(_$hash, recordedByPersonalnummer.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'DeliveryPayment')
..add('amountCents', amountCents)
..add('deliveryId', deliveryId)
..add('id', id)
..add('paymentMethodCode', paymentMethodCode)
..add('paymentMethodId', paymentMethodId)
..add('recordedAt', recordedAt)
..add('recordedByCarId', recordedByCarId)
..add('recordedByPersonalnummer', recordedByPersonalnummer))
.toString();
}
}
class DeliveryPaymentBuilder
implements Builder<DeliveryPayment, DeliveryPaymentBuilder> {
_$DeliveryPayment? _$v;
int? _amountCents;
int? get amountCents => _$this._amountCents;
set amountCents(int? amountCents) => _$this._amountCents = amountCents;
String? _deliveryId;
String? get deliveryId => _$this._deliveryId;
set deliveryId(String? deliveryId) => _$this._deliveryId = deliveryId;
String? _id;
String? get id => _$this._id;
set id(String? id) => _$this._id = id;
String? _paymentMethodCode;
String? get paymentMethodCode => _$this._paymentMethodCode;
set paymentMethodCode(String? paymentMethodCode) =>
_$this._paymentMethodCode = paymentMethodCode;
String? _paymentMethodId;
String? get paymentMethodId => _$this._paymentMethodId;
set paymentMethodId(String? paymentMethodId) =>
_$this._paymentMethodId = paymentMethodId;
DateTime? _recordedAt;
DateTime? get recordedAt => _$this._recordedAt;
set recordedAt(DateTime? recordedAt) => _$this._recordedAt = recordedAt;
String? _recordedByCarId;
String? get recordedByCarId => _$this._recordedByCarId;
set recordedByCarId(String? recordedByCarId) =>
_$this._recordedByCarId = recordedByCarId;
int? _recordedByPersonalnummer;
int? get recordedByPersonalnummer => _$this._recordedByPersonalnummer;
set recordedByPersonalnummer(int? recordedByPersonalnummer) =>
_$this._recordedByPersonalnummer = recordedByPersonalnummer;
DeliveryPaymentBuilder() {
DeliveryPayment._defaults(this);
}
DeliveryPaymentBuilder get _$this {
final $v = _$v;
if ($v != null) {
_amountCents = $v.amountCents;
_deliveryId = $v.deliveryId;
_id = $v.id;
_paymentMethodCode = $v.paymentMethodCode;
_paymentMethodId = $v.paymentMethodId;
_recordedAt = $v.recordedAt;
_recordedByCarId = $v.recordedByCarId;
_recordedByPersonalnummer = $v.recordedByPersonalnummer;
_$v = null;
}
return this;
}
@override
void replace(DeliveryPayment other) {
_$v = other as _$DeliveryPayment;
}
@override
void update(void Function(DeliveryPaymentBuilder)? updates) {
if (updates != null) updates(this);
}
@override
DeliveryPayment build() => _build();
_$DeliveryPayment _build() {
final _$result = _$v ??
_$DeliveryPayment._(
amountCents: BuiltValueNullFieldError.checkNotNull(
amountCents, r'DeliveryPayment', 'amountCents'),
deliveryId: BuiltValueNullFieldError.checkNotNull(
deliveryId, r'DeliveryPayment', 'deliveryId'),
id: BuiltValueNullFieldError.checkNotNull(
id, r'DeliveryPayment', 'id'),
paymentMethodCode: BuiltValueNullFieldError.checkNotNull(
paymentMethodCode, r'DeliveryPayment', 'paymentMethodCode'),
paymentMethodId: BuiltValueNullFieldError.checkNotNull(
paymentMethodId, r'DeliveryPayment', 'paymentMethodId'),
recordedAt: BuiltValueNullFieldError.checkNotNull(
recordedAt, r'DeliveryPayment', 'recordedAt'),
recordedByCarId: recordedByCarId,
recordedByPersonalnummer: BuiltValueNullFieldError.checkNotNull(
recordedByPersonalnummer,
r'DeliveryPayment',
'recordedByPersonalnummer'),
);
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -0,0 +1,107 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:holzleitner_api/src/model/delivery_payment.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'delivery_payment_response.g.dart';
/// DeliveryPaymentResponse
///
/// Properties:
/// * [payment]
@BuiltValue()
abstract class DeliveryPaymentResponse implements Built<DeliveryPaymentResponse, DeliveryPaymentResponseBuilder> {
@BuiltValueField(wireName: r'payment')
DeliveryPayment get payment;
DeliveryPaymentResponse._();
factory DeliveryPaymentResponse([void updates(DeliveryPaymentResponseBuilder b)]) = _$DeliveryPaymentResponse;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(DeliveryPaymentResponseBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<DeliveryPaymentResponse> get serializer => _$DeliveryPaymentResponseSerializer();
}
class _$DeliveryPaymentResponseSerializer implements PrimitiveSerializer<DeliveryPaymentResponse> {
@override
final Iterable<Type> types = const [DeliveryPaymentResponse, _$DeliveryPaymentResponse];
@override
final String wireName = r'DeliveryPaymentResponse';
Iterable<Object?> _serializeProperties(
Serializers serializers,
DeliveryPaymentResponse object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
yield r'payment';
yield serializers.serialize(
object.payment,
specifiedType: const FullType(DeliveryPayment),
);
}
@override
Object serialize(
Serializers serializers,
DeliveryPaymentResponse object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required DeliveryPaymentResponseBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'payment':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(DeliveryPayment),
) as DeliveryPayment;
result.payment.replace(valueDes);
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
DeliveryPaymentResponse deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = DeliveryPaymentResponseBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,108 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'delivery_payment_response.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$DeliveryPaymentResponse extends DeliveryPaymentResponse {
@override
final DeliveryPayment payment;
factory _$DeliveryPaymentResponse(
[void Function(DeliveryPaymentResponseBuilder)? updates]) =>
(DeliveryPaymentResponseBuilder()..update(updates))._build();
_$DeliveryPaymentResponse._({required this.payment}) : super._();
@override
DeliveryPaymentResponse rebuild(
void Function(DeliveryPaymentResponseBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
DeliveryPaymentResponseBuilder toBuilder() =>
DeliveryPaymentResponseBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is DeliveryPaymentResponse && payment == other.payment;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, payment.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'DeliveryPaymentResponse')
..add('payment', payment))
.toString();
}
}
class DeliveryPaymentResponseBuilder
implements
Builder<DeliveryPaymentResponse, DeliveryPaymentResponseBuilder> {
_$DeliveryPaymentResponse? _$v;
DeliveryPaymentBuilder? _payment;
DeliveryPaymentBuilder get payment =>
_$this._payment ??= DeliveryPaymentBuilder();
set payment(DeliveryPaymentBuilder? payment) => _$this._payment = payment;
DeliveryPaymentResponseBuilder() {
DeliveryPaymentResponse._defaults(this);
}
DeliveryPaymentResponseBuilder get _$this {
final $v = _$v;
if ($v != null) {
_payment = $v.payment.toBuilder();
_$v = null;
}
return this;
}
@override
void replace(DeliveryPaymentResponse other) {
_$v = other as _$DeliveryPaymentResponse;
}
@override
void update(void Function(DeliveryPaymentResponseBuilder)? updates) {
if (updates != null) updates(this);
}
@override
DeliveryPaymentResponse build() => _build();
_$DeliveryPaymentResponse _build() {
_$DeliveryPaymentResponse _$result;
try {
_$result = _$v ??
_$DeliveryPaymentResponse._(
payment: payment.build(),
);
} catch (_) {
late String _$failedField;
try {
_$failedField = 'payment';
payment.build();
} catch (e) {
throw BuiltValueNestedFieldError(
r'DeliveryPaymentResponse', _$failedField, e.toString());
}
rethrow;
}
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -0,0 +1,243 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:holzleitner_api/src/model/reviewed_item_response.dart';
import 'package:built_collection/built_collection.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'pending_review_response.g.dart';
/// PendingReviewResponse
///
/// Properties:
/// * [creditedItems] - Entfernte/teil-gutgeschriebene Positionen.
/// * [customerName]
/// * [deliveryId]
/// * [erpBelegartId]
/// * [erpBelegnummer]
/// * [lastChangeAt] - Zeitpunkt der letzten beleg-ändernden Aktion (RFC 3339).
/// * [moneyCreditCents] - Geld-Gutschrift in Cent (0 = keine).
/// * [moneyCreditReason]
/// * [tourDate] - Tourdatum (ISO `YYYY-MM-DD`).
@BuiltValue()
abstract class PendingReviewResponse implements Built<PendingReviewResponse, PendingReviewResponseBuilder> {
/// Entfernte/teil-gutgeschriebene Positionen.
@BuiltValueField(wireName: r'credited_items')
BuiltList<ReviewedItemResponse> get creditedItems;
@BuiltValueField(wireName: r'customer_name')
String get customerName;
@BuiltValueField(wireName: r'delivery_id')
String get deliveryId;
@BuiltValueField(wireName: r'erp_belegart_id')
int get erpBelegartId;
@BuiltValueField(wireName: r'erp_belegnummer')
String get erpBelegnummer;
/// Zeitpunkt der letzten beleg-ändernden Aktion (RFC 3339).
@BuiltValueField(wireName: r'last_change_at')
String get lastChangeAt;
/// Geld-Gutschrift in Cent (0 = keine).
@BuiltValueField(wireName: r'money_credit_cents')
int get moneyCreditCents;
@BuiltValueField(wireName: r'money_credit_reason')
String? get moneyCreditReason;
/// Tourdatum (ISO `YYYY-MM-DD`).
@BuiltValueField(wireName: r'tour_date')
String get tourDate;
PendingReviewResponse._();
factory PendingReviewResponse([void updates(PendingReviewResponseBuilder b)]) = _$PendingReviewResponse;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(PendingReviewResponseBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<PendingReviewResponse> get serializer => _$PendingReviewResponseSerializer();
}
class _$PendingReviewResponseSerializer implements PrimitiveSerializer<PendingReviewResponse> {
@override
final Iterable<Type> types = const [PendingReviewResponse, _$PendingReviewResponse];
@override
final String wireName = r'PendingReviewResponse';
Iterable<Object?> _serializeProperties(
Serializers serializers,
PendingReviewResponse object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
yield r'credited_items';
yield serializers.serialize(
object.creditedItems,
specifiedType: const FullType(BuiltList, [FullType(ReviewedItemResponse)]),
);
yield r'customer_name';
yield serializers.serialize(
object.customerName,
specifiedType: const FullType(String),
);
yield r'delivery_id';
yield serializers.serialize(
object.deliveryId,
specifiedType: const FullType(String),
);
yield r'erp_belegart_id';
yield serializers.serialize(
object.erpBelegartId,
specifiedType: const FullType(int),
);
yield r'erp_belegnummer';
yield serializers.serialize(
object.erpBelegnummer,
specifiedType: const FullType(String),
);
yield r'last_change_at';
yield serializers.serialize(
object.lastChangeAt,
specifiedType: const FullType(String),
);
yield r'money_credit_cents';
yield serializers.serialize(
object.moneyCreditCents,
specifiedType: const FullType(int),
);
if (object.moneyCreditReason != null) {
yield r'money_credit_reason';
yield serializers.serialize(
object.moneyCreditReason,
specifiedType: const FullType.nullable(String),
);
}
yield r'tour_date';
yield serializers.serialize(
object.tourDate,
specifiedType: const FullType(String),
);
}
@override
Object serialize(
Serializers serializers,
PendingReviewResponse object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required PendingReviewResponseBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'credited_items':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(BuiltList, [FullType(ReviewedItemResponse)]),
) as BuiltList<ReviewedItemResponse>;
result.creditedItems.replace(valueDes);
break;
case r'customer_name':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.customerName = valueDes;
break;
case r'delivery_id':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.deliveryId = valueDes;
break;
case r'erp_belegart_id':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(int),
) as int;
result.erpBelegartId = valueDes;
break;
case r'erp_belegnummer':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.erpBelegnummer = valueDes;
break;
case r'last_change_at':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.lastChangeAt = valueDes;
break;
case r'money_credit_cents':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(int),
) as int;
result.moneyCreditCents = valueDes;
break;
case r'money_credit_reason':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(String),
) as String?;
if (valueDes == null) continue;
result.moneyCreditReason = valueDes;
break;
case r'tour_date':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.tourDate = valueDes;
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
PendingReviewResponse deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = PendingReviewResponseBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,218 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'pending_review_response.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$PendingReviewResponse extends PendingReviewResponse {
@override
final BuiltList<ReviewedItemResponse> creditedItems;
@override
final String customerName;
@override
final String deliveryId;
@override
final int erpBelegartId;
@override
final String erpBelegnummer;
@override
final String lastChangeAt;
@override
final int moneyCreditCents;
@override
final String? moneyCreditReason;
@override
final String tourDate;
factory _$PendingReviewResponse(
[void Function(PendingReviewResponseBuilder)? updates]) =>
(PendingReviewResponseBuilder()..update(updates))._build();
_$PendingReviewResponse._(
{required this.creditedItems,
required this.customerName,
required this.deliveryId,
required this.erpBelegartId,
required this.erpBelegnummer,
required this.lastChangeAt,
required this.moneyCreditCents,
this.moneyCreditReason,
required this.tourDate})
: super._();
@override
PendingReviewResponse rebuild(
void Function(PendingReviewResponseBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
PendingReviewResponseBuilder toBuilder() =>
PendingReviewResponseBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is PendingReviewResponse &&
creditedItems == other.creditedItems &&
customerName == other.customerName &&
deliveryId == other.deliveryId &&
erpBelegartId == other.erpBelegartId &&
erpBelegnummer == other.erpBelegnummer &&
lastChangeAt == other.lastChangeAt &&
moneyCreditCents == other.moneyCreditCents &&
moneyCreditReason == other.moneyCreditReason &&
tourDate == other.tourDate;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, creditedItems.hashCode);
_$hash = $jc(_$hash, customerName.hashCode);
_$hash = $jc(_$hash, deliveryId.hashCode);
_$hash = $jc(_$hash, erpBelegartId.hashCode);
_$hash = $jc(_$hash, erpBelegnummer.hashCode);
_$hash = $jc(_$hash, lastChangeAt.hashCode);
_$hash = $jc(_$hash, moneyCreditCents.hashCode);
_$hash = $jc(_$hash, moneyCreditReason.hashCode);
_$hash = $jc(_$hash, tourDate.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'PendingReviewResponse')
..add('creditedItems', creditedItems)
..add('customerName', customerName)
..add('deliveryId', deliveryId)
..add('erpBelegartId', erpBelegartId)
..add('erpBelegnummer', erpBelegnummer)
..add('lastChangeAt', lastChangeAt)
..add('moneyCreditCents', moneyCreditCents)
..add('moneyCreditReason', moneyCreditReason)
..add('tourDate', tourDate))
.toString();
}
}
class PendingReviewResponseBuilder
implements Builder<PendingReviewResponse, PendingReviewResponseBuilder> {
_$PendingReviewResponse? _$v;
ListBuilder<ReviewedItemResponse>? _creditedItems;
ListBuilder<ReviewedItemResponse> get creditedItems =>
_$this._creditedItems ??= ListBuilder<ReviewedItemResponse>();
set creditedItems(ListBuilder<ReviewedItemResponse>? creditedItems) =>
_$this._creditedItems = creditedItems;
String? _customerName;
String? get customerName => _$this._customerName;
set customerName(String? customerName) => _$this._customerName = customerName;
String? _deliveryId;
String? get deliveryId => _$this._deliveryId;
set deliveryId(String? deliveryId) => _$this._deliveryId = deliveryId;
int? _erpBelegartId;
int? get erpBelegartId => _$this._erpBelegartId;
set erpBelegartId(int? erpBelegartId) =>
_$this._erpBelegartId = erpBelegartId;
String? _erpBelegnummer;
String? get erpBelegnummer => _$this._erpBelegnummer;
set erpBelegnummer(String? erpBelegnummer) =>
_$this._erpBelegnummer = erpBelegnummer;
String? _lastChangeAt;
String? get lastChangeAt => _$this._lastChangeAt;
set lastChangeAt(String? lastChangeAt) => _$this._lastChangeAt = lastChangeAt;
int? _moneyCreditCents;
int? get moneyCreditCents => _$this._moneyCreditCents;
set moneyCreditCents(int? moneyCreditCents) =>
_$this._moneyCreditCents = moneyCreditCents;
String? _moneyCreditReason;
String? get moneyCreditReason => _$this._moneyCreditReason;
set moneyCreditReason(String? moneyCreditReason) =>
_$this._moneyCreditReason = moneyCreditReason;
String? _tourDate;
String? get tourDate => _$this._tourDate;
set tourDate(String? tourDate) => _$this._tourDate = tourDate;
PendingReviewResponseBuilder() {
PendingReviewResponse._defaults(this);
}
PendingReviewResponseBuilder get _$this {
final $v = _$v;
if ($v != null) {
_creditedItems = $v.creditedItems.toBuilder();
_customerName = $v.customerName;
_deliveryId = $v.deliveryId;
_erpBelegartId = $v.erpBelegartId;
_erpBelegnummer = $v.erpBelegnummer;
_lastChangeAt = $v.lastChangeAt;
_moneyCreditCents = $v.moneyCreditCents;
_moneyCreditReason = $v.moneyCreditReason;
_tourDate = $v.tourDate;
_$v = null;
}
return this;
}
@override
void replace(PendingReviewResponse other) {
_$v = other as _$PendingReviewResponse;
}
@override
void update(void Function(PendingReviewResponseBuilder)? updates) {
if (updates != null) updates(this);
}
@override
PendingReviewResponse build() => _build();
_$PendingReviewResponse _build() {
_$PendingReviewResponse _$result;
try {
_$result = _$v ??
_$PendingReviewResponse._(
creditedItems: creditedItems.build(),
customerName: BuiltValueNullFieldError.checkNotNull(
customerName, r'PendingReviewResponse', 'customerName'),
deliveryId: BuiltValueNullFieldError.checkNotNull(
deliveryId, r'PendingReviewResponse', 'deliveryId'),
erpBelegartId: BuiltValueNullFieldError.checkNotNull(
erpBelegartId, r'PendingReviewResponse', 'erpBelegartId'),
erpBelegnummer: BuiltValueNullFieldError.checkNotNull(
erpBelegnummer, r'PendingReviewResponse', 'erpBelegnummer'),
lastChangeAt: BuiltValueNullFieldError.checkNotNull(
lastChangeAt, r'PendingReviewResponse', 'lastChangeAt'),
moneyCreditCents: BuiltValueNullFieldError.checkNotNull(
moneyCreditCents, r'PendingReviewResponse', 'moneyCreditCents'),
moneyCreditReason: moneyCreditReason,
tourDate: BuiltValueNullFieldError.checkNotNull(
tourDate, r'PendingReviewResponse', 'tourDate'),
);
} catch (_) {
late String _$failedField;
try {
_$failedField = 'creditedItems';
creditedItems.build();
} catch (e) {
throw BuiltValueNestedFieldError(
r'PendingReviewResponse', _$failedField, e.toString());
}
rethrow;
}
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -0,0 +1,124 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'positions_modified_response.g.dart';
/// PositionsModifiedResponse
///
/// Properties:
/// * [belegnummer] - ERP-Belegnummer, nach der gefragt wurde.
/// * [positionsModified] - `true`, wenn an der Lieferung Positionen verändert wurden — eine Zeile wurde entfernt oder in der Menge reduziert (Stück-Gutschrift) **oder** es liegt eine aktive Geld-Gutschrift vor.
@BuiltValue()
abstract class PositionsModifiedResponse implements Built<PositionsModifiedResponse, PositionsModifiedResponseBuilder> {
/// ERP-Belegnummer, nach der gefragt wurde.
@BuiltValueField(wireName: r'belegnummer')
String get belegnummer;
/// `true`, wenn an der Lieferung Positionen verändert wurden — eine Zeile wurde entfernt oder in der Menge reduziert (Stück-Gutschrift) **oder** es liegt eine aktive Geld-Gutschrift vor.
@BuiltValueField(wireName: r'positions_modified')
bool get positionsModified;
PositionsModifiedResponse._();
factory PositionsModifiedResponse([void updates(PositionsModifiedResponseBuilder b)]) = _$PositionsModifiedResponse;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(PositionsModifiedResponseBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<PositionsModifiedResponse> get serializer => _$PositionsModifiedResponseSerializer();
}
class _$PositionsModifiedResponseSerializer implements PrimitiveSerializer<PositionsModifiedResponse> {
@override
final Iterable<Type> types = const [PositionsModifiedResponse, _$PositionsModifiedResponse];
@override
final String wireName = r'PositionsModifiedResponse';
Iterable<Object?> _serializeProperties(
Serializers serializers,
PositionsModifiedResponse object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
yield r'belegnummer';
yield serializers.serialize(
object.belegnummer,
specifiedType: const FullType(String),
);
yield r'positions_modified';
yield serializers.serialize(
object.positionsModified,
specifiedType: const FullType(bool),
);
}
@override
Object serialize(
Serializers serializers,
PositionsModifiedResponse object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required PositionsModifiedResponseBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'belegnummer':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.belegnummer = valueDes;
break;
case r'positions_modified':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(bool),
) as bool;
result.positionsModified = valueDes;
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
PositionsModifiedResponse deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = PositionsModifiedResponseBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,113 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'positions_modified_response.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$PositionsModifiedResponse extends PositionsModifiedResponse {
@override
final String belegnummer;
@override
final bool positionsModified;
factory _$PositionsModifiedResponse(
[void Function(PositionsModifiedResponseBuilder)? updates]) =>
(PositionsModifiedResponseBuilder()..update(updates))._build();
_$PositionsModifiedResponse._(
{required this.belegnummer, required this.positionsModified})
: super._();
@override
PositionsModifiedResponse rebuild(
void Function(PositionsModifiedResponseBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
PositionsModifiedResponseBuilder toBuilder() =>
PositionsModifiedResponseBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is PositionsModifiedResponse &&
belegnummer == other.belegnummer &&
positionsModified == other.positionsModified;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, belegnummer.hashCode);
_$hash = $jc(_$hash, positionsModified.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'PositionsModifiedResponse')
..add('belegnummer', belegnummer)
..add('positionsModified', positionsModified))
.toString();
}
}
class PositionsModifiedResponseBuilder
implements
Builder<PositionsModifiedResponse, PositionsModifiedResponseBuilder> {
_$PositionsModifiedResponse? _$v;
String? _belegnummer;
String? get belegnummer => _$this._belegnummer;
set belegnummer(String? belegnummer) => _$this._belegnummer = belegnummer;
bool? _positionsModified;
bool? get positionsModified => _$this._positionsModified;
set positionsModified(bool? positionsModified) =>
_$this._positionsModified = positionsModified;
PositionsModifiedResponseBuilder() {
PositionsModifiedResponse._defaults(this);
}
PositionsModifiedResponseBuilder get _$this {
final $v = _$v;
if ($v != null) {
_belegnummer = $v.belegnummer;
_positionsModified = $v.positionsModified;
_$v = null;
}
return this;
}
@override
void replace(PositionsModifiedResponse other) {
_$v = other as _$PositionsModifiedResponse;
}
@override
void update(void Function(PositionsModifiedResponseBuilder)? updates) {
if (updates != null) updates(this);
}
@override
PositionsModifiedResponse build() => _build();
_$PositionsModifiedResponse _build() {
final _$result = _$v ??
_$PositionsModifiedResponse._(
belegnummer: BuiltValueNullFieldError.checkNotNull(
belegnummer, r'PositionsModifiedResponse', 'belegnummer'),
positionsModified: BuiltValueNullFieldError.checkNotNull(
positionsModified,
r'PositionsModifiedResponse',
'positionsModified'),
);
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -0,0 +1,161 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'record_delivery_payment_request.g.dart';
/// RecordDeliveryPaymentRequest
///
/// Properties:
/// * [authorCarId] - Fahrzeug des Akteurs (Audit-Spur). Muss zum Account gehören.
/// * [clientEventId] - Idempotenz-Schlüssel — pro Bestätigung genau einmal vergeben.
/// * [expectedAmountCents] - Betrag in Cent, den der Fahrer in der App gesehen und bestätigt hat. Der Server berechnet den offenen Betrag selbst und lehnt ab, wenn er davon abweicht — so landet nie ein Betrag im Protokoll, den der Fahrer nicht gesehen hat.
/// * [paymentMethodId] - Gewählte Zahlungsmethode. Muss existieren und aktiv sein.
@BuiltValue()
abstract class RecordDeliveryPaymentRequest implements Built<RecordDeliveryPaymentRequest, RecordDeliveryPaymentRequestBuilder> {
/// Fahrzeug des Akteurs (Audit-Spur). Muss zum Account gehören.
@BuiltValueField(wireName: r'authorCarId')
String? get authorCarId;
/// Idempotenz-Schlüssel — pro Bestätigung genau einmal vergeben.
@BuiltValueField(wireName: r'clientEventId')
String get clientEventId;
/// Betrag in Cent, den der Fahrer in der App gesehen und bestätigt hat. Der Server berechnet den offenen Betrag selbst und lehnt ab, wenn er davon abweicht — so landet nie ein Betrag im Protokoll, den der Fahrer nicht gesehen hat.
@BuiltValueField(wireName: r'expectedAmountCents')
int get expectedAmountCents;
/// Gewählte Zahlungsmethode. Muss existieren und aktiv sein.
@BuiltValueField(wireName: r'paymentMethodId')
String get paymentMethodId;
RecordDeliveryPaymentRequest._();
factory RecordDeliveryPaymentRequest([void updates(RecordDeliveryPaymentRequestBuilder b)]) = _$RecordDeliveryPaymentRequest;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(RecordDeliveryPaymentRequestBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<RecordDeliveryPaymentRequest> get serializer => _$RecordDeliveryPaymentRequestSerializer();
}
class _$RecordDeliveryPaymentRequestSerializer implements PrimitiveSerializer<RecordDeliveryPaymentRequest> {
@override
final Iterable<Type> types = const [RecordDeliveryPaymentRequest, _$RecordDeliveryPaymentRequest];
@override
final String wireName = r'RecordDeliveryPaymentRequest';
Iterable<Object?> _serializeProperties(
Serializers serializers,
RecordDeliveryPaymentRequest object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
if (object.authorCarId != null) {
yield r'authorCarId';
yield serializers.serialize(
object.authorCarId,
specifiedType: const FullType.nullable(String),
);
}
yield r'clientEventId';
yield serializers.serialize(
object.clientEventId,
specifiedType: const FullType(String),
);
yield r'expectedAmountCents';
yield serializers.serialize(
object.expectedAmountCents,
specifiedType: const FullType(int),
);
yield r'paymentMethodId';
yield serializers.serialize(
object.paymentMethodId,
specifiedType: const FullType(String),
);
}
@override
Object serialize(
Serializers serializers,
RecordDeliveryPaymentRequest object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required RecordDeliveryPaymentRequestBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'authorCarId':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(String),
) as String?;
if (valueDes == null) continue;
result.authorCarId = valueDes;
break;
case r'clientEventId':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.clientEventId = valueDes;
break;
case r'expectedAmountCents':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(int),
) as int;
result.expectedAmountCents = valueDes;
break;
case r'paymentMethodId':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.paymentMethodId = valueDes;
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
RecordDeliveryPaymentRequest deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = RecordDeliveryPaymentRequestBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,144 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'record_delivery_payment_request.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$RecordDeliveryPaymentRequest extends RecordDeliveryPaymentRequest {
@override
final String? authorCarId;
@override
final String clientEventId;
@override
final int expectedAmountCents;
@override
final String paymentMethodId;
factory _$RecordDeliveryPaymentRequest(
[void Function(RecordDeliveryPaymentRequestBuilder)? updates]) =>
(RecordDeliveryPaymentRequestBuilder()..update(updates))._build();
_$RecordDeliveryPaymentRequest._(
{this.authorCarId,
required this.clientEventId,
required this.expectedAmountCents,
required this.paymentMethodId})
: super._();
@override
RecordDeliveryPaymentRequest rebuild(
void Function(RecordDeliveryPaymentRequestBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
RecordDeliveryPaymentRequestBuilder toBuilder() =>
RecordDeliveryPaymentRequestBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is RecordDeliveryPaymentRequest &&
authorCarId == other.authorCarId &&
clientEventId == other.clientEventId &&
expectedAmountCents == other.expectedAmountCents &&
paymentMethodId == other.paymentMethodId;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, authorCarId.hashCode);
_$hash = $jc(_$hash, clientEventId.hashCode);
_$hash = $jc(_$hash, expectedAmountCents.hashCode);
_$hash = $jc(_$hash, paymentMethodId.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'RecordDeliveryPaymentRequest')
..add('authorCarId', authorCarId)
..add('clientEventId', clientEventId)
..add('expectedAmountCents', expectedAmountCents)
..add('paymentMethodId', paymentMethodId))
.toString();
}
}
class RecordDeliveryPaymentRequestBuilder
implements
Builder<RecordDeliveryPaymentRequest,
RecordDeliveryPaymentRequestBuilder> {
_$RecordDeliveryPaymentRequest? _$v;
String? _authorCarId;
String? get authorCarId => _$this._authorCarId;
set authorCarId(String? authorCarId) => _$this._authorCarId = authorCarId;
String? _clientEventId;
String? get clientEventId => _$this._clientEventId;
set clientEventId(String? clientEventId) =>
_$this._clientEventId = clientEventId;
int? _expectedAmountCents;
int? get expectedAmountCents => _$this._expectedAmountCents;
set expectedAmountCents(int? expectedAmountCents) =>
_$this._expectedAmountCents = expectedAmountCents;
String? _paymentMethodId;
String? get paymentMethodId => _$this._paymentMethodId;
set paymentMethodId(String? paymentMethodId) =>
_$this._paymentMethodId = paymentMethodId;
RecordDeliveryPaymentRequestBuilder() {
RecordDeliveryPaymentRequest._defaults(this);
}
RecordDeliveryPaymentRequestBuilder get _$this {
final $v = _$v;
if ($v != null) {
_authorCarId = $v.authorCarId;
_clientEventId = $v.clientEventId;
_expectedAmountCents = $v.expectedAmountCents;
_paymentMethodId = $v.paymentMethodId;
_$v = null;
}
return this;
}
@override
void replace(RecordDeliveryPaymentRequest other) {
_$v = other as _$RecordDeliveryPaymentRequest;
}
@override
void update(void Function(RecordDeliveryPaymentRequestBuilder)? updates) {
if (updates != null) updates(this);
}
@override
RecordDeliveryPaymentRequest build() => _build();
_$RecordDeliveryPaymentRequest _build() {
final _$result = _$v ??
_$RecordDeliveryPaymentRequest._(
authorCarId: authorCarId,
clientEventId: BuiltValueNullFieldError.checkNotNull(
clientEventId, r'RecordDeliveryPaymentRequest', 'clientEventId'),
expectedAmountCents: BuiltValueNullFieldError.checkNotNull(
expectedAmountCents,
r'RecordDeliveryPaymentRequest',
'expectedAmountCents'),
paymentMethodId: BuiltValueNullFieldError.checkNotNull(
paymentMethodId,
r'RecordDeliveryPaymentRequest',
'paymentMethodId'),
);
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -0,0 +1,127 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'resolve_review_request.g.dart';
/// ResolveReviewRequest
///
/// Properties:
/// * [note] - Optionale Notiz zur getroffenen Entscheidung.
/// * [resolvedBy] - Bearbeiter (Name/Kürzel), der die Prüfung bestätigt.
@BuiltValue()
abstract class ResolveReviewRequest implements Built<ResolveReviewRequest, ResolveReviewRequestBuilder> {
/// Optionale Notiz zur getroffenen Entscheidung.
@BuiltValueField(wireName: r'note')
String? get note;
/// Bearbeiter (Name/Kürzel), der die Prüfung bestätigt.
@BuiltValueField(wireName: r'resolved_by')
String get resolvedBy;
ResolveReviewRequest._();
factory ResolveReviewRequest([void updates(ResolveReviewRequestBuilder b)]) = _$ResolveReviewRequest;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(ResolveReviewRequestBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<ResolveReviewRequest> get serializer => _$ResolveReviewRequestSerializer();
}
class _$ResolveReviewRequestSerializer implements PrimitiveSerializer<ResolveReviewRequest> {
@override
final Iterable<Type> types = const [ResolveReviewRequest, _$ResolveReviewRequest];
@override
final String wireName = r'ResolveReviewRequest';
Iterable<Object?> _serializeProperties(
Serializers serializers,
ResolveReviewRequest object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
if (object.note != null) {
yield r'note';
yield serializers.serialize(
object.note,
specifiedType: const FullType.nullable(String),
);
}
yield r'resolved_by';
yield serializers.serialize(
object.resolvedBy,
specifiedType: const FullType(String),
);
}
@override
Object serialize(
Serializers serializers,
ResolveReviewRequest object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required ResolveReviewRequestBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'note':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(String),
) as String?;
if (valueDes == null) continue;
result.note = valueDes;
break;
case r'resolved_by':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.resolvedBy = valueDes;
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
ResolveReviewRequest deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = ResolveReviewRequestBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,106 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'resolve_review_request.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$ResolveReviewRequest extends ResolveReviewRequest {
@override
final String? note;
@override
final String resolvedBy;
factory _$ResolveReviewRequest(
[void Function(ResolveReviewRequestBuilder)? updates]) =>
(ResolveReviewRequestBuilder()..update(updates))._build();
_$ResolveReviewRequest._({this.note, required this.resolvedBy}) : super._();
@override
ResolveReviewRequest rebuild(
void Function(ResolveReviewRequestBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
ResolveReviewRequestBuilder toBuilder() =>
ResolveReviewRequestBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is ResolveReviewRequest &&
note == other.note &&
resolvedBy == other.resolvedBy;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, note.hashCode);
_$hash = $jc(_$hash, resolvedBy.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'ResolveReviewRequest')
..add('note', note)
..add('resolvedBy', resolvedBy))
.toString();
}
}
class ResolveReviewRequestBuilder
implements Builder<ResolveReviewRequest, ResolveReviewRequestBuilder> {
_$ResolveReviewRequest? _$v;
String? _note;
String? get note => _$this._note;
set note(String? note) => _$this._note = note;
String? _resolvedBy;
String? get resolvedBy => _$this._resolvedBy;
set resolvedBy(String? resolvedBy) => _$this._resolvedBy = resolvedBy;
ResolveReviewRequestBuilder() {
ResolveReviewRequest._defaults(this);
}
ResolveReviewRequestBuilder get _$this {
final $v = _$v;
if ($v != null) {
_note = $v.note;
_resolvedBy = $v.resolvedBy;
_$v = null;
}
return this;
}
@override
void replace(ResolveReviewRequest other) {
_$v = other as _$ResolveReviewRequest;
}
@override
void update(void Function(ResolveReviewRequestBuilder)? updates) {
if (updates != null) updates(this);
}
@override
ResolveReviewRequest build() => _build();
_$ResolveReviewRequest _build() {
final _$result = _$v ??
_$ResolveReviewRequest._(
note: note,
resolvedBy: BuiltValueNullFieldError.checkNotNull(
resolvedBy, r'ResolveReviewRequest', 'resolvedBy'),
);
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -0,0 +1,189 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// ignore_for_file: unused_element
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
part 'reviewed_item_response.g.dart';
/// ReviewedItemResponse
///
/// Properties:
/// * [articleName]
/// * [artikelNr]
/// * [belegzeilenNr]
/// * [creditedQuantity]
/// * [reason]
/// * [requiredQuantity]
@BuiltValue()
abstract class ReviewedItemResponse implements Built<ReviewedItemResponse, ReviewedItemResponseBuilder> {
@BuiltValueField(wireName: r'article_name')
String get articleName;
@BuiltValueField(wireName: r'artikel_nr')
String get artikelNr;
@BuiltValueField(wireName: r'belegzeilen_nr')
int get belegzeilenNr;
@BuiltValueField(wireName: r'credited_quantity')
int get creditedQuantity;
@BuiltValueField(wireName: r'reason')
String? get reason;
@BuiltValueField(wireName: r'required_quantity')
int get requiredQuantity;
ReviewedItemResponse._();
factory ReviewedItemResponse([void updates(ReviewedItemResponseBuilder b)]) = _$ReviewedItemResponse;
@BuiltValueHook(initializeBuilder: true)
static void _defaults(ReviewedItemResponseBuilder b) => b;
@BuiltValueSerializer(custom: true)
static Serializer<ReviewedItemResponse> get serializer => _$ReviewedItemResponseSerializer();
}
class _$ReviewedItemResponseSerializer implements PrimitiveSerializer<ReviewedItemResponse> {
@override
final Iterable<Type> types = const [ReviewedItemResponse, _$ReviewedItemResponse];
@override
final String wireName = r'ReviewedItemResponse';
Iterable<Object?> _serializeProperties(
Serializers serializers,
ReviewedItemResponse object, {
FullType specifiedType = FullType.unspecified,
}) sync* {
yield r'article_name';
yield serializers.serialize(
object.articleName,
specifiedType: const FullType(String),
);
yield r'artikel_nr';
yield serializers.serialize(
object.artikelNr,
specifiedType: const FullType(String),
);
yield r'belegzeilen_nr';
yield serializers.serialize(
object.belegzeilenNr,
specifiedType: const FullType(int),
);
yield r'credited_quantity';
yield serializers.serialize(
object.creditedQuantity,
specifiedType: const FullType(int),
);
if (object.reason != null) {
yield r'reason';
yield serializers.serialize(
object.reason,
specifiedType: const FullType.nullable(String),
);
}
yield r'required_quantity';
yield serializers.serialize(
object.requiredQuantity,
specifiedType: const FullType(int),
);
}
@override
Object serialize(
Serializers serializers,
ReviewedItemResponse object, {
FullType specifiedType = FullType.unspecified,
}) {
return _serializeProperties(serializers, object, specifiedType: specifiedType).toList();
}
void _deserializeProperties(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
required List<Object?> serializedList,
required ReviewedItemResponseBuilder result,
required List<Object?> unhandled,
}) {
for (var i = 0; i < serializedList.length; i += 2) {
final key = serializedList[i] as String;
final value = serializedList[i + 1];
switch (key) {
case r'article_name':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.articleName = valueDes;
break;
case r'artikel_nr':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(String),
) as String;
result.artikelNr = valueDes;
break;
case r'belegzeilen_nr':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(int),
) as int;
result.belegzeilenNr = valueDes;
break;
case r'credited_quantity':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(int),
) as int;
result.creditedQuantity = valueDes;
break;
case r'reason':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType.nullable(String),
) as String?;
if (valueDes == null) continue;
result.reason = valueDes;
break;
case r'required_quantity':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(int),
) as int;
result.requiredQuantity = valueDes;
break;
default:
unhandled.add(key);
unhandled.add(value);
break;
}
}
}
@override
ReviewedItemResponse deserialize(
Serializers serializers,
Object serialized, {
FullType specifiedType = FullType.unspecified,
}) {
final result = ReviewedItemResponseBuilder();
final serializedList = (serialized as Iterable<Object?>).toList();
final unhandled = <Object?>[];
_deserializeProperties(
serializers,
serialized,
specifiedType: specifiedType,
serializedList: serializedList,
unhandled: unhandled,
result: result,
);
return result.build();
}
}

View File

@ -0,0 +1,164 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'reviewed_item_response.dart';
// **************************************************************************
// BuiltValueGenerator
// **************************************************************************
class _$ReviewedItemResponse extends ReviewedItemResponse {
@override
final String articleName;
@override
final String artikelNr;
@override
final int belegzeilenNr;
@override
final int creditedQuantity;
@override
final String? reason;
@override
final int requiredQuantity;
factory _$ReviewedItemResponse(
[void Function(ReviewedItemResponseBuilder)? updates]) =>
(ReviewedItemResponseBuilder()..update(updates))._build();
_$ReviewedItemResponse._(
{required this.articleName,
required this.artikelNr,
required this.belegzeilenNr,
required this.creditedQuantity,
this.reason,
required this.requiredQuantity})
: super._();
@override
ReviewedItemResponse rebuild(
void Function(ReviewedItemResponseBuilder) updates) =>
(toBuilder()..update(updates)).build();
@override
ReviewedItemResponseBuilder toBuilder() =>
ReviewedItemResponseBuilder()..replace(this);
@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is ReviewedItemResponse &&
articleName == other.articleName &&
artikelNr == other.artikelNr &&
belegzeilenNr == other.belegzeilenNr &&
creditedQuantity == other.creditedQuantity &&
reason == other.reason &&
requiredQuantity == other.requiredQuantity;
}
@override
int get hashCode {
var _$hash = 0;
_$hash = $jc(_$hash, articleName.hashCode);
_$hash = $jc(_$hash, artikelNr.hashCode);
_$hash = $jc(_$hash, belegzeilenNr.hashCode);
_$hash = $jc(_$hash, creditedQuantity.hashCode);
_$hash = $jc(_$hash, reason.hashCode);
_$hash = $jc(_$hash, requiredQuantity.hashCode);
_$hash = $jf(_$hash);
return _$hash;
}
@override
String toString() {
return (newBuiltValueToStringHelper(r'ReviewedItemResponse')
..add('articleName', articleName)
..add('artikelNr', artikelNr)
..add('belegzeilenNr', belegzeilenNr)
..add('creditedQuantity', creditedQuantity)
..add('reason', reason)
..add('requiredQuantity', requiredQuantity))
.toString();
}
}
class ReviewedItemResponseBuilder
implements Builder<ReviewedItemResponse, ReviewedItemResponseBuilder> {
_$ReviewedItemResponse? _$v;
String? _articleName;
String? get articleName => _$this._articleName;
set articleName(String? articleName) => _$this._articleName = articleName;
String? _artikelNr;
String? get artikelNr => _$this._artikelNr;
set artikelNr(String? artikelNr) => _$this._artikelNr = artikelNr;
int? _belegzeilenNr;
int? get belegzeilenNr => _$this._belegzeilenNr;
set belegzeilenNr(int? belegzeilenNr) =>
_$this._belegzeilenNr = belegzeilenNr;
int? _creditedQuantity;
int? get creditedQuantity => _$this._creditedQuantity;
set creditedQuantity(int? creditedQuantity) =>
_$this._creditedQuantity = creditedQuantity;
String? _reason;
String? get reason => _$this._reason;
set reason(String? reason) => _$this._reason = reason;
int? _requiredQuantity;
int? get requiredQuantity => _$this._requiredQuantity;
set requiredQuantity(int? requiredQuantity) =>
_$this._requiredQuantity = requiredQuantity;
ReviewedItemResponseBuilder() {
ReviewedItemResponse._defaults(this);
}
ReviewedItemResponseBuilder get _$this {
final $v = _$v;
if ($v != null) {
_articleName = $v.articleName;
_artikelNr = $v.artikelNr;
_belegzeilenNr = $v.belegzeilenNr;
_creditedQuantity = $v.creditedQuantity;
_reason = $v.reason;
_requiredQuantity = $v.requiredQuantity;
_$v = null;
}
return this;
}
@override
void replace(ReviewedItemResponse other) {
_$v = other as _$ReviewedItemResponse;
}
@override
void update(void Function(ReviewedItemResponseBuilder)? updates) {
if (updates != null) updates(this);
}
@override
ReviewedItemResponse build() => _build();
_$ReviewedItemResponse _build() {
final _$result = _$v ??
_$ReviewedItemResponse._(
articleName: BuiltValueNullFieldError.checkNotNull(
articleName, r'ReviewedItemResponse', 'articleName'),
artikelNr: BuiltValueNullFieldError.checkNotNull(
artikelNr, r'ReviewedItemResponse', 'artikelNr'),
belegzeilenNr: BuiltValueNullFieldError.checkNotNull(
belegzeilenNr, r'ReviewedItemResponse', 'belegzeilenNr'),
creditedQuantity: BuiltValueNullFieldError.checkNotNull(
creditedQuantity, r'ReviewedItemResponse', 'creditedQuantity'),
reason: reason,
requiredQuantity: BuiltValueNullFieldError.checkNotNull(
requiredQuantity, r'ReviewedItemResponse', 'requiredQuantity'),
);
replace(_$result);
return _$result;
}
}
// ignore_for_file: deprecated_member_use_from_same_package,type=lint

View File

@ -6,6 +6,7 @@
import 'package:holzleitner_api/src/model/delivery_credit.dart';
import 'package:holzleitner_api/src/model/delivery_note.dart';
import 'package:holzleitner_api/src/model/delivery_with_items.dart';
import 'package:holzleitner_api/src/model/delivery_payment.dart';
import 'package:holzleitner_api/src/model/article.dart';
import 'package:holzleitner_api/src/model/contact_channel.dart';
import 'package:holzleitner_api/src/model/customer.dart';
@ -33,6 +34,7 @@ part 'tour_details.g.dart';
/// * [deliveries]
/// * [deliveryServices] - Pro-Lieferung gesetzte Service-Werte. Join per `delivery_id` + `service_id`.
/// * [notes] - Alle Notizen aller Lieferungen dieser Tour, in einer Liste. Die App joint clientseitig per `delivery_id`. Reihenfolge: pro Lieferung aufsteigend nach `created_at`.
/// * [payments] - Jüngste protokollierte Zahlungsabwicklung pro Lieferung (nur Lieferungen mit mindestens einem Eintrag). Join per `delivery_id`.
/// * [services] - Aktive Service-Definitionen (Stammdaten) — die App rendert daraus Phase 4. Bewusst hier mitgeliefert, damit die Detailseite alles aus dem Tour-Aggregat hat.
/// * [tour]
/// * [warehouses]
@ -70,6 +72,10 @@ abstract class TourDetails implements Built<TourDetails, TourDetailsBuilder> {
@BuiltValueField(wireName: r'notes')
BuiltList<DeliveryNote> get notes;
/// Jüngste protokollierte Zahlungsabwicklung pro Lieferung (nur Lieferungen mit mindestens einem Eintrag). Join per `delivery_id`.
@BuiltValueField(wireName: r'payments')
BuiltList<DeliveryPayment> get payments;
/// Aktive Service-Definitionen (Stammdaten) — die App rendert daraus Phase 4. Bewusst hier mitgeliefert, damit die Detailseite alles aus dem Tour-Aggregat hat.
@BuiltValueField(wireName: r'services')
BuiltList<Service> get services;
@ -148,6 +154,11 @@ class _$TourDetailsSerializer implements PrimitiveSerializer<TourDetails> {
object.notes,
specifiedType: const FullType(BuiltList, [FullType(DeliveryNote)]),
);
yield r'payments';
yield serializers.serialize(
object.payments,
specifiedType: const FullType(BuiltList, [FullType(DeliveryPayment)]),
);
yield r'services';
yield serializers.serialize(
object.services,
@ -249,6 +260,13 @@ class _$TourDetailsSerializer implements PrimitiveSerializer<TourDetails> {
) as BuiltList<DeliveryNote>;
result.notes.replace(valueDes);
break;
case r'payments':
final valueDes = serializers.deserialize(
value,
specifiedType: const FullType(BuiltList, [FullType(DeliveryPayment)]),
) as BuiltList<DeliveryPayment>;
result.payments.replace(valueDes);
break;
case r'services':
final valueDes = serializers.deserialize(
value,

View File

@ -26,6 +26,8 @@ class _$TourDetails extends TourDetails {
@override
final BuiltList<DeliveryNote> notes;
@override
final BuiltList<DeliveryPayment> payments;
@override
final BuiltList<Service> services;
@override
final Tour tour;
@ -45,6 +47,7 @@ class _$TourDetails extends TourDetails {
required this.deliveries,
required this.deliveryServices,
required this.notes,
required this.payments,
required this.services,
required this.tour,
required this.warehouses})
@ -69,6 +72,7 @@ class _$TourDetails extends TourDetails {
deliveries == other.deliveries &&
deliveryServices == other.deliveryServices &&
notes == other.notes &&
payments == other.payments &&
services == other.services &&
tour == other.tour &&
warehouses == other.warehouses;
@ -86,6 +90,7 @@ class _$TourDetails extends TourDetails {
_$hash = $jc(_$hash, deliveries.hashCode);
_$hash = $jc(_$hash, deliveryServices.hashCode);
_$hash = $jc(_$hash, notes.hashCode);
_$hash = $jc(_$hash, payments.hashCode);
_$hash = $jc(_$hash, services.hashCode);
_$hash = $jc(_$hash, tour.hashCode);
_$hash = $jc(_$hash, warehouses.hashCode);
@ -105,6 +110,7 @@ class _$TourDetails extends TourDetails {
..add('deliveries', deliveries)
..add('deliveryServices', deliveryServices)
..add('notes', notes)
..add('payments', payments)
..add('services', services)
..add('tour', tour)
..add('warehouses', warehouses))
@ -167,6 +173,12 @@ class TourDetailsBuilder implements Builder<TourDetails, TourDetailsBuilder> {
_$this._notes ??= ListBuilder<DeliveryNote>();
set notes(ListBuilder<DeliveryNote>? notes) => _$this._notes = notes;
ListBuilder<DeliveryPayment>? _payments;
ListBuilder<DeliveryPayment> get payments =>
_$this._payments ??= ListBuilder<DeliveryPayment>();
set payments(ListBuilder<DeliveryPayment>? payments) =>
_$this._payments = payments;
ListBuilder<Service>? _services;
ListBuilder<Service> get services =>
_$this._services ??= ListBuilder<Service>();
@ -198,6 +210,7 @@ class TourDetailsBuilder implements Builder<TourDetails, TourDetailsBuilder> {
_deliveries = $v.deliveries.toBuilder();
_deliveryServices = $v.deliveryServices.toBuilder();
_notes = $v.notes.toBuilder();
_payments = $v.payments.toBuilder();
_services = $v.services.toBuilder();
_tour = $v.tour.toBuilder();
_warehouses = $v.warehouses.toBuilder();
@ -233,6 +246,7 @@ class TourDetailsBuilder implements Builder<TourDetails, TourDetailsBuilder> {
deliveries: deliveries.build(),
deliveryServices: deliveryServices.build(),
notes: notes.build(),
payments: payments.build(),
services: services.build(),
tour: tour.build(),
warehouses: warehouses.build(),
@ -258,6 +272,8 @@ class TourDetailsBuilder implements Builder<TourDetails, TourDetailsBuilder> {
deliveryServices.build();
_$failedField = 'notes';
notes.build();
_$failedField = 'payments';
payments.build();
_$failedField = 'services';
services.build();
_$failedField = 'tour';

View File

@ -26,6 +26,8 @@ import 'package:holzleitner_api/src/model/car.dart';
import 'package:holzleitner_api/src/model/car_response.dart';
import 'package:holzleitner_api/src/model/cars_list.dart';
import 'package:holzleitner_api/src/model/complete_delivery_acknowledgements.dart';
import 'package:holzleitner_api/src/model/completed_deliveries_response.dart';
import 'package:holzleitner_api/src/model/completed_delivery_item.dart';
import 'package:holzleitner_api/src/model/contact_channel.dart';
import 'package:holzleitner_api/src/model/contact_kind.dart';
import 'package:holzleitner_api/src/model/contact_role.dart';
@ -42,10 +44,13 @@ import 'package:holzleitner_api/src/model/delivery.dart';
import 'package:holzleitner_api/src/model/delivery_credit.dart';
import 'package:holzleitner_api/src/model/delivery_credit_event_request.dart';
import 'package:holzleitner_api/src/model/delivery_credit_response.dart';
import 'package:holzleitner_api/src/model/delivery_details.dart';
import 'package:holzleitner_api/src/model/delivery_item.dart';
import 'package:holzleitner_api/src/model/delivery_note.dart';
import 'package:holzleitner_api/src/model/delivery_note_response.dart';
import 'package:holzleitner_api/src/model/delivery_order_entry.dart';
import 'package:holzleitner_api/src/model/delivery_payment.dart';
import 'package:holzleitner_api/src/model/delivery_payment_response.dart';
import 'package:holzleitner_api/src/model/delivery_response.dart';
import 'package:holzleitner_api/src/model/delivery_service_response.dart';
import 'package:holzleitner_api/src/model/delivery_service_value.dart';
@ -58,6 +63,11 @@ import 'package:holzleitner_api/src/model/mark_mail_sent_response.dart';
import 'package:holzleitner_api/src/model/payment_method.dart';
import 'package:holzleitner_api/src/model/payment_method_response.dart';
import 'package:holzleitner_api/src/model/payment_methods_list.dart';
import 'package:holzleitner_api/src/model/pending_review_response.dart';
import 'package:holzleitner_api/src/model/positions_modified_response.dart';
import 'package:holzleitner_api/src/model/record_delivery_payment_request.dart';
import 'package:holzleitner_api/src/model/resolve_review_request.dart';
import 'package:holzleitner_api/src/model/reviewed_item_response.dart';
import 'package:holzleitner_api/src/model/scan_event.dart';
import 'package:holzleitner_api/src/model/scan_result.dart';
import 'package:holzleitner_api/src/model/scan_result_status.dart';
@ -101,6 +111,8 @@ part 'serializers.g.dart';
CarResponse,
CarsList,
CompleteDeliveryAcknowledgements,
CompletedDeliveriesResponse,
CompletedDeliveryItem,
ContactChannel,
ContactKind,
ContactRole,
@ -117,10 +129,13 @@ part 'serializers.g.dart';
DeliveryCredit,
DeliveryCreditEventRequest,
DeliveryCreditResponse,
DeliveryDetails,
DeliveryItem,
DeliveryNote,
DeliveryNoteResponse,
DeliveryOrderEntry,
DeliveryPayment,
DeliveryPaymentResponse,
DeliveryResponse,
DeliveryServiceResponse,
DeliveryServiceValue,
@ -133,6 +148,11 @@ part 'serializers.g.dart';
PaymentMethod,
PaymentMethodResponse,
PaymentMethodsList,
PendingReviewResponse,
PositionsModifiedResponse,
RecordDeliveryPaymentRequest,
ResolveReviewRequest,
ReviewedItemResponse,
ScanEvent,
ScanResult,
ScanResultStatus,
@ -162,6 +182,10 @@ part 'serializers.g.dart';
Warehouse,
])
Serializers serializers = (_$serializers.toBuilder()
..addBuilderFactory(
const FullType(BuiltList, [FullType(PendingReviewResponse)]),
() => ListBuilder<PendingReviewResponse>(),
)
..add(Delivery.serializer)
..add(const OneOfSerializer())
..add(const AnyOfSerializer())

View File

@ -20,6 +20,8 @@ Serializers _$serializers = (Serializers().toBuilder()
..add(CarResponse.serializer)
..add(CarsList.serializer)
..add(CompleteDeliveryAcknowledgements.serializer)
..add(CompletedDeliveriesResponse.serializer)
..add(CompletedDeliveryItem.serializer)
..add(ContactChannel.serializer)
..add(ContactKind.serializer)
..add(ContactRole.serializer)
@ -35,10 +37,13 @@ Serializers _$serializers = (Serializers().toBuilder()
..add(DeliveryCredit.serializer)
..add(DeliveryCreditEventRequest.serializer)
..add(DeliveryCreditResponse.serializer)
..add(DeliveryDetails.serializer)
..add(DeliveryItem.serializer)
..add(DeliveryNote.serializer)
..add(DeliveryNoteResponse.serializer)
..add(DeliveryOrderEntry.serializer)
..add(DeliveryPayment.serializer)
..add(DeliveryPaymentResponse.serializer)
..add(DeliveryResponse.serializer)
..add(DeliveryServiceResponse.serializer)
..add(DeliveryServiceValue.serializer)
@ -51,6 +56,11 @@ Serializers _$serializers = (Serializers().toBuilder()
..add(PaymentMethod.serializer)
..add(PaymentMethodResponse.serializer)
..add(PaymentMethodsList.serializer)
..add(PendingReviewResponse.serializer)
..add(PositionsModifiedResponse.serializer)
..add(RecordDeliveryPaymentRequest.serializer)
..add(ResolveReviewRequest.serializer)
..add(ReviewedItemResponse.serializer)
..add(ScanEvent.serializer)
..add(ScanResult.serializer)
..add(ScanResultStatus.serializer)
@ -78,6 +88,31 @@ Serializers _$serializers = (Serializers().toBuilder()
..add(UpdatePaymentMethodRequest.serializer)
..add(UpdateServiceRequest.serializer)
..add(Warehouse.serializer)
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(Article)]),
() => ListBuilder<Article>())
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(ContactChannel)]),
() => ListBuilder<ContactChannel>())
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(ContactSource)]),
() => ListBuilder<ContactSource>())
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(CustomerContact)]),
() => ListBuilder<CustomerContact>())
..addBuilderFactory(
const FullType(
BuiltList, const [const FullType(DeliveryServiceValue)]),
() => ListBuilder<DeliveryServiceValue>())
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(DeliveryNote)]),
() => ListBuilder<DeliveryNote>())
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(Service)]),
() => ListBuilder<Service>())
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(Warehouse)]),
() => ListBuilder<Warehouse>())
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(Article)]),
() => ListBuilder<Article>())
@ -106,6 +141,9 @@ Serializers _$serializers = (Serializers().toBuilder()
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(DeliveryNote)]),
() => ListBuilder<DeliveryNote>())
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(DeliveryPayment)]),
() => ListBuilder<DeliveryPayment>())
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(Service)]),
() => ListBuilder<Service>())
@ -115,6 +153,10 @@ Serializers _$serializers = (Serializers().toBuilder()
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(Car)]),
() => ListBuilder<Car>())
..addBuilderFactory(
const FullType(
BuiltList, const [const FullType(CompletedDeliveryItem)]),
() => ListBuilder<CompletedDeliveryItem>())
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(DeliveryItem)]),
() => ListBuilder<DeliveryItem>())
@ -127,6 +169,10 @@ Serializers _$serializers = (Serializers().toBuilder()
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(PaymentMethod)]),
() => ListBuilder<PaymentMethod>())
..addBuilderFactory(
const FullType(
BuiltList, const [const FullType(ReviewedItemResponse)]),
() => ListBuilder<ReviewedItemResponse>())
..addBuilderFactory(
const FullType(BuiltList, const [const FullType(ScanEvent)]),
() => ListBuilder<ScanEvent>())