- 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>
70 lines
2.0 KiB
Dart
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),
|
|
],
|
|
);
|
|
}
|
|
}
|