diff --git a/lib/config/provider_dependencies.dart b/lib/config/provider_dependencies.dart index ba6a028..efbc569 100644 --- a/lib/config/provider_dependencies.dart +++ b/lib/config/provider_dependencies.dart @@ -1,13 +1,12 @@ import 'package:mc_common_app/repositories/branch_repo.dart'; -import 'package:car_provider_app/repositories/items_repo.dart'; -import 'package:car_provider_app/repositories/schedule_repo.dart'; +import 'package:mc_common_app/repositories/items_repo.dart'; +import 'package:mc_common_app/repositories/schedule_repo.dart'; import 'package:mc_common_app/config/dependencies.dart'; import 'package:mc_common_app/repositories/subscription_repo.dart'; class ProviderAppDependencies { static void addDependencies() { AppDependencies.addDependencies(); - injector.registerSingleton(() => BranchRepoImp()); injector.registerSingleton(() => ItemsRepoImp()); injector.registerSingleton(() => SubscriptionRepoImp()); injector.registerSingleton(() => ScheduleRepoImp()); diff --git a/lib/main.dart b/lib/main.dart index 209fed2..204681d 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,6 @@ import 'package:car_provider_app/config/provider_dependencies.dart'; -import 'package:car_provider_app/repositories/items_repo.dart'; -import 'package:car_provider_app/repositories/schedule_repo.dart'; +import 'package:mc_common_app/repositories/items_repo.dart'; +import 'package:mc_common_app/repositories/schedule_repo.dart'; import 'package:car_provider_app/view_models/dashboard_view_model.dart'; import 'package:car_provider_app/view_models/items_view_model.dart'; import 'package:car_provider_app/view_models/schedule_view_model.dart'; @@ -102,7 +102,7 @@ Future main() async { ), ChangeNotifierProvider( create: (_) => AppointmentsVM( - scheduleRepo: injector.get(), + appointmentRepo: injector.get(), commonServices: injector.get(), commonRepo: injector.get(), branchRepo: injector.get(), diff --git a/lib/repositories/items_repo.dart b/lib/repositories/items_repo.dart deleted file mode 100644 index fcd2642..0000000 --- a/lib/repositories/items_repo.dart +++ /dev/null @@ -1,43 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:mc_common_app/api/api_client.dart'; -import 'package:mc_common_app/classes/app_state.dart'; -import 'package:mc_common_app/classes/consts.dart'; -import 'package:mc_common_app/config/dependencies.dart'; -import 'package:mc_common_app/models/general_models/m_response.dart'; -import 'package:mc_common_app/models/services_models/item_model.dart'; - -abstract class ItemsRepo { - Future createServiceItems(Map map); - - Future getServiceItems(int serviceId); - - Future updateServiceItem(Map map); -} - -class ItemsRepoImp implements ItemsRepo { - @override - Future createServiceItems(Map map) async { - String t = AppState().getUser.data!.accessToken ?? ""; - debugPrint(t); - return await injector.get().postJsonForObject((json) => MResponse.fromJson(json), ApiConsts.createItems, map, token: t); - } - - @override - Future getServiceItems(int serviceId) async { - var queryParameters = { - "ServiceProviderServiceID": serviceId.toString(), - }; - String? token = AppState().getUser.data?.accessToken; - debugPrint(token); - return await injector - .get() - .getJsonForObject((json) => ItemModel.fromJson(json), ApiConsts.getServiceItems, queryParameters: queryParameters, token: AppState().getUser.data!.accessToken ?? ""); - } - - @override - Future updateServiceItem(Map map) async { - String t = AppState().getUser.data!.accessToken ?? ""; - debugPrint(t); - return await injector.get().postJsonForObject((json) => MResponse.fromJson(json), ApiConsts.updateServiceItem, map, token: t); - } -} diff --git a/lib/repositories/schedule_repo.dart b/lib/repositories/schedule_repo.dart deleted file mode 100644 index 6730b8d..0000000 --- a/lib/repositories/schedule_repo.dart +++ /dev/null @@ -1,62 +0,0 @@ -import 'package:mc_common_app/models/appointments_models/schedule_model.dart'; -import 'package:mc_common_app/models/general_models/m_response.dart'; -import 'package:mc_common_app/models/provider_branches_models/profile/services.dart'; -import 'package:mc_common_app/api/api_client.dart'; -import 'package:mc_common_app/classes/app_state.dart'; -import 'package:mc_common_app/classes/consts.dart'; -import 'package:mc_common_app/config/dependencies.dart'; - -abstract class ScheduleRepo { - Future getAllServices(String branchId); - - Future createSchedule(Map map); - - Future addServicesInSchedule(Map map); - - Future updateSchedule(Map map); - - Future getSchedules(String branchId); - - Future updateServicesInSchedule(Map map); -} - -class ScheduleRepoImp implements ScheduleRepo { - @override - Future getAllServices(String branchId) async { - print("braanchId $branchId"); - Map map = {"ProviderBranchID": branchId}; - String t = AppState().getUser.data!.accessToken ?? ""; - return await injector.get().getJsonForObject((json) => Services.fromJson(json), ApiConsts.getServicesOfBranch, token: t, queryParameters: map); - } - - @override - Future createSchedule(Map map) async { - String t = AppState().getUser.data!.accessToken ?? ""; - return await injector.get().postJsonForObject((json) => MResponse.fromJson(json), ApiConsts.createSchedule, map, token: t); - } - - @override - Future addServicesInSchedule(Map map) async { - String t = AppState().getUser.data!.accessToken ?? ""; - return await injector.get().postJsonForObject((json) => MResponse.fromJson(json), ApiConsts.createGroup, map, token: t); - } - - @override - Future getSchedules(String branchId) async { - Map map = {"ServiceProviderBranchID": branchId}; - String t = AppState().getUser.data!.accessToken ?? ""; - return await injector.get().getJsonForObject((json) => Schedule.fromJson(json), ApiConsts.getSchedule, token: t, queryParameters: map); - } - - @override - Future updateSchedule(Map map) async { - String t = AppState().getUser.data!.accessToken ?? ""; - return await injector.get().postJsonForObject((json) => MResponse.fromJson(json), ApiConsts.updateSchedule, map, token: t); - } - - @override - Future updateServicesInSchedule(Map map) async { - String t = AppState().getUser.data!.accessToken ?? ""; - return await injector.get().postJsonForObject((json) => MResponse.fromJson(json), ApiConsts.updateGroup, map, token: t); - } -} diff --git a/lib/view_models/items_view_model.dart b/lib/view_models/items_view_model.dart index d7bda4d..4335252 100644 --- a/lib/view_models/items_view_model.dart +++ b/lib/view_models/items_view_model.dart @@ -1,6 +1,6 @@ import 'dart:io'; -import 'package:car_provider_app/repositories/items_repo.dart'; +import 'package:mc_common_app/repositories/items_repo.dart'; import 'package:flutter/cupertino.dart'; import 'package:mc_common_app/models/general_models/m_response.dart'; import 'package:mc_common_app/models/services_models/item_model.dart'; diff --git a/lib/view_models/schedule_view_model.dart b/lib/view_models/schedule_view_model.dart index de1e883..456b927 100644 --- a/lib/view_models/schedule_view_model.dart +++ b/lib/view_models/schedule_view_model.dart @@ -1,7 +1,7 @@ import 'package:mc_common_app/models/appointments_models/schedule_model.dart'; import 'package:mc_common_app/models/general_models/m_response.dart'; import 'package:mc_common_app/models/provider_branches_models/profile/services.dart'; -import 'package:car_provider_app/repositories/schedule_repo.dart'; +import 'package:mc_common_app/repositories/schedule_repo.dart'; import 'package:car_provider_app/views/settings/schedule/widgets/chips_picker_item.dart'; import 'package:mc_common_app/utils/enums.dart'; diff --git a/lib/views/appoinments/add_new_service_appointment_page.dart b/lib/views/appoinments/add_new_service_appointment_page.dart index 08de3fd..ae2f72e 100644 --- a/lib/views/appoinments/add_new_service_appointment_page.dart +++ b/lib/views/appoinments/add_new_service_appointment_page.dart @@ -263,7 +263,7 @@ class AddNewServiceAppointmentPage extends StatelessWidget { } Future _updateAppointment(BuildContext context, int branchId) async { - await context.read().getProviderMyAppointments({ + await context.read().getMyAppointmentsForProvider({ "ServiceProviderID": injector .get() .getUser diff --git a/lib/views/appoinments/appoinment_detail_list_page.dart b/lib/views/appoinments/appoinment_detail_list_page.dart index faaf44e..86dfa5a 100644 --- a/lib/views/appoinments/appoinment_detail_list_page.dart +++ b/lib/views/appoinments/appoinment_detail_list_page.dart @@ -1,18 +1,16 @@ +import 'package:car_provider_app/config/provider_routes.dart'; +import 'package:car_provider_app/views/dashboard/widget/appointment_slider_widget.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; -import 'package:mc_common_app/models/appointments_models/appointment_list_model.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/utils/navigator.dart'; import 'package:mc_common_app/view_models/appointments_view_model.dart'; import 'package:mc_common_app/widgets/button/show_fill_button.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; - -import '../../config/provider_routes.dart'; -import '../dashboard/widget/appointment_slider_widget.dart'; import 'package:provider/provider.dart'; class AppointmentDetailListPage extends StatelessWidget { - AppointmentDetailListPage({Key? key}) : super(key: key); + const AppointmentDetailListPage({Key? key}) : super(key: key); @override Widget build(BuildContext context) { @@ -26,47 +24,29 @@ class AppointmentDetailListPage extends StatelessWidget { child: Column( children: [ Expanded( - child: Consumer(builder: (BuildContext context, - AppointmentsVM appointmentsVM, Widget? child) { + child: Consumer(builder: (BuildContext context, AppointmentsVM appointmentsVM, Widget? child) { if (appointmentsVM.state == ViewState.busy) { return const Center(child: CircularProgressIndicator()); } else { return ListView.separated( itemBuilder: (context, index) { return AppointmentSliderWidget( - appointmentListModel: appointmentsVM - .myFilteredAppointments2[ - appointmentsVM.selectedAppointmentIndex] - .customerAppointmentList![index], + appointmentListModel: appointmentsVM.myFilteredAppointments2[appointmentsVM.selectedAppointmentIndex].customerAppointmentList![index], isNeedTotalPayment: true, isNeedToShowAppointmentStatus: true, isNeedToShowMergeStatus: true, onTap: () { - appointmentsVM.selectedAppointmentId = - appointmentsVM - .myFilteredAppointments2[appointmentsVM - .selectedAppointmentIndex] - .customerAppointmentList![index] - .id ?? - 0; + appointmentsVM.selectedAppointmentId = appointmentsVM.myFilteredAppointments2[appointmentsVM.selectedAppointmentIndex].customerAppointmentList![index].id ?? 0; appointmentsVM.selectedAppointmentSubIndex = index; - navigateWithName(context, - ProviderAppRoutes.updateAppointmentPage, - arguments: appointmentsVM - .myFilteredAppointments2[ - appointmentsVM.selectedAppointmentIndex] - .customerAppointmentList![index]); + navigateWithName(context, ProviderAppRoutes.updateAppointmentPage, + arguments: appointmentsVM.myFilteredAppointments2[appointmentsVM.selectedAppointmentIndex].customerAppointmentList![index]); }, ); }, separatorBuilder: (context, snapchat) { return 21.height; }, - itemCount: appointmentsVM - .myFilteredAppointments2[ - appointmentsVM.selectedAppointmentIndex] - .customerAppointmentList! - .length, + itemCount: appointmentsVM.myFilteredAppointments2[appointmentsVM.selectedAppointmentIndex].customerAppointmentList!.length, padding: const EdgeInsets.all(21), ); } @@ -77,8 +57,7 @@ class AppointmentDetailListPage extends StatelessWidget { maxWidth: double.infinity, margin: const EdgeInsets.all(21), onPressed: () { - navigateWithName( - context, ProviderAppRoutes.mergeAppointments); + navigateWithName(context, ProviderAppRoutes.mergeAppointments); }, ), ], diff --git a/lib/views/appoinments/appointment_page.dart b/lib/views/appoinments/appointment_page.dart index 8681c15..4de335d 100644 --- a/lib/views/appoinments/appointment_page.dart +++ b/lib/views/appoinments/appointment_page.dart @@ -28,28 +28,16 @@ class AppointmentPage extends StatelessWidget { Key? key, }) : super(key: key); - GlobalKey refreshIndicatorKey = - GlobalKey(); + GlobalKey refreshIndicatorKey = GlobalKey(); Future _pullRefresh(BuildContext context) async { await context.read().getAppointmentSlotsInfo( context: context, - map: { - "ProviderBranchID": branch.id.toString(), - "FromDate": date, - "ToDate": date - }, + map: {"ProviderBranchID": branch.id.toString(), "FromDate": date, "ToDate": date}, isNeedToRebuild: true, ); - await context.read().getProviderMyAppointments({ - "ServiceProviderID": injector - .get() - .getUser - .data - ?.userInfo - ?.providerId - .toString() ?? - "0", + await context.read().getMyAppointmentsForProvider({ + "ServiceProviderID": injector.get().getUser.data?.userInfo?.providerId.toString() ?? "0", "ProviderBranchID": branch.id.toString(), "FromDate": date, "DateTo": date, @@ -59,7 +47,7 @@ class AppointmentPage extends StatelessWidget { @override Widget build(BuildContext context) { date = DateHelper.formatAsYearMonthDay(DateTime.now()); - context.read().setupProviderAppointmentFilter(); + context.read().populateAppointmentsFilterList(); _pullRefresh(context); context.read().selectedBranch = branch.id ?? 0; @@ -71,8 +59,7 @@ class AppointmentPage extends StatelessWidget { body: SizedBox( width: double.infinity, height: double.infinity, - child: Consumer(builder: (BuildContext context, - AppointmentsVM appointmentsVM, Widget? child) { + child: Consumer(builder: (BuildContext context, AppointmentsVM appointmentsVM, Widget? child) { if (appointmentsVM.state == ViewState.busy) { return const Center(child: CircularProgressIndicator()); } else { @@ -89,8 +76,7 @@ class AppointmentPage extends StatelessWidget { padding: const EdgeInsets.symmetric(horizontal: 18), onFilterTapped: (index, selectedFilterId) { appointmentsVM.applyFilterOnAppointmentsVM( - appointmentStatusEnum: - selectedFilterId.toAppointmentStatusEnum(), + appointmentStatusEnum: selectedFilterId.toAppointmentStatusEnum(), isNeedCustomerFilter: true, ); }, @@ -103,13 +89,10 @@ class AppointmentPage extends StatelessWidget { ListView.separated( itemBuilder: (context, index) { return AppointmentSliderWidget( - appointmentListModel: - appointmentsVM.myFilteredAppointments2[index], + appointmentListModel: appointmentsVM.myFilteredAppointments2[index], isNeedTotalPayment: false, onTap: () { - context - .read() - .selectedAppointmentIndex = index; + context.read().selectedAppointmentIndex = index; navigateWithName( context, ProviderAppRoutes.appointmentDetailList, @@ -139,10 +122,7 @@ class AppointmentPage extends StatelessWidget { } Widget progressWidget(BuildContext context, AppointmentsVM appointmentsVM) { - double percent = (appointmentsVM.appointmentSlots?.occupiedSlots ?? - 0.0 / (appointmentsVM.appointmentSlots?.totalSlots ?? 0.0)) - .toDouble() * - 100; + double percent = (appointmentsVM.appointmentSlots?.occupiedSlots ?? 0.0 / (appointmentsVM.appointmentSlots?.totalSlots ?? 0.0)).toDouble() * 100; return Column( children: [ Row( @@ -201,9 +181,7 @@ class AppointmentPage extends StatelessWidget { fontSize: 8, color: Colors.white, ), - (appointmentsVM.appointmentSlots?.emptySlots ?? 0) - .toString() - .toText( + (appointmentsVM.appointmentSlots?.emptySlots ?? 0).toString().toText( fontSize: 9, fontWeight: FontWeight.bold, color: Colors.white, @@ -225,9 +203,7 @@ class AppointmentPage extends StatelessWidget { fontSize: 8, color: Colors.white, ), - (appointmentsVM.appointmentSlots?.occupiedSlots ?? 0) - .toString() - .toText( + (appointmentsVM.appointmentSlots?.occupiedSlots ?? 0).toString().toText( fontSize: 9, fontWeight: FontWeight.bold, color: Colors.white, @@ -250,9 +226,7 @@ class AppointmentPage extends StatelessWidget { fontSize: 13, fontWeight: FontWeight.bold, ), - (appointmentsVM.appointmentSlots?.totalSlots ?? 0) - .toString() - .toText( + (appointmentsVM.appointmentSlots?.totalSlots ?? 0).toString().toText( fontSize: 24, fontWeight: FontWeight.bold, ), diff --git a/lib/views/appoinments/merge_appointment_page.dart b/lib/views/appoinments/merge_appointment_page.dart index 66fb632..703ef42 100644 --- a/lib/views/appoinments/merge_appointment_page.dart +++ b/lib/views/appoinments/merge_appointment_page.dart @@ -144,7 +144,7 @@ class MergeAppointmentListPage extends StatelessWidget { } Future _updateAppointment(BuildContext context, int branchId) async { - await context.read().getProviderMyAppointments({ + await context.read().getMyAppointmentsForProvider({ "ServiceProviderID": injector .get() .getUser diff --git a/lib/views/appoinments/update_appointment_page.dart b/lib/views/appoinments/update_appointment_page.dart index 20f3c1a..52e1bb3 100644 --- a/lib/views/appoinments/update_appointment_page.dart +++ b/lib/views/appoinments/update_appointment_page.dart @@ -33,13 +33,8 @@ class UpdateAppointmentPage extends StatelessWidget { body: SizedBox( width: double.infinity, height: double.infinity, - child: Consumer(builder: (BuildContext context, - AppointmentsVM appointmentsVM, Widget? child) { - appointmentListModel = appointmentsVM - .myFilteredAppointments2[ - appointmentsVM.selectedAppointmentIndex] - .customerAppointmentList![ - appointmentsVM.selectedAppointmentSubIndex]; + child: Consumer(builder: (BuildContext context, AppointmentsVM appointmentsVM, Widget? child) { + appointmentListModel = appointmentsVM.myFilteredAppointments2[appointmentsVM.selectedAppointmentIndex].customerAppointmentList![appointmentsVM.selectedAppointmentSubIndex]; if (appointmentsVM.state == ViewState.busy) { return const Center(child: CircularProgressIndicator()); } else { @@ -72,11 +67,8 @@ class UpdateAppointmentPage extends StatelessWidget { ], ), ), - if (appointmentListModel.appointmentStatusEnum == - AppointmentStatusEnum.cancelled) - "Appointment is Canceled".toText(), - if (appointmentListModel.appointmentStatusEnum == - AppointmentStatusEnum.booked) + if (appointmentListModel.appointmentStatusEnum == AppointmentStatusEnum.cancelled) "Appointment is Canceled".toText(), + if (appointmentListModel.appointmentStatusEnum == AppointmentStatusEnum.booked) Column( children: [ showPayNowButton(context, appointmentsVM), @@ -85,20 +77,14 @@ class UpdateAppointmentPage extends StatelessWidget { ], ).paddingAll(21), - if (appointmentListModel.appointmentStatusEnum == - AppointmentStatusEnum.confirmed && - appointmentListModel.appointmentPaymentStatusEnum == - AppointmentPaymentStatusEnum.defaultStatus) + if (appointmentListModel.appointmentStatusEnum == AppointmentStatusEnum.confirmed && appointmentListModel.appointmentPaymentStatusEnum == AppointmentPaymentStatusEnum.defaultStatus) Column( children: [ showArrivedutton(context, appointmentsVM), ], ).paddingAll(21), - if (appointmentListModel.appointmentStatusEnum == - AppointmentStatusEnum.arrived && - appointmentListModel.appointmentPaymentStatusEnum == - AppointmentPaymentStatusEnum.defaultStatus) + if (appointmentListModel.appointmentStatusEnum == AppointmentStatusEnum.arrived && appointmentListModel.appointmentPaymentStatusEnum == AppointmentPaymentStatusEnum.defaultStatus) Column( children: [ showPayNowButton(context, appointmentsVM), @@ -107,32 +93,20 @@ class UpdateAppointmentPage extends StatelessWidget { ], ).paddingAll(21), - if ((appointmentListModel.appointmentStatusEnum == - AppointmentStatusEnum.arrived || - appointmentListModel.appointmentStatusEnum == - AppointmentStatusEnum.workStarted) && - appointmentListModel.appointmentPaymentStatusEnum == - AppointmentPaymentStatusEnum.payNow) - "Waiting for the payment from the customer" - .toText() - .paddingAll(21), + if ((appointmentListModel.appointmentStatusEnum == AppointmentStatusEnum.arrived || appointmentListModel.appointmentStatusEnum == AppointmentStatusEnum.workStarted) && + appointmentListModel.appointmentPaymentStatusEnum == AppointmentPaymentStatusEnum.payNow) + "Waiting for the payment from the customer".toText().paddingAll(21), - if (appointmentListModel.appointmentStatusEnum == - AppointmentStatusEnum.arrived && - (appointmentListModel.appointmentPaymentStatusEnum == - AppointmentPaymentStatusEnum.paid || - appointmentListModel.appointmentPaymentStatusEnum == - AppointmentPaymentStatusEnum.payLater)) + if (appointmentListModel.appointmentStatusEnum == AppointmentStatusEnum.arrived && + (appointmentListModel.appointmentPaymentStatusEnum == AppointmentPaymentStatusEnum.paid || + appointmentListModel.appointmentPaymentStatusEnum == AppointmentPaymentStatusEnum.payLater)) Column( children: [ showWorkStartButton(context, appointmentsVM), ], ).paddingAll(21), - if (appointmentListModel.appointmentStatusEnum == - AppointmentStatusEnum.workStarted && - appointmentListModel.appointmentPaymentStatusEnum == - AppointmentPaymentStatusEnum.payPartial) + if (appointmentListModel.appointmentStatusEnum == AppointmentStatusEnum.workStarted && appointmentListModel.appointmentPaymentStatusEnum == AppointmentPaymentStatusEnum.payPartial) Column( children: [ showPayLaterButton(context, appointmentsVM), @@ -142,25 +116,17 @@ class UpdateAppointmentPage extends StatelessWidget { ).paddingAll(21), // "Show Pay Now".toText(), - if (appointmentListModel.appointmentStatusEnum == - AppointmentStatusEnum.workStarted && - appointmentListModel.appointmentPaymentStatusEnum == - AppointmentPaymentStatusEnum.paid) + if (appointmentListModel.appointmentStatusEnum == AppointmentStatusEnum.workStarted && appointmentListModel.appointmentPaymentStatusEnum == AppointmentPaymentStatusEnum.paid) Column( children: [ showCompleteButton(context, appointmentsVM), ], ).paddingAll(21), // "Show Complete Button".toText(), - if (appointmentListModel.appointmentStatusEnum == - AppointmentStatusEnum.workStarted && - appointmentListModel.appointmentPaymentStatusEnum == - AppointmentPaymentStatusEnum.payLater) + if (appointmentListModel.appointmentStatusEnum == AppointmentStatusEnum.workStarted && appointmentListModel.appointmentPaymentStatusEnum == AppointmentPaymentStatusEnum.payLater) showPayNowButton(context, appointmentsVM).paddingAll(21), - if (appointmentListModel.appointmentStatusEnum == - AppointmentStatusEnum.visitCompleted) - "Appointment is completed".toText().paddingAll(21), + if (appointmentListModel.appointmentStatusEnum == AppointmentStatusEnum.visitCompleted) "Appointment is completed".toText().paddingAll(21), // Padding( // padding: const EdgeInsets.all(21.0), @@ -203,17 +169,13 @@ class UpdateAppointmentPage extends StatelessWidget { ); } - Widget showWorkStartButton( - BuildContext context, AppointmentsVM appointmentsVM) { + Widget showWorkStartButton(BuildContext context, AppointmentsVM appointmentsVM) { return ShowFillButton( title: "Work Start", maxWidth: double.infinity, onPressed: () async { Utils.showLoading(context); - await appointmentsVM.updateAppointmentStatus({ - "appointmentID": appointmentListModel.id.toString(), - "appointmentStatusID": 7 - }); + await appointmentsVM.updateAppointmentStatus({"appointmentID": appointmentListModel.id.toString(), "appointmentStatusID": 7}); Utils.hideLoading(context); // showMyBottomSheet( // context, @@ -232,10 +194,7 @@ class UpdateAppointmentPage extends StatelessWidget { maxWidth: double.infinity, onPressed: () async { Utils.showLoading(context); - await appointmentsVM.updateAppointmentPaymentStatus({ - "appointmentID": appointmentListModel.id.toString(), - "appointmentServicePaymentStatusID": 2 - }); + await appointmentsVM.updateAppointmentPaymentStatus({"appointmentID": appointmentListModel.id.toString(), "appointmentServicePaymentStatusID": 2}); _updateAppointment(context, appointmentListModel.branchId ?? 0); Utils.hideLoading(context); }, @@ -248,44 +207,33 @@ class UpdateAppointmentPage extends StatelessWidget { maxWidth: double.infinity, onPressed: () async { Utils.showLoading(context); - await appointmentsVM.updateAppointmentStatus({ - "appointmentID": appointmentListModel.id.toString(), - "appointmentStatusID": 3 - }); + await appointmentsVM.updateAppointmentStatus({"appointmentID": appointmentListModel.id.toString(), "appointmentStatusID": 3}); _updateAppointment(context, appointmentListModel.branchId ?? 0); Utils.hideLoading(context); }, ); } - Widget showPayLaterButton( - BuildContext context, AppointmentsVM appointmentsVM) { + Widget showPayLaterButton(BuildContext context, AppointmentsVM appointmentsVM) { return ShowFillButton( title: "Pay Later", maxWidth: double.infinity, onPressed: () async { Utils.showLoading(context); - await appointmentsVM.updateAppointmentPaymentStatus({ - "appointmentID": appointmentListModel.id.toString(), - "appointmentServicePaymentStatusID": 4 - }); + await appointmentsVM.updateAppointmentPaymentStatus({"appointmentID": appointmentListModel.id.toString(), "appointmentServicePaymentStatusID": 4}); _updateAppointment(context, appointmentListModel.branchId ?? 0); Utils.hideLoading(context); }, ); } - Widget showCompleteButton( - BuildContext context, AppointmentsVM appointmentsVM) { + Widget showCompleteButton(BuildContext context, AppointmentsVM appointmentsVM) { return ShowFillButton( title: "Complete", maxWidth: double.infinity, onPressed: () async { Utils.showLoading(context); - await appointmentsVM.updateAppointmentStatus({ - "appointmentID": appointmentListModel.id.toString(), - "appointmentStatusID": 8 - }); + await appointmentsVM.updateAppointmentStatus({"appointmentID": appointmentListModel.id.toString(), "appointmentStatusID": 8}); _updateAppointment(context, appointmentListModel.branchId ?? 0); Utils.hideLoading(context); }, @@ -312,15 +260,8 @@ class UpdateAppointmentPage extends StatelessWidget { } Future _updateAppointment(BuildContext context, int branchId) async { - await context.read().getProviderMyAppointments({ - "ServiceProviderID": injector - .get() - .getUser - .data - ?.userInfo - ?.providerId - .toString() ?? - "0", + await context.read().getMyAppointmentsForProvider({ + "ServiceProviderID": injector.get().getUser.data?.userInfo?.providerId.toString() ?? "0", "ProviderBranchID": branchId.toString(), }, isNeedToRebuild: true); } diff --git a/lib/views/dashboard/dashboard_page.dart b/lib/views/dashboard/dashboard_page.dart index 612704a..228ad3b 100644 --- a/lib/views/dashboard/dashboard_page.dart +++ b/lib/views/dashboard/dashboard_page.dart @@ -44,29 +44,19 @@ class _DashboardPageState extends State { super.initState(); dashboardVM = Provider.of(context, listen: false); context.read().populateRequestsFilterList(); + context.read().populateAppointmentsFilterList(); _onRefresh(); } Future _onRefresh() async { final requestsVM = context.read(); - final chatVM = context.read(); - + // final chatVM = context.read(); // context.read().populateAdsFilterList(); context.read().getBranchAndServices(); AdVM adVm = Provider.of(context, listen: false); - AppointmentsVM appointmentsVM = - Provider.of(context, listen: false); + AppointmentsVM appointmentsVM = Provider.of(context, listen: false); if (appointmentsVM.myAppointments.isEmpty) { - await appointmentsVM.getProviderMyAppointments({ - "ServiceProviderID": injector - .get() - .getUser - .data - ?.userInfo - ?.providerId - .toString() ?? - "0" - }); + await appointmentsVM.getMyAppointmentsForProvider({"ServiceProviderID": injector.get().getUser.data?.userInfo?.providerId.toString() ?? "0"}); } adVm.populateAdsFilterList(); if (adVm.myAds.isEmpty) { diff --git a/lib/views/dashboard/fragments/appoinment_fragment.dart b/lib/views/dashboard/fragments/appoinment_fragment.dart index a5c73fe..452694a 100644 --- a/lib/views/dashboard/fragments/appoinment_fragment.dart +++ b/lib/views/dashboard/fragments/appoinment_fragment.dart @@ -8,44 +8,29 @@ import 'package:mc_common_app/utils/date_helper.dart'; import 'package:mc_common_app/utils/navigator.dart'; import 'package:mc_common_app/utils/utils.dart'; import 'package:mc_common_app/view_models/appointments_view_model.dart'; -import 'package:mc_common_app/views/appointments/widgets/customer_appointment_slider_widget.dart'; import 'package:mc_common_app/widgets/common_widgets/categories_list.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; -import 'package:mc_common_app/widgets/tab/menu_tabs.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; -import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart'; import 'package:percent_indicator/percent_indicator.dart'; import 'package:provider/provider.dart'; class AppointmentFragment extends StatelessWidget { String date = ""; - VoidCallback onBackButtonTapped; + final VoidCallback onBackButtonTapped; - AppointmentFragment({Key? key, required this.onBackButtonTapped}) - : super(key: key); + AppointmentFragment({Key? key, required this.onBackButtonTapped}) : super(key: key); - GlobalKey refreshIndicatorKey = - GlobalKey(); + GlobalKey refreshIndicatorKey = GlobalKey(); Future _pullRefresh(BuildContext context) async { - await context.read().getProviderMyAppointments({ - "ServiceProviderID": injector - .get() - .getUser - .data - ?.userInfo - ?.providerId - .toString() ?? - "0" - }); + await context.read().getMyAppointmentsForProvider({"ServiceProviderID": injector.get().getUser.data?.userInfo?.providerId.toString() ?? "0"}); } @override Widget build(BuildContext context) { - context.read().setupProviderAppointmentFilter(); date = DateHelper.formatAsDayMonthYear(DateTime.now()); return Scaffold( appBar: CustomAppBar( @@ -63,8 +48,7 @@ class AppointmentFragment extends StatelessWidget { body: SizedBox( width: double.infinity, height: double.infinity, - child: Consumer(builder: (BuildContext context, - AppointmentsVM appointmentsVM, Widget? child) { + child: Consumer(builder: (BuildContext context, AppointmentsVM appointmentsVM, Widget? child) { return RefreshIndicator( onRefresh: () => _pullRefresh(context), key: refreshIndicatorKey, @@ -78,25 +62,20 @@ class AppointmentFragment extends StatelessWidget { padding: const EdgeInsets.symmetric(horizontal: 18), onFilterTapped: (index, selectedFilterId) { appointmentsVM.applyFilterOnAppointmentsVM( - appointmentStatusEnum: - selectedFilterId.toAppointmentStatusEnum(), + appointmentStatusEnum: selectedFilterId.toAppointmentStatusEnum(), ); }, ), ListView.separated( itemBuilder: (context, index) { return AppointmentSliderWidget( - appointmentListModel: - appointmentsVM.myFilteredAppointments2[index], + appointmentListModel: appointmentsVM.myFilteredAppointments2[index], isNeedTotalPayment: false, onTap: () { - navigateWithName( context, ProviderAppRoutes.appointmentDetailList, - arguments: appointmentsVM - .myFilteredAppointments2[index] - .customerAppointmentList, + arguments: appointmentsVM.myFilteredAppointments2[index].customerAppointmentList, ); }, ); diff --git a/lib/views/settings/branch/define_branch_page.dart b/lib/views/settings/branch/define_branch_page.dart index 2ab44dc..052bed3 100644 --- a/lib/views/settings/branch/define_branch_page.dart +++ b/lib/views/settings/branch/define_branch_page.dart @@ -28,8 +28,7 @@ class DefineBranchPage extends StatelessWidget { @override Widget build(BuildContext context) { ServiceVM branchVM = context.read(); - branchVM.getAllCountriesList(branchData, - EasyLocalization.of(context)?.currentLocale?.countryCode ?? "SA"); + branchVM.getAllCountriesList(branchData, EasyLocalization.of(context)?.currentLocale?.countryCode ?? "SA"); return Scaffold( appBar: CustomAppBar( title: LocaleKeys.defineBranches.tr(), @@ -51,16 +50,10 @@ class DefineBranchPage extends StatelessWidget { model.country != null ? DropdownField( (DropValue value) { - model.countryValue = - DropValue(value.id, value.value, ""); + model.countryValue = DropValue(value.id, value.value, ""); model.countryCode = value.subValue; model.countryId = value.id; - model.getAllCities( - branchData, - EasyLocalization.of(context) - ?.currentLocale - ?.countryCode ?? - "SA"); + model.getAllCities(branchData, EasyLocalization.of(context)?.currentLocale?.countryCode ?? "SA"); }, isSelectAble: branchData == null ? true : false, list: model.countryDropList, @@ -75,8 +68,7 @@ class DefineBranchPage extends StatelessWidget { ? Text(LocaleKeys.no_city_available.tr()) : DropdownField( (DropValue value) { - model.cityValue = DropValue( - value.id, value.value, ""); + model.cityValue = DropValue(value.id, value.value, ""); model.setOnlyState(ViewState.busy); model.cityId = value.id; model.setState(ViewState.idle); @@ -121,8 +113,7 @@ class DefineBranchPage extends StatelessWidget { navigateTo( context, PickLocationPage( - onPickAddress: (double latitude, - double longitude, String address) { + onPickAddress: (double latitude, double longitude, String address) { print("tesssgngl " + address); model.latitude = latitude; model.longitude = longitude; @@ -137,16 +128,12 @@ class DefineBranchPage extends StatelessWidget { height: 45, decoration: BoxDecoration( color: Colors.transparent, - border: Border.all( - color: MyColors.darkPrimaryColor, - width: 2), - borderRadius: const BorderRadius.all( - Radius.circular(8)), + border: Border.all(color: MyColors.darkPrimaryColor, width: 2), + borderRadius: const BorderRadius.all(Radius.circular(8)), ), child: Row( mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: - CrossAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, children: [ const Icon( Icons.place_outlined, @@ -179,24 +166,14 @@ class DefineBranchPage extends StatelessWidget { SizedBox( width: double.infinity, child: Padding( - padding: - const EdgeInsets.only(left: 20, right: 20, bottom: 20), + padding: const EdgeInsets.only(left: 20, right: 20, bottom: 20), child: ShowFillButton( - title: branchData != null - ? (branchData!.id == null - ? LocaleKeys.createBranch.tr() - : LocaleKeys.updateBranch.tr()) - : LocaleKeys.createBranch.tr(), + title: branchData != null ? (branchData!.id == null ? LocaleKeys.createBranch.tr() : LocaleKeys.updateBranch.tr()) : LocaleKeys.createBranch.tr(), onPressed: () async { if (branchData == null) { Utils.showLoading(context); - MResponse res = await model.createBranch( - model.branchName, - model.branchDescription, - model.cityId.toString(), - model.address, - model.latitude.toString(), - model.longitude.toString()); + MResponse res = + await model.createBranch(model.branchName, model.branchDescription, model.cityId.toString(), model.address, model.latitude.toString(), model.longitude.toString()); Utils.hideLoading(context); if (res.messageStatus == 1) { Utils.showToast(LocaleKeys.branch_created.tr()); @@ -208,13 +185,7 @@ class DefineBranchPage extends StatelessWidget { } else { Utils.showLoading(context); MResponse res = await model.updateBranch( - branchData!.id ?? 0, - model.branchName, - model.branchDescription, - model.cityId.toString(), - model.address, - model.latitude.toString(), - model.longitude.toString()); + branchData!.id ?? 0, model.branchName, model.branchDescription, model.cityId.toString(), model.address, model.latitude.toString(), model.longitude.toString()); Utils.hideLoading(context); if (res.messageStatus == 1) { Utils.showToast(LocaleKeys.branch_updated.tr());