Merge branch 'mirza_home_page' into development_new_design_2.0

merge-update-with-lab-changes
Mirza.Shafique 4 years ago
commit a805273049

@ -15,8 +15,8 @@ const PACKAGES_CUSTOMER = '/api/customers';
const PACKAGES_SHOPPING_CART = '/api/shopping_cart_items';
const PACKAGES_ORDERS = '/api/orders';
const PACKAGES_TAMARA_OPT = '/api/orders/paymentoptions/tamara';
// const BASE_URL = 'https://uat.hmgwebservices.com/';
const BASE_URL = 'https://hmgwebservices.com/';
const BASE_URL = 'https://uat.hmgwebservices.com/';
// const BASE_URL = 'https://hmgwebservices.com/';
// Pharmacy UAT URLs
// const BASE_PHARMACY_URL = 'https://uat.hmgwebservices.com/epharmacy/api/';

@ -0,0 +1,118 @@
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/LiveCare/ClinicsServiceTimingsResponse.dart';
import 'package:diplomaticquarterapp/models/LiveCare/ERAppointmentFeesResponse.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.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:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
class ClinicTimingsPage extends StatefulWidget {
final clinicName;
final List<PatientERGetClinicsServiceTimingsList> patientERGetClinicsServiceTimingsList;
ClinicTimingsPage({@required this.clinicName, @required this.patientERGetClinicsServiceTimingsList});
@override
_LiveCarePatmentPageState createState() => _LiveCarePatmentPageState();
}
class _LiveCarePatmentPageState extends State<ClinicTimingsPage> {
ProjectViewModel projectViewModel;
@override
Widget build(BuildContext context) {
projectViewModel = Provider.of(context);
return AppScaffold(
appBarTitle: TranslationBase.of(context).clinicSchedule,
isShowAppBar: true,
showNewAppBarTitle: true,
showNewAppBar: true,
description: TranslationBase.of(context).erConsultation,
body: Container(
width: double.infinity,
height: double.infinity,
child: Column(
children: [
Expanded(
child: ListView.separated(
itemBuilder: (context, index) {
return Padding(
padding: EdgeInsets.only(top: index == 0 ? 12 : 0, bottom: (index == widget.patientERGetClinicsServiceTimingsList.length - 1) ? 12 : 0),
child: showItem(widget.patientERGetClinicsServiceTimingsList[index]),
);
},
separatorBuilder: (context, index) {
return mHeight(12);
},
itemCount: widget.patientERGetClinicsServiceTimingsList.length,
),
),
Container(
width: double.infinity,
padding: EdgeInsets.all(12),
color: Colors.white,
child: DefaultButton(
TranslationBase.of(context).back,
() {
Navigator.pop(context);
},
),
),
],
),
),
);
}
Widget showItem(PatientERGetClinicsServiceTimingsList item) {
return Container(
width: double.infinity,
padding: EdgeInsets.only(left: 12, right: 12),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Expanded(
flex: 1,
child: Text(
item.dayOfWeekStr,
style: TextStyle(
fontSize: 13,
letterSpacing: -0.42,
fontWeight: FontWeight.w600,
),
),
),
Expanded(
flex: 3,
child: Container(
width: double.infinity,
decoration: cardRadius(12),
padding: EdgeInsets.all(12),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
for (int i = 0; i < item.shiftTimings.length; i++)
Text(
TranslationBase.of(context).from + " " + item.shiftTimings[i].startTime + " " + TranslationBase.of(context).to + " " + item.shiftTimings[i].endTime,
style: TextStyle(
fontSize: 13,
letterSpacing: -0.42,
fontWeight: FontWeight.w600,
),
)
],
),
),
),
],
),
);
}
}

