hot fixes

dq_and_master
Haroon Amjad 5 years ago
parent c67d41701d
commit b9269f525a

@ -84,17 +84,19 @@ class _MyAppointmentsState extends State<MyAppointments>
color: Colors.grey[600],
thickness: 0.5,
),
Expanded(
isDataLoaded
? Expanded(
child: new TabBarView(
physics: NeverScrollableScrollPhysics(),
children: [
isDataLoaded ? getBookedAppointments() : Container(),
isDataLoaded ? getConfirmedAppointments() : Container(),
isDataLoaded ? getArrivedAppointments() : Container()
getBookedAppointments(),
getConfirmedAppointments(),
getArrivedAppointments()
],
controller: _tabController,
),
),
)
: Container(),
]),
),
);
@ -114,19 +116,17 @@ class _MyAppointmentsState extends State<MyAppointments>
service.getPatientAppointmentHistory(false, context).then((res) {
print(res['AppoimentAllHistoryResultList'].length);
if (res['MessageStatus'] == 1) {
GifLoaderDialogUtils.hideDialog(context);
setState(() {
isDataLoaded = true;
if (res['MessageStatus'] == 1) {
// setState(() {
if (res['AppoimentAllHistoryResultList'].length != 0) {
isDataLoaded = true;
// isDataLoaded = true;
res['AppoimentAllHistoryResultList'].forEach((v) {
widget.appoList
.add(new AppoitmentAllHistoryResultList.fromJson(v));
widget.appoList.add(new AppoitmentAllHistoryResultList.fromJson(v));
});
sortAppointmentList();
} else {}
});
// });
} else {
AppToast.showErrorToast(message: res['ErrorEndUserMessage']);
}
@ -256,6 +256,9 @@ class _MyAppointmentsState extends State<MyAppointments>
return;
}
}
setState(() {
isDataLoaded = true;
});
}
Widget getBookedAppointments() {
@ -419,6 +422,4 @@ class _MyAppointmentsState extends State<MyAppointments>
),
);
}
}

