|
|
|
|
@ -6,6 +6,7 @@ import 'package:diplomaticquarterapp/models/Appointments/PatientShareResposne.da
|
|
|
|
|
import 'package:diplomaticquarterapp/models/Appointments/timeSlot.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/models/CovidDriveThru/CovidTestProceduresResponse.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/models/CovidDriveThru/DriveThroughTestingCenterModel.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/pages/Covid-DriveThru/covid-payment-alert.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service.dart';
|
|
|
|
|
@ -23,7 +24,6 @@ import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:intl/intl.dart';
|
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
|
|
|
|
|
import 'package:syncfusion_flutter_calendar/calendar.dart';
|
|
|
|
|
|
|
|
|
|
class CovidTimeSlots extends StatefulWidget {
|
|
|
|
|
@ -33,6 +33,7 @@ class CovidTimeSlots extends StatefulWidget {
|
|
|
|
|
static String selectedDate;
|
|
|
|
|
static String selectedTime;
|
|
|
|
|
CovidTestProceduresResponse selectedProcedure;
|
|
|
|
|
DriveThroughTestingCenterModel selectedProject;
|
|
|
|
|
|
|
|
|
|
int selectedClinicID;
|
|
|
|
|
int selectedDoctorID;
|
|
|
|
|
@ -41,7 +42,7 @@ class CovidTimeSlots extends StatefulWidget {
|
|
|
|
|
|
|
|
|
|
PatientShareResponse patientShareResponse;
|
|
|
|
|
|
|
|
|
|
CovidTimeSlots({@required this.projectID, @required this.selectedProcedure});
|
|
|
|
|
CovidTimeSlots({@required this.projectID, @required this.selectedProcedure, @required this.selectedProject});
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
_CovidTimeSlotsState createState() => _CovidTimeSlotsState();
|
|
|
|
|
@ -68,6 +69,7 @@ class _CovidTimeSlotsState extends State<CovidTimeSlots> with TickerProviderStat
|
|
|
|
|
ScrollController _scrollController;
|
|
|
|
|
|
|
|
|
|
ToDoCountProviderModel toDoProvider;
|
|
|
|
|
ProjectViewModel projectViewModel;
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
void initState() {
|
|
|
|
|
@ -113,7 +115,7 @@ class _CovidTimeSlotsState extends State<CovidTimeSlots> with TickerProviderStat
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
ProjectViewModel projectViewModel = Provider.of(context);
|
|
|
|
|
projectViewModel = Provider.of(context);
|
|
|
|
|
toDoProvider = Provider.of<ToDoCountProviderModel>(context);
|
|
|
|
|
return AppScaffold(
|
|
|
|
|
appBarTitle: TranslationBase.of(context).covidTest,
|
|
|
|
|
@ -359,7 +361,8 @@ class _CovidTimeSlotsState extends State<CovidTimeSlots> with TickerProviderStat
|
|
|
|
|
|
|
|
|
|
Widget getSelectedButton(int index) {
|
|
|
|
|
return RaisedButton(
|
|
|
|
|
color: CustomColors.green, //Color of the border
|
|
|
|
|
color: CustomColors.green,
|
|
|
|
|
//Color of the border
|
|
|
|
|
elevation: 0,
|
|
|
|
|
textColor: Colors.white,
|
|
|
|
|
onPressed: () {
|
|
|
|
|
@ -374,13 +377,36 @@ class _CovidTimeSlotsState extends State<CovidTimeSlots> with TickerProviderStat
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bookCovidTestAppointment() {
|
|
|
|
|
if(CovidTimeSlots.areSlotsAvailable) {
|
|
|
|
|
GifLoaderDialogUtils.showMyDialog(context);
|
|
|
|
|
DoctorList docObject = new DoctorList();
|
|
|
|
|
docObject.doctorID = widget.selectedDoctorID;
|
|
|
|
|
docObject.clinicID = widget.selectedClinicID;
|
|
|
|
|
docObject.projectID = widget.projectID;
|
|
|
|
|
insertAppointmentCovidTest(context, docObject);
|
|
|
|
|
if (CovidTimeSlots.areSlotsAvailable) {
|
|
|
|
|
var messageEn = "This Appointment is being booked for patient " +
|
|
|
|
|
projectViewModel.authenticatedUserObject.user.firstName +
|
|
|
|
|
" " +
|
|
|
|
|
projectViewModel.authenticatedUserObject.user.lastName +
|
|
|
|
|
", Having file number " +
|
|
|
|
|
projectViewModel.authenticatedUserObject.user.patientID.toString() +
|
|
|
|
|
". Please confirm!";
|
|
|
|
|
var messageAr = "يتم حجز هذا الموعد المراجع " +
|
|
|
|
|
projectViewModel.authenticatedUserObject.user.firstName +
|
|
|
|
|
" " +
|
|
|
|
|
projectViewModel.authenticatedUserObject.user.lastName +
|
|
|
|
|
", وجود رقم الملف " +
|
|
|
|
|
projectViewModel.authenticatedUserObject.user.patientID.toString() +
|
|
|
|
|
". يرجى تأكيد!";
|
|
|
|
|
ConfirmDialog dialog = new ConfirmDialog(
|
|
|
|
|
context: context,
|
|
|
|
|
confirmMessage: projectViewModel.isArabic ? messageAr : messageEn,
|
|
|
|
|
okText: TranslationBase.of(context).confirm,
|
|
|
|
|
cancelText: TranslationBase.of(context).cancel_nocaps,
|
|
|
|
|
okFunction: () {
|
|
|
|
|
GifLoaderDialogUtils.showMyDialog(context);
|
|
|
|
|
DoctorList docObject = new DoctorList();
|
|
|
|
|
docObject.doctorID = widget.selectedDoctorID;
|
|
|
|
|
docObject.clinicID = widget.selectedClinicID;
|
|
|
|
|
docObject.projectID = widget.projectID;
|
|
|
|
|
insertAppointmentCovidTest(context, docObject);
|
|
|
|
|
},
|
|
|
|
|
cancelFunction: () => {});
|
|
|
|
|
dialog.showAlertDialog(context);
|
|
|
|
|
} else {
|
|
|
|
|
AppToast.showErrorToast(message: TranslationBase.of(context).selectSlot);
|
|
|
|
|
}
|
|
|
|
|
@ -390,7 +416,8 @@ class _CovidTimeSlotsState extends State<CovidTimeSlots> with TickerProviderStat
|
|
|
|
|
DoctorsListService service = new DoctorsListService();
|
|
|
|
|
AppoitmentAllHistoryResultList appo;
|
|
|
|
|
service
|
|
|
|
|
.insertAppointment(docObject.doctorID, docObject.clinicID, docObject.projectID, CovidTimeSlots.selectedTime, CovidTimeSlots.selectedDate, context, widget.selectedProcedure.procedureID)
|
|
|
|
|
.insertAppointment(docObject.doctorID, docObject.clinicID, docObject.projectID, CovidTimeSlots.selectedTime, CovidTimeSlots.selectedDate, context, widget.selectedProcedure.procedureID,
|
|
|
|
|
widget.selectedProject.testTypeEnum, widget.selectedProject.testProcedureEnum)
|
|
|
|
|
.then((res) {
|
|
|
|
|
if (res['MessageStatus'] == 1) {
|
|
|
|
|
AppToast.showSuccessToast(message: TranslationBase.of(context).bookedSuccess);
|
|
|
|
|
@ -482,7 +509,7 @@ class _CovidTimeSlotsState extends State<CovidTimeSlots> with TickerProviderStat
|
|
|
|
|
getCovidFreeSlots(BuildContext context, int projectID) {
|
|
|
|
|
CovidDriveThruService service = new CovidDriveThruService();
|
|
|
|
|
GifLoaderDialogUtils.showMyDialog(context);
|
|
|
|
|
service.getCovidFreeSlots(context, projectID).then((res) {
|
|
|
|
|
service.getCovidFreeSlots(context, projectID, widget.selectedProject.testTypeEnum, widget.selectedProject.testProcedureEnum).then((res) {
|
|
|
|
|
GifLoaderDialogUtils.hideDialog(context);
|
|
|
|
|
if (res['MessageStatus'] == 1) {
|
|
|
|
|
if (res['COVID19_FreeTimeSlots'].length != 0) {
|
|
|
|
|
|