Files
Holzleitner-Lieferservice-App/lib/widget/orderer_hint.dart
Dennis Nemec 335cf02a9f feat: Adresszusatz (Ortsteil/Etage/Hinweis) anzeigen, Land nur im Ausland
- Address.addition aus dem Backend (ERP-Freitext, praktisch Ortsteil,
  Etage oder Hinweis); API-Client neu generiert.
- Listen (Sortieren, Beladen, Liefer-Übersicht): Adresse mit Zusatz in
  Klammern, z. B. „… 41472 Neuss (Holzheim)".
- Lieferdetails: „Zusatz: …" unter der Anschrift von Empfänger und
  Besteller; Land nur außerhalb Deutschlands.
- Maps-Suche weiter ohne Zusatz (sonst stört „3 Etage" die Suche).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 16:13:28 +02:00

70 lines
2.0 KiB
Dart

import 'package:flutter/material.dart';
import 'package:hl_lieferservice/domain/entity/delivery_recipient.dart';
/// Kompakter Hinweis in Listen-Kacheln, wenn an eine andere Person oder
/// Anschrift geliefert wird als an den Besteller: „Bestellt von: <Name>".
///
/// Geteilt zwischen Beladen-, Sortier- und Auslieferungs-Listen, damit der
/// Fahrer überall gleich erkennt, dass Empfänger ≠ Kunde ist.
class OrdererHint extends StatelessWidget {
const OrdererHint({super.key, required this.ordererName});
final String ordererName;
@override
Widget build(BuildContext context) {
final color = Colors.deepOrange.shade800;
return Padding(
padding: const EdgeInsets.only(top: 4),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(top: 1),
child: Icon(Icons.alt_route, size: 14, color: color),
),
const SizedBox(width: 4),
Expanded(
child: Text(
'Bestellt von: $ordererName',
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.w600,
color: color,
),
),
),
],
),
);
}
}
/// `ListTile.subtitle` für Lieferungen: Lieferanschrift und, falls der
/// Empfänger vom Besteller abweicht, darunter der [OrdererHint].
class RecipientSubtitle extends StatelessWidget {
const RecipientSubtitle({
super.key,
required this.recipient,
required this.ordererName,
this.addressStyle,
});
final DeliveryRecipient recipient;
final String ordererName;
final TextStyle? addressStyle;
@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Text(recipient.address.oneLineWithAddition, style: addressStyle),
if (recipient.differsFromOrderer)
OrdererHint(ordererName: ordererName),
],
);
}
}