From 3b35288c9dcd7b967758de2dbe6a0535a9167a28 Mon Sep 17 00:00:00 2001 From: "Aamir.Muhammad" <> Date: Tue, 2 Jul 2024 16:00:48 +0300 Subject: [PATCH] user profile 7 api's & fixes --- ios/Podfile | 12 +- lib/config/provider_routes.dart | 8 +- lib/main.dart | 5 +- lib/view_models/service_view_model.dart | 611 ------------------ .../add_new_service_appointment_page.dart | 4 +- .../appoinment_detail_list_page.dart | 2 +- lib/views/appoinments/appointment_page.dart | 2 +- lib/views/dashboard/dashboard_page.dart | 10 +- .../fragments/appoinment_fragment.dart | 2 +- .../branch_appointment_fragment.dart | 4 +- .../dashboard/fragments/home_fragment.dart | 22 +- lib/views/dashboard/widget/drawer_widget.dart | 2 +- .../dashboard/widget/my_service_provider.dart | 2 +- .../settings/branch/branch_detail_page.dart | 2 +- .../settings/branch/branch_list_page.dart | 2 +- .../branch/dealer/dealer_user_page.dart | 2 +- .../widget/assign_dealer_user_sheet.dart | 2 +- .../settings/branch/define_branch_page.dart | 2 +- lib/views/settings/create_services_page.dart | 2 +- lib/views/settings/define_license_page.dart | 222 ------- .../widgets/select_services_sheet.dart | 2 +- .../services/create_services_page2.dart | 2 +- .../services/create_services_page3.dart | 2 +- .../duplication/matched_services_page.dart | 2 +- .../sheet/approved_branches_list_sheet.dart | 2 +- 25 files changed, 47 insertions(+), 883 deletions(-) delete mode 100644 lib/view_models/service_view_model.dart delete mode 100644 lib/views/settings/define_license_page.dart diff --git a/ios/Podfile b/ios/Podfile index 6b5d7f3..3649deb 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project - platform :ios, '13.0' + platform :ios, '14.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' @@ -40,5 +40,15 @@ end post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) + target.build_configurations.each do |config| + config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [ + '$(inherited)', + 'PERMISSION_CAMERA=1', + 'PERMISSION_PHOTOS=1', + 'PERMISSION_LOCATION=1', + 'PERMISSION_LOCATION_WHENINUSE=0', + 'PERMISSION_NOTIFICATIONS=1', + ] + end end end diff --git a/lib/config/provider_routes.dart b/lib/config/provider_routes.dart index bad4a2a..502f739 100644 --- a/lib/config/provider_routes.dart +++ b/lib/config/provider_routes.dart @@ -6,16 +6,12 @@ import 'package:car_provider_app/views/appoinments/update_appointment_page.dart' import 'package:car_provider_app/views/requests/request_detail_page.dart'; import 'package:car_provider_app/views/requests/send_offer_page.dart'; import 'package:car_provider_app/views/settings/branch/branch_detail_page.dart'; -import 'package:car_provider_app/views/settings/branch/branch_list_page.dart'; import 'package:car_provider_app/views/settings/branch/dealer/dealer_user_page.dart'; import 'package:car_provider_app/views/settings/branch/define_branch_page.dart'; -import 'package:car_provider_app/views/settings/create_services_page.dart'; import 'package:car_provider_app/views/settings/schedule/add_schedules_page.dart'; import 'package:car_provider_app/views/settings/schedule/schedules_list_page.dart'; import 'package:car_provider_app/views/settings/services/create_item_page.dart'; -import 'package:car_provider_app/views/settings/services/create_services_page2.dart'; import 'package:car_provider_app/views/settings/dealership_page.dart'; -import 'package:car_provider_app/views/settings/define_license_page.dart'; import 'package:car_provider_app/views/settings/services/create_services_page3.dart'; import 'package:car_provider_app/views/settings/services/duplication/matched_services_page.dart'; import 'package:car_provider_app/views/settings/services/duplication/sheet/approved_branches_list_sheet.dart'; @@ -25,7 +21,6 @@ import 'package:car_provider_app/views/subscriptions/my_subscritions_page.dart'; import 'package:car_provider_app/views/subscriptions/subscriptions_page.dart'; import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/models/advertisment_models/ad_details_model.dart'; - import 'package:flutter/material.dart'; import 'package:mc_common_app/models/appointments_models/appointment_list_model.dart'; import 'package:mc_common_app/models/provider_branches_models/branch_detail_model.dart'; @@ -76,6 +71,7 @@ class ProviderAppRoutes { //Bracnh Duplication static const String matchServices = "/matchServices"; + static const String userSettings = "/userSettings"; static final Map routes = { //Home page @@ -86,7 +82,7 @@ class ProviderAppRoutes { AppRoutes.createAdView: (context) => const CreateAdView(), //setting - defineLicense: (context) => DefineLicensePage(), + // defineLicense: (context) => DefineLicensePage(), dealershipSetting: (context) => DealershipPage(), // branchList: (context) => BranchListPage(), defineBranch: (context) => DefineBranchPage( diff --git a/lib/main.dart b/lib/main.dart index 4a62bbe..e138133 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -4,7 +4,7 @@ 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'; -import 'package:car_provider_app/view_models/service_view_model.dart'; +import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/app_state.dart'; @@ -56,10 +56,9 @@ Future main() async { ), ), ChangeNotifierProvider( - create: (_) => UserVM(userRepo: injector.get()), + create: (_) => UserVM(userRepo: injector.get(), commanServices: injector.get()), ), - // ChangeNotifierProvider( // create: (_) => BranchVM( // branchRepo: injector.get(), diff --git a/lib/view_models/service_view_model.dart b/lib/view_models/service_view_model.dart deleted file mode 100644 index 1ea6eb6..0000000 --- a/lib/view_models/service_view_model.dart +++ /dev/null @@ -1,611 +0,0 @@ -// import 'dart:convert'; -// import 'dart:io'; -// -// import 'package:car_provider_app/repositories/branch_repo.dart'; -// import 'package:mc_common_app/models/m_response.dart'; -// -// import 'package:mc_common_app/models/model/provider_model.dart'; -// import 'package:mc_common_app/models/profile/categroy.dart'; -// import 'package:mc_common_app/models/profile/document.dart'; -// import 'package:mc_common_app/models/profile/services.dart'; -// import 'package:mc_common_app/models/services/branch_model.dart'; -// import 'package:mc_common_app/models/services/item_model.dart'; -// import 'package:mc_common_app/models/services/service_model.dart'; -// import 'package:mc_common_app/models/user/cities.dart'; -// import 'package:mc_common_app/models/user/country.dart'; -// import 'package:mc_common_app/repositories/common_repo.dart'; -// import 'package:mc_common_app/services/common_services.dart'; -// import 'package:mc_common_app/utils/enums.dart'; -// import 'package:mc_common_app/utils/utils.dart'; -// import 'package:mc_common_app/view_models/base_view_model.dart'; -// import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart'; -// import 'package:file_picker/file_picker.dart'; -// -// class ServiceVM extends BaseVM { -// final BranchRepo branchRepo; -// final CommonAppServices commonServices; -// final CommonRepo commonRepo; -// -// ServiceVM({required this.branchRepo, required this.commonServices, required this.commonRepo}); -// -// //Documents & Branches -// int selectedBranchStatus = 3; -// Document? document; -// ProviderModel? branchs; -// Country? country; -// Cities? cities; -// DropValue? countryValue; -// DropValue? cityValue; -// List countryDropList = []; -// List citiesDropList = []; -// double latitude = 0, longitude = 0; -// int role = -1, countryId = -1, cityId = -1; -// String countryCode = "", address = "", branchName = "", branchDescription = ""; -// -// getServiceProviderDocument(int providerId) async { -// setState(ViewState.busy); -// document = await branchRepo.getServiceProviderDocument(providerId); -// setState(ViewState.idle); -// } -// -// selectFile(int index) async { -// File? file = await commonServices.pickFile(fileType: FileType.custom, allowedExtensions: ['png', 'pdf', 'jpeg']); -// -// if (file != null) { -// int sizeInBytes = file.lengthSync(); -// // double sizeInMb = sizeInBytes / (1024 * 1024); -// if (sizeInBytes > 1000) { -// Utils.showToast("File is larger then 1KB"); -// } else { -// document!.data![index].document = Utils.convertFileToBase64(file); -// document!.data![index].fileExt = Utils.checkFileExt(file.path); -// document!.data![index].documentUrl = file.path; -// setState(ViewState.idle); -// } -// } else { -// // User canceled the picker -// } -// } -// -// Future updateDocument(List? data) async { -// return await branchRepo.serviceProviderDocumentsUpdate(data); -// } -// -// //Create new branch -// getBranchAndServices() async { -// setState(ViewState.busy); -// branchs = await branchRepo.getBranchAndServices(); -// setState(ViewState.idle); -// } -// -// getAllCountriesList(BranchModel? branchData, String countryCode) async { -// setState(ViewState.busy); -// resetValues(); -// country = await commonRepo.getAllCountries(); -// country!.data?.forEach((element) { -// if (branchData != null) if (branchData.id != null) { -// if (element.id == branchData.countryID) { -// countryValue = DropValue(element.id ?? 0, countryCode == "SA" ? (element.countryNameN ?? "") : (element.countryName ?? ""), element.countryCode ?? ""); -// } -// } -// countryDropList.add(DropValue(element.id ?? 0, countryCode == "SA" ? (element.countryNameN ?? "") : (element.countryName ?? ""), element.countryCode ?? "")); -// }); -// if (branchData != null) if (branchData.id != null) getAllCities(branchData, countryCode); -// setState(ViewState.idle); -// } -// -// getAllCities(BranchModel? branchData, String countryCode) async { -// setState(ViewState.busy); -// citiesDropList.clear(); -// cities = null; -// cityId = -1; -// cities = await commonRepo.getAllCites(countryId.toString()); -// cities!.data?.forEach((element) { -// if (branchData != null && branchData.id != null) { -// if (element.id == branchData.cityId) { -// address = branchData.address!; -// branchName = branchData.branchName!; -// branchDescription = branchData.branchDescription!; -// latitude = double.parse(branchData.latitude ?? ""); -// longitude = double.parse(branchData.longitude ?? ""); -// countryId = branchData.countryID!; -// cityId = branchData.cityId!; -// cityValue = DropValue(element.id ?? 0, countryCode == "SA" ? (element.cityNameN ?? "") : (element.cityName ?? ""), element.id.toString() ?? ""); -// } -// } -// citiesDropList.add(DropValue(element.id ?? 0, countryCode == "SA" ? (element.cityNameN ?? "") : (element.cityName ?? ""), element.id.toString() ?? "")); -// }); -// setState(ViewState.idle); -// } -// -// Future createBranch(String branchName, String branchDescription, String cityId, String address, String latitude, String longitude) async { -// return await branchRepo.createBranch(branchName, branchDescription, cityId.toString(), address, latitude.toString(), longitude.toString()); -// } -// -// Future updateBranch(int id, String branchName, String branchDescription, String cityId, String address, String latitude, String longitude, {bool isNeedToDelete = true}) async { -// return await branchRepo.updateBranch(id ?? 0, branchName, branchDescription, cityId.toString(), address, latitude.toString(), longitude.toString()); -// } -// -// resetValues() { -// countryCode = ""; -// address = ""; -// branchName = ""; -// branchDescription = ""; -// latitude = 0; -// longitude = 0; -// role = -1; -// countryId = -1; -// cityId = -1; -// countryDropList.clear(); -// countryId = -1; -// cityId = -1; -// cities = null; -// categoryDropList = []; -// servicesDropList = []; -// services = null; -// } -// -// //Create Services -// Services? services; -// List categoryDropList = []; -// List servicesDropList = []; -// -// fetchBranchCategory(String countryCode) async { -// categoryDropList.clear(); -// servicesDropList = []; -// services = null; -// setState(ViewState.busy); -// Category? category = await branchRepo.fetchBranchCategory(); -// category.data?.forEach((element) { -// categoryDropList.add(DropValue( -// element.id ?? 0, -// ((element.categoryName!.isEmpty -// ? "N/A" -// : countryCode == "SA" -// ? element.categoryNameN -// : element.categoryName) ?? -// "N/A"), -// "")); -// }); -// setState(ViewState.idle); -// } -// -// fetchServicesByCategoryId(String categoryId) async { -// servicesDropList = []; -// setState(ViewState.busy); -// services = await branchRepo.fetchServicesByCategoryId(categoryId); -// -// for (var element in services!.data!) { -// servicesDropList.add(DropValue(element.id ?? 0, element.description ?? "N/aA", "")); -// } -// setState(ViewState.idle); -// } -// -// Future createService(List> map) async { -// return await branchRepo.createService(map); -// } -// -// Future updateServices(List> map) async { -// return await branchRepo.updateService(map); -// } -// -// updateSelectedBranchType(int status) { -// selectedBranchStatus = status; -// notifyListeners(); -// } -// -// List? matchedServices; -// bool isAllSelected = false; -// -// getAllMatchedServices(int oldBranchId, int newBranchId, int categoryId) async { -// matchedServices = null; -// MResponse response = await branchRepo.getMatchedServices(oldBranchId, newBranchId, categoryId); -// matchedServices = []; -// if (response.messageStatus == 1) { -// matchedServices = List.from(response.data.map((x) => ServiceModel.fromJson(x))); -// } -// notifyListeners(); -// } -// -// selectAllServices(bool value) { -// for (var element in matchedServices!) { -// element.isExpandedOrSelected = value; -// for (var item in element.serviceItems!) { -// item.isUpdateOrSelected = value; -// } -// } -// isAllSelected = value; -// notifyListeners(); -// } -// -// updateServiceItem(int serviceIndex, bool value) { -// for (var element in matchedServices![serviceIndex].serviceItems!) { -// element.isUpdateOrSelected = value; -// } -// notifyListeners(); -// } -// -// copyItems(int index, List copiedItems) { -// matchedServices![index].serviceItems = copiedItems; -// notifyListeners(); -// } -// -// Future duplicateItems(Map map) async { -// return await branchRepo.duplicateItems(map); -// } -// } - -import 'dart:io'; -import 'package:mc_common_app/repositories/branch_repo.dart'; -import 'package:file_picker/file_picker.dart'; -import 'package:flutter/cupertino.dart'; -import 'package:mc_common_app/models/general_models/m_response.dart'; -import 'package:mc_common_app/models/provider_branches_models/branch_detail_model.dart'; -import 'package:mc_common_app/models/provider_branches_models/profile/categroy.dart'; -import 'package:mc_common_app/models/provider_branches_models/profile/document.dart'; -import 'package:mc_common_app/models/provider_branches_models/profile/services.dart'; -import 'package:mc_common_app/models/provider_branches_models/provider_model.dart'; -import 'package:mc_common_app/models/services_models/item_model.dart'; -import 'package:mc_common_app/models/services_models/service_model.dart'; -import 'package:mc_common_app/models/user_models/branch_user.dart'; -import 'package:mc_common_app/models/user_models/cities.dart'; -import 'package:mc_common_app/models/user_models/country.dart'; -import 'package:mc_common_app/repositories/common_repo.dart'; -import 'package:mc_common_app/services/common_services.dart'; -import 'package:mc_common_app/utils/enums.dart'; -import 'package:mc_common_app/utils/utils.dart'; -import 'package:mc_common_app/view_models/base_view_model.dart'; -import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart'; - -class ServiceVM extends BaseVM { - final BranchRepo branchRepo; - final CommonAppServices commonServices; - final CommonRepo commonRepo; - - ServiceVM({ - required this.branchRepo, - required this.commonServices, - required this.commonRepo, - }); - - // Documents & Branches - int selectedBranchStatus = 3; - Document? document; - ProviderModel? branches; - Country? country; - Cities? cities; - DropValue? countryValue; - DropValue? cityValue; - List countryDropList = []; - List citiesDropList = []; - double latitude = 0; - double longitude = 0; - int role = -1; - int countryId = -1; - int cityId = -1; - String countryCode = ""; - String address = ""; - String branchName = ""; - String branchDescription = ""; - - Future getServiceProviderDocument(int providerId) async { - setState(ViewState.busy); - document = await branchRepo.getServiceProviderDocument(providerId); - setState(ViewState.idle); - } - - Future selectFile(BuildContext context, int index) async { - final File? file = await commonServices.pickFile( - context, - fileType: FileType.custom, - allowedExtensions: ['png', 'pdf', 'jpeg'], - ); - - // if (result != null) { - // final File file = File(result.files.single.path!); - // final int sizeInBytes = file.lengthSync(); - // - // if (sizeInBytes > 1000) { - // Utils.showToast("File is larger than 1KB"); - // } else { - // document!.data![index].document = Utils.convertFileToBase64(file); - // document!.data![index].fileExt = Utils.checkFileExt(file.path); - // document!.data![index].documentUrl = file.path; - // setState(ViewState.idle); - // } - // } else { - // // User canceled the picker - // } - - if (file != null) { - int sizeInBytes = file.lengthSync(); - // double sizeInMb = sizeInBytes / (1024 * 1024); - if (sizeInBytes > 1000000) { - Utils.showToast("File is larger then 1KB"); - } else { - document!.data![index].document = Utils.convertFileToBase64(file); - document!.data![index].fileExt = Utils.checkFileExt(file.path); - document!.data![index].documentUrl = file.path; - setState(ViewState.idle); - } - } else { - // User canceled the picker - } - } - - Future updateDocument(List? data) async { - return await branchRepo.serviceProviderDocumentsUpdate(data); - } - - // Create new branch - Future getBranchAndServices() async { - setState(ViewState.busy); - branches = await branchRepo.getBranchAndServices(); - setState(ViewState.idle); - } - - Future getAllCountriesList(BranchDetailModel? branchData, String countryCode) async { - cities = null; - country = null; - setState(ViewState.busy); - resetValues(); - country = await commonRepo.getAllCountries(); - country!.data?.forEach((element) { - if (branchData != null && branchData.id != null) { - if (element.id == branchData.countryID) { - countryId = element.id ?? -1; - countryValue = DropValue( - element.id ?? 0, - countryCode == "SA" ? (element.countryNameN ?? "") : (element.countryName ?? ""), - element.countryCode ?? "", - ); - } - } - countryDropList.add( - DropValue( - element.id ?? 0, - countryCode == "SA" ? (element.countryNameN ?? "") : (element.countryName ?? ""), - element.countryCode ?? "", - ), - ); - }); - if (branchData != null && branchData.id != null) { - await getAllCities(branchData, countryCode); - } - setState(ViewState.idle); - } - - Future getAllCities(BranchDetailModel? branchData, String countryCode) async { - setState(ViewState.busy); - citiesDropList = []; - cities = null; - cityId = -1; - cityValue = null; - cities = await commonRepo.getAllCites(countryId.toString()); - cities!.data?.forEach((element) { - if (branchData != null && branchData.id != null) { - if (element.id == branchData.cityId) { - address = branchData.address!; - branchName = branchData.branchName!; - branchDescription = branchData.branchDescription!; - latitude = double.parse(branchData.latitude ?? ""); - longitude = double.parse(branchData.longitude ?? ""); - countryId = branchData.countryID!; - cityId = branchData.cityId!; - cityValue = DropValue( - element.id ?? 0, - countryCode == "SA" ? (element.cityNameN ?? "") : (element.cityName ?? ""), - element.id.toString() ?? "", - ); - } - } - citiesDropList.add( - DropValue( - element.id ?? 0, - countryCode == "SA" ? (element.cityNameN ?? "") : (element.cityName ?? ""), - element.id.toString() ?? "", - ), - ); - }); - setState(ViewState.idle); - } - - Future createBranch(String branchName, String branchDescription, String cityId, String address, String latitude, String longitude) async { - return await branchRepo.createBranch(branchName, branchDescription, cityId.toString(), address, latitude.toString(), longitude.toString()); - } - - Future updateBranch( - int id, - String branchName, - String branchDescription, - String cityId, - String address, - String latitude, - String longitude, { - bool isNeedToDelete = true, - }) async { - return await branchRepo.updateBranch( - id ?? 0, - branchName, - branchDescription, - cityId.toString(), - address, - latitude.toString(), - longitude.toString(), - ); - } - - void resetValues() { - countryCode = ""; - address = ""; - branchName = ""; - branchDescription = ""; - latitude = 0; - longitude = 0; - role = -1; - countryId = -1; - cityId = -1; - countryDropList.clear(); - countryId = -1; - cityId = -1; - cities = null; - categoryDropList = []; - servicesDropList = []; - services = null; - } - - // Create Services - Services? services; - List categoryDropList = []; - List servicesDropList = []; - - Future fetchBranchCategory(String countryCode) async { - categoryDropList.clear(); - servicesDropList = []; - services = null; - setOnlyState(ViewState.busy); - Category? category = await branchRepo.fetchBranchCategory(); - category.data?.forEach((element) { - categoryDropList.add( - DropValue( - element.id ?? 0, - ((element.categoryName!.isEmpty - ? "N/A" - : countryCode == "SA" - ? element.categoryNameN - : element.categoryName) ?? - "N/A"), - "", - ), - ); - }); - setState(ViewState.idle); - } - - Future fetchServicesByCategoryId(int categoryId) async { - servicesDropList = []; - setState(ViewState.busy); - services = await branchRepo.fetchServicesByCategoryId(serviceCategoryId: categoryId); // to get all the services - for (var element in services!.data!) { - servicesDropList.add( - DropValue( - element.id ?? 0, - element.description ?? "N/A", - "", - ), - ); - } - setState(ViewState.idle); - } - - Future fetchProviderServices(String branchID, String categoryId) async { - servicesDropList = []; - services = null; - setState(ViewState.busy); - services = await branchRepo.fetchProviderServices(branchID, categoryId); - - for (var element in services!.data!) { - servicesDropList.add( - DropValue( - element.id ?? 0, - element.description ?? "N/A", - "", - ), - ); - } - setState(ViewState.idle); - } - - Future createService(List> map) async { - return await branchRepo.createService(map); - } - - Future updateServices(List> map) async { - return await branchRepo.updateService(map); - } - - void updateSelectedBranchType(int status) { - selectedBranchStatus = status; - notifyListeners(); - } - - List? matchedServices; - bool isAllSelected = false; - - Future getAllMatchedServices(int oldBranchId, int newBranchId, int categoryId) async { - matchedServices = null; - final MResponse response = await branchRepo.getMatchedServices(oldBranchId, newBranchId, categoryId); - matchedServices = []; - - if (response.messageStatus == 1) { - matchedServices = List.from(response.data.map((x) => ServiceModel.fromJson(x))); - } - notifyListeners(); - } - - void selectAllServices(bool value) { - for (var element in matchedServices!) { - element.isExpandedOrSelected = value; - for (var item in element.serviceItems!) { - item.isUpdateOrSelected = value; - } - } - isAllSelected = value; - notifyListeners(); - } - - void updateServiceItem(int serviceIndex, bool value) { - for (var element in matchedServices![serviceIndex].serviceItems!) { - element.isUpdateOrSelected = value; - } - notifyListeners(); - } - - void copyItems(int index, List copiedItems) { - matchedServices![index].serviceItems = copiedItems; - notifyListeners(); - } - - Future duplicateItems(Map map) async { - return await branchRepo.duplicateItems(map); - } - - // Branch Users - List allProviderDealersList = []; - List branchUserList = []; - - getAllProviderDealers(Map map) async { - setState(ViewState.busy); - MResponse response = await branchRepo.getAllProviderDealers(map); - if (response.messageStatus == 1) { - allProviderDealersList = []; - allProviderDealersList = List.from(response.data.map((x) => BranchUser.fromJson(x))); - } - setState(ViewState.idle); - } - - Future getBranchUsers(Map map) async { - setState(ViewState.busy); - MResponse response = await branchRepo.getBranchUsers(map); - if (response.messageStatus == 1) { - branchUserList = []; - branchUserList = List.from(response.data.map((x) => BranchUser.fromJson(x))); - } - setState(ViewState.idle); - } - - Future assignDealerToBranch(Map map) async { - MResponse response = await branchRepo.assignDealerToBranch(map); - return response; - } - - Future removeDealerFromBranch(Map map) async { - MResponse response = await branchRepo.removeDealerFromBranch(map); - return response; - } - - Future addNewServiceInAppointment(Map map) async { - MResponse response = await branchRepo.addNewServicesInAppointment(map); - return response; - } -} diff --git a/lib/views/appoinments/add_new_service_appointment_page.dart b/lib/views/appoinments/add_new_service_appointment_page.dart index e8ea043..af39508 100644 --- a/lib/views/appoinments/add_new_service_appointment_page.dart +++ b/lib/views/appoinments/add_new_service_appointment_page.dart @@ -1,6 +1,6 @@ import 'dart:async'; -import 'package:car_provider_app/view_models/service_view_model.dart'; +import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:car_provider_app/views/appoinments/widget/select_items_sheet.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/app_state.dart'; @@ -59,7 +59,7 @@ class _AddNewServiceAppointmentPageState extends State { Widget build(BuildContext context) { return Scaffold( appBar: CustomAppBar( - profileImageUrl: MyAssets.carBanner, + //profileImageUrl: MyAssets.carBanner, title: widget.branch.branchName, ), body: SizedBox( diff --git a/lib/views/dashboard/dashboard_page.dart b/lib/views/dashboard/dashboard_page.dart index c642880..7d54a94 100644 --- a/lib/views/dashboard/dashboard_page.dart +++ b/lib/views/dashboard/dashboard_page.dart @@ -3,7 +3,7 @@ import 'dart:async'; import 'package:badges/badges.dart' as b; import 'package:car_provider_app/view_models/dashboard_view_model.dart'; -import 'package:car_provider_app/view_models/service_view_model.dart'; +import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:car_provider_app/views/dashboard/fragments/ads_fragment.dart'; import 'package:car_provider_app/views/dashboard/fragments/appoinment_fragment.dart'; import 'package:car_provider_app/views/dashboard/fragments/my_requests_fragment.dart'; @@ -15,14 +15,17 @@ import 'package:flutter/material.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/config/routes.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/main.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/enums.dart'; +import 'package:mc_common_app/utils/navigator.dart'; import 'package:mc_common_app/view_models/ad_view_model.dart'; import 'package:mc_common_app/view_models/appointments_view_model.dart'; import 'package:mc_common_app/view_models/chat_view_model.dart'; import 'package:mc_common_app/view_models/requests_view_model.dart'; +import 'package:mc_common_app/view_models/user_view_model.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; import 'package:mc_common_app/widgets/common_widgets/bottom_nav_bar.dart'; import 'package:provider/provider.dart'; @@ -83,6 +86,7 @@ class _DashboardPageState extends State { // await chatVM.buildHubConnection(context); } + @override Widget build(BuildContext context) { List fragments = [ @@ -104,7 +108,7 @@ class _DashboardPageState extends State { ), HomeFragment( onTap: () { - _scaffoldKey.currentState!.openDrawer(); + navigateWithName(context, AppRoutes.settingOptionsLanguages); }, onRefresh: () async { _onRefresh(); @@ -127,7 +131,7 @@ class _DashboardPageState extends State { return Scaffold( key: _scaffoldKey, - drawer: CustomDrawer(dashboardVM: dashboardVM), + // drawer: CustomDrawer(dashboardVM: dashboardVM), // body: Consumer(builder: (context, model, _) { // return fragments[dashboardVM.selectedNavbarBarIndex]; // }), diff --git a/lib/views/dashboard/fragments/appoinment_fragment.dart b/lib/views/dashboard/fragments/appoinment_fragment.dart index 452694a..6daf150 100644 --- a/lib/views/dashboard/fragments/appoinment_fragment.dart +++ b/lib/views/dashboard/fragments/appoinment_fragment.dart @@ -34,7 +34,7 @@ class AppointmentFragment extends StatelessWidget { date = DateHelper.formatAsDayMonthYear(DateTime.now()); return Scaffold( appBar: CustomAppBar( - profileImageUrl: MyAssets.carBanner, + //profileImageUrl: MyAssets.carBanner, title: "Appointments", onBackButtonTapped: onBackButtonTapped, actions: [ diff --git a/lib/views/dashboard/fragments/branch_appointment_fragment.dart b/lib/views/dashboard/fragments/branch_appointment_fragment.dart index 52cd3c3..da551da 100644 --- a/lib/views/dashboard/fragments/branch_appointment_fragment.dart +++ b/lib/views/dashboard/fragments/branch_appointment_fragment.dart @@ -5,19 +5,17 @@ import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; -import 'package:mc_common_app/models/general_models/m_response.dart'; import 'package:mc_common_app/models/provider_branches_models/branch_detail_model.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/utils/navigator.dart'; -import 'package:mc_common_app/utils/utils.dart'; +import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:mc_common_app/widgets/tab/role_type_tab.dart'; import '../../../generated/locale_keys.g.dart'; -import '../../../view_models/service_view_model.dart'; import 'package:provider/provider.dart'; import 'package:flutter_svg/flutter_svg.dart'; diff --git a/lib/views/dashboard/fragments/home_fragment.dart b/lib/views/dashboard/fragments/home_fragment.dart index 7feb6e7..6404c36 100644 --- a/lib/views/dashboard/fragments/home_fragment.dart +++ b/lib/views/dashboard/fragments/home_fragment.dart @@ -1,6 +1,7 @@ import 'package:car_provider_app/views/dashboard/widget/my_service_provider.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; +import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/theme/colors.dart'; @@ -23,12 +24,7 @@ class HomeFragment extends StatelessWidget { VoidCallback onTap, onNotificaitonClick; RefreshCallback onRefresh; - HomeFragment( - {required this.onTap, - required this.onRefresh, - required this.onNotificaitonClick, - Key? key}) - : super(key: key); + HomeFragment({required this.onTap, required this.onRefresh, required this.onNotificaitonClick, Key? key}) : super(key: key); @override Widget build(BuildContext context) { @@ -36,7 +32,6 @@ class HomeFragment extends StatelessWidget { appBar: CustomAppBar( isDrawerEnabled: true, leadingWidth: 100, - profileImageUrl: MyAssets.carBanner, onTap: onTap, actions: [ IconButton( @@ -73,8 +68,7 @@ class HomeFragment extends StatelessWidget { ).horPaddingMain(), // const AppointmentSliderWidget().horPaddingMain(), CustomerAppointmentSliderWidget( - myUpComingAppointments: - context.read().myUpComingAppointments, + myUpComingAppointments: context.read().myUpComingAppointments, isNeedToShowEmptyMessage: true, onAppointmentClick: () { // navigateWithName( @@ -112,8 +106,7 @@ class HomeFragment extends StatelessWidget { shouldShowAdStatus: true, isAdsFragment: false, adsList: adVM.myActiveAdsForHome, - scrollPhysics: - const NeverScrollableScrollPhysics(), + scrollPhysics: const NeverScrollableScrollPhysics(), ), ], ) @@ -133,12 +126,9 @@ class HomeFragment extends StatelessWidget { ).horPaddingMain(), BuildAdsList( shouldShowAdStatus: false, - adsList: adVM.exploreAds.length >= 3 - ? adVM.exploreAds.take(3).toList() - : adVM.exploreAds, + adsList: adVM.exploreAds.length >= 3 ? adVM.exploreAds.take(3).toList() : adVM.exploreAds, isAdsFragment: false, - scrollPhysics: - const NeverScrollableScrollPhysics(), + scrollPhysics: const NeverScrollableScrollPhysics(), ), ], ) diff --git a/lib/views/dashboard/widget/drawer_widget.dart b/lib/views/dashboard/widget/drawer_widget.dart index 90f6b08..900b097 100644 --- a/lib/views/dashboard/widget/drawer_widget.dart +++ b/lib/views/dashboard/widget/drawer_widget.dart @@ -151,7 +151,7 @@ class _CustomDrawerState extends State { leading: SvgPicture.asset(MyAssets.nextIcon, color: MyColors.darkPrimaryColor), title: LocaleKeys.defineLicences.tr().toText(fontSize: 12), onTap: () { - // AppPermissions.checkStoragePermissions(context); + // AppPermissions.checkStoragePermissions(context); navigateWithName(context, ProviderAppRoutes.defineLicense); }, ), diff --git a/lib/views/dashboard/widget/my_service_provider.dart b/lib/views/dashboard/widget/my_service_provider.dart index 0d74cff..248a3c4 100644 --- a/lib/views/dashboard/widget/my_service_provider.dart +++ b/lib/views/dashboard/widget/my_service_provider.dart @@ -1,6 +1,6 @@ import 'package:car_provider_app/config/provider_routes.dart'; import 'package:car_provider_app/generated/locale_keys.g.dart'; -import 'package:car_provider_app/view_models/service_view_model.dart'; +import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; diff --git a/lib/views/settings/branch/branch_detail_page.dart b/lib/views/settings/branch/branch_detail_page.dart index 27bb5bd..98eda96 100644 --- a/lib/views/settings/branch/branch_detail_page.dart +++ b/lib/views/settings/branch/branch_detail_page.dart @@ -2,7 +2,7 @@ import 'dart:convert'; import 'dart:developer'; import 'package:car_provider_app/config/provider_routes.dart'; -import 'package:car_provider_app/view_models/service_view_model.dart'; +import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:car_provider_app/views/settings/services/services_list_page.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; diff --git a/lib/views/settings/branch/branch_list_page.dart b/lib/views/settings/branch/branch_list_page.dart index dab6a8c..693abb7 100644 --- a/lib/views/settings/branch/branch_list_page.dart +++ b/lib/views/settings/branch/branch_list_page.dart @@ -1,5 +1,5 @@ import 'package:car_provider_app/config/provider_routes.dart'; -import 'package:car_provider_app/view_models/service_view_model.dart'; +import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; diff --git a/lib/views/settings/branch/dealer/dealer_user_page.dart b/lib/views/settings/branch/dealer/dealer_user_page.dart index 8740a01..acc063f 100644 --- a/lib/views/settings/branch/dealer/dealer_user_page.dart +++ b/lib/views/settings/branch/dealer/dealer_user_page.dart @@ -1,4 +1,4 @@ -import 'package:car_provider_app/view_models/service_view_model.dart'; +import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:car_provider_app/views/settings/branch/dealer/widget/assign_dealer_user_sheet.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/app_state.dart'; diff --git a/lib/views/settings/branch/dealer/widget/assign_dealer_user_sheet.dart b/lib/views/settings/branch/dealer/widget/assign_dealer_user_sheet.dart index 552b393..a9568af 100644 --- a/lib/views/settings/branch/dealer/widget/assign_dealer_user_sheet.dart +++ b/lib/views/settings/branch/dealer/widget/assign_dealer_user_sheet.dart @@ -1,4 +1,4 @@ -import 'package:car_provider_app/view_models/service_view_model.dart'; +import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:car_provider_app/views/settings/branch/dealer/widget/add_phone_num_wiget.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/app_state.dart'; diff --git a/lib/views/settings/branch/define_branch_page.dart b/lib/views/settings/branch/define_branch_page.dart index 711cb00..e764d45 100644 --- a/lib/views/settings/branch/define_branch_page.dart +++ b/lib/views/settings/branch/define_branch_page.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'package:car_provider_app/generated/locale_keys.g.dart'; -import 'package:car_provider_app/view_models/service_view_model.dart'; +import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; diff --git a/lib/views/settings/create_services_page.dart b/lib/views/settings/create_services_page.dart index 81fc545..f071f16 100644 --- a/lib/views/settings/create_services_page.dart +++ b/lib/views/settings/create_services_page.dart @@ -1,4 +1,4 @@ -// import 'package:car_provider_app/view_models/service_view_model.dart'; +// import 'package:mc_common_app/view_models/service_view_model.dart'; // import 'package:easy_localization/easy_localization.dart'; // // import 'package:flutter/material.dart'; diff --git a/lib/views/settings/define_license_page.dart b/lib/views/settings/define_license_page.dart deleted file mode 100644 index 7beb79e..0000000 --- a/lib/views/settings/define_license_page.dart +++ /dev/null @@ -1,222 +0,0 @@ -import 'package:car_provider_app/view_models/service_view_model.dart'; -import 'package:easy_localization/easy_localization.dart'; -import 'package:flutter/material.dart'; -import 'package:mc_common_app/classes/app_state.dart'; -import 'package:mc_common_app/extensions/int_extensions.dart'; -import 'package:mc_common_app/extensions/string_extensions.dart'; -import 'package:mc_common_app/generated/locale_keys.g.dart'; -import 'package:mc_common_app/models/general_models/m_response.dart'; -import 'package:mc_common_app/theme/colors.dart'; -import 'package:mc_common_app/utils/app_permission_handler.dart'; - -import 'package:mc_common_app/utils/enums.dart'; -import 'package:mc_common_app/utils/utils.dart'; -import 'package:mc_common_app/widgets/button/show_fill_button.dart'; -import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; - -import 'package:mc_common_app/widgets/txt_field.dart'; - -import 'package:permission_handler/permission_handler.dart'; -import 'package:provider/provider.dart'; - -class DefineLicensePage extends StatefulWidget { - @override - State createState() => _DefineLicensePageState(); -} - -class _DefineLicensePageState extends State { - late ServiceVM branchVM; - - @override - void initState() { - // TODO: implement initState - super.initState(); - branchVM = Provider.of(context, listen: false); - branchVM.getServiceProviderDocument(AppState().getUser.data!.userInfo!.providerId ?? 0); - } - - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: CustomAppBar( - title: LocaleKeys.defineLicences.tr(), - isRemoveBackButton: false, - ), - body: Consumer(builder: (_, model, __) { - return Column( - children: [ - Expanded( - child: SingleChildScrollView( - child: Padding( - padding: const EdgeInsets.all(20.0), - child: Column( - children: [ - // LocaleKeys.defineLicences.tr().toText20(isBold: true), - // 12.height, - // LocaleKeys.defineLicenese.tr().toText14(color: MyColors.lightTextColor), - 20.height, - showWidget(model), - ], - ), - ), - ), - ), - Padding( - padding: const EdgeInsets.all(12.0), - child: ShowFillButton( - title: LocaleKeys.continu.tr(), - maxWidth: double.infinity, - onPressed: () { - if (AppState().getUser.data!.userInfo!.roleId == 5) { - if (validation(model)) { - updateDocument(model); - } else { - Utils.showToast("All document's are mandatory for Dealership Provider"); - } - } else { - updateDocument(model); - } - }, - ), - ), - ], - ); - }), - ); - } - - validation(ServiceVM model) { - bool valid = true; - model.document!.data!.forEach((element) { - if (element.documentUrl == null) { - valid = false; - } - }); - return valid; - } - - updateDocument(ServiceVM model) async { - Utils.showLoading(context); - MResponse res = await model.updateDocument(model.document!.data); - Utils.hideLoading(context); - if (res.messageStatus == 1) { - Utils.showToast("Documents uploaded successfully"); - } else { - Utils.showToast(res.message ?? ""); - } - } - - Widget showWidget(ServiceVM model) { - if (model.state == ViewState.idle) { - return model.document!.data!.isEmpty - ? Text("LocaleKeys.somethingWrong.tr()") - : ListView.separated( - itemBuilder: (context, index) { - return Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - model.document?.data![index].documentName ?? "", - style: const TextStyle( - fontSize: 16, - ), - ), - Padding( - padding: const EdgeInsets.only(left: 20, right: 20, top: 4, bottom: 8), - child: LocaleKeys.enter_licence_detail.tr().toText(fontSize: 14, color: MyColors.lightTextColor, textAlign: TextAlign.center), - ), - TxtField( - hint: LocaleKeys.description.tr(), - maxLines: 3, - isBackgroundEnabled: true, - ), - if ((model.document?.data![index].documentUrl ?? "").toString().isNotEmpty) - Column( - children: [ - 8.height, - (model.document?.data![index].documentUrl ?? "").toString().toText( - fontSize: 14, - color: MyColors.lightTextColor, - ), - ], - ), - 8.height, - InkWell( - onTap: () async { - int sdkInt = await AppPermissions().getAndroidDeviceInfo(); - bool isPermissionsAvailable = await requestPermissionGranted(context, sdkInt > 32 ? Permission.photos : Permission.storage); - if (isPermissionsAvailable) { - model.selectFile(context, index); - } - }, - child: Container( - width: double.infinity, - height: 45, - decoration: BoxDecoration( - color: Colors.transparent, - border: Border.all(color: MyColors.greyACColor, width: 2), - borderRadius: const BorderRadius.all(Radius.circular(0)), - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - const Icon( - Icons.attach_file, - size: 18, - color: MyColors.darkPrimaryColor, - ), - 8.width, - Text( - LocaleKeys.attachFile.tr(), - style: const TextStyle( - color: MyColors.darkPrimaryColor, - ), - ), - const Icon( - Icons.attach_file, - size: 18, - color: Colors.transparent, - ), - ], - ), - ), - ), - ], - ); - }, - separatorBuilder: (context, index) { - return 20.height; - }, - itemCount: model.document!.data!.length, - physics: const NeverScrollableScrollPhysics(), - shrinkWrap: true, - ); - } else { - return const Center( - child: CircularProgressIndicator(), - ); - } - } - -// selectFile(int index) async { -// FilePickerResult? result = await FilePicker.platform.pickFiles(type: FileType.custom, allowedExtensions: ['png', 'pdf', 'jpeg']); -// -// if (result != null) { -// File file = File(result.files.single.path ?? ""); -// int sizeInBytes = file.lengthSync(); -// // double sizeInMb = sizeInBytes / (1024 * 1024); -// if (sizeInBytes > 1000) { -// Utils.showToast("File is larger then 1KB"); -// } else { -// document!.data![index].document = Utils.convertFileToBase64(file); -// document!.data![index].fileExt = Utils.checkFileExt(file.path); -// setState(() { -// document!.data![index].documentUrl = result.files.single.path ?? ""; -// }); -// } -// } else { -// // User canceled the picker -// } -// } -} diff --git a/lib/views/settings/schedule/widgets/select_services_sheet.dart b/lib/views/settings/schedule/widgets/select_services_sheet.dart index c1031f9..f7706bb 100644 --- a/lib/views/settings/schedule/widgets/select_services_sheet.dart +++ b/lib/views/settings/schedule/widgets/select_services_sheet.dart @@ -1,5 +1,5 @@ import 'package:car_provider_app/view_models/schedule_view_model.dart'; -import 'package:car_provider_app/view_models/service_view_model.dart'; +import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; diff --git a/lib/views/settings/services/create_services_page2.dart b/lib/views/settings/services/create_services_page2.dart index 6ed72fe..97b9ff3 100644 --- a/lib/views/settings/services/create_services_page2.dart +++ b/lib/views/settings/services/create_services_page2.dart @@ -1,5 +1,5 @@ // import 'package:car_provider_app/common/widget/checkbox_with_title_desc.dart'; -// import 'package:car_provider_app/view_models/service_view_model.dart'; +// import 'package:mc_common_app/view_models/service_view_model.dart'; // import 'package:easy_localization/easy_localization.dart'; // // import 'package:flutter/material.dart'; diff --git a/lib/views/settings/services/create_services_page3.dart b/lib/views/settings/services/create_services_page3.dart index 0e89bca..b69194e 100644 --- a/lib/views/settings/services/create_services_page3.dart +++ b/lib/views/settings/services/create_services_page3.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'package:car_provider_app/generated/locale_keys.g.dart'; -import 'package:car_provider_app/view_models/service_view_model.dart'; +import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:car_provider_app/views/settings/services/services_list_page.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; diff --git a/lib/views/settings/services/duplication/matched_services_page.dart b/lib/views/settings/services/duplication/matched_services_page.dart index 62f106b..d4f3355 100644 --- a/lib/views/settings/services/duplication/matched_services_page.dart +++ b/lib/views/settings/services/duplication/matched_services_page.dart @@ -1,6 +1,6 @@ import 'dart:convert'; -import 'package:car_provider_app/view_models/service_view_model.dart'; +import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:car_provider_app/views/settings/services/duplication/sheet/approved_branches_list_sheet.dart'; import 'package:car_provider_app/views/settings/services/duplication/sheet/items_selection_sheet.dart'; import 'package:flutter/material.dart'; diff --git a/lib/views/settings/services/duplication/sheet/approved_branches_list_sheet.dart b/lib/views/settings/services/duplication/sheet/approved_branches_list_sheet.dart index e8ae611..adc8bab 100644 --- a/lib/views/settings/services/duplication/sheet/approved_branches_list_sheet.dart +++ b/lib/views/settings/services/duplication/sheet/approved_branches_list_sheet.dart @@ -1,5 +1,5 @@ import 'package:car_provider_app/config/provider_routes.dart'; -import 'package:car_provider_app/view_models/service_view_model.dart'; +import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/classes/consts.dart';