Implemented settings, new scan, enhanced UI/UX
This commit is contained in:
@ -5,6 +5,7 @@ import 'package:hl_lieferservice/dto/discount_update_response.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/repository/delivery_repository.dart';
|
||||
import 'package:hl_lieferservice/feature/delivery/detail/repository/note_repository.dart';
|
||||
import 'package:hl_lieferservice/widget/operations/bloc/operation_bloc.dart';
|
||||
import 'package:hl_lieferservice/widget/operations/bloc/operation_event.dart';
|
||||
|
||||
@ -15,21 +16,62 @@ import '../../../../model/delivery.dart' as model;
|
||||
class DeliveryBloc extends Bloc<DeliveryEvent, DeliveryState> {
|
||||
OperationBloc opBloc;
|
||||
DeliveryRepository repository;
|
||||
NoteRepository noteRepository;
|
||||
|
||||
DeliveryBloc({required this.opBloc, required this.repository})
|
||||
: super(DeliveryInitial()) {
|
||||
DeliveryBloc({
|
||||
required this.opBloc,
|
||||
required this.repository,
|
||||
required this.noteRepository,
|
||||
}) : super(DeliveryInitial()) {
|
||||
on<UnscanArticleEvent>(_unscan);
|
||||
on<ResetScanAmountEvent>(_resetAmount);
|
||||
on<LoadDeliveryEvent>(_load);
|
||||
on<AddDiscountEvent>(_addDiscount);
|
||||
on<RemoveDiscountEvent>(_removeDiscount);
|
||||
on<UpdateDiscountEvent>(_updateDiscount);
|
||||
on<UpdateDeliveryOption>(_updateDeliveryOptions);
|
||||
on<UpdateSelectedPaymentMethod>(_updatePayment);
|
||||
on<UpdateDeliveryOptionEvent>(_updateDeliveryOptions);
|
||||
on<UpdateSelectedPaymentMethodEvent>(_updatePayment);
|
||||
on<FinishDeliveryEvent>(_finishDelivery);
|
||||
}
|
||||
|
||||
void _finishDelivery(
|
||||
FinishDeliveryEvent event,
|
||||
Emitter<DeliveryState> emit,
|
||||
) async {
|
||||
final currentState = state;
|
||||
opBloc.add(LoadOperation());
|
||||
|
||||
if (currentState is DeliveryLoaded) {
|
||||
try {
|
||||
model.Delivery newDelivery = event.delivery.copyWith();
|
||||
newDelivery.state = model.DeliveryState.finished;
|
||||
|
||||
for (final option in event.delivery.options) {
|
||||
debugPrint("VALUE=${option.value};KEY=${option.key}");
|
||||
}
|
||||
|
||||
await repository.updateDelivery(newDelivery);
|
||||
await noteRepository.addNamedImage(
|
||||
event.delivery.id,
|
||||
event.driverSignature,
|
||||
"delivery_${event.delivery.id}_signature_driver.jpg",
|
||||
);
|
||||
await noteRepository.addNamedImage(
|
||||
event.delivery.id,
|
||||
event.customerSignature,
|
||||
"delivery_${event.delivery.id}_signature_customer.jpg",
|
||||
);
|
||||
emit(DeliveryFinished(delivery: newDelivery));
|
||||
opBloc.add(FinishOperation());
|
||||
} catch (e, st) {
|
||||
opBloc.add(FailOperation(message: "Failed to update delivery"));
|
||||
debugPrint(st.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void _updatePayment(
|
||||
UpdateSelectedPaymentMethod event,
|
||||
UpdateSelectedPaymentMethodEvent event,
|
||||
Emitter<DeliveryState> emit,
|
||||
) {
|
||||
final currentState = state;
|
||||
@ -44,7 +86,7 @@ class DeliveryBloc extends Bloc<DeliveryEvent, DeliveryState> {
|
||||
}
|
||||
|
||||
void _updateDeliveryOptions(
|
||||
UpdateDeliveryOption event,
|
||||
UpdateDeliveryOptionEvent event,
|
||||
Emitter<DeliveryState> emit,
|
||||
) {
|
||||
final currentState = state;
|
||||
@ -53,7 +95,11 @@ class DeliveryBloc extends Bloc<DeliveryEvent, DeliveryState> {
|
||||
List<model.DeliveryOption> options =
|
||||
currentState.delivery.options.map((option) {
|
||||
if (option.key == event.key) {
|
||||
return option.copyWith(value: event.value.toString());
|
||||
if (option.numerical) {
|
||||
return option.copyWith(value: event.value);
|
||||
} else {
|
||||
return option.copyWith(value: event.value == true ? "1" : "0");
|
||||
}
|
||||
}
|
||||
|
||||
return option;
|
||||
|
||||
Reference in New Issue
Block a user