Merge branch 'haroon-new-design' into 'development_new_design_2.0'

Updates & fixes

See merge request Cloud_Solution/diplomatic-quarter!486
merge-update-with-lab-changes
haroon amjad 4 years ago
commit caab3339e3

@ -85,8 +85,11 @@ const SEND_RAD_REPORT_EMAIL = 'Services/Notifications.svc/REST/SendRadReportEmai
///Feedback
const SEND_FEEDBACK = 'Services/COCWS.svc/REST/InsertCOCItemInSPList';
const GET_STATUS_FOR_COCO = 'Services/COCWS.svc/REST/GetStatusforCOC';
// const GET_PATIENT_AppointmentHistory = 'Services'
// '/Doctors.svc/REST/PateintHasAppoimentHistory';
const GET_PATIENT_AppointmentHistory = 'Services'
'/Doctors.svc/REST/PateintHasAppoimentHistory';
'/Doctors.svc/REST/PateintHasAppoimentHistory_Async';
///VITAL SIGN
const GET_PATIENT_VITAL_SIGN = 'Services/Doctors.svc/REST/Doctor_GetPatientVitalSign';
@ -166,7 +169,8 @@ const INSERT_REQUEST_FOR_MEDICAL_REPORT = 'Services/Doctors.svc/REST/InsertReque
const SEND_MEDICAL_REPORT_EMAIL = 'Services/Notifications.svc/REST/SendMedicalReportEmail';
///Rate
const IS_LAST_APPOITMENT_RATED = 'Services/Doctors.svc/REST/IsLastAppoitmentRated';
// const IS_LAST_APPOITMENT_RATED = 'Services/Doctors.svc/REST/IsLastAppoitmentRated';
const IS_LAST_APPOITMENT_RATED = 'Services/Doctors.svc/REST/IsLastAppoitmentRated_Async';
const GET_APPOINTMENT_DETAILS_BY_NO = 'Services/MobileNotifications.svc/REST/GetAppointmentDetailsByApptNo';
const NEW_RATE_APPOINTMENT_URL = "Services/Doctors.svc/REST/AppointmentsRating_InsertAppointmentRate";
const NEW_RATE_DOCTOR_URL = "Services/Doctors.svc/REST/DoctorsRating_InsertDoctorRate";
@ -207,7 +211,8 @@ const SEND_REPORT_EYE_EMAIL = "Services/Notifications.svc/REST/SendGlassesPrescr
const SEND_CONTACT_LENS_PRESCRIPTION_EMAIL = "Services/Notifications.svc/REST/SendContactLensPrescriptionEmail";
//URL to get patient appointment curfew history
const GET_PATIENT_APPOINTMENT_CURFEW_HISTORY = "Services/Doctors.svc/REST/AppoimentHistoryForCurfew";
// const GET_PATIENT_APPOINTMENT_CURFEW_HISTORY = "Services/Doctors.svc/REST/AppoimentHistoryForCurfew";
const GET_PATIENT_APPOINTMENT_CURFEW_HISTORY = "Services/Doctors.svc/REST/AppoimentHistoryForCurfew_Async";
//URL to confirm appointment
const CONFIRM_APPOINTMENT = "Services/MobileNotifications.svc/REST/ConfirmAppointment";

@ -625,7 +625,7 @@ const Map localizedValues = {
"select-gender": {"en": "Select Gender", "ar": "اختر الجنس"},
"i-am-a": {"en": "I am a ...", "ar": "أنا ..."},
"select-age": {"en": "Select Your Age", "ar": "حدد العمر"},
"select": {"en": "Select", "ar": "يختار"},
"select": {"en": "Select", "ar": "اختر"},
"i-am": {"en": "I am", "ar": "أنا"},
"years-old": {"en": "years old", "ar": "سنة"},
"drag-point": {"en": "Drag point to change your age", "ar": "اسحب لتغيير عمرك"},
@ -1626,4 +1626,8 @@ const Map localizedValues = {
"cholesTitle": {"en": "Blood Cholesterol", "ar": " الكولسترول في الدم"},
"laserClinic": {"en": "Laser Clinic", "ar": "عيادة الليزر"},
"noImage": {"en": "No Image", "ar": "لا توجد صورة"},
"signoutMessage": {"en": "Are you sure you want to logout?", "ar": "هل أنت متأكد أنك تريد تسجيل الخروج؟"},
"RRTTitle": {"en": "RRT", "ar": "خدمة فريق"},
"RRTSubTitle": {"en": "Service", "ar": "الاستجابة السريع"},
"transportation": {"en": "Transportation", "ar": "النقل"},
};

@ -124,7 +124,7 @@ class BaseAppClient {
// body['IdentificationNo'] = 1009199553;
// body['MobileNo'] = "966545156035";
// body['PatientID'] = 1018977;
// body['PatientID'] = 1018977; //3844083
// body['TokenID'] = "@dm!n";
body.removeWhere((key, value) => key == null || value == null);

@ -1,4 +1,5 @@
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/model/hospitals/hospitals_model.dart';
import 'package:diplomaticquarterapp/core/service/base_service.dart';
import 'package:geolocator/geolocator.dart';
@ -25,8 +26,8 @@ class HospitalService extends BaseService {
if(isResBasedOnLoc)
await _getCurrentLocation();
Map<String, dynamic> body = Map();
body['Latitude'] = isResBasedOnLoc?_latitude:0;
body['Longitude'] = isResBasedOnLoc?_longitude:0;
body['Latitude'] = await this.sharedPref.getDouble(USER_LAT);
body['Longitude'] = await this.sharedPref.getDouble(USER_LONG);
body['IsOnlineCheckIn'] = isResBasedOnLoc;
body['PatientOutSA'] = 0;

@ -170,7 +170,6 @@ class _NewCMCStepTowPageState extends State<NewCMCStepTowPage> {
child: Container(
padding: EdgeInsets.all(8),
width: double.infinity,
// height: 65,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
color: Colors.white,

@ -149,23 +149,15 @@ class _NewHomeHealthCarePageState extends State<NewHomeHealthCarePage> with Tick
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
TranslationBase.of(context).serviceName + ": ",
TranslationBase.of(context).hospital + ": ",
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff575757), letterSpacing: -0.4, height: 16 / 10),
),
Column(
children: [
...List.generate(
widget.model.hhcAllOrderDetail.length,
(index) => Container(
child: Texts(
projectViewModel.isArabic ? widget.model.hhcAllOrderDetail[index].descriptionN : widget.model.hhcAllOrderDetail[index].description.capitalize(),
fontSize: 13,
bold: false,
),
),
)
],
)
Expanded(
child: Text(
widget.model.pendingOrder.nearestProjectName.toString(),
style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.56),
),
),
],
)
],

