diff --git a/lib/models/appointments_models/selected_appointment_service_model.dart b/lib/models/appointments_models/selected_appointment_service_model.dart new file mode 100644 index 0000000..585a1e0 --- /dev/null +++ b/lib/models/appointments_models/selected_appointment_service_model.dart @@ -0,0 +1,28 @@ + + + +import 'package:mc_common_app/models/services_models/item_model.dart'; +import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart'; + +class SelectedAppointmentServiceModel { + final DropValue category; + final DropValue service; + final List items; + + SelectedAppointmentServiceModel({ + required this.category, + required this.service, + required this.items, + }); + + double get totalPrice => items.fold( + 0, + (sum, item) => sum + (double.tryParse(item.price ?? '0') ?? 0), + ); + + List get itemIds => items + .map((item) => item.id) + .whereType() + .where((id) => id > 0) + .toList(); +} diff --git a/lib/widgets/dropdown/dropdow_field.dart b/lib/widgets/dropdown/dropdow_field.dart index 55c4c7d..a8abaed 100644 --- a/lib/widgets/dropdown/dropdow_field.dart +++ b/lib/widgets/dropdown/dropdow_field.dart @@ -355,12 +355,18 @@ class _SearchableDropdownSheetState extends State<_SearchableDropdownSheet> { fontWeight: isSelected ? MyFonts.Bold : MyFonts.Medium, ), trailing: isSelected ? const Icon(Icons.check, color: MyColors.darkPrimaryColor) : null, + // onTap: !isEnabled + // ? null + // : () { + // widget.onSelected(value); + // Navigator.pop(context); + // }, onTap: !isEnabled ? null : () { - widget.onSelected(value); - Navigator.pop(context); - }, + Navigator.pop(context); + widget.onSelected(value); + }, ); }, ),