diff --git a/lib/core/viewModels/medical/prescriptions_view_model.dart b/lib/core/viewModels/medical/prescriptions_view_model.dart index 93528be5..568d2ed8 100644 --- a/lib/core/viewModels/medical/prescriptions_view_model.dart +++ b/lib/core/viewModels/medical/prescriptions_view_model.dart @@ -40,7 +40,7 @@ class PrescriptionsViewModel extends BaseViewModel { setState(ViewState.Error); } else { _filterList(); - await _getPrescriptionsOrders(); + await getPrescriptionsOrders(); setState(ViewState.Idle); } } @@ -71,7 +71,8 @@ class PrescriptionsViewModel extends BaseViewModel { }); } - _getPrescriptionsOrders() async { + getPrescriptionsOrders({bool showLoading = false}) async { + if (showLoading) setState(ViewState.Busy); await _prescriptionsService.getPrescriptionsOrders(); if (_prescriptionsService.hasError) { error = _prescriptionsService.error; diff --git a/lib/pages/BookAppointment/widgets/reminder_dialog.dart b/lib/pages/BookAppointment/widgets/reminder_dialog.dart index 760f672a..1e580712 100644 --- a/lib/pages/BookAppointment/widgets/reminder_dialog.dart +++ b/lib/pages/BookAppointment/widgets/reminder_dialog.dart @@ -2,6 +2,7 @@ import 'package:diplomaticquarterapp/theme/colors.dart'; import 'package:diplomaticquarterapp/uitl/CalendarUtils.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/utils_new.dart'; +import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:flutter/material.dart'; import 'package:jiffy/jiffy.dart'; import 'package:manage_calendar_events/manage_calendar_events.dart'; @@ -12,29 +13,14 @@ Future> requestPermissions() async { return permissionResults; } -showReminderDialog(BuildContext context, DateTime dateTime, String doctorName, String eventId, String appoDateFormatted, String appoTimeFormatted, {Function onSuccess}) async { +showReminderDialog(BuildContext context, DateTime dateTime, String doctorName, String eventId, String appoDateFormatted, String appoTimeFormatted, + {Function onSuccess, String title, String description}) async { if (await Permission.calendar.request().isGranted) { - _showReminderDialog( - context, - dateTime, - doctorName, - eventId, - appoDateFormatted, - appoTimeFormatted, - onSuccess: onSuccess, - ); + _showReminderDialog(context, dateTime, doctorName, eventId, appoDateFormatted, appoTimeFormatted, onSuccess: onSuccess, title: title, description: description); } else { requestPermissions().then((results) { if (results[Permission.calendar].isGranted) { - _showReminderDialog( - context, - dateTime, - doctorName, - eventId, - appoDateFormatted, - appoTimeFormatted, - onSuccess: onSuccess, - ); + _showReminderDialog(context, dateTime, doctorName, eventId, appoDateFormatted, appoTimeFormatted, onSuccess: onSuccess, title: title, description: description); } }); } @@ -42,13 +28,15 @@ showReminderDialog(BuildContext context, DateTime dateTime, String doctorName, S final CalendarPlugin _myPlugin = CalendarPlugin(); -Future _showReminderDialog(BuildContext context, DateTime dateTime, String doctorName, String eventId, String appoDateFormatted, String appoTimeFormatted, {Function onSuccess}) async { +Future _showReminderDialog(BuildContext context, DateTime dateTime, String doctorName, String eventId, String appoDateFormatted, String appoTimeFormatted, + {Function onSuccess, String title, String description}) async { return showDialog( context: context, barrierDismissible: true, // user must tap button! builder: (BuildContext context) { return Dialog( - shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12.0)), //this right here + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(0.0)), + insetPadding: EdgeInsets.all(21), child: ReminderDialog( onClick: (int i) async { if (i == 0) { @@ -71,7 +59,10 @@ Future _showReminderDialog(BuildContext context, DateTime dateTime, String CalendarUtils calendarUtils = await CalendarUtils.getInstance(); calendarUtils .createOrUpdateEvent( - title: TranslationBase.of(context).reminderTitle + " " + doctorName, description: "At " + appoDateFormatted + " " + appoTimeFormatted, scheduleDateTime: dateTime, eventId: eventId) + title: title ?? TranslationBase.of(context).reminderTitle + " " + doctorName, + description: description ?? "At " + appoDateFormatted + " " + appoTimeFormatted, + scheduleDateTime: dateTime, + eventId: eventId) .then((value) {}); onSuccess(); @@ -97,7 +88,7 @@ class _ReminderDialogState extends State { @override Widget build(BuildContext context) { return Container( - width: MediaQuery.of(context).size.width / 0.8, + //width: MediaQuery.of(context).size.width / 0.8, padding: const EdgeInsets.all(20.0), child: Column( mainAxisAlignment: MainAxisAlignment.start, @@ -106,13 +97,16 @@ class _ReminderDialogState extends State { children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, children: [ Icon( Icons.notifications_active, + color: Color(0xff2B353E), size: 50, ), IconButton( icon: Icon(Icons.clear), + color: Color(0xff2B353E), onPressed: () { Navigator.of(context).pop(); }, @@ -124,6 +118,7 @@ class _ReminderDialogState extends State { "When would you like to set a reminder for this appointment?", style: TextStyle( fontSize: 16, + color: Color(0xff2B353E), fontWeight: FontWeight.w600, letterSpacing: -0.48, ), @@ -133,6 +128,7 @@ class _ReminderDialogState extends State { "Please select from below options:", style: TextStyle( fontSize: 12, + color: Color(0xff2B353E), fontWeight: FontWeight.w600, letterSpacing: -0.48, ), @@ -190,28 +186,14 @@ class _ReminderDialogState extends State { ), ), mHeight(12), - InkWell( - onTap: () { + DefaultButton( + TranslationBase.of(context).save, + () { widget.onClick(i); Navigator.pop(context); }, - child: Container( - width: double.infinity, - height: 45, - decoration: containerRadius(CustomColors.green, 12), - child: Center( - child: Text( - "Save", - style: TextStyle( - fontSize: 16, - letterSpacing: -0.48, - color: Colors.white, - fontWeight: FontWeight.bold, - ), - ), - ), - ), - ) + color: CustomColors.green, + ), ], ), ); diff --git a/lib/pages/medical/labs/labs_home_page.dart b/lib/pages/medical/labs/labs_home_page.dart index e2f32d5d..26738778 100644 --- a/lib/pages/medical/labs/labs_home_page.dart +++ b/lib/pages/medical/labs/labs_home_page.dart @@ -82,7 +82,7 @@ class LabsHomePage extends StatelessWidget { name: TranslationBase.of(context).dr + " " + labOrder.doctorName, billNo: labOrder.invoiceNo, profileUrl: labOrder.doctorImageURL, - subName: _isSortByClinic ? labOrder.projectName : labOrder.clinicDescription, + subName: _isSortByClinic ? (labOrder.projectName ?? labOrder.clinicDescription) : (labOrder.clinicDescription ?? labOrder.projectName), isLiveCareAppointment: labOrder.isLiveCareAppointment, date: labOrder.orderDate, isSortByClinic: _isSortByClinic, diff --git a/lib/pages/medical/prescriptions/PrescriptionOrderOverveiw.dart b/lib/pages/medical/prescriptions/PrescriptionOrderOverveiw.dart index bad43a02..e77b29db 100644 --- a/lib/pages/medical/prescriptions/PrescriptionOrderOverveiw.dart +++ b/lib/pages/medical/prescriptions/PrescriptionOrderOverveiw.dart @@ -21,11 +21,7 @@ class PrescriptionOrderOverview extends StatelessWidget { final AddressInfo selectedAddress; final double latitude; final double longitude; - PrescriptionOrderOverview( - {Key key, - this.prescriptions, - this.prescriptionReportList, - this.prescriptionReportEnhList, this.selectedAddress, this.latitude, this.longitude}); + PrescriptionOrderOverview({Key key, this.prescriptions, this.prescriptionReportList, this.prescriptionReportEnhList, this.selectedAddress, this.latitude, this.longitude}); @override Widget build(BuildContext context) { @@ -50,14 +46,12 @@ class PrescriptionOrderOverview extends StatelessWidget { borderRadius: BorderRadius.all( Radius.circular(10.0), ), - border: - Border.all(color: Colors.grey[200], width: 0.5), + border: Border.all(color: Colors.grey[200], width: 0.5), ), child: Row( children: [ ClipRRect( - borderRadius: - BorderRadius.all(Radius.circular(5)), + borderRadius: BorderRadius.all(Radius.circular(5)), child: Image.network( prescriptionReportList[index].imageSRCUrl, fit: BoxFit.cover, @@ -72,13 +66,8 @@ class PrescriptionOrderOverview extends StatelessWidget { child: Padding( padding: const EdgeInsets.all(8.0), child: Center( - child: Texts(prescriptionReportList[index] - .itemDescription - .isNotEmpty - ? prescriptionReportList[index] - .itemDescription - : prescriptionReportList[index] - .itemDescriptionN)), + child: Texts( + prescriptionReportList[index].itemDescription.isNotEmpty ? prescriptionReportList[index].itemDescription : prescriptionReportList[index].itemDescriptionN)), )), Icon( Icons.arrow_forward_ios, @@ -114,8 +103,7 @@ class PrescriptionOrderOverview extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Texts(prescriptionReportEnhList[index] - .itemDescription), + Texts(prescriptionReportEnhList[index].itemDescription), ], ), ), @@ -138,7 +126,9 @@ class PrescriptionOrderOverview extends StatelessWidget { color: Colors.grey[100], child: Column( children: [ - SizedBox(height: 12,), + SizedBox( + height: 12, + ), Container( width: MediaQuery.of(context).size.width * 0.8, child: SecondaryButton( @@ -152,28 +142,29 @@ class PrescriptionOrderOverview extends StatelessWidget { okTitle: TranslationBase.of(context).ok, onTap: () async { GifLoaderDialogUtils.showMyDialog(context); - await model.insertDeliveryOrder(lineItemNo: 0, - longitude: longitude, - latitude: latitude,appointmentNo: prescriptions.appointmentNo, - dischargeID: prescriptions.dischargeNo,createdBy: model.user.patientID) + await model + .insertDeliveryOrder( + lineItemNo: 0, + longitude: longitude, + latitude: latitude, + appointmentNo: prescriptions.appointmentNo, + dischargeID: prescriptions.dischargeNo, + createdBy: model.user.patientID) .then((value) { GifLoaderDialogUtils.hideDialog(context); if (model.state == ViewState.ErrorLocal) - showErrorDialog(context,model.error); - else - { - Navigator.pop(context); - Navigator.pop(context); - Navigator.pop(context); - } - + showErrorDialog(context, model.error); + else { + Navigator.pop(context); + Navigator.pop(context); + Navigator.pop(context, true); + } }).catchError((e) { GifLoaderDialogUtils.hideDialog(context); }); }, ), ); - }, )) ], @@ -183,7 +174,7 @@ class PrescriptionOrderOverview extends StatelessWidget { ); } - void showErrorDialog(BuildContext context,String error) { + void showErrorDialog(BuildContext context, String error) { showDialog( context: context, child: ConfirmWithMessageDialog( @@ -192,12 +183,9 @@ class PrescriptionOrderOverview extends StatelessWidget { onTap: () { Navigator.pop(context); Navigator.pop(context); - Navigator.pop(context); - + Navigator.pop(context, true); }, ), ); - } - } diff --git a/lib/pages/medical/prescriptions/pharmacy_for_prescriptions_page.dart b/lib/pages/medical/prescriptions/pharmacy_for_prescriptions_page.dart index c24a0945..cdc7be72 100644 --- a/lib/pages/medical/prescriptions/pharmacy_for_prescriptions_page.dart +++ b/lib/pages/medical/prescriptions/pharmacy_for_prescriptions_page.dart @@ -63,77 +63,77 @@ class PharmacyForPrescriptionsPage extends StatelessWidget { ), ), model.pharmacyPrescriptionsList.isNotEmpty == true - ? ListView.builder( - scrollDirection: Axis.vertical, - shrinkWrap: true, - itemBuilder: (context, index) => Container( - width: double.infinity, - margin: EdgeInsets.only(top: 10, left: 10, right: 10), - padding: EdgeInsets.all(8.0), - decoration: BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.all( - Radius.circular(10.0), - ), - border: Border.all(color: Colors.grey[200], width: 0.5), - ), - child: Row( - children: [ - ClipRRect( - borderRadius: BorderRadius.all(Radius.circular(5)), - child: Image.network( - model.pharmacyPrescriptionsList[index].projectImageURL, - fit: BoxFit.cover, - width: 60, - height: 70, - ), + ? Expanded( + child: ListView.builder( + scrollDirection: Axis.vertical, + physics: BouncingScrollPhysics(), + itemBuilder: (context, index) => Container( + width: double.infinity, + margin: EdgeInsets.only(top: 10, left: 10, right: 10), + padding: EdgeInsets.all(8.0), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all( + Radius.circular(10.0), ), - Expanded( - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Texts(model.pharmacyPrescriptionsList[index].locationDescription), - SizedBox( - height: 5, - ), - Texts(model.pharmacyPrescriptionsList[index].cityName), - ], + border: Border.all(color: Colors.grey[200], width: 0.5), + ), + child: Row( + children: [ + ClipRRect( + borderRadius: BorderRadius.all(Radius.circular(5)), + child: Image.network( + model.pharmacyPrescriptionsList[index].projectImageURL, + fit: BoxFit.cover, + width: 60, + height: 70, ), ), - ), - InkWell( - onTap: () { - MapsLauncher.launchCoordinates( - double.parse(model.pharmacyPrescriptionsList[index].latitude), - double.parse(model.pharmacyPrescriptionsList[index].longitude)); - }, - child: Icon( - Icons.pin_drop, - size: 18, - color: Colors.red[900], + Expanded( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Texts(model.pharmacyPrescriptionsList[index].locationDescription), + SizedBox( + height: 5, + ), + Texts(model.pharmacyPrescriptionsList[index].cityName), + ], + ), + ), ), - ), - SizedBox( - width: 15, - ), - InkWell( - onTap: Feedback.wrapForTap(() { - launch("tel://${model.pharmacyPrescriptionsList[index].phoneNumber}"); - }, context), - child: Container( + InkWell( + onTap: () { + MapsLauncher.launchCoordinates(double.parse(model.pharmacyPrescriptionsList[index].latitude), double.parse(model.pharmacyPrescriptionsList[index].longitude)); + }, child: Icon( - Icons.call, + Icons.pin_drop, size: 18, color: Colors.red[900], ), ), - ) - ], + SizedBox( + width: 15, + ), + InkWell( + onTap: Feedback.wrapForTap(() { + launch("tel://${model.pharmacyPrescriptionsList[index].phoneNumber}"); + }, context), + child: Container( + child: Icon( + Icons.call, + size: 18, + color: Colors.red[900], + ), + ), + ) + ], + ), ), + itemCount: model.pharmacyPrescriptionsList.length, ), - itemCount: model.pharmacyPrescriptionsList.length, ) : Padding( padding: const EdgeInsets.only(top: 65.0), diff --git a/lib/pages/medical/prescriptions/prescription_details_page.dart b/lib/pages/medical/prescriptions/prescription_details_page.dart index d86ea637..cf5afd77 100644 --- a/lib/pages/medical/prescriptions/prescription_details_page.dart +++ b/lib/pages/medical/prescriptions/prescription_details_page.dart @@ -3,8 +3,10 @@ import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_repor import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/extensions/string_extensions.dart'; import 'package:diplomaticquarterapp/models/header_model.dart'; +import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/reminder_dialog.dart'; import 'package:diplomaticquarterapp/pages/MyAppointments/widgets/reminder_dialog_prescription.dart'; import 'package:diplomaticquarterapp/pages/medical/prescriptions/pharmacy_for_prescriptions_page.dart'; +import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart'; @@ -100,9 +102,7 @@ class PrescriptionDetailsPage extends StatelessWidget { ], ), SizedBox(height: 12), - Table( - border: TableBorder(horizontalInside: BorderSide(width: 1, color: Colors.black, style: BorderStyle.solid)), - children: [ + Table(border: TableBorder(horizontalInside: BorderSide(width: 1, color: Colors.black, style: BorderStyle.solid)), children: [ TableRow( children: [ Utils.tableColumnTitle(TranslationBase.of(context).route, showDivider: false), @@ -166,7 +166,21 @@ class PrescriptionDetailsPage extends StatelessWidget { DateTime startDate = DateTime.now(); DateTime endDate = DateTime(startDate.year, startDate.month, startDate.day + prescriptionReport.days); - print(prescriptionReport); + showReminderDialog( + context, + endDate, + "", + prescriptionReport.itemID.toString(), + "", + "", + title: "${prescriptionReport.itemDescriptionN} Prescription Reminder", + description: "${prescriptionReport.itemDescriptionN} ${prescriptionReport.frequencyN} ${prescriptionReport.routeN} ", + onSuccess: () { + AppToast.showSuccessToast(message: TranslationBase.of(context).reminderSuccess); + }, + ); + + return; showGeneralDialog( barrierColor: Colors.black.withOpacity(0.5), transitionBuilder: (context, a1, a2, widget) { diff --git a/lib/pages/medical/prescriptions/prescription_items_page.dart b/lib/pages/medical/prescriptions/prescription_items_page.dart index dc79fa15..8695a88f 100644 --- a/lib/pages/medical/prescriptions/prescription_items_page.dart +++ b/lib/pages/medical/prescriptions/prescription_items_page.dart @@ -43,6 +43,7 @@ class PrescriptionItemsPage extends StatelessWidget { children: [ Expanded( child: SingleChildScrollView( + physics: BouncingScrollPhysics(), child: Column( children: [ DoctorHeader( @@ -70,21 +71,23 @@ class PrescriptionItemsPage extends StatelessWidget { ListView.separated( itemBuilder: (context, index) { return InkWell( - onTap: () => Navigator.push( - context, - FadePage( - page: PrescriptionDetailsPageINP( - prescriptionReport: model.prescriptionReportListINP[index], + onTap: () { + Navigator.push( + context, + FadePage( + page: PrescriptionDetailsPageINP( + prescriptionReport: model.prescriptionReportListINP[index], + ), ), - ), - ), + ); + }, child: Container( width: double.infinity, child: Card( margin: EdgeInsets.only(left: 16, right: 16, top: index == 0 ? 16 : 4, bottom: 4), shape: cardRadius(12), child: Padding( - padding: EdgeInsets.only(top: 12, bottom: 20, left:projectViewModel.isArabic? 12:20, right: projectViewModel.isArabic? 20:12), + padding: EdgeInsets.only(top: 12, bottom: 20, left: projectViewModel.isArabic ? 12 : 20, right: projectViewModel.isArabic ? 20 : 12), child: Row( children: [ Flexible( @@ -182,7 +185,10 @@ class PrescriptionItemsPage extends StatelessWidget { ], ), ), - Icon(Icons.arrow_forward_ios,size: 16,), + Icon( + Icons.arrow_forward_ios, + size: 16, + ), ], ), ), @@ -238,7 +244,7 @@ class PrescriptionItemsPage extends StatelessWidget { ], ), child: Padding( - padding: EdgeInsets.only(top: 12, bottom: 20, left:projectViewModel.isArabic? 12:20, right: projectViewModel.isArabic? 20:12), + padding: EdgeInsets.only(top: 12, bottom: 20, left: projectViewModel.isArabic ? 12 : 20, right: projectViewModel.isArabic ? 20 : 12), child: Row( children: [ Flexible( @@ -279,8 +285,8 @@ class PrescriptionItemsPage extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ myRichText(TranslationBase.of(context).route + ": ", model.prescriptionReportEnhList[index].route, projectViewModel.isArabic), - myRichText( - TranslationBase.of(context).dailyDoses + ": ", model.prescriptionReportEnhList[index].doseDailyQuantity.toString(), projectViewModel.isArabic), + myRichText(TranslationBase.of(context).dailyDoses + ": ", model.prescriptionReportEnhList[index].doseDailyQuantity.toString(), + projectViewModel.isArabic), mHeight(9), Text( model.prescriptionReportEnhList[index].remarks, @@ -299,7 +305,10 @@ class PrescriptionItemsPage extends StatelessWidget { ], ), ), - Icon(Icons.arrow_forward_ios,size: 16,), + Icon( + Icons.arrow_forward_ios, + size: 16, + ), ], ), ), @@ -317,29 +326,28 @@ class PrescriptionItemsPage extends StatelessWidget { ), ), Container( - width: double.infinity, - padding: EdgeInsets.only(left: 16, right: 16, top: 16, bottom: 20), - child: Container( - width: MediaQuery.of(context).size.width * 0.8, - child: SecondaryButton( - label: TranslationBase.of(context).resendOrder, - disabled: (!projectViewModel.havePrivilege(62)) || projectViewModel.user.outSA == 1 || model.isMedDeliveryAllowed == false, - onTap: () { - Navigator.push( - context, - FadePage( - page: PrescriptionDeliveryAddressPage( - prescriptions: prescriptions, - prescriptionReportList: model.prescriptionReportList, - prescriptionReportEnhList: model.prescriptionReportEnhList, - ), - ), - ); - }, - color: Color(0xff359846), - ), + color: Colors.white, + padding: EdgeInsets.only(top: 16, bottom: 16, right: 21, left: 21), + child: DefaultButton( + TranslationBase.of(context).resendOrder, + ((!projectViewModel.havePrivilege(62)) || projectViewModel.user.outSA == 1 || model.isMedDeliveryAllowed == false) + ? null + : () => { + Navigator.push( + context, + FadePage( + page: PrescriptionDeliveryAddressPage( + prescriptions: prescriptions, + prescriptionReportList: model.prescriptionReportList, + prescriptionReportEnhList: model.prescriptionReportEnhList, + ), + ), + ) + }, + color: Color(0xff359846), + disabledColor: Color(0xff575757), ), - ) + ), ], ), ), diff --git a/lib/pages/medical/prescriptions/prescriptions_history_details_page.dart b/lib/pages/medical/prescriptions/prescriptions_history_details_page.dart index ccc37fdf..8df6191e 100644 --- a/lib/pages/medical/prescriptions/prescriptions_history_details_page.dart +++ b/lib/pages/medical/prescriptions/prescriptions_history_details_page.dart @@ -189,11 +189,10 @@ class PrescriptionsHistoryDetailsPage extends StatelessWidget { confirmMessage: "Are you sure ?", okText: TranslationBase.of(context).confirm, cancelText: TranslationBase.of(context).cancel, - okFunction: () { + okFunction: () async { Navigator.of(context).pop(); - model.updatePressOrder(presOrderID: prescriptionsOrder.iD).then((value) { - Navigator.of(context).pop(); - }); + await model.updatePressOrder(presOrderID: prescriptionsOrder.iD); + Navigator.of(context).pop(true); }, cancelFunction: () => {}).showAlertDialog(context); // dialog.showAlertDialog(context); diff --git a/lib/pages/medical/prescriptions/prescriptions_history_page.dart b/lib/pages/medical/prescriptions/prescriptions_history_page.dart index a5c067dd..43904857 100644 --- a/lib/pages/medical/prescriptions/prescriptions_history_page.dart +++ b/lib/pages/medical/prescriptions/prescriptions_history_page.dart @@ -12,9 +12,10 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; class PrescriptionsHistoryPage extends StatelessWidget { + final VoidCallback showOrderLog; final PrescriptionsViewModel prescriptionsViewModel; - PrescriptionsHistoryPage({Key key, this.prescriptionsViewModel}); + PrescriptionsHistoryPage({Key key, this.prescriptionsViewModel, this.showOrderLog}); @override Widget build(BuildContext context) { @@ -47,14 +48,19 @@ class PrescriptionsHistoryPage extends StatelessWidget { } return InkWell( - onTap: () => Navigator.push( - context, - FadePage( - page: PrescriptionsHistoryDetailsPage( - prescriptionsOrder: prescriptionsViewModel.prescriptionsHistory[index], - ), + onTap: () async { + final result = await Navigator.push( + context, + FadePage( + page: PrescriptionsHistoryDetailsPage( + prescriptionsOrder: prescriptionsViewModel.prescriptionsHistory[index], ), ), + ); + if (result != null) { + showOrderLog(); + } + }, child: Container( height: 65, decoration: BoxDecoration( @@ -78,16 +84,16 @@ class PrescriptionsHistoryPage extends StatelessWidget { decoration: BoxDecoration( color: _color, borderRadius: BorderRadius.only( - topLeft:projectViewModel.isArabic? Radius.circular(0.0):Radius.circular(10.0), - bottomLeft:projectViewModel.isArabic? Radius.circular(0.0):Radius.circular(10.0), - topRight:projectViewModel.isArabic? Radius.circular(10.0):Radius.circular(0.0), - bottomRight:projectViewModel.isArabic? Radius.circular(10.0):Radius.circular(0.0), + topLeft: projectViewModel.isArabic ? Radius.circular(0.0) : Radius.circular(10.0), + bottomLeft: projectViewModel.isArabic ? Radius.circular(0.0) : Radius.circular(10.0), + topRight: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0.0), + bottomRight: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0.0), ), ), ), Expanded( child: Padding( - padding: EdgeInsets.only(left: projectViewModel.isArabic?6:12, right: projectViewModel.isArabic?12:6), + padding: EdgeInsets.only(left: projectViewModel.isArabic ? 6 : 12, right: projectViewModel.isArabic ? 12 : 6), child: Row( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, @@ -126,7 +132,10 @@ class PrescriptionsHistoryPage extends StatelessWidget { ), ), ), - Icon(Icons.arrow_forward_ios,size: 16,), + Icon( + Icons.arrow_forward_ios, + size: 16, + ), mWidth(6), ], ), diff --git a/lib/pages/medical/prescriptions/prescriptions_home_page.dart b/lib/pages/medical/prescriptions/prescriptions_home_page.dart index 42573706..6fdba0e4 100644 --- a/lib/pages/medical/prescriptions/prescriptions_home_page.dart +++ b/lib/pages/medical/prescriptions/prescriptions_home_page.dart @@ -85,9 +85,18 @@ class _HomePrescriptionsPageState extends State with Sing children: [ PrescriptionsPage( prescriptionsViewModel: model, + showOrderLog: () async { + _tabController.animateTo(1); + await model.getPrescriptionsOrders(showLoading: true); + setState(() {}); + }, ), PrescriptionsHistoryPage( prescriptionsViewModel: model, + showOrderLog: () async { + await model.getPrescriptionsOrders(showLoading: true); + setState(() {}); + }, ) ], ), diff --git a/lib/pages/medical/prescriptions/prescriptions_page.dart b/lib/pages/medical/prescriptions/prescriptions_page.dart index 774b11a4..3fabcd8b 100644 --- a/lib/pages/medical/prescriptions/prescriptions_page.dart +++ b/lib/pages/medical/prescriptions/prescriptions_page.dart @@ -15,9 +15,10 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; class PrescriptionsPage extends StatelessWidget { + final VoidCallback showOrderLog; final PrescriptionsViewModel prescriptionsViewModel; - const PrescriptionsPage({Key key, this.prescriptionsViewModel}) : super(key: key); + const PrescriptionsPage({Key key, this.prescriptionsViewModel, this.showOrderLog}) : super(key: key); @override Widget build(BuildContext context) { @@ -61,14 +62,19 @@ class PrescriptionsPage extends StatelessWidget { itemBuilder: (context, _index) { Prescriptions prescriptions = prescriptionsList[_index]; return DoctorCard( - onTap: () => Navigator.push( - context, - FadePage( - page: PrescriptionItemsPage( - prescriptions: prescriptions, - ), + onTap: () async { + final _shouldRecallApi = await Navigator.push( + context, + FadePage( + page: PrescriptionItemsPage( + prescriptions: prescriptions, ), ), + ); + if (_shouldRecallApi != null) { + showOrderLog(); + } + }, name: prescriptions.doctorName, profileUrl: prescriptions.doctorImageURL, rating: prescriptions.actualDoctorRate.toDouble(), diff --git a/lib/uitl/CalendarUtils.dart b/lib/uitl/CalendarUtils.dart index 0ab8be19..ee602391 100644 --- a/lib/uitl/CalendarUtils.dart +++ b/lib/uitl/CalendarUtils.dart @@ -46,18 +46,18 @@ class CalendarUtils { }); } - Future createOrUpdateEvent({ String title, String description, DateTime scheduleDateTime,String eventId}) async { + Future createOrUpdateEvent({String title, String description, DateTime scheduleDateTime, String eventId}) async { RecurrenceRule recurrenceRule = RecurrenceRule( RecurrenceFrequency.Daily, // daysOfWeek: daysOfWeek, endDate: scheduleDateTime, ); - print("eventId "+eventId); + print("eventId " + eventId); Event event = Event(writableCalendars.id, recurrenceRule: recurrenceRule, start: scheduleDateTime, end: scheduleDateTime.add(Duration(minutes: 30)), title: title, description: description); - deviceCalendarPlugin.createOrUpdateEvent(event).catchError((e){ - print("catchError "+e.toString()); + deviceCalendarPlugin.createOrUpdateEvent(event).catchError((e) { + print("catchError " + e.toString()); }).whenComplete(() { - print("whenComplete "+eventId); + print("whenComplete " + eventId); }); } @@ -72,8 +72,6 @@ class CalendarUtils { return await deviceCalendarPlugin.retrieveEvents(calendarId, retrieveEventsParams); } - - Future createCalendar( String calendarName, { Color calendarColor,