@ -2,11 +2,8 @@ import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart';
import 'package:diplomaticquarterapp/core/model/blooddonation/blood_groub_details.dart';
import 'package:diplomaticquarterapp/core/model/blooddonation/get_all_cities.dart';
import 'package:diplomaticquarterapp/core/model/my_balance/AdvanceModel.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/my_balance_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/h2o/h20_setting.dart';
import 'package:diplomaticquarterapp/pages/Blood/user_agreement_page.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
@ -44,12 +41,9 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
String amount = "";
String email;
AuthenticatedUser authenticatedUser;
GetAllSharedRecordsByStatusList selectedPatientFamily;
AdvanceModel advanceModel = AdvanceModel();
List_BloodGroupDetailsModel bloodDetails = List_BloodGroupDetailsModel(bloodGroup: "A-");
AppSharedPreferences sharedPref = AppSharedPreferences();
AuthenticatedUser authUser;
var checkedValue = false;
List<ImagesInfo> imagesInfo = List();
@ -60,9 +54,7 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
imagesInfo.add(
ImagesInfo(imageEn: 'https://hmgwebservices.com/Images/MobileApp/images-info-home/blood/en/0.png', imageAr: 'https://hmgwebservices.com/Images/MobileApp/images-info-home/blood/ar/0.png'),
);
WidgetsBinding.instance.addPostFrameCallback((_) {
if (projectProvider.isLogin) authUser = projectProvider.user;
});
WidgetsBinding.instance.addPostFrameCallback((_) {});
super.initState();
}
@ -82,7 +74,7 @@ class _BloodDonationPageState extends State<BloodDonationPage> {
return BaseView<MyBalanceViewModel>(
onModelReady: (model) {
if (projectProvider.isLogin) {
if (projectProvider.isLogin && projectProvider.user != null) {
model.getCities().then((value) {
model.getBlood().then((value) {
if (model.bloodModelList.length > 0) {

@ -58,7 +58,6 @@ class _CovidDrivethruLocationState extends State<CovidDrivethruLocation> {
@override
Widget build(BuildContext context) {
projectViewModel = Provider.of(context);
imagesInfo.add(ImagesInfo(imageEn: 'https://hmgwebservices.com/Images/MobileApp/covid/en/0.png', imageAr: 'https://hmgwebservices.com/Images/MobileApp/covid/ar/0.png'));
return AppScaffold(
appBarTitle: TranslationBase.of(context).covidTest,
isShowAppBar: true,

@ -55,51 +55,6 @@ class _CovidPaymentDetailsState extends State<CovidPaymentDetails> {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
// Container(
// height: 150.0,
// decoration: BoxDecoration(
// image: DecorationImage(
// image: AssetImage(
// "assets/images/new-design/covid-19-big-banner-bg.png"),
// fit: BoxFit.fill,
// ),
// color: Colors.white.withOpacity(0.3),
// borderRadius: BorderRadius.all(Radius.circular(10))),
// child: Row(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: <Widget>[
// Container(
// margin:
// EdgeInsets.only(left: 15.0, right: 15.0, top: 30.0),
// child: SvgPicture.asset(
// 'assets/images/new-design/covid-19-car.svg',
// width: 90.0,
// height: 90.0),
// ),
// Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: <Widget>[
// Container(
// margin: EdgeInsets.only(
// left: 20.0, right: 20.0, top: 20.0),
// child: Text(TranslationBase.of(context).covidTest,
// style: TextStyle(
// color: Colors.white,
// fontWeight: FontWeight.bold,
// fontSize: 24.0)),
// ),
// Container(
// margin: EdgeInsets.only(
// left: 20.0, right: 20.0, top: 10.0),
// child: Text(TranslationBase.of(context).driveThru,
// style: TextStyle(
// color: Colors.white, fontSize: 24.0)),
// ),
// ],
// ),
// ],
// ),
// ),
Text(TranslationBase.of(context).covidSelectProcedure, style: TextStyle(color: Colors.black, fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.bold)),
...List.generate(
widget.proceduresList.length,
@ -144,29 +99,6 @@ class _CovidPaymentDetailsState extends State<CovidPaymentDetails> {
fontWeight: FontWeight.w600,
),
),
// ListTile(
// title: Text(
// projectViewModel.isArabic ? widget.proceduresList[index].procedureNameN : widget.proceduresList[index].procedureName,
// style: TextStyle(
// fontSize: 12.0,
// letterSpacing: -0.48,
// fontWeight: FontWeight.w600,
// ),
// ),
// leading: Radio(
// value: widget.proceduresList[index],
// groupValue: widget.selectedProcedure,
// activeColor: Colors.red[800],
// toggleable: true,
// onChanged: (value) {
// setState(() {
// widget.selectedProcedure = value;
// print(widget.selectedProcedure.procedureName);
// getPaymentInfo(context, widget.projectID.toString(), widget.selectedProcedure.procedureID);
// });
// },
// ),
// ),
],
),
),

@ -78,7 +78,7 @@ class _AmbulanceReqState extends State<AmbulanceReq> with SingleTickerProviderSt
),
Expanded(
child: TabBarView(
physics: BouncingScrollPhysics(),
physics: NeverScrollableScrollPhysics(),
controller: _tabController,
children: <Widget>[
AmbulanceRequestIndexPage(

@ -2,10 +2,9 @@ import 'package:diplomaticquarterapp/core/enum/Ambulate.dart';
import 'package:diplomaticquarterapp/core/model/er/PatientER.dart';
import 'package:diplomaticquarterapp/core/model/er/PatientER_RC.dart';
import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart';
import 'package:diplomaticquarterapp/pages/Blood/new_text_Field.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/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@ -45,269 +44,229 @@ class _BillAmountState extends State<BillAmount> {
body: SingleChildScrollView(
physics: BouncingScrollPhysics(),
child: Container(
margin: EdgeInsets.only(left: 12, right: 12),
margin: EdgeInsets.only(left: 12, right: 12, top: 12),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Texts(TranslationBase.of(context).billAmount),
Text(TranslationBase.of(context).billAmount, style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
SizedBox(
height: 10,
),
Table(
border: TableBorder.symmetric(inside: BorderSide(width: 1.0, color: Colors.grey[300]), outside: BorderSide(width: 1.0, color: Colors.grey[300])),
children: [
TableRow(
Container(
decoration: cardRadius(12),
child: Padding(
padding: const EdgeInsets.all(12.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// Text(TranslationBase.of(context).testFee,
// style: TextStyle(
// color: Colors.black,
// fontSize: 16.0,
// fontWeight: FontWeight.w600,
// letterSpacing: -0.64,
// )),
Container(
height: MediaQuery.of(context).size.height * 0.09,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.only(
topLeft: Radius.circular(10.0),
),
),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Texts(
TranslationBase.of(context).patientShareB,
textAlign: TextAlign.start,
color: Colors.black,
fontSize: 15,
),
width: double.infinity,
padding: EdgeInsets.only(top: 10, bottom: 3),
child: Row(
children: [
Expanded(
child: _getNormalText(TranslationBase.of(context).patientShareToDo),
),
Expanded(
child: _getNormalText(TranslationBase.of(context).sar + ' ${widget.patientER_RC.patientERTransportationMethod.price}', isBold: true),
)
],
),
),
mDivider(Colors.grey[200]),
Container(
height: MediaQuery.of(context).size.height * 0.09,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.only(
topRight: Radius.circular(10.0),
),
),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Texts(
TranslationBase.of(context).sar + ' ${widget.patientER_RC.patientERTransportationMethod.price}',
color: Colors.black,
textAlign: TextAlign.start,
fontSize: 15,
),
width: double.infinity,
padding: EdgeInsets.only(top: 3, bottom: 3),
child: Row(
children: [
Expanded(
child: _getNormalText(TranslationBase.of(context).patientTaxToDo),
),
Expanded(
child: _getNormalText(TranslationBase.of(context).sar + ' ${widget.patientER_RC.patientERTransportationMethod.priceVAT}', isBold: true),
)
],
),
),
],
),
TableRow(
children: [
mDivider(Colors.grey[200]),
Container(
color: Colors.white,
height: MediaQuery.of(context).size.height * 0.09,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Texts(
TranslationBase.of(context).patientShareTax,
color: Colors.black,
fontSize: 15,
textAlign: TextAlign.start,
),
),
),
Container(
height: MediaQuery.of(context).size.height * 0.09,
color: Colors.white,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Texts(
TranslationBase.of(context).sar + ' ${widget.patientER_RC.patientERTransportationMethod.priceVAT}',
color: Colors.black,
fontSize: 15,
textAlign: TextAlign.start,
),
width: double.infinity,
padding: EdgeInsets.only(top: 3, bottom: 3),
child: Row(
children: [
Expanded(
child: _getNormalText(TranslationBase.of(context).patientShareTotalToDo),
),
Expanded(
child: _getNormalText(TranslationBase.of(context).sar + ' ${widget.patientER_RC.patientERTransportationMethod.priceTotal}', isBold: true, isTotal: true),
)
],
),
),
],
),
TableRow(
children: [
Container(
height: MediaQuery.of(context).size.height * 0.09,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(10.0),
),
),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Texts(
TranslationBase.of(context).patientShareTotal,
color: Colors.black,
fontSize: 15,
textAlign: TextAlign.start,
bold: true,
),
),
),
Container(
height: MediaQuery.of(context).size.height * 0.09,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.only(
bottomRight: Radius.circular(10.0),
),
),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Texts(
TranslationBase.of(context).sar + ' ${widget.patientER_RC.patientERTransportationMethod.priceTotal}',
color: Colors.black,
fontSize: 15,
textAlign: TextAlign.start,
),
),
),
],
),
],
),
),
SizedBox(
height: 10,
),
Texts(
TranslationBase.of(context).selectAmbulate,
bold: false,
),
Text(TranslationBase.of(context).selectAmbulate, style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
SizedBox(
height: 5,
),
Row(
children: [
Expanded(
child: InkWell(
onTap: () {
setState(() {
_ambulate = Ambulate.Wheelchair;
});
},
child: Container(
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(8),
border: Border.all(color: Colors.grey, width: 0.5),
color: Colors.white,
),
child: ListTile(
title: Text(TranslationBase.of(context).wheelchair, style: TextStyle(
fontSize: 14.0
)),
leading: Radio(
value: Ambulate.Wheelchair,
groupValue: _ambulate,
onChanged: (value) {
setState(() {
_ambulate = value;
});
},
),
InkWell(
onTap: () {
setState(() {
_ambulate = Ambulate.Wheelchair;
});
},
child: Container(
width: MediaQuery.of(context).size.width * 0.9,
child: ListTile(
contentPadding: EdgeInsets.only(left: 0.0, right: 0.0),
title: Row(
children: [
Radio(
value: Ambulate.Wheelchair,
groupValue: _ambulate,
onChanged: (value) {
setState(() {
_ambulate = value;
});
},
),
Text(
TranslationBase.of(context).wheelchair,
style: TextStyle(
fontSize: 12.0,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
),
),
],
),
),
),
),
Expanded(
child: InkWell(
onTap: () {
setState(() {
_ambulate = Ambulate.Walker;
});
},
child: Container(
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(8),
border: Border.all(color: Colors.grey, width: 0.5),
color: Colors.white,
),
child: ListTile(
title: Text(TranslationBase.of(context).walker, style: TextStyle(
fontSize: 14.0
)),
leading: Radio(
value: Ambulate.Walker,
groupValue: _ambulate,
onChanged: (value) {
setState(() {
_ambulate = value;
});
},
),
],
),
Row(
children: [
InkWell(
onTap: () {
setState(() {
_ambulate = Ambulate.Walker;
});
},
child: Container(
width: MediaQuery.of(context).size.width * 0.9,
child: ListTile(
contentPadding: EdgeInsets.only(left: 0.0, right: 0.0),
title: Row(
children: [
Radio(
value: Ambulate.Walker,
groupValue: _ambulate,
onChanged: (value) {
setState(() {
_ambulate = value;
});
},
),
Text(
TranslationBase.of(context).walker,
style: TextStyle(
fontSize: 12.0,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
),
),
],
),
),
),
),
],
),
SizedBox(
height: 5,
),
Row(
children: [
Expanded(
child: InkWell(
onTap: () {
setState(() {
_ambulate = Ambulate.Stretcher;
});
},
child: Container(
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(8),
border: Border.all(color: Colors.grey, width: 0.5),
color: Colors.white,
),
child: ListTile(
title: Text(TranslationBase.of(context).stretcher, style: TextStyle(
fontSize: 14.0
)),
leading: Radio(
value: Ambulate.Stretcher,
groupValue: _ambulate,
onChanged: (value) {
setState(() {
_ambulate = value;
});
},
),
InkWell(
onTap: () {
setState(() {
_ambulate = Ambulate.Stretcher;
});
},
child: Container(
width: MediaQuery.of(context).size.width * 0.9,
child: ListTile(
contentPadding: EdgeInsets.only(left: 0.0, right: 0.0),
title: Row(
children: [
Radio(
value: Ambulate.Stretcher,
groupValue: _ambulate,
onChanged: (value) {
setState(() {
_ambulate = value;
});
},
),
Text(
TranslationBase.of(context).stretcher,
style: TextStyle(
fontSize: 12.0,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
),
),
],
),
),
),
),
Expanded(
child: InkWell(
onTap: () {
setState(() {
_ambulate = Ambulate.None;
});
},
child: Container(
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(8),
border: Border.all(color: Colors.grey, width: 0.5),
color: Colors.white,
),
child: ListTile(
title: Text(TranslationBase.of(context).none, style: TextStyle(
fontSize: 14.0
)),
leading: Radio(
value: Ambulate.None,
groupValue: _ambulate,
onChanged: (value) {
setState(() {
_ambulate = value;
});
},
),
],
),
Row(
children: [
InkWell(
onTap: () {
setState(() {
_ambulate = Ambulate.None;
});
},
child: Container(
width: MediaQuery.of(context).size.width * 0.9,
child: ListTile(
contentPadding: EdgeInsets.only(left: 0.0, right: 0.0),
title: Row(
children: [
Radio(
value: Ambulate.None,
groupValue: _ambulate,
onChanged: (value) {
setState(() {
_ambulate = value;
});
},
),
Text(
TranslationBase.of(context).none,
style: TextStyle(
fontSize: 12.0,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
),
),
],
),
),
),
@ -317,14 +276,21 @@ class _BillAmountState extends State<BillAmount> {
SizedBox(
height: 12,
),
NewTextFields(
hintText: TranslationBase.of(context).notes,
initialValue: note,
onChanged: (value) {
setState(() {
note = value;
});
},
Container(
decoration: cardRadius(10),
child: Padding(
padding: EdgeInsets.all(8.0),
child: TextField(
maxLines: 5,
decoration: InputDecoration.collapsed(
hintText: TranslationBase.of(context).notes, hintStyle: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.64, height: 23 / 16)),
onChanged: (value) {
setState(() {
note = value;
});
},
),
),
),
SizedBox(
height: 100,
@ -352,4 +318,20 @@ class _BillAmountState extends State<BillAmount> {
),
);
}
_getNormalText(text, {bool isBold = false, bool isTotal = false}) {
return Text(
text,
style: TextStyle(
fontSize: isBold
? isTotal
? 16
: 12
: 10,
letterSpacing: -0.5,
color: isBold ? Colors.black : Colors.grey[700],
fontWeight: FontWeight.w600,
),
);
}
}

@ -4,7 +4,6 @@ import 'package:diplomaticquarterapp/core/model/er/PatientER_RC.dart';
import 'package:diplomaticquarterapp/core/model/hospitals/hospitals_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart';
import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
import 'package:diplomaticquarterapp/pages/Blood/dialogs/SelectHospitalDialog.dart';
import 'package:diplomaticquarterapp/pages/ErService/widgets/AppointmentCard.dart';
import 'package:diplomaticquarterapp/uitl/ProgressDialog.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
@ -13,12 +12,12 @@ import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/radio_selection_dialog.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/pickupLocation/PickupLocationFromMap.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:geolocator/geolocator.dart';
import 'package:google_maps_place_picker/google_maps_place_picker.dart';
@ -51,9 +50,7 @@ class _PickupLocationState extends State<PickupLocation> {
void initState() {
super.initState();
_getCurrentLocation();
setState(() {
});
setState(() {});
}
_getCurrentLocation() async {
@ -64,7 +61,6 @@ class _PickupLocationState extends State<PickupLocation> {
_longitude = 0;
_latitude = 0;
});
}
@override
@ -75,7 +71,7 @@ class _PickupLocationState extends State<PickupLocation> {
body: SingleChildScrollView(
physics: BouncingScrollPhysics(),
child: Container(
margin: EdgeInsets.only(left: 12, right: 12),
margin: EdgeInsets.only(left: 12, right: 12, top: 12),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@ -83,43 +79,66 @@ class _PickupLocationState extends State<PickupLocation> {
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Texts(TranslationBase.of(context).pickupLocation),
Text(TranslationBase.of(context).pickupLocation, style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
SizedBox(
height: 15,
),
InkWell(
onTap: () {
Navigator.push(
context,
FadePage(
page: PickupLocationFromMap(
latitude: _latitude??0,
longitude: _longitude??0,
onPick: (value) {
setState(() {
_result = value;
});
},
)),
);
},
child: Container(
padding: EdgeInsets.all(12),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(8),
border: Border.all(color: Colors.grey, width: 0.5),
color: Colors.white,
Container(
padding: EdgeInsets.only(left: 16, right: 16, bottom: 15, top: 15),
alignment: Alignment.center,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15),
color: Colors.white,
border: Border.all(
color: Color(0xffefefef),
width: 1,
),
),
child: InkWell(
onTap: () {
Navigator.push(
context,
FadePage(
page: PickupLocationFromMap(
latitude: _latitude ?? 0,
longitude: _longitude ?? 0,
onPick: (value) {
setState(() {
_result = value;
});
},
)),
);
},
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(child: Texts(getSelectFromMapName(context))),
Icon(
FontAwesomeIcons.mapMarkerAlt,
size: 24,
color: Colors.black,
)
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
TranslationBase.of(context).selectMap,
style: TextStyle(
fontSize: 11,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.44,
),
),
Text(
getSelectFromMapName(context),
style: TextStyle(
fontSize: 14,
height: 21 / 14,
fontWeight: FontWeight.w400,
color: Color(0xff2B353E),
letterSpacing: -0.44,
),
),
],
),
),
Icon(Icons.arrow_drop_down),
],
),
),
@ -127,7 +146,7 @@ class _PickupLocationState extends State<PickupLocation> {
SizedBox(
height: 12,
),
Texts(TranslationBase.of(context).pickupSpot),
Text(TranslationBase.of(context).pickupSpot, style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
SizedBox(
height: 5,
),
@ -138,21 +157,27 @@ class _PickupLocationState extends State<PickupLocation> {
});
},
child: Container(
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(8),
border: Border.all(color: Colors.grey, width: 0.5),
color: Colors.white,
),
child: ListTile(
title: Texts(TranslationBase.of(context).insideHome),
leading: Checkbox(
value: _isInsideHome,
onChanged: (value) {
setState(() {
_isInsideHome = value;
});
},
contentPadding: EdgeInsets.only(left: 0.0, right: 0.0),
title: Row(
children: [
Checkbox(
value: _isInsideHome,
onChanged: (value) {
setState(() {
_isInsideHome = value;
});
},
),
Text(
TranslationBase.of(context).insideHome,
style: TextStyle(
fontSize: 12.0,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
),
),
],
),
),
),
@ -160,7 +185,7 @@ class _PickupLocationState extends State<PickupLocation> {
SizedBox(
height: 12,
),
Texts(TranslationBase.of(context).haveAppo),
Text(TranslationBase.of(context).haveAppo, style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
SizedBox(
height: 5,
),
@ -177,25 +202,31 @@ class _PickupLocationState extends State<PickupLocation> {
}
},
child: Container(
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(8),
border: Border.all(color: Colors.grey, width: 0.5),
color: Colors.white,
),
child: ListTile(
title: Texts(TranslationBase.of(context).yes),
leading: Radio(
value: HaveAppointment.YES,
groupValue: _haveAppointment,
onChanged: (value) {
if (myAppointment == null) {
getAppointment();
setState(() {
_haveAppointment = value;
});
}
},
contentPadding: EdgeInsets.only(left: 0.0, right: 0.0),
title: Row(
children: [
Radio(
value: HaveAppointment.YES,
groupValue: _haveAppointment,
onChanged: (value) {
if (myAppointment == null) {
getAppointment();
setState(() {
_haveAppointment = value;
});
}
},
),
Text(
TranslationBase.of(context).yes,
style: TextStyle(
fontSize: 12.0,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
),
),
],
),
),
),
@ -210,23 +241,29 @@ class _PickupLocationState extends State<PickupLocation> {
});
},
child: Container(
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(8),
border: Border.all(color: Colors.grey, width: 0.5),
color: Colors.white,
),
child: ListTile(
title: Texts(TranslationBase.of(context).no),
leading: Radio(
value: HaveAppointment.NO,
groupValue: _haveAppointment,
onChanged: (value) {
setState(() {
_haveAppointment = value;
myAppointment = null;
});
},
contentPadding: EdgeInsets.only(left: 0.0, right: 0.0),
title: Row(
children: [
Radio(
value: HaveAppointment.NO,
groupValue: _haveAppointment,
onChanged: (value) {
setState(() {
_haveAppointment = value;
myAppointment = null;
});
},
),
Text(
TranslationBase.of(context).no,
style: TextStyle(
fontSize: 12.0,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
),
),
],
),
),
),
@ -249,31 +286,54 @@ class _PickupLocationState extends State<PickupLocation> {
SizedBox(
height: 12,
),
Texts(TranslationBase.of(context).dropoffLocation),
Text(TranslationBase.of(context).dropoffLocation, style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
SizedBox(
height: 8,
),
InkWell(
onTap: () {
confirmSelectHospitalDialog(widget.amRequestViewModel.hospitals);
},
child: Container(
padding: EdgeInsets.all(12),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(8),
border: Border.all(color: Colors.grey, width: 0.5),
color: Colors.white,
Container(
padding: EdgeInsets.only(left: 16, right: 16, bottom: 15, top: 15),
alignment: Alignment.center,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(12),
color: Colors.white,
border: Border.all(
color: Color(0xffefefef),
width: 1,
),
),
child: InkWell(
onTap: () {
confirmSelectHospitalDialog(widget.amRequestViewModel.hospitals);
},
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Texts(getHospitalName(TranslationBase.of(context).selectHospital)),
Icon(
Icons.arrow_drop_down,
size: 24,
color: Colors.black,
)
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
TranslationBase.of(context).selectHospital,
style: TextStyle(
fontSize: 11,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.44,
),
),
Text(
getHospitalName(""),
style: TextStyle(
fontSize: 14,
height: 21 / 14,
fontWeight: FontWeight.w400,
color: Color(0xff2B353E),
letterSpacing: -0.44,
),
),
],
),
),
Icon(Icons.arrow_drop_down),
],
),
),
@ -284,26 +344,54 @@ class _PickupLocationState extends State<PickupLocation> {
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Texts(TranslationBase.of(context).pickupLocation),
Text(TranslationBase.of(context).pickupLocation, style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
SizedBox(
height: 15,
),
InkWell(
onTap: () {
confirmSelectHospitalDialog(widget.amRequestViewModel.hospitals);
},
child: Container(
padding: EdgeInsets.all(12),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(8),
border: Border.all(color: Colors.grey, width: 0.5),
color: Colors.white,
Container(
padding: EdgeInsets.only(left: 16, right: 16, bottom: 15, top: 15),
alignment: Alignment.center,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(12),
color: Colors.white,
border: Border.all(
color: Color(0xffefefef),
width: 1,
),
),
child: InkWell(
onTap: () {
confirmSelectHospitalDialog(widget.amRequestViewModel.hospitals);
},
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Texts(getHospitalName(TranslationBase.of(context).pickupLocation)),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
TranslationBase.of(context).selectHospital,
style: TextStyle(
fontSize: 11,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.44,
),
),
Text(
getHospitalName(""),
style: TextStyle(
fontSize: 14,
height: 21 / 14,
fontWeight: FontWeight.w400,
color: Color(0xff2B353E),
letterSpacing: -0.44,
),
),
],
),
),
Icon(
Icons.arrow_drop_down,
size: 24,
@ -316,44 +404,67 @@ class _PickupLocationState extends State<PickupLocation> {
SizedBox(
height: 12,
),
Texts(TranslationBase.of(context).dropoffLocation),
Text(TranslationBase.of(context).dropoffLocation, style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
SizedBox(
height: 8,
),
InkWell(
onTap: () {
Navigator.push(
context,
FadePage(
page: PickupLocationFromMap(
latitude: _latitude,
longitude: _longitude,
onPick: (value) {
setState(() {
_result = value;
});
},
),
),
);
},
child: Container(
padding: EdgeInsets.all(12),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(8),
border: Border.all(color: Colors.grey, width: 0.5),
color: Colors.white,
Container(
padding: EdgeInsets.only(left: 16, right: 16, bottom: 15, top: 15),
alignment: Alignment.center,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(12),
color: Colors.white,
border: Border.all(
color: Color(0xffefefef),
width: 1,
),
),
child: InkWell(
onTap: () {
Navigator.push(
context,
FadePage(
page: PickupLocationFromMap(
latitude: _latitude,
longitude: _longitude,
onPick: (value) {
setState(() {
_result = value;
});
},
),
),
);
},
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(child: Texts(getSelectFromMapName(context))),
Icon(
FontAwesomeIcons.mapMarkerAlt,
size: 24,
color: Colors.black,
)
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
TranslationBase.of(context).selectMap,
style: TextStyle(
fontSize: 11,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.44,
),
),
Text(
getSelectFromMapName(context),
style: TextStyle(
fontSize: 14,
height: 21 / 14,
fontWeight: FontWeight.w400,
color: Color(0xff2B353E),
letterSpacing: -0.44,
),
),
],
),
),
Icon(Icons.arrow_drop_down),
],
),
),
@ -442,16 +553,22 @@ class _PickupLocationState extends State<PickupLocation> {
);
}
int _selectedHospitalIndex = -1;
void confirmSelectHospitalDialog(List<HospitalsModel> hospitals) {
List<RadioSelectionDialogModel> list = [
for (int i = 0; i < hospitals.length; i++) RadioSelectionDialogModel(hospitals[i].name + ' ${hospitals[i].distanceInKilometers} ' + TranslationBase.of(context).km, i),
];
showDialog(
context: context,
child: SelectHospitalDialog(
hospitals: hospitals,
selectedHospital: _selectedHospital,
onValueSelected: (value) {
setState(() {
_selectedHospital = value;
});
child: RadioSelectionDialog(
listData: list,
selectedIndex: _selectedHospitalIndex,
isScrollable: true,
onValueSelected: (index) {
_selectedHospitalIndex = index;
_selectedHospital = hospitals[index];
setState(() {});
},
),
);
@ -462,7 +579,7 @@ class _PickupLocationState extends State<PickupLocation> {
}
String getSelectFromMapName(context) {
return _result != null ? _result.formattedAddress : TranslationBase.of(context).selectMap;
return _result != null ? _result.formattedAddress : "";
}
getAppointment() {

@ -5,8 +5,8 @@ import 'package:diplomaticquarterapp/core/model/er/get_all_transportation_method
import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.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/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@ -71,56 +71,77 @@ class _SelectTransportationMethodState extends State<SelectTransportationMethod>
SizedBox(
height: 12,
),
Texts(TranslationBase.of(context).transportHeading),
...List.generate(
widget.amRequestViewModel.amRequestModeList.length,
(index) => InkWell(
onTap: () {
setState(() {
_erTransportationMethod = widget.amRequestViewModel.amRequestModeList[index];
});
},
child: Container(
margin: EdgeInsets.all(5),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(8),
border: Border.all(color: Colors.grey, width: 0.5),
color: Colors.white,
),
child: Row(
children: [
Expanded(
flex: 3,
child: ListTile(
title: Texts(projectViewModel.isArabic ? widget.amRequestViewModel.amRequestModeList[index].textN : widget.amRequestViewModel.amRequestModeList[index].text),
leading: Radio(
value: widget.amRequestViewModel.amRequestModeList[index],
groupValue: _erTransportationMethod,
onChanged: (value) {
setState(() {
_erTransportationMethod = value;
});
},
),
Text(TranslationBase.of(context).transportHeading, style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
Container(
margin: EdgeInsets.only(top: 12),
decoration: cardRadius(12),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
...List.generate(
widget.amRequestViewModel.amRequestModeList.length,
(index) => InkWell(
onTap: () {
setState(() {
_erTransportationMethod = widget.amRequestViewModel.amRequestModeList[index];
});
},
child: Container(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(
flex: 4,
child: ListTile(
contentPadding: EdgeInsets.only(left: 0.0, right: 0.0),
title: Row(
children: [
Radio(
value: widget.amRequestViewModel.amRequestModeList[index],
groupValue: _erTransportationMethod,
onChanged: (value) {
setState(() {
_erTransportationMethod = value;
});
},
),
Flexible(
child: Text(
projectViewModel.isArabic ? widget.amRequestViewModel.amRequestModeList[index].textN : widget.amRequestViewModel.amRequestModeList[index].text,
style: TextStyle(
fontSize: 12.0,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
),
),
),
],
),
),
),
Expanded(
flex: 1,
child: Text(
TranslationBase.of(context).sar + ' ${widget.amRequestViewModel.amRequestModeList[index].price}',
style: TextStyle(
fontSize: 12.0,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
),
),
)
],
),
),
Expanded(
flex: 1,
child: Texts(TranslationBase.of(context).sar + ' ${widget.amRequestViewModel.amRequestModeList[index].price}'),
)
],
),
),
),
],
),
),
SizedBox(
height: 12,
),
Texts(TranslationBase.of(context).directionHeading),
SizedBox(
height: 5,
),
Text(TranslationBase.of(context).directionHeading, style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
Container(
width: double.maxFinite,
child: Row(
@ -136,22 +157,26 @@ class _SelectTransportationMethodState extends State<SelectTransportationMethod>
},
child: Container(
width: double.maxFinite,
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(8),
border: Border.all(color: Colors.grey, width: 0.5),
color: Colors.white,
),
child: ListTile(
title: Texts(TranslationBase.of(context).toHospital),
leading: Radio(
value: Direction.ToHospital,
groupValue: _direction,
onChanged: (value) {
setState(() {
_direction = value;
});
},
contentPadding: EdgeInsets.only(left: 0.0, right: 0.0),
title: Row(
children: [
Radio(
value: Direction.ToHospital,
groupValue: _direction,
onChanged: (value) {
setState(() {
_direction = value;
});
},
),
Text(TranslationBase.of(context).toHospital,
style: TextStyle(
fontSize: 12.0,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
)),
],
),
),
),
@ -166,22 +191,26 @@ class _SelectTransportationMethodState extends State<SelectTransportationMethod>
},
child: Container(
width: double.maxFinite,
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(8),
border: Border.all(color: Colors.grey, width: 0.5),
color: Colors.white,
),
child: ListTile(
title: Texts(TranslationBase.of(context).fromHospital),
leading: Radio(
value: Direction.FromHospital,
groupValue: _direction,
onChanged: (value) {
setState(() {
_direction = value;
});
},
contentPadding: EdgeInsets.only(left: 0.0, right: 0.0),
title: Row(
children: [
Radio(
value: Direction.FromHospital,
groupValue: _direction,
onChanged: (value) {
setState(() {
_direction = value;
});
},
),
Text(TranslationBase.of(context).fromHospital,
style: TextStyle(
fontSize: 12.0,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
)),
],
),
),
),
@ -197,7 +226,7 @@ class _SelectTransportationMethodState extends State<SelectTransportationMethod>
SizedBox(
height: 8,
),
Texts(TranslationBase.of(context).wayHeading),
Text(TranslationBase.of(context).wayHeading, style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
SizedBox(
height: 5,
),
@ -213,22 +242,26 @@ class _SelectTransportationMethodState extends State<SelectTransportationMethod>
});
},
child: Container(
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(8),
border: Border.all(color: Colors.grey, width: 0.5),
color: Colors.white,
),
child: ListTile(
title: Texts(TranslationBase.of(context).oneDirec),
leading: Radio(
value: Way.OneWay,
groupValue: _way,
onChanged: (value) {
setState(() {
_way = value;
});
},
contentPadding: EdgeInsets.only(left: 0.0, right: 0.0),
title: Row(
children: [
Radio(
value: Way.OneWay,
groupValue: _way,
onChanged: (value) {
setState(() {
_way = value;
});
},
),
Text(TranslationBase.of(context).oneDirec,
style: TextStyle(
fontSize: 12.0,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
)),
],
),
),
),
@ -242,22 +275,26 @@ class _SelectTransportationMethodState extends State<SelectTransportationMethod>
});
},
child: Container(
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(8),
border: Border.all(color: Colors.grey, width: 0.5),
color: Colors.white,
),
child: ListTile(
title: Texts(TranslationBase.of(context).twoDirec),
leading: Radio(
value: Way.TwoWays,
groupValue: _way,
onChanged: (value) {
setState(() {
_way = value;
});
},
contentPadding: EdgeInsets.only(left: 0.0, right: 0.0),
title: Row(
children: [
Radio(
value: Way.TwoWays,
groupValue: _way,
onChanged: (value) {
setState(() {
_way = value;
});
},
),
Text(TranslationBase.of(context).twoDirec,
style: TextStyle(
fontSize: 12.0,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
)),
],
),
),
),

@ -3,8 +3,8 @@ import 'package:diplomaticquarterapp/core/model/er/PatientER_RC.dart';
import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.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/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@ -31,91 +31,73 @@ class _SummaryState extends State<Summary> {
isShowAppBar: false,
body: SingleChildScrollView(
child: Container(
margin: EdgeInsets.only(left: 12, right: 12),
margin: EdgeInsets.only(left: 12, right: 12, top: 12),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Texts(TranslationBase.of(context).RRTSummary),
Text(TranslationBase.of(context).RRTSummary, style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
SizedBox(
height: 5,
),
Container(
width: double.infinity,
padding: EdgeInsets.all(10),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(12),
),
// margin: EdgeInsets.only(top: 12),
decoration: cardRadius(12),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Texts(
TranslationBase.of(context).transportMethod,
color: Colors.grey,
),
_getNormalText(TranslationBase.of(context).transportMethod),
projectViewModel.isArabic
? Texts(
? _getNormalText(
'${widget.patientER_RC.patientERTransportationMethod.textN}',
bold: true,
isBold: true,
)
: Texts(
: _getNormalText(
'${widget.patientER_RC.patientERTransportationMethod.text}',
bold: true,
isBold: true,
),
SizedBox(
height: 8,
),
Texts(
TranslationBase.of(context).directions,
color: Colors.grey,
),
Texts(
_getNormalText(TranslationBase.of(context).directions),
_getNormalText(
widget.patientER_RC.transportationDetails.direction == 0 ? TranslationBase.of(context).toHospital : TranslationBase.of(context).fromHospital,
bold: true,
isBold: true,
),
SizedBox(
height: 8,
),
Texts(
_getNormalText(
TranslationBase.of(context).pickupLocation,
color: Colors.grey,
),
Texts(
_getNormalText(
'${widget.patientER_RC.transportationDetails.pickupLocationName}',
bold: true,
isBold: true,
),
SizedBox(
height: 8,
),
Texts(
TranslationBase.of(context).dropoffLocation,
color: Colors.grey,
),
Texts(
_getNormalText(TranslationBase.of(context).dropoffLocation),
_getNormalText(
'${widget.patientER_RC.transportationDetails.dropoffLocationName}',
bold: true,
isBold: true,
),
SizedBox(
height: 8,
),
Texts(
TranslationBase.of(context).selectAmbulate,
color: Colors.grey,
),
Texts(
_getNormalText(TranslationBase.of(context).selectAmbulate),
_getNormalText(
'${widget.patientER_RC.transportationDetails.ambulateTitle}',
bold: true,
isBold: true,
),
SizedBox(
height: 8,
),
Texts(
TranslationBase.of(context).notes,
color: Colors.grey,
),
Texts(
_getNormalText(TranslationBase.of(context).notes),
_getNormalText(
'${widget.patientER_RC.transportationDetails.notes ?? '---'}',
bold: true,
isBold: true,
),
SizedBox(
height: 8,
@ -126,23 +108,26 @@ class _SummaryState extends State<Summary> {
SizedBox(
height: 20,
),
Texts(
TranslationBase.of(context).billAmount,
textAlign: TextAlign.start,
),
Text(TranslationBase.of(context).billAmount, style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
SizedBox(
height: 5,
),
Container(
height: 55,
padding: EdgeInsets.all(10),
decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(8)),
decoration: cardRadius(12),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [Texts(TranslationBase.of(context).patientShareTotal + ':'), Texts(TranslationBase.of(context).sar + ' ${widget.patientER_RC.patientERTransportationMethod.priceTotal}')],
children: [
_getNormalText(TranslationBase.of(context).patientShareTotal + ':'),
Container(
padding: EdgeInsets.only(left: 20.0, right: 20.0),
child: _getNormalText(TranslationBase.of(context).sar + ' ${widget.patientER_RC.patientERTransportationMethod.priceTotal}', isBold: true, isTotal: true)
),
],
),
),
SizedBox(height: 130),
SizedBox(height: 50),
],
),
),
@ -156,4 +141,20 @@ class _SummaryState extends State<Summary> {
),
);
}
_getNormalText(text, {bool isBold = false, bool isTotal = false}) {
return Text(
text,
style: TextStyle(
fontSize: isBold
? isTotal
? 16
: 12
: 10,
letterSpacing: -0.5,
color: isBold ? Colors.black : Colors.grey[700],
fontWeight: FontWeight.w600,
),
);
}
}

@ -9,7 +9,6 @@ import 'package:provider/provider.dart';
import '../../uitl/translations_delegate_base.dart';
import 'AmbulanceReq.dart';
import 'EdOnline/DdServicesPage.dart';
import 'NearestEr.dart';
class ErOptions extends StatefulWidget {
@ -75,26 +74,26 @@ class _ErOptionsState extends State<ErOptions> {
),
InkWell(
onTap: () {
// Navigator.push(context, FadePage(page: DdServicesPage()));
if (rrtLocked) Navigator.push(context, FadePage(page: RRTMainScreen()));
},
child: MedicalProfileItem(
title: "ED",
title: TranslationBase.of(context).RRTTitle,
imagePath: 'assets/images/new-design/AM.PNG',
subTitle: TranslationBase.of(context).service,
subTitle: TranslationBase.of(context).RRTSubTitle,
isPngImage: true,
isEnable: false,
isEnable: rrtLocked,
),
),
InkWell(
onTap: () {
if(rrtLocked) Navigator.push(context, FadePage(page: RRTMainScreen()));
// Navigator.push(context, FadePage(page: DdServicesPage()));
},
child: MedicalProfileItem(
title: TranslationBase.of(context).rrtService,
title: "ED",
imagePath: 'assets/images/new-design/AM.PNG',
subTitle: TranslationBase.of(context).service,
isPngImage: true,
isEnable: rrtLocked,
isEnable: false,
),
),
],

@ -1,5 +1,6 @@
import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/others/OrderLogItem.dart';
import 'package:flutter/cupertino.dart';
@ -15,7 +16,7 @@ class OrderLogPage extends StatelessWidget {
return Container(
margin: EdgeInsets.all(10),
padding: EdgeInsets.all(8),
child: ListView.builder(
child: amRequestViewModel.patientAmbulanceRequestOrdersList.length > 0 ? ListView.builder(
itemCount: amRequestViewModel.patientAmbulanceRequestOrdersList.length,
itemBuilder: (context, index) => Container(
margin: EdgeInsets.all(8),
@ -69,7 +70,7 @@ class OrderLogPage extends StatelessWidget {
],
),
),
),
) : getNoDataWidget(context),
);
}

@ -103,21 +103,21 @@ class RRTLogListItemState extends State<RRTLogListItem> {
'${TranslationBase.of(context).requestID}: ${widget.order.iD}',
style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.64, height: 25 / 16),
),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
TranslationBase.of(context).locationa + ": ",
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff575757), letterSpacing: -0.4, height: 16 / 10),
),
Expanded(
child: Text(
widget.order.projectName.toString(),
style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.56),
),
),
],
),
// Row(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Text(
// TranslationBase.of(context).locationa + ": ",
// style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff575757), letterSpacing: -0.4, height: 16 / 10),
// ),
// Expanded(
// child: Text(
// widget.order.projectName.toString(),
// style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.56),
// ),
// ),
// ],
// ),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [

@ -43,7 +43,7 @@ class RRTRequestPickupAddressPageState extends State<RRTRequestPickupAddressPage
static CameraPosition cameraPosition = CameraPosition(
target: LatLng(37.42796133580664, -122.085749655962),
zoom: 14.4746,
zoom: 17,
);
LatLng currentPostion;
@ -71,7 +71,6 @@ class RRTRequestPickupAddressPageState extends State<RRTRequestPickupAddressPage
_updatePosition(camera);
},
onMapCreated: () {
// goToCurrentLocation();
_getUserLocation();
setState(() {});
},
@ -97,8 +96,6 @@ class RRTRequestPickupAddressPageState extends State<RRTRequestPickupAddressPage
latitude = double.parse(latLongArr[0]);
longitude = double.parse(latLongArr[1]);
print("sssss1 " + latitude.toString());
print("sssss2 " + longitude.toString());
currentPostion = LatLng(latitude, longitude);
setMap();
}
@ -108,7 +105,7 @@ class RRTRequestPickupAddressPageState extends State<RRTRequestPickupAddressPage
setState(() {
cameraPosition = CameraPosition(
target: currentPostion,
zoom: 14.4746,
zoom: 16,
);
appMap.moveTo(cameraPostion: cameraPosition);
selectedAddress.latLong = currentPostion.latitude.toString() + "," + currentPostion.longitude.toString();

@ -63,7 +63,7 @@ class RRTPlaceOrderPage extends StatelessWidget {
clipBehavior: Clip.hardEdge,
borderRadius: BorderRadius.circular(10),
child: Image.network(
"https://maps.googleapis.com/maps/api/staticmap?center=$lat,$lng &zoom=16&size=800x600&maptype=roadmap&markers=color:red%7C$lat,$lng&key=AIzaSyCyDbWUM9d_sBUGIE8PcuShzPaqO08NSC8",
"https://maps.googleapis.com/maps/api/staticmap?center=$lat,$lng &zoom=17&size=800x600&maptype=roadmap&markers=color:red%7C$lat,$lng&key=AIzaSyCyDbWUM9d_sBUGIE8PcuShzPaqO08NSC8",
fit: BoxFit.cover,
),
),

@ -1,5 +1,4 @@
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/GetCMCAllOrdersResponseModel.dart';
import 'package:diplomaticquarterapp/core/model/prescriptions/prescriptions_order.dart';
import 'package:diplomaticquarterapp/core/viewModels/er/rrt-view-model.dart';
import 'package:diplomaticquarterapp/models/rrt/service_price.dart';
import 'package:diplomaticquarterapp/pages/ErService/rapid-response-team/rrt-order-list-item.dart';
@ -10,6 +9,7 @@ import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.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/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
@ -65,7 +65,7 @@ class RRTRequestPageState extends State<RRTRequestPage> {
child: Text(TranslationBase.of(context).youCanPayByTheFollowingOptions,
style: TextStyle(fontSize: 13, color: Theme.of(context).appBarTheme.color, fontWeight: FontWeight.w500), maxLines: 2)),
paymentOptions(),
Container(margin: EdgeInsets.only(left: 15.0, right: 15.0, top: 10.0), child: getPaymentMethods())
],
),
),

@ -1,5 +1,7 @@
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
@ -12,216 +14,331 @@ class StepsWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
return projectViewModel.isArabic?
Stack(
children: [
Container(
height: 50,
width: MediaQuery.of(context).size.width,
color: Colors.transparent,
child: Center(
child: Divider(
color: Colors.grey,
height: 0.75,
thickness: 0.75,
return Container(
width: double.infinity,
padding: EdgeInsets.only(left: 12, right: 12, bottom: 12),
child: Row(
children: [
Expanded(
child: showProgress(
title: TranslationBase.of(context).transportation,
status: index == 0
? TranslationBase.of(context).inPrgress
: index > 0
? TranslationBase.of(context).completed
: TranslationBase.of(context).locked,
color: index == 0 ? CustomColors.orange : CustomColors.green,
),
),
),
Positioned(
top: 10,
right: 0,
child: InkWell(
onTap: () => changeCurrentTab(0),
child: Container(
width: 35,
height: 35,
decoration: BoxDecoration(
border: index > 0 ? null:Border.all(color: Colors.black,width: 0.75),
shape: BoxShape.circle,
color: index == 0 ? Colors.grey[800] : index > 0 ?Colors.green: Colors.white,
),
child: Center(
child: Texts(
'1',
color: index == 0 ? Colors.white : index > 0 ?Colors.white: Colors.grey[800],
),
),
Expanded(
child: showProgress(
title: TranslationBase.of(context).locationa,
status: index == 1
? TranslationBase.of(context).inPrgress
: index > 1
? TranslationBase.of(context).completed
: TranslationBase.of(context).locked,
color: index == 1
? CustomColors.orange
: index > 1
? CustomColors.green
: CustomColors.grey2,
),
),
),
Positioned(
top: 10,
right: MediaQuery.of(context).size.width * 0.3,
child: InkWell(
onTap: () => index >= 2 ? changeCurrentTab(1) : null,
child: Container(
width: 35,
height: 35,
decoration: BoxDecoration(
border: index > 1 ? null:Border.all(color: Colors.black,width: 0.75),
shape: BoxShape.circle,
color: index == 1 ? Colors.grey[800] : index > 1 ?Colors.green: Colors.white,
),
child: Center(
child: Texts(
'2',
color: index == 1? Colors.white : index > 1 ?Colors.white: Colors.grey[800],
),
),
Expanded(
child: showProgress(
title: TranslationBase.of(context).otherInfo,
status: index == 2
? TranslationBase.of(context).inPrgress
: index > 2
? TranslationBase.of(context).completed
: TranslationBase.of(context).locked,
color: index == 2
? CustomColors.orange
: index > 2
? CustomColors.green
: CustomColors.grey2,
),
),
),
Positioned(
top: 10,
right: MediaQuery.of(context).size.width * 0.6,
child: InkWell(
onTap: () => index >= 3 ? changeCurrentTab(2) : null,
child: Container(
width: 35,
height: 35,
decoration: BoxDecoration(
shape: BoxShape.circle,
border: index > 2 ? null:Border.all(color: Colors.black,width: 0.75),
color: index == 2 ? Colors.grey[800] : index > 1 ?Colors.green: Colors.white,
),
child: Center(
child: Texts(
'3',
color: index == 2? Colors.white : index > 1 ?Colors.white: Colors.grey[800],
),
),
),
showProgress(
title: TranslationBase.of(context).RRTSummary,
status: index == 3 ? TranslationBase.of(context).inPrgress : TranslationBase.of(context).locked,
color: index == 3
? CustomColors.orange
: index > 4
? CustomColors.green
: CustomColors.grey2,
isNeedBorder: false,
),
),
Positioned(
top: 10,
left: 0,
child: InkWell(
onTap: () => index == 2 ?changeCurrentTab(3):null,
child: Container(
width: 35,
height: 35,
decoration: BoxDecoration(
border: Border.all(color: Colors.black,width: 0.75),
],
),
);
shape: BoxShape.circle,
color: index == 3 ? Colors.grey[800] : Colors.white,
),
child: Center(
child: Texts(
'4',
color: index == 3 ? Colors.white : Colors.grey[800],
),
),
),
),
),
],
):
Stack(
// return projectViewModel.isArabic?
// Stack(
// children: [
// Container(
// height: 50,
// width: MediaQuery.of(context).size.width,
// color: Colors.transparent,
// child: Center(
// child: Divider(
// color: Colors.grey,
// height: 0.75,
// thickness: 0.75,
// ),
// ),
// ),
// Positioned(
// top: 10,
// right: 0,
// child: InkWell(
// onTap: () => changeCurrentTab(0),
// child: Container(
// width: 35,
// height: 35,
// decoration: BoxDecoration(
// border: index > 0 ? null:Border.all(color: Colors.black,width: 0.75),
// shape: BoxShape.circle,
// color: index == 0 ? Colors.grey[800] : index > 0 ?Colors.green: Colors.white,
// ),
// child: Center(
// child: Texts(
// '1',
// color: index == 0 ? Colors.white : index > 0 ?Colors.white: Colors.grey[800],
// ),
// ),
// ),
// ),
// ),
// Positioned(
// top: 10,
// right: MediaQuery.of(context).size.width * 0.3,
// child: InkWell(
// onTap: () => index >= 2 ? changeCurrentTab(1) : null,
// child: Container(
// width: 35,
// height: 35,
// decoration: BoxDecoration(
// border: index > 1 ? null:Border.all(color: Colors.black,width: 0.75),
// shape: BoxShape.circle,
// color: index == 1 ? Colors.grey[800] : index > 1 ?Colors.green: Colors.white,
// ),
// child: Center(
// child: Texts(
// '2',
// color: index == 1? Colors.white : index > 1 ?Colors.white: Colors.grey[800],
// ),
// ),
// ),
// ),
// ),
// Positioned(
// top: 10,
// right: MediaQuery.of(context).size.width * 0.6,
// child: InkWell(
// onTap: () => index >= 3 ? changeCurrentTab(2) : null,
// child: Container(
// width: 35,
// height: 35,
// decoration: BoxDecoration(
// shape: BoxShape.circle,
// border: index > 2 ? null:Border.all(color: Colors.black,width: 0.75),
// color: index == 2 ? Colors.grey[800] : index > 1 ?Colors.green: Colors.white,
// ),
// child: Center(
// child: Texts(
// '3',
// color: index == 2? Colors.white : index > 1 ?Colors.white: Colors.grey[800],
// ),
// ),
// ),
// ),
// ),
// Positioned(
// top: 10,
// left: 0,
// child: InkWell(
// onTap: () => index == 2 ?changeCurrentTab(3):null,
// child: Container(
// width: 35,
// height: 35,
// decoration: BoxDecoration(
// border: Border.all(color: Colors.black,width: 0.75),
//
// shape: BoxShape.circle,
// color: index == 3 ? Colors.grey[800] : Colors.white,
// ),
// child: Center(
// child: Texts(
// '4',
// color: index == 3 ? Colors.white : Colors.grey[800],
// ),
// ),
// ),
// ),
// ),
// ],
// ):
// Stack(
// children: [
// Container(
// height: 50,
// width: MediaQuery.of(context).size.width,
// color: Colors.transparent,
// child: Center(
// child: Divider(
// color: Colors.grey,
// height: 0.75,
// thickness: 0.75,
// ),
// ),
// ),
// Positioned(
// top: 10,
// left: 0,
// child: InkWell(
// onTap: () => changeCurrentTab(0),
// child: Container(
// width: 35,
// height: 35,
// decoration: BoxDecoration(
// border: index > 0 ? null:Border.all(color: Colors.black,width: 0.75),
// shape: BoxShape.circle,
// color: index == 0 ? Colors.grey[800] : index > 0 ?Colors.green: Colors.white,
// ),
// child: Center(
// child: Texts(
// '1',
// color: index == 0 ? Colors.white : index > 0 ?Colors.white: Colors.grey[800],
// ),
// ),
// ),
// ),
// ),
// Positioned(
// top: 10,
// left: MediaQuery.of(context).size.width * 0.3,
// child: InkWell(
// onTap: () => index >= 2 ? changeCurrentTab(1) : null,
// child: Container(
// width: 35,
// height: 35,
// decoration: BoxDecoration(
// border: index > 1 ? null:Border.all(color: Colors.black,width: 0.75),
// shape: BoxShape.circle,
// color: index == 1 ? Colors.grey[800] : index > 1 ?Colors.green: Colors.white,
// ),
// child: Center(
// child: Texts(
// '2',
// color: index == 1? Colors.white : index > 1 ?Colors.white: Colors.grey[800],
// ),
// ),
// ),
// ),
// ),
// Positioned(
// top: 10,
// left: MediaQuery.of(context).size.width * 0.6,
// child: InkWell(
// onTap: () => index >= 3 ? changeCurrentTab(2) : null,
// child: Container(
// width: 35,
// height: 35,
// decoration: BoxDecoration(
// shape: BoxShape.circle,
// border: index > 2 ? null:Border.all(color: Colors.black,width: 0.75),
// color: index == 2 ? Colors.grey[800] : index > 1 ?Colors.green: Colors.white,
// ),
// child: Center(
// child: Texts(
// '3',
// color: index == 2? Colors.white : index > 1 ?Colors.white: Colors.grey[800],
// ),
// ),
// ),
// ),
// ),
// Positioned(
// top: 10,
// right: 0,
// child: InkWell(
// onTap: () => index == 2 ?changeCurrentTab(3):null,
// child: Container(
// width: 35,
// height: 35,
// decoration: BoxDecoration(
// border: Border.all(color: Colors.black,width: 0.75),
//
// shape: BoxShape.circle,
// color: index == 3 ? Colors.grey[800] : Colors.white,
// ),
// child: Center(
// child: Texts(
// '4',
// color: index == 3 ? Colors.white : Colors.grey[800],
// ),
// ),
// ),
// ),
// ),
// ],
// );
}
Widget showProgress({String title, String status, Color color, bool isNeedBorder = true}) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
height: 50,
width: MediaQuery.of(context).size.width,
color: Colors.transparent,
child: Center(
child: Divider(
color: Colors.grey,
height: 0.75,
thickness: 0.75,
),
),
),
Positioned(
top: 10,
left: 0,
child: InkWell(
onTap: () => changeCurrentTab(0),
child: Container(
width: 35,
height: 35,
decoration: BoxDecoration(
border: index > 0 ? null:Border.all(color: Colors.black,width: 0.75),
shape: BoxShape.circle,
color: index == 0 ? Colors.grey[800] : index > 0 ?Colors.green: Colors.white,
),
child: Center(
child: Texts(
'1',
color: index == 0 ? Colors.white : index > 0 ?Colors.white: Colors.grey[800],
),
),
),
),
),
Positioned(
top: 10,
left: MediaQuery.of(context).size.width * 0.3,
child: InkWell(
onTap: () => index >= 2 ? changeCurrentTab(1) : null,
child: Container(
width: 35,
height: 35,
decoration: BoxDecoration(
border: index > 1 ? null:Border.all(color: Colors.black,width: 0.75),
shape: BoxShape.circle,
color: index == 1 ? Colors.grey[800] : index > 1 ?Colors.green: Colors.white,
),
child: Center(
child: Texts(
'2',
color: index == 1? Colors.white : index > 1 ?Colors.white: Colors.grey[800],
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
Container(
width: 26,
height: 26,
decoration: containerRadius(color, 200),
child: Icon(
Icons.done,
color: Colors.white,
size: 16,
),
),
),
if (isNeedBorder)
Expanded(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: mDivider(Colors.grey),
)),
],
),
),
),
Positioned(
top: 10,
left: MediaQuery.of(context).size.width * 0.6,
child: InkWell(
onTap: () => index >= 3 ? changeCurrentTab(2) : null,
child: Container(
width: 35,
height: 35,
decoration: BoxDecoration(
shape: BoxShape.circle,
border: index > 2 ? null:Border.all(color: Colors.black,width: 0.75),
color: index == 2 ? Colors.grey[800] : index > 1 ?Colors.green: Colors.white,
),
child: Center(
child: Texts(
'3',
color: index == 2? Colors.white : index > 1 ?Colors.white: Colors.grey[800],
),
mHeight(8),
Text(
title,
style: TextStyle(
fontSize: 11,
fontWeight: FontWeight.w600,
letterSpacing: -0.44,
),
),
),
),
Positioned(
top: 10,
right: 0,
child: InkWell(
onTap: () => index == 2 ?changeCurrentTab(3):null,
child: Container(
width: 35,
height: 35,
decoration: BoxDecoration(
border: Border.all(color: Colors.black,width: 0.75),
shape: BoxShape.circle,
color: index == 3 ? Colors.grey[800] : Colors.white,
),
child: Center(
child: Texts(
'4',
color: index == 3 ? Colors.white : Colors.grey[800],
mHeight(2),
Container(
padding: EdgeInsets.all(5),
decoration: containerRadius(color.withOpacity(0.2), 4),
child: Text(
status,
style: TextStyle(
fontSize: 8,
fontWeight: FontWeight.w600,
letterSpacing: -0.32,
color: color,
),
),
),
),
),
],
)
],
);
}

@ -8,8 +8,9 @@ import 'package:flutter/material.dart';
class PaymentMethod extends StatefulWidget {
Function onSelectedMethod;
bool isShowInstallments;
PaymentMethod({this.onSelectedMethod});
PaymentMethod({this.onSelectedMethod, this.isShowInstallments = false});
@override
_PaymentMethodState createState() => _PaymentMethodState();
@ -185,55 +186,56 @@ class _PaymentMethodState extends State<PaymentMethod> {
),
),
),
Container(
width: double.infinity,
child: InkWell(
onTap: () {
updateSelectedPaymentMethod("Installment");
},
child: Card(
elevation: 0.0,
margin: EdgeInsets.fromLTRB(8.0, 16.0, 8.0, 8.0),
color: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
side: selectedPaymentMethod == "Installment" ? BorderSide(color: Colors.green, width: 2.0) : BorderSide(color: Colors.transparent, width: 0.0),
),
child: Padding(
padding: const EdgeInsets.all(12.0),
child: Row(
children: [
Container(
width: 24,
height: 24,
decoration: containerColorRadiusBorderWidth(selectedPaymentMethod == "Installment" ? CustomColors.accentColor : Colors.transparent, 100, Colors.grey, 0.5),
),
mWidth(12),
Container(
height: 60.0,
padding: EdgeInsets.all(7.0),
width: 60,
child: Image.asset("assets/images/new/payment/installments.png"),
),
mFlex(1),
if (selectedPaymentMethod == "Installment")
if (widget.isShowInstallments)
Container(
width: double.infinity,
child: InkWell(
onTap: () {
updateSelectedPaymentMethod("Installment");
},
child: Card(
elevation: 0.0,
margin: EdgeInsets.fromLTRB(8.0, 16.0, 8.0, 8.0),
color: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
side: selectedPaymentMethod == "Installment" ? BorderSide(color: Colors.green, width: 2.0) : BorderSide(color: Colors.transparent, width: 0.0),
),
child: Padding(
padding: const EdgeInsets.all(12.0),
child: Row(
children: [
Container(
decoration: containerRadius(CustomColors.green, 200),
padding: EdgeInsets.only(top: 6, bottom: 6, left: 12, right: 12),
child: Text(
TranslationBase.of(context).paymentSelected,
style: TextStyle(
color: Colors.white,
fontSize: 11,
width: 24,
height: 24,
decoration: containerColorRadiusBorderWidth(selectedPaymentMethod == "Installment" ? CustomColors.accentColor : Colors.transparent, 100, Colors.grey, 0.5),
),
mWidth(12),
Container(
height: 60.0,
padding: EdgeInsets.all(7.0),
width: 60,
child: Image.asset("assets/images/new/payment/installments.png"),
),
mFlex(1),
if (selectedPaymentMethod == "Installment")
Container(
decoration: containerRadius(CustomColors.green, 200),
padding: EdgeInsets.only(top: 6, bottom: 6, left: 12, right: 12),
child: Text(
TranslationBase.of(context).paymentSelected,
style: TextStyle(
color: Colors.white,
fontSize: 11,
),
),
),
),
],
],
),
),
),
),
),
),
Platform.isIOS
? Container(
width: double.infinity,

@ -313,9 +313,11 @@ class _AdvancePaymentPageState extends State<AdvancePaymentPage> {
Navigator.push(
context,
FadePage(
page: PaymentMethod(onSelectedMethod: (String metohd) {
setState(() {});
}),
page: PaymentMethod(
onSelectedMethod: (String metohd) {
setState(() {});
},
isShowInstallments: num.tryParse(amount) >= 1000 ? true : false),
),
).then(
(value) {

@ -2610,6 +2610,14 @@ class TranslationBase {
String get laserClinic => localizedValues["laserClinic"][locale.languageCode];
String get noImage => localizedValues["noImage"][locale.languageCode];
String get signoutMessage => localizedValues["signoutMessage"][locale.languageCode];
String get RRTTitle => localizedValues["RRTTitle"][locale.languageCode];
String get RRTSubTitle => localizedValues["RRTSubTitle"][locale.languageCode];
String get transportation => localizedValues["transportation"][locale.languageCode];
}
class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> {

@ -28,6 +28,7 @@ import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
@ -475,20 +476,28 @@ class _AppDrawerState extends State<AppDrawer> {
}
logout() async {
authenticatedUserObject.logout();
projectProvider.isLogin = false;
await authenticatedUserObject.getUser();
_vitalSignService.heightCm = "";
_vitalSignService.weightKg = "";
await _privilegeService.getPrivilege();
projectProvider.setPrivilegeModelList(privilege: _privilegeService.privilegeModelList);
var appLanguage = await sharedPref.getString(APP_LANGUAGE);
await sharedPref.clear();
await sharedPref.setString(APP_LANGUAGE, appLanguage);
await sharedPref.remove(APPOINTMENT_HISTORY_MEDICAL);
this.user = null;
Navigator.of(context).pushNamed(HOME);
// projectProvider.platformBridge().unRegisterHmgGeofences();
ConfirmDialog dialog = new ConfirmDialog(
context: context,
confirmMessage: TranslationBase.of(context).signoutMessage,
okText: TranslationBase.of(context).confirm,
cancelText: TranslationBase.of(context).cancel_nocaps,
okFunction: () async {
authenticatedUserObject.logout();
projectProvider.isLogin = false;
await authenticatedUserObject.getUser();
_vitalSignService.heightCm = "";
_vitalSignService.weightKg = "";
await _privilegeService.getPrivilege();
projectProvider.setPrivilegeModelList(privilege: _privilegeService.privilegeModelList);
var appLanguage = await sharedPref.getString(APP_LANGUAGE);
await sharedPref.clear();
await sharedPref.setString(APP_LANGUAGE, appLanguage);
await sharedPref.remove(APPOINTMENT_HISTORY_MEDICAL);
this.user = null;
Navigator.of(context).pushNamed(HOME);
},
cancelFunction: () => {});
dialog.showAlertDialog(context);
}
login() async {

@ -2,6 +2,7 @@ import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/borderedButton.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/others/close_back.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@ -30,19 +31,23 @@ class PickupLocationFromMap extends StatelessWidget {
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
return Scaffold(
appBar: isWithAppBar
? AppBar(
elevation: 0,
textTheme: TextTheme(
headline6:
TextStyle(color: Colors.white, fontWeight: FontWeight.bold),
),
title: Text('Location'),
leading: CloseBack(),
centerTitle: true,
)
: null,
return AppScaffold(
isShowAppBar: true,
showNewAppBarTitle: true,
showNewAppBar: true,
appBarTitle: TranslationBase.of(context).selectLocation,
// appBar: isWithAppBar
// ? AppBar(
// elevation: 0,
// textTheme: TextTheme(
// headline6:
// TextStyle(color: Colors.white, fontWeight: FontWeight.bold),
// ),
// title: Text('Location'),
// leading: CloseBack(),
// centerTitle: true,
// )
// : null,
body: PlacePicker(
apiKey: GOOGLE_API_KEY,
enableMyLocationButton: true,

Loading…
Cancel
Save