feat: abweichende Lieferadresse und Empfänger vor Ort anzeigen
Belege können im ERP eine eigene Lieferadresse (LieferAdressId) mit anderer Person tragen als der Besteller. Die App zeigt jetzt überall den Empfänger vor Ort: - TourDetails.recipientOf liefert Empfänger (Name aus der Lieferadresse, sonst Besteller), Lieferanschrift und differsFromOrderer. - Sortieren, Auswählen, Beladen und Liefer-Übersicht: Empfängername + Lieferadresse, bei Abweichung „Bestellt von: <Kunde>". - Lieferdetails: hervorgehobene Karte „Abweichende Lieferadresse" mit Empfänger, Anschrift und Kontakt; Kunden-Block als „Besteller (Kunde)" mit Adresse, Kundennummer und Kontaktdaten. - Maps navigiert zur Lieferadresse statt zur Kundenadresse; AppBar, Unterschrift und Beladen-Avatar nutzen den Empfänger. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@ -13,6 +13,7 @@ import 'package:hl_lieferservice/feature/delivery/model/delivery_phase.dart';
|
||||
import 'package:hl_lieferservice/feature/delivery/overview/presentation/delivery_fail_page.dart';
|
||||
import 'package:hl_lieferservice/widget/home/presentation/home_drawer.dart';
|
||||
import 'package:hl_lieferservice/widget/phase_stepper/phase_stepper.dart';
|
||||
import 'package:hl_lieferservice/widget/orderer_hint.dart';
|
||||
|
||||
/// Page für die erste Phase bei Mehr-Auto-Teams: Auswählen der eigenen
|
||||
/// Lieferungen aus dem gemeinsamen Tour-Pool.
|
||||
@ -241,6 +242,7 @@ class _DeliverySelectionPageState extends State<DeliverySelectionPage> {
|
||||
itemBuilder: (context, index) {
|
||||
final delivery = available[index];
|
||||
final customer = details.customerOf(delivery);
|
||||
final recipient = details.recipientOf(delivery);
|
||||
final isSelected = _selectedIds.contains(delivery.id);
|
||||
return CheckboxListTile(
|
||||
key: ValueKey('available-${delivery.id}'),
|
||||
@ -258,12 +260,13 @@ class _DeliverySelectionPageState extends State<DeliverySelectionPage> {
|
||||
});
|
||||
},
|
||||
title: Text(
|
||||
customer?.name ?? '⟨Unbekannter Kunde⟩',
|
||||
recipient.name,
|
||||
style: const TextStyle(fontWeight: FontWeight.w600),
|
||||
),
|
||||
subtitle: Text(
|
||||
delivery.deliveryAddressSnapshot.oneLine,
|
||||
style: const TextStyle(fontSize: 12),
|
||||
subtitle: RecipientSubtitle(
|
||||
recipient: recipient,
|
||||
ordererName: customer?.name ?? '⟨Unbekannter Kunde⟩',
|
||||
addressStyle: const TextStyle(fontSize: 12),
|
||||
),
|
||||
controlAffinity: ListTileControlAffinity.leading,
|
||||
);
|
||||
@ -289,6 +292,7 @@ class _DeliverySelectionPageState extends State<DeliverySelectionPage> {
|
||||
final isOwn = delivery.assignedCarId == widget.selectedCarId;
|
||||
final plate = _plateFor(delivery.assignedCarId);
|
||||
final customer = details.customerOf(delivery);
|
||||
final recipient = details.recipientOf(delivery);
|
||||
|
||||
return Material(
|
||||
color: isOwn
|
||||
@ -310,15 +314,16 @@ class _DeliverySelectionPageState extends State<DeliverySelectionPage> {
|
||||
: theme.colorScheme.onSurfaceVariant,
|
||||
),
|
||||
title: Text(
|
||||
customer?.name ?? '⟨Unbekannter Kunde⟩',
|
||||
recipient.name,
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.w600,
|
||||
color: isOwn ? theme.colorScheme.primary : null,
|
||||
),
|
||||
),
|
||||
subtitle: Text(
|
||||
delivery.deliveryAddressSnapshot.oneLine,
|
||||
style: const TextStyle(fontSize: 12),
|
||||
subtitle: RecipientSubtitle(
|
||||
recipient: recipient,
|
||||
ordererName: customer?.name ?? '⟨Unbekannter Kunde⟩',
|
||||
addressStyle: const TextStyle(fontSize: 12),
|
||||
),
|
||||
trailing: _plateBadge(context, plate, own: isOwn),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user