@ -0,0 +1,316 @@
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/LiveCare/ERAppointmentFeesResponse.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.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:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
class LiveCarePatmentPage extends StatefulWidget {
GetERAppointmentFeesList getERAppointmentFeesList;
int waitingTime;
String clinicName;
LiveCarePatmentPage({@required this.getERAppointmentFeesList, @required this.waitingTime, @required this.clinicName});
@override
_LiveCarePatmentPageState createState() => _LiveCarePatmentPageState();
}
class _LiveCarePatmentPageState extends State<LiveCarePatmentPage> {
int _selected = 0;
ProjectViewModel projectViewModel;
@override
Widget build(BuildContext context) {
var size = MediaQuery.of(context).size;
final double itemHeight = ((size.height - kToolbarHeight - 24) * 0.42) / 2;
final double itemWidth = size.width / 2;
projectViewModel = Provider.of(context);
return AppScaffold(
appBarTitle: TranslationBase.of(context).livecare,
isShowAppBar: true,
showNewAppBarTitle: true,
showNewAppBar: true,
description: TranslationBase.of(context).erConsultation,
body: Container(
width: double.infinity,
height: double.infinity,
child: Column(
children: [
Expanded(
child: Padding(
padding: EdgeInsets.all(21),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.max,
children: <Widget>[
Text(
widget.clinicName,
style: TextStyle(
fontSize: 19.0,
fontWeight: FontWeight.bold,
letterSpacing: -1.44,
),
),
mHeight(8),
Text(
TranslationBase.of(context).expectedWaiting,
textAlign: TextAlign.end,
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w600,
letterSpacing: -0.56,
color: CustomColors.textColor,
),
),
Text(
widget.waitingTime.toString() + " " + TranslationBase.of(context).minute,
textAlign: TextAlign.start,
style: TextStyle(
fontSize: 16.0,
fontWeight: FontWeight.bold,
color: CustomColors.accentColor,
letterSpacing: -0.66,
),
),
mHeight(16),
Container(
decoration: cardRadius(12),
padding: EdgeInsets.all(12),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
TranslationBase.of(context).erConsultFee,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 16.0,
fontWeight: FontWeight.w600,
letterSpacing: -0.64,
),
),
mHeight(10),
Row(
children: [
Expanded(
child: Text(
TranslationBase.of(context).patientShareToDo,
style: TextStyle(
fontSize: 10,
letterSpacing: -0.4,
color: CustomColors.textColor,
fontWeight: FontWeight.w600,
),
),
),
Expanded(
child: Text(
widget.getERAppointmentFeesList.amount + " " + widget.getERAppointmentFeesList.currency,
style: TextStyle(
fontSize: 12,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
),
),
),
],
),
mHeight(4),
mDivider(CustomColors.lightGreyColor),
mHeight(4),
Row(
children: [
Expanded(
child: Text(
TranslationBase.of(context).patientTaxToDo,
style: TextStyle(
fontSize: 10,
letterSpacing: -0.4,
color: CustomColors.textColor,
fontWeight: FontWeight.w600,
),
),
),
Expanded(
child: Text(
widget.getERAppointmentFeesList.tax + " " + widget.getERAppointmentFeesList.currency,
style: TextStyle(
fontSize: 12,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
),
),
),
],
),
mHeight(4),
mDivider(CustomColors.lightGreyColor),
mHeight(4),
Row(
children: [
Expanded(
child: Text(
TranslationBase.of(context).patientShareTotalToDo,
style: TextStyle(
fontSize: 10,
letterSpacing: -0.4,
color: CustomColors.textColor,
fontWeight: FontWeight.w600,
),
),
),
Expanded(
child: Text(
widget.getERAppointmentFeesList.total + " " + widget.getERAppointmentFeesList.currency,
style: TextStyle(
fontSize: 12,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
),
),
),
],
),
],
),
),
mHeight(12),
Container(
padding: EdgeInsets.all(12),
decoration: cardRadius(12),
child: Row(
children: <Widget>[
SvgPicture.asset(
"assets/images/new/services/raise_comp.svg",
color: CustomColors.green,
width: 18,
height: 18,
),
mWidth(10),
Expanded(
child: Text(
TranslationBase.of(context).insuredPatient,
style: TextStyle(
fontSize: 10.0,
letterSpacing: -0.4,
fontWeight: FontWeight.w600,
),
),
),
],
),
),
Container(
margin: EdgeInsets.only(top: 10.0),
child: Row(
children: <Widget>[
Radio(
value: 1,
groupValue: _selected,
onChanged: onRadioChanged,
),
Text(
TranslationBase.of(context).agreeTo,
style: new TextStyle(
fontSize: 12.0,
fontWeight: FontWeight.w600,
letterSpacing: -0.48,
color: CustomColors.textColor,
),
),
mWidth(4),
Text(
TranslationBase.of(context).termsConditoins,
style: new TextStyle(
fontSize: 12.0,
fontWeight: FontWeight.w600,
letterSpacing: -0.48,
color: CustomColors.accentColor,
),
),
],
),
),
mFlex(1),
Text(
TranslationBase.of(context).upComingPayOption,
style: new TextStyle(
fontSize: 12.0,
letterSpacing: -0.36,
fontWeight: FontWeight.w600,
),
),
Container(
margin: EdgeInsets.fromLTRB(10.0, 5.0, 10.0, 5.0),
child: getPaymentMethods(),
),
],
),
),
),
Container(
padding: EdgeInsets.all(12),
color: Colors.white,
child: Flex(
direction: Axis.horizontal,
children: <Widget>[
Expanded(
child: DefaultButton(
TranslationBase.of(context).cancel,
() {
Navigator.pop(context, false);
},
),
),
mWidth(12),
Expanded(
child: DefaultButton(
TranslationBase.of(context).next,
() {
if (_selected == 0) {
AppToast.showErrorToast(message: TranslationBase.of(context).pleaseAcceptTerms);
} else {
Navigator.pop(context, true);
}
},
color: CustomColors.green,
),
),
],
),
),
],
),
),
);
}
void onRadioChanged(int value) {
setState(() {
_selected = value;
});
}
_getNormalText(text) {
return Container(
margin: EdgeInsets.only(top: 10.0, right: 10.0),
child: Text(text, textAlign: TextAlign.start, style: TextStyle(fontSize: 14, letterSpacing: 0.5, color: Colors.black)),
);
}
_getMarginText(text) {
return Container(
margin: EdgeInsets.only(top: 10.0, right: 10.0, bottom: 10.0),
child: Text(text, textAlign: TextAlign.start, style: TextStyle(fontSize: 14, letterSpacing: 0.5, fontWeight: FontWeight.bold, color: Colors.black)),
);
}
}

