Implementing appointment details functions

merge-update-with-lab-changes
haroon amjad 6 years ago
parent f5ddfabf50
commit 049d455e3c

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

@ -34,6 +34,9 @@ const GET_PATIENT_APPOINTMENT_HISTORY = "Services/Doctors.svc/REST/PateintHasApp
//URL to confirm appointment //URL to confirm appointment
const CONFIRM_APPOINTMENT = "Services/MobileNotifications.svc/REST/ConfirmAppointment"; const CONFIRM_APPOINTMENT = "Services/MobileNotifications.svc/REST/ConfirmAppointment";
//URL to cancel appointment
const CANCEL_APPOINTMENT = "Services/Doctors.svc/REST/CancelAppointment";
const GET_PHARMCY_ITEMS = "/Lists.svc/REST/GetPharmcyItems_Region"; const GET_PHARMCY_ITEMS = "/Lists.svc/REST/GetPharmcyItems_Region";
const GET_PHARMACY_LIST = "/Patients.svc/REST/GetPharmcyList"; const GET_PHARMACY_LIST = "/Patients.svc/REST/GetPharmcyList";
@ -48,7 +51,7 @@ class AppGlobal {
request.IPAdress = "10.20.10.20"; request.IPAdress = "10.20.10.20";
request.generalid = 'Cs2020@2016\$2958'; request.generalid = 'Cs2020@2016\$2958';
request.PatientOutSA = 0; request.PatientOutSA = 0;
request.SessionID = null; request.SessionID = "wEVNbagIkaNhGECWZjHaA";
request.TokenID = "@dm!n"; request.TokenID = "@dm!n";
request.isDentalAllowedBackend = false; request.isDentalAllowedBackend = false;
request.DeviceTypeID = Platform.isIOS ? 1 : 2; request.DeviceTypeID = Platform.isIOS ? 1 : 2;

@ -49,6 +49,7 @@ const Map<String, Map<String, String>> localizedValues = {
'viewQR': {'en': 'View QR Code', 'ar': 'عرض رمز الاستجابة السريعة'}, 'viewQR': {'en': 'View QR Code', 'ar': 'عرض رمز الاستجابة السريعة'},
'instruction': {'en': 'Instructions', 'ar': 'تعليمات'}, 'instruction': {'en': 'Instructions', 'ar': 'تعليمات'},
'livecare': {'en': 'LiveCare', 'ar': 'لايف كير'}, 'livecare': {'en': 'LiveCare', 'ar': 'لايف كير'},
'cancelAppoMsg': {'en': 'Are you sure you want to cancel this appointment?', 'ar': 'هل أنت متأكد أنك تريد إلغاء هذا الموعد؟'},
'upcoming-noAction': {'en': 'No Action Required', 'ar': 'لا يوجد إجراء مطلوب'}, 'upcoming-noAction': {'en': 'No Action Required', 'ar': 'لا يوجد إجراء مطلوب'},
'upcoming-confirm': {'en': 'Please confirm the appointment to avoid cancellation', 'ar': 'يرجى تأكيد الموعد لتفادي الإلغاء'}, 'upcoming-confirm': {'en': 'Please confirm the appointment to avoid cancellation', 'ar': 'يرجى تأكيد الموعد لتفادي الإلغاء'},
@ -58,6 +59,15 @@ const Map<String, Map<String, String>> localizedValues = {
'upcoming-virtual': {'en': 'This is a virtual appointment, Please adhere to the instructions for a seamless experience.', 'ar': 'هذا موعد اتصال مرئي عن بعد ، يرجى اتباع تعليمات الخدمة.'}, 'upcoming-virtual': {'en': 'This is a virtual appointment, Please adhere to the instructions for a seamless experience.', 'ar': 'هذا موعد اتصال مرئي عن بعد ، يرجى اتباع تعليمات الخدمة.'},
'upcoming-livecare': {'en': 'This is a LiveCare appointment', 'ar': 'هذا موعد لايف كير'}, 'upcoming-livecare': {'en': 'This is a LiveCare appointment', 'ar': 'هذا موعد لايف كير'},
'upcoming-details': {'en': 'More Details', 'ar': 'المزيد'}, 'upcoming-details': {'en': 'More Details', 'ar': 'المزيد'},
'reschedule': {'en': 'Reschedule', 'ar': 'إعادة جدولة'},
'raise': {'en': 'Raise', 'ar': 'رفع'},
'complaint': {'en': 'Complaint', 'ar': 'شكوى'},
'add': {'en': 'Add', 'ar': 'إضافة'},
'reminder': {'en': 'Reminder', 'ar': 'تذكير'},
'location': {'en': 'Locations', 'ar': 'مواقعنا'},
'online': {'en': 'Online', 'ar': 'الالكترونية'},
'payment': {'en': 'Payment', 'ar': 'الدفع'},
'cancel-nocaps': {'en': 'Cancel', 'ar': 'الغاء'},
'login': {'en': 'Login', 'ar': 'تسجيل الدخول'}, 'login': {'en': 'Login', 'ar': 'تسجيل الدخول'},
'loginregister': {'en': 'Login / Register', 'ar': 'دخولتسجيل'}, 'loginregister': {'en': 'Login / Register', 'ar': 'دخولتسجيل'},

@ -3,10 +3,10 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'config/size_config.dart'; import 'config/size_config.dart';
import 'core/viewModels/project_view_model.dart'; import 'core/viewModels/project_view_model.dart';
import 'locator.dart'; import 'locator.dart';
import 'pages/landing/landing_page.dart';
void main() { void main() {
setupLocator(); setupLocator();

@ -8,12 +8,12 @@ class DoctorList {
String projectName; String projectName;
int actualDoctorRate; int actualDoctorRate;
int clinicRoomNo; int clinicRoomNo;
Null date; dynamic date;
Null dayName; dynamic dayName;
int doctorID; int doctorID;
String doctorImageURL; String doctorImageURL;
Null doctorProfile; dynamic doctorProfile;
Null doctorProfileInfo; dynamic doctorProfileInfo;
int doctorRate; int doctorRate;
int gender; int gender;
String genderDescription; String genderDescription;
@ -26,18 +26,18 @@ class DoctorList {
String nationalityFlagURL; String nationalityFlagURL;
String nationalityID; String nationalityID;
String nationalityName; String nationalityName;
Null nearestFreeSlot; dynamic nearestFreeSlot;
int noOfPatientsRate; int noOfPatientsRate;
int originalClinicID; int originalClinicID;
int personRate; int personRate;
int projectDistanceInKiloMeters; int projectDistanceInKiloMeters;
String qR; String qR;
Null qRString; dynamic qRString;
int rateNumber; int rateNumber;
Null serviceID; dynamic serviceID;
String setupID; String setupID;
List<String> speciality; List<String> speciality;
Null workingHours; dynamic workingHours;
DoctorList( DoctorList(
{this.clinicID, {this.clinicID,

@ -1,9 +1,11 @@
import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart'; import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart';
import 'package:diplomaticquarterapp/models/Appointments/PatientShareResposne.dart'; import 'package:diplomaticquarterapp/models/Appointments/PatientShareResposne.dart';
import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart'; import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
@ -354,6 +356,20 @@ class _BookConfirmState extends State<BookConfirm> {
); );
} }
cancelAppointment(DoctorList docObject, AppoitmentAllHistoryResultList appo) {
ConfirmDialog.closeAlertDialog(context);
DoctorsListService service = new DoctorsListService();
service.cancelAppointment(appo).then((res) {
if (res['MessageStatus'] == 1) {
insertAppointment(context, docObject);
} else {
AppToast.showErrorToast(message: res['ErrorEndUserMessage']);
}
}).catchError((err) {
print(err);
});
}
insertAppointment(context, DoctorList docObject) { insertAppointment(context, DoctorList docObject) {
widget.service widget.service
.insertAppointment(docObject.doctorID, docObject.clinicID, .insertAppointment(docObject.doctorID, docObject.clinicID,
@ -368,7 +384,14 @@ class _BookConfirmState extends State<BookConfirm> {
AppToast.showErrorToast(message: res['ErrorEndUserMessage']); AppToast.showErrorToast(message: res['ErrorEndUserMessage']);
} }
}).catchError((err) { }).catchError((err) {
print(err); ConfirmDialog dialog = new ConfirmDialog(
context: context,
confirmMessage: err,
okText: TranslationBase.of(context).confirm,
cancelText: TranslationBase.of(context).cancel_nocaps,
okFunction: () => {cancelAppointment(docObject, err)},
cancelFunction: () => {});
dialog.showAlertDialog(context);
}); });
} }
@ -427,7 +450,6 @@ class _BookConfirmState extends State<BookConfirm> {
Future navigateToBookSuccess(context, DoctorList docObject, Future navigateToBookSuccess(context, DoctorList docObject,
PatientShareResponse patientShareResponse) async { PatientShareResponse patientShareResponse) async {
print(widget.appoDateFormatted); print(widget.appoDateFormatted);
// print(widget.appoTimeFormatted); // print(widget.appoTimeFormatted);

@ -6,6 +6,7 @@ import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:loading_dialog/loading_dialog.dart';
import 'package:table_calendar/table_calendar.dart'; import 'package:table_calendar/table_calendar.dart';
import '../../../uitl/date_uitl.dart'; import '../../../uitl/date_uitl.dart';
@ -252,8 +253,7 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
DocAvailableAppointments.selectedTime = DocAvailableAppointments.selectedTime =
dayEvents[selectedButtonIndex].isoTime; dayEvents[selectedButtonIndex].isoTime;
_scrollController.animateTo(0.0, duration: new Duration(seconds: 1), curve: Curves.ease); // _scrollController.animateTo(0.0, duration: new Duration(seconds: 1), curve: Curves.ease);
}); });
} }
@ -274,7 +274,8 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
_eventsParsed = _eventsParsed =
Map.fromIterable(slotsList, key: (e) => e.slot, value: (e) => e.event); Map.fromIterable(slotsList, key: (e) => e.slot, value: (e) => e.event);
setState(() { setState(() {
DocAvailableAppointments.selectedDate = dateFormatter.format(DateUtil.convertStringToDate(freeSlotsResponse[0])); DocAvailableAppointments.selectedDate = dateFormatter
.format(DateUtil.convertStringToDate(freeSlotsResponse[0]));
selectedDate = DateUtil.getMonthDayYearDateFormatted( selectedDate = DateUtil.getMonthDayYearDateFormatted(
DateUtil.convertStringToDate(freeSlotsResponse[0])); DateUtil.convertStringToDate(freeSlotsResponse[0]));
selectedDateJSON = freeSlotsResponse[0]; selectedDateJSON = freeSlotsResponse[0];
@ -293,8 +294,7 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
onPressed: () { onPressed: () {
setState(() { setState(() {
selectedButtonIndex = index; selectedButtonIndex = index;
DocAvailableAppointments.selectedTime = DocAvailableAppointments.selectedTime = dayEvents[index].isoTime;
dayEvents[index].isoTime;
print(DocAvailableAppointments.selectedTime); print(DocAvailableAppointments.selectedTime);
}); });
}, },
@ -310,8 +310,7 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
onPressed: () { onPressed: () {
setState(() { setState(() {
selectedButtonIndex = index; selectedButtonIndex = index;
DocAvailableAppointments.selectedTime = DocAvailableAppointments.selectedTime = dayEvents[index].isoTime;
dayEvents[index].isoTime;
print(DocAvailableAppointments.selectedTime); print(DocAvailableAppointments.selectedTime);
}); });
}, },

@ -12,6 +12,7 @@ import 'Components/AppointmentActions.dart';
class AppointmentDetails extends StatefulWidget { class AppointmentDetails extends StatefulWidget {
AppoitmentAllHistoryResultList appo; AppoitmentAllHistoryResultList appo;
static bool isLoading = false;
AppointmentDetails({@required this.appo}); AppointmentDetails({@required this.appo});
@ -21,7 +22,7 @@ class AppointmentDetails extends StatefulWidget {
class _AppointmentDetailsState extends State<AppointmentDetails> class _AppointmentDetailsState extends State<AppointmentDetails>
with SingleTickerProviderStateMixin { with SingleTickerProviderStateMixin {
TabController _tabController; static TabController _tabController;
bool showFooterButton = false; bool showFooterButton = false;
@override @override
@ -30,6 +31,13 @@ class _AppointmentDetailsState extends State<AppointmentDetails>
super.initState(); super.initState();
} }
@override
void dispose() {
// TODO: implement dispose
super.dispose();
_tabController.dispose();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return AppScaffold( return AppScaffold(
@ -161,7 +169,7 @@ class _AppointmentDetailsState extends State<AppointmentDetails>
child: TabBarView( child: TabBarView(
physics: NeverScrollableScrollPhysics(), physics: NeverScrollableScrollPhysics(),
children: [ children: [
AppointmentActions(), AppointmentActions(appo: widget.appo, tabController: _tabController),
DocAvailableAppointments(doctor: getDoctorObject()) DocAvailableAppointments(doctor: getDoctorObject())
], ],
controller: _tabController, controller: _tabController,
@ -191,6 +199,8 @@ class _AppointmentDetailsState extends State<AppointmentDetails>
selectedTime: DocAvailableAppointments.selectedTime))); selectedTime: DocAvailableAppointments.selectedTime)));
} }
DoctorList getDoctorObject() { DoctorList getDoctorObject() {
DoctorList docObj = new DoctorList(); DoctorList docObj = new DoctorList();
docObj.doctorID = widget.appo.doctorID; docObj.doctorID = widget.appo.doctorID;

@ -1,27 +1,34 @@
import 'dart:convert'; import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
import 'package:diplomaticquarterapp/models/Appointments/appoDetailsButtons.dart'; import 'package:diplomaticquarterapp/models/Appointments/appoDetailsButtons.dart';
import 'package:diplomaticquarterapp/pages/MyAppointments/models/AppointmentModel.dart'; import 'package:diplomaticquarterapp/pages/MyAppointments/AppointmentDetails.dart';
import 'package:diplomaticquarterapp/pages/MyAppointments/models/AppointmentType.dart'; import 'package:diplomaticquarterapp/pages/MyAppointments/models/AppointmentType.dart';
import 'package:diplomaticquarterapp/pages/MyAppointments/models/ArrivedButtons.dart';
import 'package:diplomaticquarterapp/pages/MyAppointments/models/BookedButtons.dart'; import 'package:diplomaticquarterapp/pages/MyAppointments/models/BookedButtons.dart';
import 'package:diplomaticquarterapp/pages/MyAppointments/models/BookedButtonsAllowCheckIn.dart';
import 'package:diplomaticquarterapp/pages/MyAppointments/models/ConfirmedButtons.dart';
import 'package:diplomaticquarterapp/pages/MyAppointments/models/ConfirmedButtonsAllowCheckIn.dart';
import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class AppointmentActions extends StatefulWidget { class AppointmentActions extends StatefulWidget {
AppoitmentAllHistoryResultList appo;
TabController tabController;
AppointmentActions({@required this.appo, @required this.tabController});
@override @override
_AppointmentActionsState createState() => _AppointmentActionsState(); _AppointmentActionsState createState() => _AppointmentActionsState();
} }
class _AppointmentActionsState extends State<AppointmentActions> { class _AppointmentActionsState extends State<AppointmentActions> {
List<AppoDetailsButton> appoButtonsList = []; List<AppoDetailsButton> appoButtonsList = [];
var appointment = new AppointmentModel();
@override @override
void initState() { void initState() {
appointment.PatientStatusType = 0;
appointment.IsOnlineCheckedIN = true;
_getAppointmentActionButtons(); _getAppointmentActionButtons();
super.initState(); super.initState();
} }
@ -86,9 +93,9 @@ class _AppointmentActionsState extends State<AppointmentActions> {
Container( Container(
alignment: Alignment.bottomRight, alignment: Alignment.bottomRight,
margin: margin:
EdgeInsets.fromLTRB(0.0, 20.0, 10.0, 8.0), EdgeInsets.fromLTRB(0.0, 10.0, 10.0, 8.0),
child: Image.asset(e.icon, child: Image.asset(e.icon,
width: 40.0, height: 40.0), width: 45.0, height: 45.0),
), ),
], ],
), ),
@ -104,12 +111,33 @@ class _AppointmentActionsState extends State<AppointmentActions> {
_handleButtonClicks(AppoDetailsButton) { _handleButtonClicks(AppoDetailsButton) {
print(AppoDetailsButton.caller); print(AppoDetailsButton.caller);
switch (AppoDetailsButton.caller) {
case "openReschedule":
widget.tabController.animateTo((widget.tabController.index + 1) % 2);
break;
case "onCancelAppointment":
ConfirmDialog dialog = new ConfirmDialog(
context: context,
confirmMessage: TranslationBase.of(context).cancelAppoMsg,
okText: TranslationBase.of(context).confirm,
cancelText: TranslationBase.of(context).cancel_nocaps,
okFunction: () => {cancelAppointment()},
cancelFunction: () => {});
dialog.showAlertDialog(context);
break;
case "confirmAppointment":
confirmAppointment();
break;
}
} }
_getAppointmentActionButtons() { _getAppointmentActionButtons() {
if (appointment != null) { if (widget.appo != null) {
if (isConfirmed()) { if (isConfirmed()) {
if (appointment.IsOnlineCheckedIN) { if (widget.appo.isOnlineCheckedIN) {
_getConfirmedCheckInAppoActionsList(); _getConfirmedCheckInAppoActionsList();
} else { } else {
_getConfirmedAppoActionsList(); _getConfirmedAppoActionsList();
@ -118,7 +146,7 @@ class _AppointmentActionsState extends State<AppointmentActions> {
print("isConfirmed Null"); print("isConfirmed Null");
} }
if (isBooked()) { if (isBooked()) {
if (appointment.IsOnlineCheckedIN) { if (widget.appo.isOnlineCheckedIN) {
_getBookedCheckInAppoActionsList(); _getBookedCheckInAppoActionsList();
} else { } else {
_getBookedAppoActionsList(); _getBookedAppoActionsList();
@ -127,7 +155,7 @@ class _AppointmentActionsState extends State<AppointmentActions> {
print("isBooked Null"); print("isBooked Null");
} }
if (isArrived()) { if (isArrived()) {
if (appointment.ClinicID == 17) { if (widget.appo.clinicID == 17) {
_getArrivedInvoiceAppoActionsList(); _getArrivedInvoiceAppoActionsList();
} else { } else {
_getArrivedAppoActionsList(); _getArrivedAppoActionsList();
@ -141,34 +169,31 @@ class _AppointmentActionsState extends State<AppointmentActions> {
} }
bool isConfirmed() { bool isConfirmed() {
return AppointmentType.isConfirmed(this.appointment); return AppointmentType.isConfirmed(widget.appo);
} }
bool isArrived() { bool isArrived() {
return AppointmentType.isArrived(this.appointment); return AppointmentType.isArrived(widget.appo);
} }
bool isCheckedIn() { bool isCheckedIn() {
return this.appointment.IsOnlineCheckedIN; return widget.appo.isOnlineCheckedIN;
} }
bool isBooked() { bool isBooked() {
return AppointmentType.isBooked(this.appointment); return AppointmentType.isBooked(widget.appo);
} }
Future<List<AppoDetailsButton>> _getBookedAppoActionsList() async { Future<List<AppoDetailsButton>> _getBookedAppoActionsList() async {
print("_getBookedAppoActionsList"); print("_getBookedAppoActionsList");
var bookButtonsJson; print(BookedButtons.buttons);
List<AppoDetailsButton> buttonsList = []; List<AppoDetailsButton> buttonsList = [];
String data = await DefaultAssetBundle.of(context) for (var i = 0; i < BookedButtons.buttons.length; i++) {
.loadString("assets/json/bookedButtons.json");
bookButtonsJson = json.decode(data);
for (var i = 0; i < bookButtonsJson.length; i++) {
buttonsList.add(AppoDetailsButton( buttonsList.add(AppoDetailsButton(
title: bookButtonsJson[i]['title'], title: BookedButtons.buttons[i]['title'],
subtitle: bookButtonsJson[i]['subtitle'], subtitle: BookedButtons.buttons[i]['subtitle'],
icon: bookButtonsJson[i]['icon'], icon: BookedButtons.buttons[i]['icon'],
caller: bookButtonsJson[i]['caller'], caller: BookedButtons.buttons[i]['caller'],
)); ));
} }
setState(() { setState(() {
@ -178,14 +203,14 @@ class _AppointmentActionsState extends State<AppointmentActions> {
Future<List<AppoDetailsButton>> _getBookedCheckInAppoActionsList() async { Future<List<AppoDetailsButton>> _getBookedCheckInAppoActionsList() async {
print("_getBookedCheckInAppoActionsList"); print("_getBookedCheckInAppoActionsList");
print(BookedButtons.buttons); print(BookedButtonsAllowCheckIn.buttons);
List<AppoDetailsButton> buttonsList = []; List<AppoDetailsButton> buttonsList = [];
for (var i = 0; i < BookedButtons.buttons.length; i++) { for (var i = 0; i < BookedButtonsAllowCheckIn.buttons.length; i++) {
buttonsList.add(AppoDetailsButton( buttonsList.add(AppoDetailsButton(
title: BookedButtons.buttons[i]['title'], title: BookedButtonsAllowCheckIn.buttons[i]['title'],
subtitle: BookedButtons.buttons[i]['subtitle'], subtitle: BookedButtonsAllowCheckIn.buttons[i]['subtitle'],
icon: BookedButtons.buttons[i]['icon'], icon: BookedButtonsAllowCheckIn.buttons[i]['icon'],
caller: BookedButtons.buttons[i]['caller'], caller: BookedButtonsAllowCheckIn.buttons[i]['caller'],
)); ));
} }
setState(() { setState(() {
@ -194,17 +219,15 @@ class _AppointmentActionsState extends State<AppointmentActions> {
} }
Future<List<AppoDetailsButton>> _getConfirmedAppoActionsList() async { Future<List<AppoDetailsButton>> _getConfirmedAppoActionsList() async {
var bookButtonsJson; print("_getConfirmedAppoActionsList");
print(ConfirmedButtons.buttons);
List<AppoDetailsButton> buttonsList = []; List<AppoDetailsButton> buttonsList = [];
String data = await DefaultAssetBundle.of(context) for (var i = 0; i < ConfirmedButtons.buttons.length; i++) {
.loadString("assets/json/bookedButtons.json");
bookButtonsJson = json.decode(data);
for (var i = 0; i < bookButtonsJson.length; i++) {
buttonsList.add(AppoDetailsButton( buttonsList.add(AppoDetailsButton(
title: bookButtonsJson[i]['title'], title: ConfirmedButtons.buttons[i]['title'],
subtitle: bookButtonsJson[i]['subtitle'], subtitle: ConfirmedButtons.buttons[i]['subtitle'],
icon: bookButtonsJson[i]['icon'], icon: ConfirmedButtons.buttons[i]['icon'],
caller: bookButtonsJson[i]['caller'], caller: ConfirmedButtons.buttons[i]['caller'],
)); ));
} }
setState(() { setState(() {
@ -213,17 +236,15 @@ class _AppointmentActionsState extends State<AppointmentActions> {
} }
Future<List<AppoDetailsButton>> _getConfirmedCheckInAppoActionsList() async { Future<List<AppoDetailsButton>> _getConfirmedCheckInAppoActionsList() async {
var bookButtonsJson; print("_getConfirmedAllowCheckInAppoActionsList");
print(ConfirmedButtonsAllowCheckIn.buttons);
List<AppoDetailsButton> buttonsList = []; List<AppoDetailsButton> buttonsList = [];
String data = await DefaultAssetBundle.of(context) for (var i = 0; i < ConfirmedButtonsAllowCheckIn.buttons.length; i++) {
.loadString("assets/json/bookedButtons.json");
bookButtonsJson = json.decode(data);
for (var i = 0; i < bookButtonsJson.length; i++) {
buttonsList.add(AppoDetailsButton( buttonsList.add(AppoDetailsButton(
title: bookButtonsJson[i]['title'], title: ConfirmedButtonsAllowCheckIn.buttons[i]['title'],
subtitle: bookButtonsJson[i]['subtitle'], subtitle: ConfirmedButtonsAllowCheckIn.buttons[i]['subtitle'],
icon: bookButtonsJson[i]['icon'], icon: ConfirmedButtonsAllowCheckIn.buttons[i]['icon'],
caller: bookButtonsJson[i]['caller'], caller: ConfirmedButtonsAllowCheckIn.buttons[i]['caller'],
)); ));
} }
setState(() { setState(() {
@ -232,17 +253,15 @@ class _AppointmentActionsState extends State<AppointmentActions> {
} }
Future<List<AppoDetailsButton>> _getArrivedAppoActionsList() async { Future<List<AppoDetailsButton>> _getArrivedAppoActionsList() async {
var bookButtonsJson; print("_getArrivedAppoActionsList");
print(ArrivedButtons.buttons);
List<AppoDetailsButton> buttonsList = []; List<AppoDetailsButton> buttonsList = [];
String data = await DefaultAssetBundle.of(context) for (var i = 0; i < ArrivedButtons.buttons.length; i++) {
.loadString("assets/json/bookedButtons.json");
bookButtonsJson = json.decode(data);
for (var i = 0; i < bookButtonsJson.length; i++) {
buttonsList.add(AppoDetailsButton( buttonsList.add(AppoDetailsButton(
title: bookButtonsJson[i]['title'], title: ArrivedButtons.buttons[i]['title'],
subtitle: bookButtonsJson[i]['subtitle'], subtitle: ArrivedButtons.buttons[i]['subtitle'],
icon: bookButtonsJson[i]['icon'], icon: ArrivedButtons.buttons[i]['icon'],
caller: bookButtonsJson[i]['caller'], caller: ArrivedButtons.buttons[i]['caller'],
)); ));
} }
setState(() { setState(() {
@ -251,21 +270,64 @@ class _AppointmentActionsState extends State<AppointmentActions> {
} }
Future<List<AppoDetailsButton>> _getArrivedInvoiceAppoActionsList() async { Future<List<AppoDetailsButton>> _getArrivedInvoiceAppoActionsList() async {
var bookButtonsJson; print("_getArrivedInvoiceAppoActionsList");
print(ArrivedButtons.buttons);
List<AppoDetailsButton> buttonsList = []; List<AppoDetailsButton> buttonsList = [];
String data = await DefaultAssetBundle.of(context) for (var i = 0; i < ArrivedButtons.buttons.length; i++) {
.loadString("assets/json/bookedButtons.json");
bookButtonsJson = json.decode(data);
for (var i = 0; i < bookButtonsJson.length; i++) {
buttonsList.add(AppoDetailsButton( buttonsList.add(AppoDetailsButton(
title: bookButtonsJson[i]['title'], title: ArrivedButtons.buttons[i]['title'],
subtitle: bookButtonsJson[i]['subtitle'], subtitle: ArrivedButtons.buttons[i]['subtitle'],
icon: bookButtonsJson[i]['icon'], icon: ArrivedButtons.buttons[i]['icon'],
caller: bookButtonsJson[i]['caller'], caller: ArrivedButtons.buttons[i]['caller'],
)); ));
} }
setState(() { setState(() {
appoButtonsList = buttonsList; appoButtonsList = buttonsList;
}); });
} }
cancelAppointment() {
ConfirmDialog.closeAlertDialog(context);
loading(true);
DoctorsListService service = new DoctorsListService();
service.cancelAppointment(widget.appo).then((res) {
print(res);
if (res['MessageStatus'] == 1) {
AppToast.showSuccessToast(message: res['ErrorEndUserMessage']);
loading(false);
} else {
AppToast.showErrorToast(message: res['ErrorEndUserMessage']);
loading(false);
}
}).catchError((err) {
print(err);
loading(false);
});
}
confirmAppointment() {
loading(true);
DoctorsListService service = new DoctorsListService();
service
.confirmAppointment(widget.appo.appointmentNo, widget.appo.clinicID,
widget.appo.projectID)
.then((res) {
if (res['MessageStatus'] == 1) {
AppToast.showSuccessToast(message: res['ErrorEndUserMessage']);
loading(false);
} else {
AppToast.showErrorToast(message: res['ErrorEndUserMessage']);
loading(false);
}
}).catchError((err) {
print(err);
loading(false);
});
}
loading(bool flag) {
setState(() {
AppointmentDetails.isLoading = flag;
});
}
} }

@ -1,3 +1,5 @@
import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
class AppointmentType { class AppointmentType {
static var BOOKED = 0; static var BOOKED = 0;
static const BOOKED_STR = 'booked'; static const BOOKED_STR = 'booked';
@ -6,23 +8,23 @@ class AppointmentType {
static var ARRIVED = 43; static var ARRIVED = 43;
static const ARRIVED_STR = 'arrived'; static const ARRIVED_STR = 'arrived';
static bool isConfirmed(appo) { static bool isConfirmed(AppoitmentAllHistoryResultList appo) {
return AppointmentType.isValid(appo) && return AppointmentType.isValid(appo) &&
appo.PatientStatusType == AppointmentType.CONFIRMED; appo.patientStatusType == AppointmentType.CONFIRMED;
} }
static bool isBooked(appo) { static bool isBooked(AppoitmentAllHistoryResultList appo) {
return AppointmentType.isValid(appo) && return AppointmentType.isValid(appo) &&
appo.PatientStatusType == AppointmentType.BOOKED; appo.patientStatusType == AppointmentType.BOOKED;
} }
static bool isArrived(appo) { static bool isArrived(AppoitmentAllHistoryResultList appo) {
return AppointmentType.isValid(appo) && return AppointmentType.isValid(appo) &&
appo.PatientStatusType == AppointmentType.ARRIVED; appo.patientStatusType == AppointmentType.ARRIVED;
} }
static isValid(appo) { static isValid(appo) {
return appo != null && appo.PatientStatusType != null; return appo != null && appo.patientStatusType != null;
} }
static int getType(typeName) { static int getType(typeName) {

@ -0,0 +1,61 @@
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
class ArrivedButtons {
static var buttons = [
{
"title": "Arrived",
"subtitle": "Status",
"icon": "assets/images/new-design/waiting-room.png",
"caller": "openReschedule"
},
{
"title": "Medicines",
"subtitle": "Prescriptions",
"icon": "assets/images/new-design/medicine_prescriptions_icon.png",
"caller": "onCancelAppointment"
},
{
"title": "Radiology",
"subtitle": "Services",
"icon": "assets/images/new-design/radiology_service_icon.png",
"caller": "insertComplaint"
},
{
"title": "Lab",
"subtitle": "Result",
"icon": "assets/images/new-design/lab_result_icon.png",
"caller": "addReminder"
},
{
"title": "Vital Signs",
"subtitle": "Values",
"icon": "assets/images/new-design/location_icon.png",
"caller": "navigateToProject"
},
{
"title": TranslationBase.of(AppGlobal.context).raise,
"subtitle": TranslationBase.of(AppGlobal.context).complaint,
"icon": "assets/images/new-design/Complaint_icon.png",
"caller": "insertComplaint"
},
{
"title": "Insurance",
"subtitle": "Approvals",
"icon": "assets/images/new-design/insurance_approvals_icon-in.png",
"caller": "goToTodoList(31)"
},
{
"title": "Ask Your",
"subtitle": "Doctor",
"icon": "assets/images/new-design/ask_doctor_icon.png",
"caller": "goToTodoList(31)"
},
{
"title": "Survey",
"subtitle": "Service",
"icon": "assets/images/new-design/survey.png",
"caller": "goToTodoList(31)"
}
];
}

@ -0,0 +1,61 @@
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
class ArrivedButtons {
static var buttons = [
{
"title": "Arrived",
"subtitle": "Status",
"icon": "assets/images/new-design/waiting-room.png",
"caller": "openReschedule"
},
{
"title": "Medicines",
"subtitle": "Prescriptions",
"icon": "assets/images/new-design/medicine_prescriptions_icon.png",
"caller": "onCancelAppointment"
},
{
"title": "Radiology",
"subtitle": "Services",
"icon": "assets/images/new-design/radiology_service_icon.png",
"caller": "insertComplaint"
},
{
"title": "Lab",
"subtitle": "Result",
"icon": "assets/images/new-design/lab_result_icon.png",
"caller": "addReminder"
},
{
"title": "Vital Signs",
"subtitle": "Values",
"icon": "assets/images/new-design/location_icon.png",
"caller": "navigateToProject"
},
{
"title": TranslationBase.of(AppGlobal.context).raise,
"subtitle": TranslationBase.of(AppGlobal.context).complaint,
"icon": "assets/images/new-design/Complaint_icon.png",
"caller": "insertComplaint"
},
{
"title": "Insurance",
"subtitle": "Approvals",
"icon": "assets/images/new-design/insurance_approvals_icon-in.png",
"caller": "goToTodoList(31)"
},
{
"title": "Ask Your",
"subtitle": "Doctor",
"icon": "assets/images/new-design/ask_doctor_icon.png",
"caller": "goToTodoList(31)"
},
{
"title": "Survey",
"subtitle": "Service",
"icon": "assets/images/new-design/survey.png",
"caller": "goToTodoList(31)"
}
];
}

@ -2,7 +2,6 @@ import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
class BookedButtons { class BookedButtons {
static var buttons = [ static var buttons = [
{ {
"title": TranslationBase.of(AppGlobal.context).confirm, "title": TranslationBase.of(AppGlobal.context).confirm,
@ -10,47 +9,35 @@ class BookedButtons {
"icon": "assets/images/new-design/confirm_icon.png", "icon": "assets/images/new-design/confirm_icon.png",
"caller": "confirmAppointment" "caller": "confirmAppointment"
}, },
// {
// "title": "confirm",
// "subtitle": "Appointment",
// "icon": "assets/images/new-design/confirm_icon.png",
// "caller": "confirmAppointment"
// },
{ {
"title": "reschedule", "title": TranslationBase.of(AppGlobal.context).reschedule,
"subtitle": "appointment", "subtitle": TranslationBase.of(AppGlobal.context).appointment,
"icon": "assets/images/new-design/reschedule_icon.png", "icon": "assets/images/new-design/reschedule_icon.png",
"caller": "openReschedule" "caller": "openReschedule"
}, },
{ {
"title": "cancel", "title": TranslationBase.of(AppGlobal.context).cancel_nocaps,
"subtitle": "appointment", "subtitle": TranslationBase.of(AppGlobal.context).appointment,
"icon": "assets/images/new-design/cancel_icon.png", "icon": "assets/images/new-design/cancel_icon.png",
"caller": "onCancelAppointment" "caller": "onCancelAppointment"
}, },
{ {
"title": "raise", "title": TranslationBase.of(AppGlobal.context).raise,
"subtitle": "complaint", "subtitle": TranslationBase.of(AppGlobal.context).complaint,
"icon": "assets/images/new-design/Complaint_icon.png", "icon": "assets/images/new-design/Complaint_icon.png",
"caller": "insertComplaint" "caller": "insertComplaint"
}, },
{ {
"title": "add", "title": TranslationBase.of(AppGlobal.context).add,
"subtitle": "reminder", "subtitle": TranslationBase.of(AppGlobal.context).reminder,
"icon": "assets/images/new-design/reminder_icon.png", "icon": "assets/images/new-design/reminder_icon.png",
"caller": "addReminder" "caller": "addReminder"
}, },
{ {
"title": "hospital", "title": TranslationBase.of(AppGlobal.context).hospital,
"subtitle": "locations", "subtitle": TranslationBase.of(AppGlobal.context).location,
"icon": "assets/images/new-design/location_icon.png", "icon": "assets/images/new-design/location_icon.png",
"caller": "navigateToProject" "caller": "navigateToProject"
},
{
"title": "online",
"subtitle": "payment",
"icon": "assets/images/new-design/check-in.png",
"caller": "goToTodoList(31)"
} }
]; ];
} }

@ -0,0 +1,49 @@
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
class BookedButtonsAllowCheckIn {
static var buttons = [
{
"title": TranslationBase.of(AppGlobal.context).confirm,
"subtitle": TranslationBase.of(AppGlobal.context).appointment,
"icon": "assets/images/new-design/confirm_icon.png",
"caller": "confirmAppointment"
},
{
"title": TranslationBase.of(AppGlobal.context).reschedule,
"subtitle": TranslationBase.of(AppGlobal.context).appointment,
"icon": "assets/images/new-design/reschedule_icon.png",
"caller": "openReschedule"
},
{
"title": TranslationBase.of(AppGlobal.context).cancel_nocaps,
"subtitle": TranslationBase.of(AppGlobal.context).appointment,
"icon": "assets/images/new-design/cancel_icon.png",
"caller": "onCancelAppointment"
},
{
"title": TranslationBase.of(AppGlobal.context).raise,
"subtitle": TranslationBase.of(AppGlobal.context).complaint,
"icon": "assets/images/new-design/Complaint_icon.png",
"caller": "insertComplaint"
},
{
"title": TranslationBase.of(AppGlobal.context).add,
"subtitle": TranslationBase.of(AppGlobal.context).reminder,
"icon": "assets/images/new-design/reminder_icon.png",
"caller": "addReminder"
},
{
"title": TranslationBase.of(AppGlobal.context).hospital,
"subtitle": TranslationBase.of(AppGlobal.context).location,
"icon": "assets/images/new-design/location_icon.png",
"caller": "navigateToProject"
},
{
"title": TranslationBase.of(AppGlobal.context).online,
"subtitle": TranslationBase.of(AppGlobal.context).payment,
"icon": "assets/images/new-design/check-in.png",
"caller": "goToTodoList(31)"
}
];
}

@ -0,0 +1,49 @@
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
class ConfirmedButtons {
static var buttons = [
{
"title": TranslationBase.of(AppGlobal.context).reschedule,
"subtitle": TranslationBase.of(AppGlobal.context).appointment,
"icon": "assets/images/new-design/reschedule_icon.png",
"caller": "openReschedule"
},
{
"title": TranslationBase.of(AppGlobal.context).cancel_nocaps,
"subtitle": TranslationBase.of(AppGlobal.context).appointment,
"icon": "assets/images/new-design/cancel_icon.png",
"caller": "onCancelAppointment"
},
{
"title": TranslationBase.of(AppGlobal.context).raise,
"subtitle": TranslationBase.of(AppGlobal.context).complaint,
"icon": "assets/images/new-design/Complaint_icon.png",
"caller": "insertComplaint"
},
{
"title": TranslationBase.of(AppGlobal.context).add,
"subtitle": TranslationBase.of(AppGlobal.context).reminder,
"icon": "assets/images/new-design/reminder_icon.png",
"caller": "addReminder"
},
{
"title": TranslationBase.of(AppGlobal.context).hospital,
"subtitle": TranslationBase.of(AppGlobal.context).location,
"icon": "assets/images/new-design/location_icon.png",
"caller": "navigateToProject"
},
{
"title": "Generate",
"subtitle": "Visit Ticket",
"icon": "assets/images/new-design/generate_visit_ticket.png",
"caller": "visitTicket"
},
{
"title": TranslationBase.of(AppGlobal.context).online,
"subtitle": TranslationBase.of(AppGlobal.context).payment,
"icon": "assets/images/new-design/check-in.png",
"caller": "goToTodoList(31)"
}
];
}

@ -0,0 +1,43 @@
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
class ConfirmedButtonsAllowCheckIn {
static var buttons = [
{
"title": TranslationBase.of(AppGlobal.context).reschedule,
"subtitle": TranslationBase.of(AppGlobal.context).appointment,
"icon": "assets/images/new-design/reschedule_icon.png",
"caller": "openReschedule"
},
{
"title": TranslationBase.of(AppGlobal.context).cancel_nocaps,
"subtitle": TranslationBase.of(AppGlobal.context).appointment,
"icon": "assets/images/new-design/cancel_icon.png",
"caller": "onCancelAppointment"
},
{
"title": TranslationBase.of(AppGlobal.context).raise,
"subtitle": TranslationBase.of(AppGlobal.context).complaint,
"icon": "assets/images/new-design/Complaint_icon.png",
"caller": "insertComplaint"
},
{
"title": TranslationBase.of(AppGlobal.context).add,
"subtitle": TranslationBase.of(AppGlobal.context).reminder,
"icon": "assets/images/new-design/reminder_icon.png",
"caller": "addReminder"
},
{
"title": TranslationBase.of(AppGlobal.context).hospital,
"subtitle": TranslationBase.of(AppGlobal.context).location,
"icon": "assets/images/new-design/location_icon.png",
"caller": "navigateToProject"
},
{
"title": TranslationBase.of(AppGlobal.context).online,
"subtitle": TranslationBase.of(AppGlobal.context).payment,
"icon": "assets/images/new-design/check-in.png",
"caller": "goToTodoList(31)"
}
];
}

@ -27,7 +27,6 @@ class _ToDoState extends State<ToDo> {
@override @override
void initState() { void initState() {
print("initState");
widget.service = new DoctorsListService(); widget.service = new DoctorsListService();
getPatientAppointmentHistory(); getPatientAppointmentHistory();
super.initState(); super.initState();

@ -1,8 +1,10 @@
import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/service/base_service.dart'; import 'package:diplomaticquarterapp/core/service/base_service.dart';
import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
import 'package:diplomaticquarterapp/models/Request.dart'; import 'package:diplomaticquarterapp/models/Request.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
class DoctorsListService extends BaseService { class DoctorsListService extends BaseService {
AppSharedPreferences sharedPref = AppSharedPreferences(); AppSharedPreferences sharedPref = AppSharedPreferences();
@ -305,4 +307,46 @@ class DoctorsListService extends BaseService {
return Future.value(localRes); return Future.value(localRes);
} }
Future<Map> cancelAppointment(AppoitmentAllHistoryResultList appo) async {
Map<String, dynamic> request;
var languageID = await sharedPref.getString(APP_LANGUAGE);
Request req = appGlobal.getPublicRequest();
request = {
"AppointmentID": appo.appointmentNo,
"ClinicID": appo.clinicID,
"ProjectID": appo.projectID,
"EndTime": appo.endTime,
"StartTime": appo.startTime,
"DoctorID": appo.doctorID,
"IsForLiveCare": appo.isLiveCareAppointment,
"OriginalClinicID": appo.originalClinicID,
"OriginalProjectID": appo.originalProjectID,
"StrAppointmentDate": DateUtil.getDateFormatted(appo.appointmentDate),
"VersionID": req.VersionID,
"Channel": req.Channel,
"LanguageID": languageID == 'ar' ? 1 : 2,
"IPAdress": req.IPAdress,
"generalid": req.generalid,
"PatientOutSA": 0,
"SessionID": "YckwoXhUmWBsnHKEKig",
"isDentalAllowedBackend": false,
"DeviceTypeID": 1,
"PatientID": 1231755,
"TokenID": "@dm!n",
"PatientTypeID": 1,
"PatientType": 1
};
dynamic localRes;
await baseAppClient.post(CANCEL_APPOINTMENT,
onSuccess: (response, statusCode) async {
localRes = response;
}, onFailure: (String error, int statusCode) {
throw error;
}, body: request);
return Future.value(localRes);
}
} }

@ -39,6 +39,17 @@ class DateUtil {
return "Old Date"; return "Old Date";
} }
static String getDateFormatted(String date) {
DateTime dateObj = DateUtil.convertStringToDate(date);
return DateUtil.getWeekDay(dateObj.weekday) +
", " +
dateObj.day.toString() +
" " +
DateUtil.getMonth(dateObj.month) +
" " +
dateObj.year.toString();
}
/// get month by /// get month by
/// [month] convert month number in to month name /// [month] convert month number in to month name
static getMonth(int month) { static getMonth(int month) {

@ -195,6 +195,36 @@ class TranslationBase {
String get upcomingDetails => String get upcomingDetails =>
localizedValues['upcoming-details'][locale.languageCode]; localizedValues['upcoming-details'][locale.languageCode];
String get reschedule =>
localizedValues['reschedule'][locale.languageCode];
String get raise =>
localizedValues['raise'][locale.languageCode];
String get complaint =>
localizedValues['complaint'][locale.languageCode];
String get add =>
localizedValues['add'][locale.languageCode];
String get reminder =>
localizedValues['reminder'][locale.languageCode];
String get location =>
localizedValues['location'][locale.languageCode];
String get online =>
localizedValues['online'][locale.languageCode];
String get payment =>
localizedValues['payment'][locale.languageCode];
String get cancel_nocaps =>
localizedValues['cancel-nocaps'][locale.languageCode];
String get cancelAppoMsg =>
localizedValues['cancelAppoMsg'][locale.languageCode];
} }
class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> { class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> {

@ -0,0 +1,56 @@
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class ConfirmDialog {
final BuildContext context;
final confirmMessage;
final okText;
final cancelText;
final Function okFunction;
final Function cancelFunction;
ConfirmDialog(
{@required this.context,
@required this.confirmMessage,
@required this.okText,
@required this.cancelText,
@required this.okFunction,
@required this.cancelFunction});
showAlertDialog(BuildContext context) {
// set up the buttons
Widget cancelButton = FlatButton(
child: Text(this.cancelText),
onPressed: () {
Navigator.of(context).pop();
});
Widget continueButton =
FlatButton(child: Text(this.okText), onPressed: this.okFunction);
// set up the AlertDialog
AlertDialog alert = AlertDialog(
title: Text(TranslationBase.of(context).confirm),
content: Text(this.confirmMessage),
actions: [
cancelButton,
continueButton,
],
);
// show the dialog
showDialog(
barrierDismissible: false,
context: context,
builder: (BuildContext context) {
return alert;
},
);
}
static closeAlertDialog(BuildContext context) {
Navigator.of(context).pop();
}
}
Loading…
Cancel
Save