Sign page: added user check for accepting notes of a delivery

This commit is contained in:
Dennis Nemec
2025-11-28 20:46:03 +01:00
parent 7ea9108f62
commit 0150614ef5
12 changed files with 289 additions and 315 deletions

View File

@ -6,6 +6,9 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:hl_lieferservice/feature/delivery/detail/bloc/delivery_bloc.dart';
import 'package:hl_lieferservice/feature/delivery/detail/bloc/delivery_event.dart';
import 'package:hl_lieferservice/feature/delivery/detail/bloc/delivery_state.dart';
import 'package:hl_lieferservice/feature/delivery/detail/bloc/note_bloc.dart';
import 'package:hl_lieferservice/feature/delivery/detail/bloc/note_event.dart';
import 'package:hl_lieferservice/feature/delivery/detail/bloc/note_state.dart';
import 'package:hl_lieferservice/feature/delivery/detail/presentation/delivery_sign.dart';
import 'package:hl_lieferservice/feature/delivery/detail/presentation/steps/step.dart';
import 'package:hl_lieferservice/feature/delivery/overview/bloc/tour_bloc.dart';
@ -35,6 +38,11 @@ class _DeliveryDetailState extends State<DeliveryDetail> {
LoadDeliveryEvent(delivery: widget.delivery),
);
// Reset Note BLOC
// otherwise the notes of the previously
// opened delivery would be loaded
context.read<NoteBloc>().add(ResetNotes());
// Initialize steps
_step = 0;
_steps = [
@ -120,10 +128,8 @@ class _DeliveryDetailState extends State<DeliveryDetail> {
Navigator.of(context).push(
MaterialPageRoute(
builder:
(context) => SignatureView(
onSigned: _onSign,
customer: widget.delivery.customer,
),
(context) =>
SignatureView(onSigned: _onSign, delivery: widget.delivery),
),
);
}
@ -176,13 +182,16 @@ class _DeliveryDetailState extends State<DeliveryDetail> {
listener: (context, state) {
if (state is DeliveryFinished) {
final tourState = context.read<TourBloc>().state as TourLoaded;
final newTour = tourState.tour.copyWith(deliveries: tourState.tour.deliveries.map((delivery) {
if (delivery.id == state.delivery.id) {
return state.delivery;
}
final newTour = tourState.tour.copyWith(
deliveries:
tourState.tour.deliveries.map((delivery) {
if (delivery.id == state.delivery.id) {
return state.delivery;
}
return delivery;
}).toList());
return delivery;
}).toList(),
);
context.read<TourBloc>().add(UpdateTour(tour: newTour));