feat: enhance appointment logic with user authentication checks and project ID retrieval

pull/362/head
taha 1 month ago
parent 343b5655f8
commit 6cd07a14a4

@ -1058,7 +1058,8 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
regionalViewModel.setBottomSheetState(AppointmentViaRegionState.DOCTOR_SELECTION); regionalViewModel.setBottomSheetState(AppointmentViaRegionState.DOCTOR_SELECTION);
var appointmentsViewModel = Provider.of<BookAppointmentsViewModel>(context, listen: false); var appointmentsViewModel = Provider.of<BookAppointmentsViewModel>(context, listen: false);
if (appointmentsViewModel.selectedClinic.clinicID == 253) { if (appointmentsViewModel.selectedClinic.clinicID == 253) {
appointmentsViewModel.setProjectID(regionalViewModel.selectedHospital?.patientDoctorAppointmentList!.first.iD?.toString() ?? ""); var id =getProjectId(regionalViewModel);
appointmentsViewModel.setProjectID(id);
appointmentsViewModel.resetLaserData(); appointmentsViewModel.resetLaserData();
appointmentsViewModel.getLaserClinic(); appointmentsViewModel.getLaserClinic();
regionalViewModel.handleLastStepForClinicForDentalAndLaser(appointmentsViewModel.selectedClinic.clinicID ?? -1); regionalViewModel.handleLastStepForClinicForDentalAndLaser(appointmentsViewModel.selectedClinic.clinicID ?? -1);
@ -1067,8 +1068,9 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
} }
} else if (regionalViewModel.regionBottomSheetType == RegionBottomSheetType.REGION_FOR_DENTAL_AND_LASER) { } else if (regionalViewModel.regionBottomSheetType == RegionBottomSheetType.REGION_FOR_DENTAL_AND_LASER) {
var appointmentsViewModel = Provider.of<BookAppointmentsViewModel>(context, listen: false); var appointmentsViewModel = Provider.of<BookAppointmentsViewModel>(context, listen: false);
var id =getProjectId(regionalViewModel);
regionalViewModel.setBottomSheetState(AppointmentViaRegionState.DOCTOR_SELECTION); regionalViewModel.setBottomSheetState(AppointmentViaRegionState.DOCTOR_SELECTION);
appointmentsViewModel.setProjectID(regionalViewModel.selectedHospital?.hospitalList.first.iD?.toString() ?? ""); appointmentsViewModel.setProjectID(id);
regionalViewModel.handleLastStepForClinicForDentalAndLaser(appointmentsViewModel.selectedClinic.clinicID ?? -1); regionalViewModel.handleLastStepForClinicForDentalAndLaser(appointmentsViewModel.selectedClinic.clinicID ?? -1);
} }
}, },
@ -1379,4 +1381,17 @@ class _SelectClinicPageState extends State<SelectClinicPage> {
callBackFunc: () {}, callBackFunc: () {},
); );
} }
String getProjectId(AppointmentViaRegionViewmodel regionalViewModel) {
try {
if(regionalViewModel.selectedHospital?.patientDoctorAppointmentList?.isNotEmpty ?? false) {
return regionalViewModel.selectedHospital!.patientDoctorAppointmentList?.first.projectID?.toString() ?? "";
} else if(regionalViewModel.selectedHospital?.hospitalList.isNotEmpty ?? false) {
return regionalViewModel.selectedHospital!.hospitalList.first.iD?.toString() ?? "";
}
} on Exception catch (e) {
}
return "";
}
} }

@ -53,7 +53,7 @@ class _SelectDoctorPageState extends State<SelectDoctorPage> {
bookAppointmentsViewModel.getLiveCareDoctorsList(); bookAppointmentsViewModel.getLiveCareDoctorsList();
} else { } else {
if (bookAppointmentsViewModel.selectedClinic.clinicID == 17) { if (bookAppointmentsViewModel.selectedClinic.clinicID == 17) {
if (appState.getAuthenticatedUser()!.age! > 12) { if (appState.isAuthenticated && appState.getAuthenticatedUser()!.age! > 12) {
bookAppointmentsViewModel.getDentalChiefComplaintDoctorsList(); bookAppointmentsViewModel.getDentalChiefComplaintDoctorsList();
} else { } else {
bookAppointmentsViewModel.getDoctorsList(isNearest: false); bookAppointmentsViewModel.getDoctorsList(isNearest: false);

@ -278,7 +278,7 @@ class _AppointmentCalendarState extends State<AppointmentCalendar> {
bookAppointmentsViewModel.setProjectID(bookAppointmentsViewModel.selectedDoctor.projectID.toString()); bookAppointmentsViewModel.setProjectID(bookAppointmentsViewModel.selectedDoctor.projectID.toString());
bookAppointmentsViewModel.setSelectedClinic(selectedClinic); bookAppointmentsViewModel.setSelectedClinic(selectedClinic);
bookAppointmentsViewModel.setIsChiefComplaintsListLoading(true); bookAppointmentsViewModel.setIsChiefComplaintsListLoading(true);
if(appState.getAuthenticatedUser()!.age! > 12) { if(appState.isAuthenticated && appState.getAuthenticatedUser()!.age! > 12) {
Navigator.of(context).push( Navigator.of(context).push(
CustomPageRoute( CustomPageRoute(
page: DentalChiefComplaintsPage(), page: DentalChiefComplaintsPage(),

Loading…
Cancel
Save