enable business calendar mode

This commit is contained in:
2025-02-25 13:01:50 +02:00
parent bd3002a518
commit a8e94071de

View File

@@ -9,26 +9,28 @@ import 'package:Mzansi_Innovation_Hub/mih_components/mih_package/mih-app_tool_bo
import 'package:Mzansi_Innovation_Hub/mih_components/mih_pop_up_messages/mih_error_message.dart'; import 'package:Mzansi_Innovation_Hub/mih_components/mih_pop_up_messages/mih_error_message.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/appointment.dart'; import 'package:Mzansi_Innovation_Hub/mih_objects/appointment.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/arguments.dart'; import 'package:Mzansi_Innovation_Hub/mih_objects/arguments.dart';
import 'package:Mzansi_Innovation_Hub/mih_objects/business.dart';
import 'package:Mzansi_Innovation_Hub/mih_packages/calendar/builder/build_appointment_list.dart'; import 'package:Mzansi_Innovation_Hub/mih_packages/calendar/builder/build_appointment_list.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import '../../main.dart'; import '../../main.dart';
import '../../mih_apis/mih_api_calls.dart';
import '../../mih_components/mih_calendar.dart'; import '../../mih_components/mih_calendar.dart';
import '../../mih_components/mih_layout/mih_action.dart'; import '../../mih_components/mih_layout/mih_action.dart';
import '../../mih_components/mih_layout/mih_header.dart'; import '../../mih_components/mih_layout/mih_header.dart';
import '../../mih_components/mih_pop_up_messages/mih_loading_circle.dart'; import '../../mih_components/mih_pop_up_messages/mih_loading_circle.dart';
import '../../mih_env/env.dart'; import '../../mih_env/env.dart';
import '../../mih_objects/access_request.dart';
import '../../mih_objects/app_user.dart'; import '../../mih_objects/app_user.dart';
import '../../mih_objects/patient_queue.dart';
class Appointments extends StatefulWidget { class Appointments extends StatefulWidget {
final AppUser signedInUser; final AppUser signedInUser;
final Business? business;
final bool personalSelected;
const Appointments({ const Appointments({
super.key, super.key,
required this.signedInUser, required this.signedInUser,
required this.business,
required this.personalSelected,
}); });
@override @override
@@ -56,9 +58,9 @@ class _PatientAccessRequestState extends State<Appointments> {
late String selectedDropdown; late String selectedDropdown;
String selectedDay = DateTime.now().toString().split(" ")[0]; String selectedDay = DateTime.now().toString().split(" ")[0];
late Future<List<AccessRequest>> accessRequestResults;
late Future<List<PatientQueue>> personalQueueResults;
late Future<List<Appointment>> personalAppointmentResults; late Future<List<Appointment>> personalAppointmentResults;
late Future<List<Appointment>> businessAppointmentResults;
late Future<List<Appointment>> appointmentResults;
Widget displayAppointmentList(List<Appointment> appointmentList) { Widget displayAppointmentList(List<Appointment> appointmentList) {
if (appointmentList.isNotEmpty) { if (appointmentList.isNotEmpty) {
@@ -181,15 +183,26 @@ class _PatientAccessRequestState extends State<Appointments> {
void addAppointmentCall() { void addAppointmentCall() {
if (isAppointmentInputValid()) { if (isAppointmentInputValid()) {
MihMzansiCalendarApis.addPersonalAppointment( if (widget.personalSelected == false) {
widget.signedInUser, MihMzansiCalendarApis.addBusinessAppointment(
widget.signedInUser.app_id, widget.signedInUser,
_appointmentTitleController.text, widget.business!,
_appointmentDescriptionIDController.text, _appointmentTitleController.text,
_appointmentDateController.text, _appointmentDescriptionIDController.text,
_appointmentTimeController.text, _appointmentDateController.text,
context, _appointmentTimeController.text,
); context,
);
} else {
MihMzansiCalendarApis.addPersonalAppointment(
widget.signedInUser,
_appointmentTitleController.text,
_appointmentDescriptionIDController.text,
_appointmentDateController.text,
_appointmentTimeController.text,
context,
);
}
} else { } else {
showDialog( showDialog(
context: context, context: context,
@@ -203,15 +216,17 @@ class _PatientAccessRequestState extends State<Appointments> {
void checkforchange() { void checkforchange() {
setState(() { setState(() {
personalAppointmentResults = if (widget.personalSelected == false) {
MihMzansiCalendarApis.getPersonalAppointments( appointmentResults = MihMzansiCalendarApis.getBusinessAppointments(
widget.signedInUser.app_id, widget.business!.business_id,
selectedDay, selectedDay,
); );
personalQueueResults = MIHApiCalls.fetchPersonalAppointmentsAPICall( } else {
selectedDay, appointmentResults = MihMzansiCalendarApis.getPersonalAppointments(
widget.signedInUser.app_id, widget.signedInUser.app_id,
); selectedDay,
);
}
}); });
} }
@@ -273,7 +288,7 @@ class _PatientAccessRequestState extends State<Appointments> {
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
children: [ children: [
FutureBuilder( FutureBuilder(
future: personalAppointmentResults, future: appointmentResults,
builder: (context, snapshot) { builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) { if (snapshot.connectionState == ConnectionState.waiting) {
return const Expanded( return const Expanded(
@@ -338,15 +353,17 @@ class _PatientAccessRequestState extends State<Appointments> {
void initState() { void initState() {
appointmentDateController.addListener(checkforchange); appointmentDateController.addListener(checkforchange);
setState(() { setState(() {
personalAppointmentResults = if (widget.personalSelected == false) {
MihMzansiCalendarApis.getPersonalAppointments( appointmentResults = MihMzansiCalendarApis.getBusinessAppointments(
widget.signedInUser.app_id, widget.business!.business_id,
selectedDay, selectedDay,
); );
personalQueueResults = MIHApiCalls.fetchPersonalAppointmentsAPICall( } else {
selectedDay, appointmentResults = MihMzansiCalendarApis.getPersonalAppointments(
widget.signedInUser.app_id, widget.signedInUser.app_id,
); selectedDay,
);
}
}); });
super.initState(); super.initState();
} }