@ -60,16 +60,16 @@ class _LiveCareHistoryCardState extends State<LiveCareHistoryCard> {
],
),
child: Container(
margin: EdgeInsets.only(left: projectViewModel.isArabic ? 0 : 6, right: projectViewModel.isArabic ? 6 : 0),
margin: EdgeInsets.only(left: projectViewModel.isArabic ? 0 : 0, right: projectViewModel.isArabic ? 0 : 0),
padding: EdgeInsets.symmetric(vertical: 10, horizontal: 12),
decoration: BoxDecoration(
color: Colors.white,
border: Border.all(color: Colors.white, width: 1),
borderRadius: BorderRadius.only(
bottomRight: projectViewModel.isArabic ? Radius.circular(0) : Radius.circular(10.0),
topRight: projectViewModel.isArabic ? Radius.circular(0) : Radius.circular(10.0),
bottomLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0),
topLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0),
bottomRight: projectViewModel.isArabic ? Radius.circular(10) : Radius.circular(10.0),
topRight: projectViewModel.isArabic ? Radius.circular(10) : Radius.circular(10.0),
bottomLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(10),
topLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(10),
),
),
child: Column(
@ -77,12 +77,13 @@ class _LiveCareHistoryCardState extends State<LiveCareHistoryCard> {
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Text(
widget.erRequestHistoryList.stringCallStatus == "Completed" ? widget.erRequestHistoryList.stringCallStatus : "Pending",
widget.erRequestHistoryList.stringCallStatus ,
style: TextStyle(
fontSize: 10.0,
fontWeight: FontWeight.w600,
letterSpacing: -0.4,
color: widget.erRequestHistoryList.stringCallStatus == "Completed" ? CustomColors.green : CustomColors.orange,
color: CustomColors.green,
//color: widget.erRequestHistoryList.stringCallStatus == "Completed" ? CustomColors.green : CustomColors.orange,
),
),
mHeight(12),

@ -40,6 +40,7 @@ class _LiveCarePaymentDialogState extends State<LiveCarePaymentDialog> {
height: 600.0,
margin: EdgeInsets.all(20.0),
width: 500.0,
color: Colors.red,
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,

@ -11,6 +11,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:provider/provider.dart';
import '../clinic_timings_page.dart';
import 'ClinicTimingsDialog.dart';
// ignore: must_be_immutable
@ -124,7 +125,9 @@ class _State extends State<ClinicCard> {
],
),
),
Container(
InkWell(
onTap: (){ getClinicTimings(widget.patientERGetClinicsList);},
child: Container(
padding: EdgeInsets.only(left: 8,right: 8,top: 4,bottom: 4),
decoration: containerRadius(CustomColors.devider, 100),
child: Row(
@ -147,6 +150,7 @@ class _State extends State<ClinicCard> {
],
),
),
),
],
),
),
@ -164,26 +168,30 @@ class _State extends State<ClinicCard> {
clinicsServiceTimingsResponse = ClinicsServiceTimingsResponse.fromJson(res);
print(clinicsServiceTimingsResponse.patientERGetClinicsServiceTimingsList.length);
showGeneralDialog(
barrierColor: Colors.black.withOpacity(0.5),
transitionBuilder: (context, a1, a2, widget) {
final curvedValue = Curves.easeInOutBack.transform(a1.value) - 1.0;
return Transform(
transform: Matrix4.translationValues(0.0, curvedValue * 200, 0.0),
child: Opacity(
opacity: a1.value,
child: ClinicTimingsDialog(
navigateTo(context, ClinicTimingsPage(
clinicName: patientERGetClinicsList.serviceName,
patientERGetClinicsServiceTimingsList: clinicsServiceTimingsResponse.patientERGetClinicsServiceTimingsList,
),
),
);
},
transitionDuration: Duration(milliseconds: 500),
barrierDismissible: true,
barrierLabel: '',
context: context,
pageBuilder: (context, animation1, animation2) {});
));
// showGeneralDialog(
// barrierColor: Colors.black.withOpacity(0.5),
// transitionBuilder: (context, a1, a2, widget) {
// final curvedValue = Curves.easeInOutBack.transform(a1.value) - 1.0;
// return Transform(
// transform: Matrix4.translationValues(0.0, curvedValue * 200, 0.0),
// child: Opacity(
// opacity: a1.value,
// child: ClinicTimingsDialog(
// clinicName: patientERGetClinicsList.serviceName,
// patientERGetClinicsServiceTimingsList: clinicsServiceTimingsResponse.patientERGetClinicsServiceTimingsList,
// ),
// ),
// );
// },
// transitionDuration: Duration(milliseconds: 500),
// barrierDismissible: true,
// barrierLabel: '',
// context: context,
// pageBuilder: (context, animation1, animation2) {});
});
} else {
AppToast.showErrorToast(message: res['ErrorEndUserMessage']);

@ -29,6 +29,8 @@ import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import '../live_care_payment_page.dart';
class ClinicList extends StatefulWidget {
final Function getLiveCareHistory;
@ -174,24 +176,8 @@ class _clinic_listState extends State<ClinicList> {
}
showLiveCarePaymentDialog(GetERAppointmentFeesList getERAppointmentFeesList, int waitingTime) {
showGeneralDialog(
barrierColor: Colors.black.withOpacity(0.5),
transitionBuilder: (context, a1, a2, widget) {
final curvedValue = Curves.easeInOutBack.transform(a1.value) - 1.0;
return Transform(
transform: Matrix4.translationValues(0.0, curvedValue * 200, 0.0),
child: Opacity(
opacity: a1.value,
child: LiveCarePaymentDialog(getERAppointmentFeesList: getERAppointmentFeesList, waitingTime: waitingTime, clinicName: selectedClinicName),
),
);
},
transitionDuration: Duration(milliseconds: 500),
barrierDismissible: true,
barrierLabel: '',
context: context,
pageBuilder: (context, animation1, animation2) {})
.then((value) {
navigateTo(context, LiveCarePatmentPage(getERAppointmentFeesList: getERAppointmentFeesList, waitingTime: waitingTime, clinicName: selectedClinicName)).then(
(value) {
if (value) {
if (getERAppointmentFeesList.total == "0" || getERAppointmentFeesList.total == "0.0") {
showLiveCareInfoDialog(getERAppointmentFeesList);
@ -199,7 +185,34 @@ class _clinic_listState extends State<ClinicList> {
navigateToPaymentMethod(getERAppointmentFeesList, context);
}
}
});
},
);
// showGeneralDialog(
// barrierColor: Colors.black.withOpacity(0.5),
// transitionBuilder: (context, a1, a2, widget) {
// final curvedValue = Curves.easeInOutBack.transform(a1.value) - 1.0;
// return Transform(
// transform: Matrix4.translationValues(0.0, curvedValue * 200, 0.0),
// child: Opacity(
// opacity: a1.value,
// child: LiveCarePaymentDialog(getERAppointmentFeesList: getERAppointmentFeesList, waitingTime: waitingTime, clinicName: selectedClinicName),
// ),
// );
// },
// transitionDuration: Duration(milliseconds: 500),
// barrierDismissible: true,
// barrierLabel: '',
// context: context,
// pageBuilder: (context, animation1, animation2) {})
// .then((value) {
// if (value) {
// if (getERAppointmentFeesList.total == "0" || getERAppointmentFeesList.total == "0.0") {
// showLiveCareInfoDialog(getERAppointmentFeesList);
// } else {
// navigateToPaymentMethod(getERAppointmentFeesList, context);
// }
// }
// });
}
showLiveCareInfoDialog(GetERAppointmentFeesList getERAppointmentFeesList) async {
@ -548,7 +561,7 @@ class _clinic_listState extends State<ClinicList> {
},
),
Container(
height: 50.0,
height: 10.0,
),
],
)),
@ -557,7 +570,6 @@ class _clinic_listState extends State<ClinicList> {
: Container(),
isDataLoaded
? Container(
color: Colors.white,
width: double.infinity,
padding: EdgeInsets.all(16),

Loading…
Cancel
Save