diff --git a/lib/config/config.dart b/lib/config/config.dart index 1a57657a..1a4071a0 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -22,12 +22,12 @@ var PACKAGES_ORDER_HISTORY = '/api/orders/items'; var PACKAGES_TAMARA_OPT = '/api/orders/paymentoptions/tamara'; // var BASE_URL = 'http://10.50.100.198:2018/'; // var BASE_URL = 'https://uat.hmgwebservices.com/'; -// var BASE_URL = 'https://hmgwebservices.com/'; +var BASE_URL = 'https://hmgwebservices.com/'; // var BASE_URL = 'https://orash.cloudsolutions.com.sa/'; // var BASE_URL = 'https://vidauat.cloudsolutions.com.sa/'; // var BASE_URL = 'https://vidamergeuat.cloudsolutions.com.sa/'; -var BASE_URL = 'https://webservices.hmg.com/'; +// var BASE_URL = 'https://webservices.hmg.com/'; // var BASE_URL = 'http://10.50.100.198:4422/'; diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index a4031eca..ef2dc15b 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -878,7 +878,7 @@ const Map localizedValues = { "select-part": {"en": "Please select the part that complain about", "ar": "يرجى تحديد الجزء الذي تشكو منه"}, "number": {"en": "Number", "ar": "الرقم"}, "not-classified": {"en": "Not classified", "ar": "غير محدد"}, - "selectClinic": {"en": "Select Clinic", "ar": " بحث بالعيادة"}, + "selectClinic": {"en": "Select Clinic", "ar": "اختر بالعيادة"}, "selectProject": {"en": "Select Hospital", "ar": " بحث المستشفى"}, "searchItemError": {"en": "Item name should be more than 3 character ", "ar": "يجب أن يكون الاسم المدخل أكثر من 3 أحرف"}, "YouCanFind": {"en": "You Can Find ", "ar": "باستطاعتك العثور على "}, diff --git a/lib/core/model/hospitals/hospitals_model.dart b/lib/core/model/hospitals/hospitals_model.dart index 93915a2f..cc13ed81 100644 --- a/lib/core/model/hospitals/hospitals_model.dart +++ b/lib/core/model/hospitals/hospitals_model.dart @@ -76,9 +76,9 @@ class HospitalsModel { String? getName(bool isArabic) { if (isArabic) { - return "$legalNameN"; + return "$nameN"; } - return legalName; + return name; } Map toJson() { diff --git a/lib/models/Appointments/DoctorListResponse.dart b/lib/models/Appointments/DoctorListResponse.dart index afecab8a..da9b6306 100644 --- a/lib/models/Appointments/DoctorListResponse.dart +++ b/lib/models/Appointments/DoctorListResponse.dart @@ -223,6 +223,13 @@ class DoctorList { String getProjectCompleteName(){ return "${this.projectTopName} ${this.projectBottomName}"; } + + String getProjectCompleteNameWithLocale({bool isArabic = false}) { + if (isArabic) { + return "${this.projectBottomName} ${this.projectTopName}"; + } + return "${this.projectTopName} ${this.projectBottomName}"; + } } class PatientDoctorAppointmentList { diff --git a/lib/pages/BookAppointment/components/SearchByDoctor.dart b/lib/pages/BookAppointment/components/SearchByDoctor.dart index 256b4d7d..61f3e239 100644 --- a/lib/pages/BookAppointment/components/SearchByDoctor.dart +++ b/lib/pages/BookAppointment/components/SearchByDoctor.dart @@ -1,6 +1,7 @@ import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart'; +import 'package:diplomaticquarterapp/pages/BookAppointment/SearchResults.dart'; import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart'; import 'package:diplomaticquarterapp/theme/colors.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; @@ -87,6 +88,7 @@ class _SearchByDoctorState extends State { ), onPressed: () { if (_isButtonDisabled == false) { + FocusManager.instance.primaryFocus?.unfocus(); _searchDoctor(context); } }, @@ -98,69 +100,58 @@ class _SearchByDoctorState extends State { } getDoctorsList(BuildContext context) { - bool isArabic = context.read().isArabic; - int languageID = isArabic ? 1 : 2; + int languageID = context.read().isArabic ? 1 : 2; GifLoaderDialogUtils.showMyDialog(context); List doctorsList = []; DoctorsListService service = new DoctorsListService(); - var counter = 0; - var isHmc = false; List _patientDoctorAppointmentListHospital = []; service .getDoctorsListByName(doctorNameController.text, languageID, context) - .then((res) async { + .then((res) { // GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { - RegionList regionHospitalList = RegionList(); + setState(() { + if (res['DoctorList'].length != 0) { + res['DoctorList'].forEach((v) { + doctorsList.add(new DoctorList.fromJson(v)); + }); - if (res['DoctorList'].length != 0) { - res['DoctorList'].forEach((v) { - // var reg = region[counter % 4]; - // counter++; - doctorsList.add(new DoctorList.fromJson( - v, - )); - // isHmc = !isHmc; - }); - // print('the counter is ${counter}'); - - regionHospitalList = await DoctorMapper.getMappedDoctor(doctorsList, - isArabic: isArabic); - var lat = await sharedPref.getDouble(USER_LAT); - - var lng = await sharedPref.getDouble(USER_LONG); - var isLocationEnabled = - (lat != null && lat != 0.0) && (lng != null && lng != 0.0); - regionHospitalList = await DoctorMapper.sortList( - isLocationEnabled, regionHospitalList); - - setState(() {}); - // doctorsList.forEach((element) { - // List doctorByHospital = - // _patientDoctorAppointmentListHospital.where((elementClinic) => elementClinic.filterName == element.getProjectCompleteName()).toList(); - // - // if (doctorByHospital.length != 0) { - // _patientDoctorAppointmentListHospital[_patientDoctorAppointmentListHospital.indexOf(doctorByHospital[0])].patientDoctorAppointmentList!.add(element); - // } else { - // _patientDoctorAppointmentListHospital.add(PatientDoctorAppointmentList( - // filterName: element.getProjectCompleteName(), - // distanceInKMs: element.projectDistanceInKiloMeters.toString(), - // projectTopName: element.projectTopName, - // projectBottomName: element.projectBottomName, - // patientDoctorAppointment: element)); - // } - // }); - } else { - GifLoaderDialogUtils.hideDialog(context); - AppToast.showErrorToast(message: res['ErrorSearchMsg']); - } + doctorsList.forEach((element) { + List doctorByHospital = + _patientDoctorAppointmentListHospital + .where((elementClinic) => + elementClinic.filterName == + element.getProjectCompleteName()) + .toList(); + if (doctorByHospital.length != 0) { + _patientDoctorAppointmentListHospital[ + _patientDoctorAppointmentListHospital + .indexOf(doctorByHospital[0])] + .patientDoctorAppointmentList! + .add(element); + } else { + _patientDoctorAppointmentListHospital.add( + PatientDoctorAppointmentList( + filterName: element.getProjectCompleteName(), + distanceInKMs: + element.projectDistanceInKiloMeters.toString(), + projectTopName: element.projectTopName, + projectBottomName: element.projectBottomName, + patientDoctorAppointment: element)); + } + }); + } else { + GifLoaderDialogUtils.hideDialog(context); + AppToast.showErrorToast(message: res['ErrorSearchMsg']); + } + }); GifLoaderDialogUtils.hideDialog(context); - // navigateToSearchResults(context, doctorsList, _patientDoctorAppointmentListHospital); - navigateToSearchResults(context, regionHospitalList); + navigateToSearchResults( + context, doctorsList, _patientDoctorAppointmentListHospital); } else { GifLoaderDialogUtils.hideDialog(context); AppToast.showErrorToast(message: res['ErrorEndUserMessage']); @@ -195,16 +186,17 @@ class _SearchByDoctorState extends State { .book_appointment_doctor_search(query: doctorNameController.text); } - navigateToSearchResults(context, RegionList regionHospitalList) { - // Navigator.push(context, - // FadePage(page: SearchResults(isLiveCareAppointment: false, isDoctorNameSearch: true, doctorsList: docList, patientDoctorAppointmentListHospital: patientDoctorAppointmentListHospital, isDoctorSearchResult: true,))); + navigateToSearchResults(context, List docList, + List patientDoctorAppointmentListHospital) { Navigator.push( context, FadePage( - page: SearchResultWithTab( - doctorsList: [], - patientDoctorAppointmentListHospital: regionHospitalList, + page: SearchResults( isLiveCareAppointment: false, + isDoctorNameSearch: true, + doctorsList: docList, + patientDoctorAppointmentListHospital: + patientDoctorAppointmentListHospital, isDoctorSearchResult: true, ))); } diff --git a/lib/pages/BookAppointment/components/search_by_hospital_name.dart b/lib/pages/BookAppointment/components/search_by_hospital_name.dart index 8f7b295f..db3a0b44 100644 --- a/lib/pages/BookAppointment/components/search_by_hospital_name.dart +++ b/lib/pages/BookAppointment/components/search_by_hospital_name.dart @@ -295,6 +295,13 @@ class _SearchByHospitalState extends State { projectsList = projectsListLocal; hospitalList = await DoctorMapper.getMappedHospitals(projectsList, isArabic: context.read().isArabic); + var lat = await sharedPref.getDouble(USER_LAT); + + var lng = await sharedPref.getDouble(USER_LONG); + var isLocationEnabled = + (lat != null && lat != 0.0) && (lng != null && lng != 0.0); + hospitalList = + await DoctorMapper.sortList(isLocationEnabled, hospitalList!); setState(() {}); GifLoaderDialogUtils.hideDialog(context); } else {} diff --git a/lib/services/appointment_services/doctor_response_mapper.dart b/lib/services/appointment_services/doctor_response_mapper.dart index 53d4c65e..6062fd5b 100644 --- a/lib/services/appointment_services/doctor_response_mapper.dart +++ b/lib/services/appointment_services/doctor_response_mapper.dart @@ -23,7 +23,8 @@ class DoctorMapper{ var doctorByHospital = targetList ?.where((clinic) => - clinic.filterName == element.getProjectCompleteName()) + clinic.filterName == + element.getProjectCompleteNameWithLocale(isArabic: isArabic)) .toList() ?? []; @@ -31,7 +32,8 @@ class DoctorMapper{ doctorByHospital.first.patientDoctorAppointmentList?.add(element); } else { var newAppointment = PatientDoctorAppointmentList( - filterName: element.getProjectCompleteName(), + filterName: + element.getProjectCompleteNameWithLocale(isArabic: isArabic), distanceInKMs: element.projectDistanceInKiloMeters.toString(), projectTopName: element.projectTopName, projectBottomName: element.projectBottomName, @@ -141,7 +143,7 @@ class DoctorMapper{ List existingEntry = targetList ?.where( - (entry) => entry.filterName == hospital.legalName, + (entry) => entry.filterName == hospital.getName(isArabic), ) .toList() ?? []; @@ -150,10 +152,10 @@ class DoctorMapper{ existingEntry.first.hospitalList.add(hospital); } else { final newEntry = PatientDoctorAppointmentList( - filterName: hospital.getName(isArabic), + filterName: hospital.name, distanceInKMs: hospital.distanceInKilometers?.toString(), projectTopName: hospital.name, - projectBottomName: hospital.legalName, + projectBottomName: hospital.name, model: hospital); final distance = hospital.distanceInKilometers;