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
/// 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
/// Übersicht zurück (die Lieferung verliert ihren Filial-Hinweis).
/// Ware abscannen, bevor er ausliefern kann. Nach dem Scan geht es von
/// dort direkt in die Auslieferung (die Lieferung verliert ihren
/// Filial-Hinweis).
/// * Sonst → direkt die Auslieferung (`DeliveryDetail`), die beim Kunden
/// 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_event.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/item_matcher.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`-
/// Pfad wie die Beladen-Phase — über die geteilten Scanner-Module.
///
/// Nach vollständigem Scan: Erfolgs-Zustand + Button „zurück zur Übersicht".
/// Der Fahrer fährt dann zum Kunden; dort öffnet ein erneuter Tap die
/// eigentliche Auslieferung (`DeliveryDetail`).
/// Nach vollständigem Scan: Erfolgs-Zustand + Button „Weiter zur Lieferung",
/// der diese Page durch die eigentliche Auslieferung (`DeliveryDetail`)
/// ersetzt. „Zurück" führt von dort direkt zur Übersicht, nicht erneut
/// hierher.
class FilialePickupScanPage extends StatefulWidget {
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
Widget build(BuildContext context) {
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,
child: FilledButton.icon(
onPressed: onConfirm,
icon: const Icon(Icons.arrow_back),
label: const Text('Fertig — zurück zur Übersicht'),
icon: const Icon(Icons.arrow_forward),
label: const Text('Weiter zur Lieferung'),
),
),
],