fix(pickup): nach vollständiger Filial-Abholung direkt die Lieferung öffnen

Der Fertig-Button der Filial-Abholung ersetzt die Scan-Page jetzt durch
DeliveryDetail (pushReplacement) statt zur Übersicht zurückzukehren.
Zurück aus der Lieferung führt weiterhin zur Übersicht.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Dennis Nemec
2026-09-25 15:31:09 +02:00
parent 200992262a
commit 99247b4b67
2 changed files with 19 additions and 8 deletions

View File

@ -18,8 +18,9 @@ import 'package:hl_lieferservice/feature/delivery/pickup/presentation/filiale_pi
/// ///
/// * Aktive Lieferung mit noch offenen Filial-Artikeln → zuerst der /// * Aktive Lieferung mit noch offenen Filial-Artikeln → zuerst der
/// Filial-Abhol-Scan-Screen. Der Fahrer ist an der Filiale und muss die /// Filial-Abhol-Scan-Screen. Der Fahrer ist an der Filiale und muss die
/// Ware abscannen, bevor er ausliefern kann. Nach dem Scan kehrt er zur /// Ware abscannen, bevor er ausliefern kann. Nach dem Scan geht es von
/// Übersicht zurück (die Lieferung verliert ihren Filial-Hinweis). /// dort direkt in die Auslieferung (die Lieferung verliert ihren
/// Filial-Hinweis).
/// * Sonst → direkt die Auslieferung (`DeliveryDetail`), die beim Kunden /// * Sonst → direkt die Auslieferung (`DeliveryDetail`), die beim Kunden
/// bearbeitet wird. /// bearbeitet wird.
/// ///

View File

@ -9,6 +9,7 @@ import 'package:hl_lieferservice/feature/car_selection/bloc/state.dart';
import 'package:hl_lieferservice/feature/delivery/bloc/tour_bloc.dart'; import 'package:hl_lieferservice/feature/delivery/bloc/tour_bloc.dart';
import 'package:hl_lieferservice/feature/delivery/bloc/tour_event.dart'; import 'package:hl_lieferservice/feature/delivery/bloc/tour_event.dart';
import 'package:hl_lieferservice/feature/delivery/bloc/tour_state.dart'; import 'package:hl_lieferservice/feature/delivery/bloc/tour_state.dart';
import 'package:hl_lieferservice/feature/delivery/detail/presentation/delivery_detail_page.dart';
import 'package:hl_lieferservice/widget/scanner/article_scanner_stripe.dart'; import 'package:hl_lieferservice/widget/scanner/article_scanner_stripe.dart';
import 'package:hl_lieferservice/widget/scanner/item_matcher.dart'; import 'package:hl_lieferservice/widget/scanner/item_matcher.dart';
import 'package:hl_lieferservice/widget/scanner/manual_entry_dialog.dart'; import 'package:hl_lieferservice/widget/scanner/manual_entry_dialog.dart';
@ -26,9 +27,10 @@ import 'package:hl_lieferservice/widget/scanner/scan_code_parser.dart';
/// QR-Validierung (`Artikelnr;Kundennr;Belegnr`) und derselbe `ScanItem`- /// QR-Validierung (`Artikelnr;Kundennr;Belegnr`) und derselbe `ScanItem`-
/// Pfad wie die Beladen-Phase — über die geteilten Scanner-Module. /// Pfad wie die Beladen-Phase — über die geteilten Scanner-Module.
/// ///
/// Nach vollständigem Scan: Erfolgs-Zustand + Button „zurück zur Übersicht". /// Nach vollständigem Scan: Erfolgs-Zustand + Button „Weiter zur Lieferung",
/// Der Fahrer fährt dann zum Kunden; dort öffnet ein erneuter Tap die /// der diese Page durch die eigentliche Auslieferung (`DeliveryDetail`)
/// eigentliche Auslieferung (`DeliveryDetail`). /// ersetzt. „Zurück" führt von dort direkt zur Übersicht, nicht erneut
/// hierher.
class FilialePickupScanPage extends StatefulWidget { class FilialePickupScanPage extends StatefulWidget {
const FilialePickupScanPage({super.key, required this.deliveryId}); const FilialePickupScanPage({super.key, required this.deliveryId});
@ -160,6 +162,14 @@ class _FilialePickupScanPageState extends State<FilialePickupScanPage> {
)); ));
} }
void _openDelivery() {
Navigator.of(context).pushReplacement(
MaterialPageRoute(
builder: (_) => DeliveryDetail(deliveryId: widget.deliveryId),
),
);
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return BlocBuilder<TourBloc, TourState>( return BlocBuilder<TourBloc, TourState>(
@ -232,7 +242,7 @@ class _FilialePickupScanPageState extends State<FilialePickupScanPage> {
], ],
), ),
), ),
if (allDone) _DoneBar(onConfirm: () => Navigator.of(context).pop()), if (allDone) _DoneBar(onConfirm: _openDelivery),
], ],
), ),
); );
@ -445,8 +455,8 @@ class _DoneBar extends StatelessWidget {
width: double.infinity, width: double.infinity,
child: FilledButton.icon( child: FilledButton.icon(
onPressed: onConfirm, onPressed: onConfirm,
icon: const Icon(Icons.arrow_back), icon: const Icon(Icons.arrow_forward),
label: const Text('Fertig — zurück zur Übersicht'), label: const Text('Weiter zur Lieferung'),
), ),
), ),
], ],