@ -54,7 +54,6 @@ class _ToDoState extends State<ToDo> {
@override
void initState() {
toDoProvider = Provider.of<ToDoCountProviderModel>(context);
widget.patientShareResponse = new PatientShareResponse();
WidgetsBinding.instance.addPostFrameCallback((_) {
if (authenticatedUserObject.isLogin) getPatientData();
@ -69,6 +68,7 @@ class _ToDoState extends State<ToDo> {
@override
Widget build(BuildContext context) {
toDoProvider = Provider.of<ToDoCountProviderModel>(context);
return AppScaffold(
appBarTitle: TranslationBase.of(context).todoList,
imagesInfo: imagesInfo,

@ -256,6 +256,7 @@ class _Login extends State<Login> {
appointmentRateViewModel
.getIsLastAppointmentRatedList()
.then((value) => {
getToDoCount(),
GifLoaderDialogUtils.hideDialog(context),
if (appointmentRateViewModel.isHaveAppointmentNotRate)
{
@ -268,7 +269,6 @@ class _Login extends State<Login> {
}
else
{
getToDoCount(),
Navigator.pushAndRemoveUntil(
context,
FadePage(

@ -1,11 +1,14 @@
import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart';
import 'package:diplomaticquarterapp/core/model/sick_leave/sick_leave.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/patient_sick_leave_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/medical/prescriptions/confirm_send_email_dialog.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/data_display/medical/doctor_card.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class PatientSickLeavePage extends StatefulWidget {
@override
@ -14,9 +17,14 @@ class PatientSickLeavePage extends StatefulWidget {
class _PatientSickLeavePageState extends State<PatientSickLeavePage> {
List<ImagesInfo> imagesInfo = List();
@override
Widget build(BuildContext context) {
imagesInfo.add(ImagesInfo(imageEn: 'https://hmgwebservices.com/Images/MobileApp/imges-info/sick-leaves/en/0.png',imageAr: 'https://hmgwebservices.com/Images/MobileApp/imges-info/sick-leaves/ar/0.png'));
imagesInfo.add(ImagesInfo(
imageEn:
'https://hmgwebservices.com/Images/MobileApp/imges-info/sick-leaves/en/0.png',
imageAr:
'https://hmgwebservices.com/Images/MobileApp/imges-info/sick-leaves/ar/0.png'));
return BaseView<PatientSickLeaveViewMode>(
onModelReady: (model) => model.getSickLeave(),
builder: (_, model, w) => AppScaffold(
@ -37,9 +45,30 @@ class _PatientSickLeavePageState extends State<PatientSickLeavePage> {
profileUrl: model.sickLeaveList[index].doctorImageURL,
rat: model.sickLeaveList[index].actualDoctorRate.toDouble(),
subName: model.sickLeaveList[index].projectName,
isInOutPatient:
model.sickLeaveList[index].isInOutPatient,
isInOutPatient: model.sickLeaveList[index].isInOutPatient,
onEmailTap: () {
showConfirmMessage(model, index);
// model.sendSickLeaveEmail(
// message: TranslationBase.of(context).emailSentSuccessfully,
// requestNo: model.sickLeaveList[index].requestNo,
// doctorName: model.sickLeaveList[index].doctorName,
// projectName: model.sickLeaveList[index].projectName,
// setupID: model.sickLeaveList[index].setupID,
// projectID: model.sickLeaveList[index].projectID);
},
),
),
),
),
);
}
void showConfirmMessage(PatientSickLeaveViewMode model, int index) {
showDialog(
context: context,
child: ConfirmSendEmailDialog(
email: model.user.emailAddress,
onTapSendEmail: () {
model.sendSickLeaveEmail(
message: TranslationBase.of(context).emailSentSuccessfully,
requestNo: model.sickLeaveList[index].requestNo,
@ -49,9 +78,6 @@ class _PatientSickLeavePageState extends State<PatientSickLeavePage> {
projectID: model.sickLeaveList[index].projectID);
},
),
),
),
),
);
}
}

@ -1,7 +1,9 @@
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/radiology/final_radiology.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/radiology_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/medical/prescriptions/confirm_send_email_dialog.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
@ -51,13 +53,15 @@ class RadiologyDetailsPage extends StatelessWidget {
),
bottomSheet: Container(
width: double.infinity,
height: model.radImageURL.isNotEmpty ? MediaQuery.of(context).size.height * 0.2:MediaQuery.of(context).size.height * 0.15,
height: finalRadiology.dIAPACSURL != ""
? MediaQuery.of(context).size.height * 0.2
: MediaQuery.of(context).size.height * 0.15,
color: Colors.grey[100],
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Divider(),
if(model.radImageURL.isNotEmpty)
if (finalRadiology.dIAPACSURL != "")
Container(
width: MediaQuery.of(context).size.width * 0.8,
child: Button(
@ -71,9 +75,10 @@ class RadiologyDetailsPage extends StatelessWidget {
Container(
width: MediaQuery.of(context).size.width * 0.8,
child: Button(
onTap: () => model.sendRadReportEmail(
mes: TranslationBase.of(context).sendSuc,
finalRadiology: finalRadiology),
onTap: () {
showConfirmMessage(
finalRadiology: finalRadiology, model: model);
},
label: TranslationBase.of(context).sendCopyRad,
loading: model.state == ViewState.BusyLocal,
backgroundColor: Theme.of(context).primaryColor,
@ -84,4 +89,19 @@ class RadiologyDetailsPage extends StatelessWidget {
)),
);
}
void showConfirmMessage(
{FinalRadiology finalRadiology, RadiologyViewModel model}) {
showDialog(
context: AppGlobal.context,
child: ConfirmSendEmailDialog(
email: model.user.emailAddress,
onTapSendEmail: () {
model.sendRadReportEmail(
mes: TranslationBase.of(AppGlobal.context).sendSuc,
finalRadiology: finalRadiology);
},
),
);
}
}

@ -145,16 +145,20 @@ class _HomeReportPageState extends State<HomeReportPage>
controller: _tabController,
children: <Widget>[
ReportListWidget(
reportList: model.reportsOrderRequestList
reportList: model.reportsOrderRequestList,
emailAddress: model.user.emailAddress
),
ReportListWidget(
reportList: model.reportsOrderReadyList
reportList: model.reportsOrderReadyList,
emailAddress: model.user.emailAddress
),
ReportListWidget(
reportList: model.reportsOrderCompletedList
reportList: model.reportsOrderCompletedList,
emailAddress: model.user.emailAddress
),
ReportListWidget(
reportList: model.reportsOrderCanceledList
reportList: model.reportsOrderCanceledList,
emailAddress: model.user.emailAddress
),
],
),

@ -2,6 +2,7 @@ import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/core/model/reports/Reports.dart';
import 'package:diplomaticquarterapp/core/service/medical/reports_service.dart';
import 'package:diplomaticquarterapp/locator.dart';
import 'package:diplomaticquarterapp/pages/medical/prescriptions/confirm_send_email_dialog.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
@ -13,9 +14,9 @@ import 'package:flutter/material.dart';
class ReportListWidget extends StatelessWidget {
final List<Reports> reportList;
final Function onEmailTap;
final String emailAddress;
ReportListWidget({@required this.reportList, this.onEmailTap});
ReportListWidget({@required this.reportList, this.emailAddress});
@override
Widget build(BuildContext context) {
@ -67,10 +68,12 @@ class ReportListWidget extends StatelessWidget {
),
reportList[index].status == 2
? Container(
margin: EdgeInsets.only(left: 15.0, right: 15.0),
margin:
EdgeInsets.only(left: 15.0, right: 15.0),
child: InkWell(
onTap: () {
sendReportEmail(reportList[index]);
showConfirmMessage(reportList[index]);
// sendReportEmail(reportList[index]);
},
child: Icon(
Icons.email,
@ -93,6 +96,18 @@ class ReportListWidget extends StatelessWidget {
);
}
void showConfirmMessage(Reports report) {
showDialog(
context: AppGlobal.context,
child: ConfirmSendEmailDialog(
email: emailAddress,
onTapSendEmail: () {
sendReportEmail(report);
},
),
);
}
sendReportEmail(Reports report) {
GifLoaderDialogUtils.showMyDialog(AppGlobal.context);
ReportsService _reportsService = locator<ReportsService>();
@ -108,7 +123,6 @@ class ReportListWidget extends StatelessWidget {
report.setupId)
.then((value) {
GifLoaderDialogUtils.hideDialog(AppGlobal.context);
print(value["IsSent"]);
AppToast.showSuccessToast(
message: TranslationBase.of(AppGlobal.context).emailSentSuccessfully);
}).catchError((err) {

@ -162,15 +162,15 @@ class _RateAppointmentDoctorState extends State<RateAppointmentDoctor> {
Form(
key: formKey,
child: TextFields(
hintText: "Notes",
hintText: TranslationBase.of(context).notes,
minLines: 4,
maxLines: 4,
validator: (value) {
if (value.isEmpty)
return 'Please enter your note';
else if (rating == 0) return 'Rating cannot be \"0\"';
return null;
},
// validator: (value) {
// if (value.isEmpty)
// return 'Please enter your note';
// else if (rating == 0) return 'Rating cannot be \"0\"';
// return null;
// },
onChanged: (value) {
setState(() {
note = value;

@ -23,8 +23,9 @@ class DateUtil {
if (date != null) {
try {
var dateT = date.split('/');
var year = dateT[2].substring(0,4);
var dateP = DateTime(int.parse(year),int.parse(dateT[1]),int.parse(dateT[0]));
var year = dateT[2].substring(0, 4);
var dateP =
DateTime(int.parse(year), int.parse(dateT[1]), int.parse(dateT[0]));
return dateP;
} catch (e) {
print(e);
@ -277,6 +278,24 @@ class DateUtil {
return "";
}
static String getMonthDayYearLangDateFormatted(
DateTime dateTime, String lang) {
if (dateTime != null)
return lang == 'en'
? getMonth(dateTime.month) +
" " +
dateTime.day.toString() +
" " +
dateTime.year.toString()
: dateTime.day.toString() +
" " +
getMonthArabic(dateTime.month) +
" " +
dateTime.year.toString();
else
return "";
}
/// get data formatted like 26/4/2020
/// [dateTime] convert DateTime to data formatted
static String getDayMonthYearDateFormatted(DateTime dateTime) {

@ -51,8 +51,12 @@ class TimeLineWidget extends StatelessWidget {
LargeAvatar(
onTap: () {
//AppointmentDetails
Navigator.push(context,
FadePage(page: AppointmentDetails(appo: appoitmentAllHistoryResul,)));
Navigator.push(
context,
FadePage(
page: AppointmentDetails(
appo: appoitmentAllHistoryResul,
)));
},
name: appoitmentAllHistoryResul.doctorNameObj,
url: appoitmentAllHistoryResul.doctorImageURL,
@ -69,7 +73,8 @@ class TimeLineWidget extends StatelessWidget {
height: 15,
decoration: BoxDecoration(
color: Theme.of(context).primaryColor,
border: Border.all(color: Theme.of(context).primaryColor, width: 2),
border: Border.all(
color: Theme.of(context).primaryColor, width: 2),
shape: BoxShape.rectangle,
borderRadius: BorderRadius.all(
Radius.circular(25.0),
@ -80,7 +85,10 @@ class TimeLineWidget extends StatelessWidget {
height: 4,
),
Texts(
DateUtil.getMonthDayYearDateFormatted(DateUtil.convertStringToDate(appoitmentAllHistoryResul.appointmentDate)),
DateUtil.getMonthDayYearLangDateFormatted(
DateUtil.convertStringToDate(
appoitmentAllHistoryResul.appointmentDate),
projectViewModel.isArabic ? "ar" : "en"),
color: Colors.white,
fontSize: 12.5,
fontWeight: FontWeight.normal,
@ -97,7 +105,7 @@ class TimeLineWidget extends StatelessWidget {
)
else
Positioned(
top:projectViewModel.isArabic ? 35 : 50,
top: projectViewModel.isArabic ? 35 : 50,
child: Container(
margin: EdgeInsets.only(left: 2, right: 2),
child: Column(
@ -109,9 +117,10 @@ class TimeLineWidget extends StatelessWidget {
fontWeight: FontWeight.normal,
),
Texts(
DateUtil.getMonthDayYearDateFormatted(
DateUtil.getMonthDayYearLangDateFormatted(
DateUtil.convertStringToDate(
appoitmentAllHistoryResul.appointmentDate)),
appoitmentAllHistoryResul.appointmentDate),
projectViewModel.isArabic ? "ar" : "en"),
color: Colors.white,
fontSize: 12.5,
fontWeight: FontWeight.normal,
@ -124,7 +133,8 @@ class TimeLineWidget extends StatelessWidget {
height: 15,
decoration: BoxDecoration(
color: Theme.of(context).primaryColor,
border: Border.all(color: Theme.of(context).primaryColor, width: 2),
border: Border.all(
color: Theme.of(context).primaryColor, width: 2),
shape: BoxShape.rectangle,
borderRadius: BorderRadius.all(
Radius.circular(25.0),
@ -137,9 +147,13 @@ class TimeLineWidget extends StatelessWidget {
color: Colors.white,
),
LargeAvatar(
onTap: (){
Navigator.push(context,
FadePage(page: AppointmentDetails(appo: appoitmentAllHistoryResul,)));
onTap: () {
Navigator.push(
context,
FadePage(
page: AppointmentDetails(
appo: appoitmentAllHistoryResul,
)));
},
name: appoitmentAllHistoryResul.doctorNameObj,
url: appoitmentAllHistoryResul.doctorImageURL,

Loading…
Cancel
Save