|
|
|
@ -47,8 +47,7 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
AppSharedPreferences sharedPref = AppSharedPreferences();
|
|
|
|
|
|
|
|
|
|
AuthenticatedUser authUser;
|
|
|
|
|
AuthenticatedUserObject authenticatedUserObject =
|
|
|
|
|
locator<AuthenticatedUserObject>();
|
|
|
|
|
AuthenticatedUserObject authenticatedUserObject = locator<AuthenticatedUserObject>();
|
|
|
|
|
|
|
|
|
|
List<ImagesInfo> imagesInfo = List();
|
|
|
|
|
|
|
|
|
@ -62,11 +61,8 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
if (authenticatedUserObject.isLogin) getPatientData();
|
|
|
|
|
});
|
|
|
|
|
super.initState();
|
|
|
|
|
imagesInfo.add(ImagesInfo(
|
|
|
|
|
imageEn:
|
|
|
|
|
'https://hmgwebservices.com/Images/MobileApp/images-info-home/todo/en/0.png',
|
|
|
|
|
imageAr:
|
|
|
|
|
'https://hmgwebservices.com/Images/MobileApp/images-info-home/todo/ar/0.png'));
|
|
|
|
|
imagesInfo
|
|
|
|
|
.add(ImagesInfo(imageEn: 'https://hmgwebservices.com/Images/MobileApp/images-info-home/todo/en/0.png', imageAr: 'https://hmgwebservices.com/Images/MobileApp/images-info-home/todo/ar/0.png'));
|
|
|
|
|
int endTime = DateTime.now().millisecondsSinceEpoch + 1000 * 30;
|
|
|
|
|
controller = CountdownTimerController(endTime: endTime);
|
|
|
|
|
}
|
|
|
|
@ -93,12 +89,8 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
padding: EdgeInsets.all(0.0),
|
|
|
|
|
itemCount: widget.appoList.length,
|
|
|
|
|
itemBuilder: (context, index) {
|
|
|
|
|
print("ttt "+getNextActionImage(widget
|
|
|
|
|
.appoList[index]
|
|
|
|
|
.nextAction));
|
|
|
|
|
print("ttt "+widget
|
|
|
|
|
.appoList[index]
|
|
|
|
|
.nextAction.toString());
|
|
|
|
|
print("ttt " + getNextActionImage(widget.appoList[index].nextAction));
|
|
|
|
|
print("ttt " + widget.appoList[index].nextAction.toString());
|
|
|
|
|
return Container(
|
|
|
|
|
margin: EdgeInsets.all(10.0),
|
|
|
|
|
child: Column(
|
|
|
|
@ -120,50 +112,23 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
children: <Widget>[
|
|
|
|
|
Row(
|
|
|
|
|
children: <Widget>[
|
|
|
|
|
Image.asset(
|
|
|
|
|
"assets/images/new-design/time_icon.png",
|
|
|
|
|
width: 20.0,
|
|
|
|
|
height: 20.0),
|
|
|
|
|
Image.asset("assets/images/new-design/time_icon.png", width: 20.0, height: 20.0),
|
|
|
|
|
Container(
|
|
|
|
|
margin: EdgeInsets.only(
|
|
|
|
|
left: 10.0, right: 10.0),
|
|
|
|
|
margin: EdgeInsets.only(left: 10.0, right: 10.0),
|
|
|
|
|
child: Text(
|
|
|
|
|
DateUtil.getWeekDayMonthDayYearDateFormatted(
|
|
|
|
|
DateUtil.convertStringToDate(
|
|
|
|
|
widget.appoList[index]
|
|
|
|
|
.appointmentDate),
|
|
|
|
|
projectViewModel.isArabic
|
|
|
|
|
? "ar"
|
|
|
|
|
: "en") +
|
|
|
|
|
DateUtil.convertStringToDate(widget.appoList[index].appointmentDate), projectViewModel.isArabic ? "ar" : "en") +
|
|
|
|
|
" " +
|
|
|
|
|
widget.appoList[index].startTime
|
|
|
|
|
.substring(0, 5),
|
|
|
|
|
widget.appoList[index].startTime.substring(0, 5),
|
|
|
|
|
style: TextStyle(fontSize: 10.0)),
|
|
|
|
|
),
|
|
|
|
|
!widget.appoList[index]
|
|
|
|
|
.isLiveCareAppointment
|
|
|
|
|
? Image.asset(
|
|
|
|
|
"assets/images/new-design/hospital_address_icon.png",
|
|
|
|
|
width: 20.0,
|
|
|
|
|
height: 20.0)
|
|
|
|
|
: Container(),
|
|
|
|
|
!widget.appoList[index].isLiveCareAppointment ? Image.asset("assets/images/new-design/hospital_address_icon.png", width: 20.0, height: 20.0) : Container(),
|
|
|
|
|
Container(
|
|
|
|
|
margin: EdgeInsets.only(
|
|
|
|
|
left: 5.0, right: 5.0),
|
|
|
|
|
child: widget.appoList[index]
|
|
|
|
|
.isLiveCareAppointment
|
|
|
|
|
margin: EdgeInsets.only(left: 5.0, right: 5.0),
|
|
|
|
|
child: widget.appoList[index].isLiveCareAppointment
|
|
|
|
|
? Container()
|
|
|
|
|
: Text(
|
|
|
|
|
widget.appoList[index]
|
|
|
|
|
.projectName !=
|
|
|
|
|
null
|
|
|
|
|
? widget.appoList[index]
|
|
|
|
|
.projectName
|
|
|
|
|
: "-",
|
|
|
|
|
overflow: TextOverflow.clip,
|
|
|
|
|
maxLines: 2,
|
|
|
|
|
style:
|
|
|
|
|
TextStyle(fontSize: 10.0)),
|
|
|
|
|
: Text(widget.appoList[index].projectName != null ? widget.appoList[index].projectName : "-",
|
|
|
|
|
overflow: TextOverflow.clip, maxLines: 2, style: TextStyle(fontSize: 10.0)),
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
@ -179,76 +144,39 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
Expanded(
|
|
|
|
|
flex: 1,
|
|
|
|
|
child: Container(
|
|
|
|
|
height: MediaQuery.of(context)
|
|
|
|
|
.size
|
|
|
|
|
.height *
|
|
|
|
|
0.1,
|
|
|
|
|
height: MediaQuery.of(context).size.height * 0.1,
|
|
|
|
|
margin: EdgeInsets.only(top: 5.0),
|
|
|
|
|
child: ClipRRect(
|
|
|
|
|
borderRadius:
|
|
|
|
|
BorderRadius.circular(100.0),
|
|
|
|
|
child: Image.network(
|
|
|
|
|
widget.appoList[index]
|
|
|
|
|
.doctorImageURL,
|
|
|
|
|
fit: BoxFit.fill),
|
|
|
|
|
borderRadius: BorderRadius.circular(100.0),
|
|
|
|
|
child: Image.network(widget.appoList[index].doctorImageURL, fit: BoxFit.fill),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
Expanded(
|
|
|
|
|
flex: 3,
|
|
|
|
|
child: Container(
|
|
|
|
|
margin: EdgeInsets.only(
|
|
|
|
|
top: 10.0,
|
|
|
|
|
left: 20.0,
|
|
|
|
|
right: 20.0),
|
|
|
|
|
margin: EdgeInsets.only(top: 10.0, left: 20.0, right: 20.0),
|
|
|
|
|
child: Column(
|
|
|
|
|
crossAxisAlignment:
|
|
|
|
|
CrossAxisAlignment.start,
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: <Widget>[
|
|
|
|
|
Text(
|
|
|
|
|
widget.appoList[index]
|
|
|
|
|
.doctorTitle +
|
|
|
|
|
" " +
|
|
|
|
|
widget.appoList[index]
|
|
|
|
|
.doctorNameObj,
|
|
|
|
|
style: TextStyle(
|
|
|
|
|
fontSize: 14.0,
|
|
|
|
|
color: Colors.black,
|
|
|
|
|
fontWeight:
|
|
|
|
|
FontWeight.bold,
|
|
|
|
|
letterSpacing: 1.0)),
|
|
|
|
|
Text(widget.appoList[index].doctorTitle + " " + widget.appoList[index].doctorNameObj,
|
|
|
|
|
style: TextStyle(fontSize: 14.0, color: Colors.black, fontWeight: FontWeight.bold, letterSpacing: 1.0)),
|
|
|
|
|
Container(
|
|
|
|
|
margin: EdgeInsets.only(
|
|
|
|
|
top: 3.0, bottom: 3.0),
|
|
|
|
|
child: Text(
|
|
|
|
|
getDoctorSpeciality(widget
|
|
|
|
|
.appoList[index]
|
|
|
|
|
.doctorSpeciality)
|
|
|
|
|
.trim(),
|
|
|
|
|
style: TextStyle(
|
|
|
|
|
fontSize: 12.0,
|
|
|
|
|
color: Colors.grey[600],
|
|
|
|
|
letterSpacing: 1.0)),
|
|
|
|
|
margin: EdgeInsets.only(top: 3.0, bottom: 3.0),
|
|
|
|
|
child: Text(getDoctorSpeciality(widget.appoList[index].doctorSpeciality).trim(),
|
|
|
|
|
style: TextStyle(fontSize: 12.0, color: Colors.grey[600], letterSpacing: 1.0)),
|
|
|
|
|
),
|
|
|
|
|
Row(
|
|
|
|
|
mainAxisAlignment:
|
|
|
|
|
MainAxisAlignment
|
|
|
|
|
.spaceBetween,
|
|
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
|
|
mainAxisSize: MainAxisSize.max,
|
|
|
|
|
children: <Widget>[
|
|
|
|
|
RatingBar.readOnly(
|
|
|
|
|
initialRating: widget
|
|
|
|
|
.appoList[index]
|
|
|
|
|
.actualDoctorRate
|
|
|
|
|
.toDouble(),
|
|
|
|
|
initialRating: widget.appoList[index].actualDoctorRate.toDouble(),
|
|
|
|
|
size: 20.0,
|
|
|
|
|
filledColor:
|
|
|
|
|
Colors.yellow[700],
|
|
|
|
|
emptyColor:
|
|
|
|
|
Colors.grey[500],
|
|
|
|
|
filledColor: Colors.yellow[700],
|
|
|
|
|
emptyColor: Colors.grey[500],
|
|
|
|
|
isHalfAllowed: true,
|
|
|
|
|
halfFilledIcon:
|
|
|
|
|
Icons.star_half,
|
|
|
|
|
halfFilledIcon: Icons.star_half,
|
|
|
|
|
filledIcon: Icons.star,
|
|
|
|
|
emptyIcon: Icons.star,
|
|
|
|
|
),
|
|
|
|
@ -256,28 +184,14 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
),
|
|
|
|
|
Container(
|
|
|
|
|
child: CountdownTimer(
|
|
|
|
|
controller: new CountdownTimerController(
|
|
|
|
|
endTime: DateTime.now()
|
|
|
|
|
.millisecondsSinceEpoch +
|
|
|
|
|
(widget
|
|
|
|
|
.appoList[
|
|
|
|
|
index]
|
|
|
|
|
.remaniningHoursTocanPay *
|
|
|
|
|
1000) *
|
|
|
|
|
60),
|
|
|
|
|
widgetBuilder: (_,
|
|
|
|
|
CurrentRemainingTime
|
|
|
|
|
time) {
|
|
|
|
|
controller:
|
|
|
|
|
new CountdownTimerController(endTime: DateTime.now().millisecondsSinceEpoch + (widget.appoList[index].remaniningHoursTocanPay * 1000) * 60),
|
|
|
|
|
widgetBuilder: (_, CurrentRemainingTime time) {
|
|
|
|
|
return time != null
|
|
|
|
|
? Text(
|
|
|
|
|
'${time.days != null ? time.days : "0"}:${time.hours.toString().length == 1 ? "0" + time.hours.toString() : time.hours}:${time.min}:${time.sec} ' +
|
|
|
|
|
TranslationBase.of(
|
|
|
|
|
context)
|
|
|
|
|
.upcomingTimeLeft,
|
|
|
|
|
style: TextStyle(
|
|
|
|
|
fontSize: 12.0,
|
|
|
|
|
color: Color(
|
|
|
|
|
0xff40ACC9)))
|
|
|
|
|
TranslationBase.of(context).upcomingTimeLeft,
|
|
|
|
|
style: TextStyle(fontSize: 12.0, color: Color(0xff40ACC9)))
|
|
|
|
|
: Container();
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
@ -289,29 +203,15 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
Expanded(
|
|
|
|
|
flex: 1,
|
|
|
|
|
child: InkWell(
|
|
|
|
|
onTap: () => performNextAction(
|
|
|
|
|
widget.appoList[index]),
|
|
|
|
|
onTap: () => performNextAction(widget.appoList[index]),
|
|
|
|
|
child: Container(
|
|
|
|
|
margin: EdgeInsets.only(top: 20.0),
|
|
|
|
|
child: Column(
|
|
|
|
|
children: <Widget>[
|
|
|
|
|
Image.asset(
|
|
|
|
|
getNextActionImage(widget
|
|
|
|
|
.appoList[index]
|
|
|
|
|
.nextAction),
|
|
|
|
|
width: 50.0,
|
|
|
|
|
height: 50.0),
|
|
|
|
|
Image.asset(getNextActionImage(widget.appoList[index].nextAction), width: 50.0, height: 50.0),
|
|
|
|
|
Container(
|
|
|
|
|
margin:
|
|
|
|
|
EdgeInsets.only(top: 5.0),
|
|
|
|
|
child: Text(
|
|
|
|
|
getNextActionText(widget
|
|
|
|
|
.appoList[index]
|
|
|
|
|
.nextAction),
|
|
|
|
|
textAlign:
|
|
|
|
|
TextAlign.center,
|
|
|
|
|
style: TextStyle(
|
|
|
|
|
fontSize: 12.0)),
|
|
|
|
|
margin: EdgeInsets.only(top: 5.0),
|
|
|
|
|
child: Text(getNextActionText(widget.appoList[index].nextAction), textAlign: TextAlign.center, style: TextStyle(fontSize: 12.0)),
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
@ -329,33 +229,18 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
Expanded(
|
|
|
|
|
flex: 2,
|
|
|
|
|
child: Container(
|
|
|
|
|
child: Text(
|
|
|
|
|
getNextActionDescription(widget
|
|
|
|
|
.appoList[index].nextAction),
|
|
|
|
|
style: TextStyle(
|
|
|
|
|
fontSize: 12.0,
|
|
|
|
|
color: Colors.grey[700])),
|
|
|
|
|
child: Text(getNextActionDescription(widget.appoList[index].nextAction), style: TextStyle(fontSize: 12.0, color: Colors.grey[700])),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
Expanded(
|
|
|
|
|
flex: 1,
|
|
|
|
|
child: GestureDetector(
|
|
|
|
|
onTap: () {
|
|
|
|
|
navigateToAppointmentDetails(
|
|
|
|
|
context,
|
|
|
|
|
widget.appoList[index]);
|
|
|
|
|
navigateToAppointmentDetails(context, widget.appoList[index]);
|
|
|
|
|
},
|
|
|
|
|
child: Container(
|
|
|
|
|
child: Text(
|
|
|
|
|
TranslationBase.of(context)
|
|
|
|
|
.upcomingDetails,
|
|
|
|
|
textAlign: TextAlign.end,
|
|
|
|
|
style: TextStyle(
|
|
|
|
|
fontSize: 12.0,
|
|
|
|
|
color:
|
|
|
|
|
new Color(0xFF40ACC9),
|
|
|
|
|
decoration: TextDecoration
|
|
|
|
|
.underline)),
|
|
|
|
|
child: Text(TranslationBase.of(context).upcomingDetails,
|
|
|
|
|
textAlign: TextAlign.end, style: TextStyle(fontSize: 12.0, color: new Color(0xFF40ACC9), decoration: TextDecoration.underline)),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
@ -368,38 +253,21 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
),
|
|
|
|
|
Container(
|
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
|
borderRadius: BorderRadius.only(
|
|
|
|
|
bottomLeft: Radius.circular(10.0),
|
|
|
|
|
bottomRight: Radius.circular(10.0)),
|
|
|
|
|
borderRadius: BorderRadius.only(bottomLeft: Radius.circular(10.0), bottomRight: Radius.circular(10.0)),
|
|
|
|
|
color: Color(0xff20bc44),
|
|
|
|
|
),
|
|
|
|
|
height: 30.0,
|
|
|
|
|
padding: EdgeInsets.only(right:15),
|
|
|
|
|
margin: EdgeInsets.symmetric(horizontal:20),
|
|
|
|
|
padding: EdgeInsets.only(right: 15),
|
|
|
|
|
margin: EdgeInsets.symmetric(horizontal: 20),
|
|
|
|
|
transform: Matrix4.translationValues(0.0, -8.0, 0.0),
|
|
|
|
|
child: Row(
|
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
|
mainAxisAlignment: MainAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
widget.appoList[index].isLiveCareAppointment ? Image.asset("assets/images/new-design/video.png") : Image.asset("assets/images/new-design/walkin.png"),
|
|
|
|
|
widget.appoList[index].isLiveCareAppointment
|
|
|
|
|
? Image.asset(
|
|
|
|
|
"assets/images/new-design/video.png")
|
|
|
|
|
: Image.asset(
|
|
|
|
|
"assets/images/new-design/walkin.png"),
|
|
|
|
|
widget.appoList[index].isLiveCareAppointment
|
|
|
|
|
? Text(
|
|
|
|
|
TranslationBase.of(context).videoAppo,
|
|
|
|
|
style: TextStyle(
|
|
|
|
|
color: Colors.white,
|
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
|
fontSize: 11.0))
|
|
|
|
|
: Text(
|
|
|
|
|
TranslationBase.of(context)
|
|
|
|
|
.walkinAppo,
|
|
|
|
|
style: TextStyle(
|
|
|
|
|
color: Colors.white,
|
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
|
fontSize: 11.0))
|
|
|
|
|
? Text(TranslationBase.of(context).videoAppo, style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 11.0))
|
|
|
|
|
: Text(TranslationBase.of(context).walkinAppo, style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 11.0))
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
@ -428,15 +296,11 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 15:
|
|
|
|
|
return widget.languageID == 'ar'
|
|
|
|
|
? "assets/images/new-design/pay_online_button_arabic_disabled.png"
|
|
|
|
|
: "assets/images/new-design/pay_online_button_disabled.png";
|
|
|
|
|
return widget.languageID == 'ar' ? "assets/images/new-design/pay_online_button_arabic_disabled.png" : "assets/images/new-design/pay_online_button_disabled.png";
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 20:
|
|
|
|
|
return widget.languageID == 'ar'
|
|
|
|
|
? "assets/images/new-design/pay_online_button_arabic.png"
|
|
|
|
|
: "assets/images/new-design/pay_online_button.png";
|
|
|
|
|
return widget.languageID == 'ar' ? "assets/images/new-design/pay_online_button_arabic.png" : "assets/images/new-design/pay_online_button.png";
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 30:
|
|
|
|
@ -567,8 +431,7 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getLanguageID() async {
|
|
|
|
|
var languageID =
|
|
|
|
|
await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
|
|
|
|
|
var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
|
|
|
|
|
setState(() {
|
|
|
|
|
widget.languageID = languageID;
|
|
|
|
|
});
|
|
|
|
@ -605,12 +468,8 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
return docSpeciality;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future navigateToAppointmentDetails(context, appo) async {
|
|
|
|
|
Navigator.push(
|
|
|
|
|
context,
|
|
|
|
|
FadePage(
|
|
|
|
|
page: AppointmentDetails(appo: appo)))
|
|
|
|
|
.then((value) {
|
|
|
|
|
Future navigateToAppointmentDetails(context, AppoitmentAllHistoryResultList appo) async {
|
|
|
|
|
Navigator.push(context, FadePage(page: AppointmentDetails(appo: appo, parentIndex: appo.patientStatusType == 42 ? 1 : 0))).then((value) {
|
|
|
|
|
getPatientAppointmentHistory();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
@ -626,8 +485,7 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
if (res['AppoimentAllHistoryResultList'].length != 0) {
|
|
|
|
|
widget.appoList.clear();
|
|
|
|
|
res['AppoimentAllHistoryResultList'].forEach((v) {
|
|
|
|
|
widget.appoList
|
|
|
|
|
.add(new AppoitmentAllHistoryResultList.fromJson(v));
|
|
|
|
|
widget.appoList.add(new AppoitmentAllHistoryResultList.fromJson(v));
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
Navigator.of(context).popAndPushNamed(HOME);
|
|
|
|
@ -649,10 +507,7 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
getLiveCareAppointmentPatientShare(context, service, appo);
|
|
|
|
|
} else {
|
|
|
|
|
GifLoaderDialogUtils.showMyDialog(context);
|
|
|
|
|
service
|
|
|
|
|
.getPatientShare(appo.appointmentNo.toString(), appo.clinicID,
|
|
|
|
|
appo.projectID, context)
|
|
|
|
|
.then((res) {
|
|
|
|
|
service.getPatientShare(appo.appointmentNo.toString(), appo.clinicID, appo.projectID, context).then((res) {
|
|
|
|
|
GifLoaderDialogUtils.hideDialog(context);
|
|
|
|
|
widget.patientShareResponse = new PatientShareResponse.fromJson(res);
|
|
|
|
|
openPaymentDialog(appo, widget.patientShareResponse);
|
|
|
|
@ -664,13 +519,9 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getLiveCareAppointmentPatientShare(context, DoctorsListService service,
|
|
|
|
|
AppoitmentAllHistoryResultList appo) {
|
|
|
|
|
getLiveCareAppointmentPatientShare(context, DoctorsListService service, AppoitmentAllHistoryResultList appo) {
|
|
|
|
|
GifLoaderDialogUtils.showMyDialog(context);
|
|
|
|
|
service
|
|
|
|
|
.getLiveCareAppointmentPatientShare(appo.appointmentNo.toString(),
|
|
|
|
|
appo.clinicID, appo.projectID, context)
|
|
|
|
|
.then((res) {
|
|
|
|
|
service.getLiveCareAppointmentPatientShare(appo.appointmentNo.toString(), appo.clinicID, appo.projectID, context).then((res) {
|
|
|
|
|
print(res);
|
|
|
|
|
GifLoaderDialogUtils.hideDialog(context);
|
|
|
|
|
widget.patientShareResponse = new PatientShareResponse.fromJson(res);
|
|
|
|
@ -706,33 +557,28 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future navigateToQR(
|
|
|
|
|
context, String appoQR, PatientShareResponse patientShareResponse) async {
|
|
|
|
|
Future navigateToQR(context, String appoQR, PatientShareResponse patientShareResponse) async {
|
|
|
|
|
Navigator.push(
|
|
|
|
|
context,
|
|
|
|
|
FadePage(
|
|
|
|
|
page: QRCode(
|
|
|
|
|
patientShareResponse: patientShareResponse,
|
|
|
|
|
appoQR: appoQR,
|
|
|
|
|
))).then((value) {
|
|
|
|
|
patientShareResponse: patientShareResponse,
|
|
|
|
|
appoQR: appoQR,
|
|
|
|
|
))).then((value) {
|
|
|
|
|
getPatientAppointmentHistory();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
openPaymentDialog(AppoitmentAllHistoryResultList appo,
|
|
|
|
|
PatientShareResponse patientShareResponse) {
|
|
|
|
|
openPaymentDialog(AppoitmentAllHistoryResultList appo, PatientShareResponse patientShareResponse) {
|
|
|
|
|
showGeneralDialog(
|
|
|
|
|
barrierColor: Colors.black.withOpacity(0.5),
|
|
|
|
|
transitionBuilder: (context, a1, a2, widget) {
|
|
|
|
|
final curvedValue =
|
|
|
|
|
Curves.easeInOutBack.transform(a1.value) - 1.0;
|
|
|
|
|
final curvedValue = Curves.easeInOutBack.transform(a1.value) - 1.0;
|
|
|
|
|
return Transform(
|
|
|
|
|
transform:
|
|
|
|
|
Matrix4.translationValues(0.0, curvedValue * 200, 0.0),
|
|
|
|
|
transform: Matrix4.translationValues(0.0, curvedValue * 200, 0.0),
|
|
|
|
|
child: Opacity(
|
|
|
|
|
opacity: a1.value,
|
|
|
|
|
child: PaymentDialog(
|
|
|
|
|
appo: appo, patientShareResponse: patientShareResponse),
|
|
|
|
|
child: PaymentDialog(appo: appo, patientShareResponse: patientShareResponse),
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
@ -750,22 +596,13 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
openPayment(
|
|
|
|
|
String paymentMethod,
|
|
|
|
|
AuthenticatedUser authenticatedUser,
|
|
|
|
|
double amount,
|
|
|
|
|
PatientShareResponse patientShareResponse,
|
|
|
|
|
AppoitmentAllHistoryResultList appo) {
|
|
|
|
|
widget.browser = new MyInAppBrowser(
|
|
|
|
|
onExitCallback: onBrowserExit,
|
|
|
|
|
appo: appo,
|
|
|
|
|
onLoadStartCallback: onBrowserLoadStart);
|
|
|
|
|
openPayment(String paymentMethod, AuthenticatedUser authenticatedUser, double amount, PatientShareResponse patientShareResponse, AppoitmentAllHistoryResultList appo) {
|
|
|
|
|
widget.browser = new MyInAppBrowser(onExitCallback: onBrowserExit, appo: appo, onLoadStartCallback: onBrowserLoadStart);
|
|
|
|
|
|
|
|
|
|
widget.browser.openPaymentBrowser(
|
|
|
|
|
amount,
|
|
|
|
|
"Appointment check in",
|
|
|
|
|
Utils.getAppointmentTransID(
|
|
|
|
|
appo.projectID, appo.clinicID, appo.appointmentNo),
|
|
|
|
|
Utils.getAppointmentTransID(appo.projectID, appo.clinicID, appo.appointmentNo),
|
|
|
|
|
appo.projectID.toString(),
|
|
|
|
|
authenticatedUser.emailAddress,
|
|
|
|
|
paymentMethod,
|
|
|
|
@ -810,12 +647,7 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
checkPaymentStatus(AppoitmentAllHistoryResultList appo) {
|
|
|
|
|
GifLoaderDialogUtils.showMyDialog(context);
|
|
|
|
|
DoctorsListService service = new DoctorsListService();
|
|
|
|
|
service
|
|
|
|
|
.checkPaymentStatus(
|
|
|
|
|
Utils.getAppointmentTransID(
|
|
|
|
|
appo.projectID, appo.clinicID, appo.appointmentNo),
|
|
|
|
|
context)
|
|
|
|
|
.then((res) {
|
|
|
|
|
service.checkPaymentStatus(Utils.getAppointmentTransID(appo.projectID, appo.clinicID, appo.appointmentNo), context).then((res) {
|
|
|
|
|
GifLoaderDialogUtils.hideDialog(context);
|
|
|
|
|
String paymentInfo = res['Response_Message'];
|
|
|
|
|
if (paymentInfo == 'Success') {
|
|
|
|
@ -833,36 +665,20 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
GifLoaderDialogUtils.showMyDialog(context);
|
|
|
|
|
DoctorsListService service = new DoctorsListService();
|
|
|
|
|
String paymentReference = res['Fort_id'].toString();
|
|
|
|
|
service
|
|
|
|
|
.createAdvancePayment(appo, appo.projectID.toString(), res['Amount'],
|
|
|
|
|
res['Fort_id'], res['PaymentMethod'], context)
|
|
|
|
|
.then((res) {
|
|
|
|
|
service.createAdvancePayment(appo, appo.projectID.toString(), res['Amount'], res['Fort_id'], res['PaymentMethod'], context).then((res) {
|
|
|
|
|
GifLoaderDialogUtils.hideDialog(context);
|
|
|
|
|
print(res['OnlineCheckInAppointments'][0]);
|
|
|
|
|
addAdvancedNumberRequest(
|
|
|
|
|
res['OnlineCheckInAppointments'][0]['AdvanceNumber'].toString(),
|
|
|
|
|
paymentReference,
|
|
|
|
|
appo.appointmentNo.toString(),
|
|
|
|
|
appo,
|
|
|
|
|
res['OnlineCheckInAppointments'][0]);
|
|
|
|
|
addAdvancedNumberRequest(res['OnlineCheckInAppointments'][0]['AdvanceNumber'].toString(), paymentReference, appo.appointmentNo.toString(), appo, res['OnlineCheckInAppointments'][0]);
|
|
|
|
|
}).catchError((err) {
|
|
|
|
|
print(err);
|
|
|
|
|
GifLoaderDialogUtils.hideDialog(context);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
addAdvancedNumberRequest(
|
|
|
|
|
String advanceNumber,
|
|
|
|
|
String paymentReference,
|
|
|
|
|
String appointmentID,
|
|
|
|
|
AppoitmentAllHistoryResultList appo,
|
|
|
|
|
dynamic apptData) {
|
|
|
|
|
addAdvancedNumberRequest(String advanceNumber, String paymentReference, String appointmentID, AppoitmentAllHistoryResultList appo, dynamic apptData) {
|
|
|
|
|
GifLoaderDialogUtils.showMyDialog(context);
|
|
|
|
|
DoctorsListService service = new DoctorsListService();
|
|
|
|
|
service
|
|
|
|
|
.addAdvancedNumberRequest(
|
|
|
|
|
advanceNumber, paymentReference, appointmentID, context)
|
|
|
|
|
.then((res) {
|
|
|
|
|
service.addAdvancedNumberRequest(advanceNumber, paymentReference, appointmentID, context).then((res) {
|
|
|
|
|
GifLoaderDialogUtils.hideDialog(context);
|
|
|
|
|
if (appo.isLiveCareAppointment)
|
|
|
|
|
addVIDARequestInsert(advanceNumber, paymentReference, apptData);
|
|
|
|
@ -874,13 +690,10 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
addVIDARequestInsert(
|
|
|
|
|
String advanceNumber, String paymentReference, dynamic apptData) {
|
|
|
|
|
addVIDARequestInsert(String advanceNumber, String paymentReference, dynamic apptData) {
|
|
|
|
|
GifLoaderDialogUtils.showMyDialog(context);
|
|
|
|
|
DoctorsListService service = new DoctorsListService();
|
|
|
|
|
service
|
|
|
|
|
.addVIDARequest(advanceNumber, paymentReference, apptData, context)
|
|
|
|
|
.then((res) {
|
|
|
|
|
service.addVIDARequest(advanceNumber, paymentReference, apptData, context).then((res) {
|
|
|
|
|
GifLoaderDialogUtils.hideDialog(context);
|
|
|
|
|
print(res);
|
|
|
|
|
}).catchError((err) {
|
|
|
|
@ -892,8 +705,7 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
getPatientData() async {
|
|
|
|
|
AppSharedPreferences sharedPref = AppSharedPreferences();
|
|
|
|
|
if (await sharedPref.getObject(USER_PROFILE) != null) {
|
|
|
|
|
var data =
|
|
|
|
|
AuthenticatedUser.fromJson(await sharedPref.getObject(USER_PROFILE));
|
|
|
|
|
var data = AuthenticatedUser.fromJson(await sharedPref.getObject(USER_PROFILE));
|
|
|
|
|
setState(() {
|
|
|
|
|
print(data);
|
|
|
|
|
authUser = data;
|
|
|
|
@ -902,31 +714,20 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future navigateToPaymentMethod(
|
|
|
|
|
context,
|
|
|
|
|
PatientShareResponse patientShareResponse,
|
|
|
|
|
AppoitmentAllHistoryResultList appo) async {
|
|
|
|
|
Future navigateToPaymentMethod(context, PatientShareResponse patientShareResponse, AppoitmentAllHistoryResultList appo) async {
|
|
|
|
|
if (await this.sharedPref.getObject(USER_PROFILE) != null) {
|
|
|
|
|
var data = AuthenticatedUser.fromJson(
|
|
|
|
|
await this.sharedPref.getObject(USER_PROFILE));
|
|
|
|
|
var data = AuthenticatedUser.fromJson(await this.sharedPref.getObject(USER_PROFILE));
|
|
|
|
|
setState(() {
|
|
|
|
|
authUser = data;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Navigator.push(
|
|
|
|
|
context, FadePage(page: PaymentMethod()))
|
|
|
|
|
.then((value) {
|
|
|
|
|
Navigator.push(context, FadePage(page: PaymentMethod())).then((value) {
|
|
|
|
|
print(value);
|
|
|
|
|
getPatientAppointmentHistory();
|
|
|
|
|
|
|
|
|
|
if (value != null) {
|
|
|
|
|
openPayment(
|
|
|
|
|
value,
|
|
|
|
|
authUser,
|
|
|
|
|
double.parse(patientShareResponse.patientShareWithTax.toString()),
|
|
|
|
|
patientShareResponse,
|
|
|
|
|
appo);
|
|
|
|
|
openPayment(value, authUser, double.parse(patientShareResponse.patientShareWithTax.toString()), patientShareResponse, appo);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
@ -934,10 +735,7 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
confirmAppointment(AppoitmentAllHistoryResultList appo) {
|
|
|
|
|
GifLoaderDialogUtils.showMyDialog(context);
|
|
|
|
|
DoctorsListService service = new DoctorsListService();
|
|
|
|
|
service
|
|
|
|
|
.confirmAppointment(appo.appointmentNo, appo.clinicID, appo.projectID,
|
|
|
|
|
appo.isLiveCareAppointment, context)
|
|
|
|
|
.then((res) {
|
|
|
|
|
service.confirmAppointment(appo.appointmentNo, appo.clinicID, appo.projectID, appo.isLiveCareAppointment, context).then((res) {
|
|
|
|
|
GifLoaderDialogUtils.hideDialog(context);
|
|
|
|
|
if (res['MessageStatus'] == 1) {
|
|
|
|
|
AppToast.showSuccessToast(message: res['ErrorEndUserMessage']);
|
|
|
|
@ -958,10 +756,7 @@ class _ToDoState extends State<ToDo> {
|
|
|
|
|
insertLiveCareVIDARequest(AppoitmentAllHistoryResultList appo) {
|
|
|
|
|
GifLoaderDialogUtils.showMyDialog(context);
|
|
|
|
|
DoctorsListService service = new DoctorsListService();
|
|
|
|
|
service
|
|
|
|
|
.insertVIDARequest(appo.appointmentNo, appo.clinicID, appo.projectID,
|
|
|
|
|
appo.serviceID, appo.doctorID, context)
|
|
|
|
|
.then((res) {
|
|
|
|
|
service.insertVIDARequest(appo.appointmentNo, appo.clinicID, appo.projectID, appo.serviceID, appo.doctorID, context).then((res) {
|
|
|
|
|
GifLoaderDialogUtils.hideDialog(context);
|
|
|
|
|
if (res['MessageStatus'] == 1) {
|
|
|
|
|
AppToast.showSuccessToast(message: res['ErrorEndUserMessage']);
|
|
|
|
|