Ambulance Service first step

er_location
Mohammad Aljammal 4 years ago
parent 0d12210116
commit 3d6eafe473

@ -1,21 +1,21 @@
import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
class PatientERTransportationMethod { class PatientERTransportationMethod {
int id; dynamic id;
DateTime createDate; DateTime createDate;
DateTime lastEditDate; DateTime lastEditDate;
int createdBy; dynamic createdBy;
int lastEditBy; dynamic lastEditBy;
bool isActive; bool isActive;
String title; String title;
String titleAR; String titleAR;
int price; dynamic price;
dynamic isDefault; dynamic isDefault;
int visibility; dynamic visibility;
dynamic durationId; dynamic durationId;
String description; String description;
String descriptionAR; String descriptionAR;
int totalPrice; dynamic totalPrice;
int vAT; dynamic vAT;
PatientERTransportationMethod( PatientERTransportationMethod(
{ {

@ -16,14 +16,13 @@ class AmService extends BaseService {
await baseAppClient.post(GET_AMBULANCE_REQUEST, await baseAppClient.post(GET_AMBULANCE_REQUEST,
onSuccess: (dynamic response, int statusCode) { onSuccess: (dynamic response, int statusCode) {
amModelList.clear(); amModelList.clear();
response['AmModelList'].forEach((vital) { response['PatientER_RRT_GetAllTransportationMethodList'].forEach((vital) {
amModelList.add( amModelList.add(PatientERTransportationMethod.fromJson(vital));
PatientERTransportationMethod.fromJson(vital));
}); });
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
hasError = true; hasError = true;
super.error = error; super.error = error;
}, body: Map()); }, body: body);
} }
Future getPatientAllPresOrdersList() async { Future getPatientAllPresOrdersList() async {

@ -56,6 +56,7 @@ class _AmbulanceRequestIndexState extends State<AmbulanceRequestIndex> {
physics: NeverScrollableScrollPhysics(), physics: NeverScrollableScrollPhysics(),
controller: pageController, controller: pageController,
children: <Widget>[ children: <Widget>[
//Container(),
SelectTransportationMethod( SelectTransportationMethod(
changeCurrentTab: _changeCurrentTab, changeCurrentTab: _changeCurrentTab,
patientER: _patientER, patientER: _patientER,

@ -4,11 +4,20 @@ import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
enum HaveAppointment { YES, NO }
class PickupLocation extends StatefulWidget { class PickupLocation extends StatefulWidget {
final Function changeCurrentTab; final Function changeCurrentTab;
final PatientER patientER; final PatientER patientER;
PickupLocation({Key key, this.changeCurrentTab, this.patientER, this.amRequestViewModel});
PickupLocation(
{Key key,
this.changeCurrentTab,
this.patientER,
this.amRequestViewModel});
final AmRequestViewModel amRequestViewModel; final AmRequestViewModel amRequestViewModel;
@override @override
@ -16,24 +25,258 @@ class PickupLocation extends StatefulWidget {
} }
class _PickupLocationState extends State<PickupLocation> { class _PickupLocationState extends State<PickupLocation> {
bool _isInsideHome = false;
HaveAppointment _haveAppointment = HaveAppointment.NO;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Column( return SingleChildScrollView(
physics: BouncingScrollPhysics(),
child: Container(
margin: EdgeInsets.only(left: 12, right: 12),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
if (widget.patientER.direction == 1)
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Texts('Pickup Location'),
SizedBox(
height: 15,
),
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,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Texts('Select From Map'),
Icon(
FontAwesomeIcons.mapMarkerAlt,
size: 24,
color: Colors.black,
)
],
),
),
SizedBox(
height: 12,
),
Texts('Pickup Spot'),
SizedBox(
height: 5,
),
InkWell(
onTap: () {
setState(() {
_isInsideHome = !_isInsideHome;
});
},
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('Inside Home'),
leading: Checkbox(
activeColor: Colors.red[800],
value: _isInsideHome,
onChanged: (value) {
setState(() {
_isInsideHome = value;
});
},
),
),
),
),
SizedBox(
height: 12,
),
Texts('Do you have an appointment ?'),
SizedBox(
height: 5,
),
Row(
children: [
Expanded(
child: InkWell(
onTap: () {
setState(() {
_haveAppointment = HaveAppointment.YES;
});
},
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('Yes'),
leading: Radio(
value: HaveAppointment.YES,
groupValue: _haveAppointment,
activeColor: Colors.red[800],
onChanged: (value) {
setState(() {
_haveAppointment = value;
});
},
),
),
),
),
),
Expanded(
child: InkWell(
onTap: () {
setState(() {
_haveAppointment = HaveAppointment.NO;
});
},
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('No'),
leading: Radio(
value: HaveAppointment.NO,
groupValue: _haveAppointment,
activeColor: Colors.red[800],
onChanged: (value) {
setState(() {
_haveAppointment = value;
});
},
),
),
),
),
),
],
),
SizedBox(
height: 12,
),
Texts('Drop off Location'),
SizedBox(
height: 8,
),
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,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Texts('Pickup Location'),
Icon(
Icons.arrow_drop_down,
size: 24,
color: Colors.black,
)
],
),
),
],
),
if (widget.patientER.direction == 2)
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Texts('Pickup Location'),
SizedBox(
height: 15,
),
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,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Texts('Pickup Location'),
Icon(
Icons.arrow_drop_down,
size: 24,
color: Colors.black,
)
],
),
),
SizedBox(
height: 12,
),
Texts('Drop off Location'),
SizedBox(
height: 8,
),
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,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Texts('PickupLocation 2'), Texts('Select From Map'),
SizedBox(height: 45,), Icon(
FontAwesomeIcons.mapMarkerAlt,
size: 24,
color: Colors.black,
)
],
),
),
],
),
//TODO show dialog projects
SizedBox(
height: 45,
),
Container( Container(
padding: EdgeInsets.all(15), padding: EdgeInsets.all(15),
width: double.maxFinite, width: double.maxFinite,
height: 76, height: 76,
child:SecondaryButton( child: SecondaryButton(
color: Colors.grey[800], color: Colors.grey[800],
textColor: Colors.white, textColor: Colors.white,
onTap: ()=> widget.changeCurrentTab(2), onTap: () => widget.changeCurrentTab(2),
label: 'Next', label: 'Next',
), ),
) )
], ],
),
),
); );
} }
} }

@ -32,9 +32,24 @@ class _SelectTransportationMethodState
Direction _direction = Direction.FromHospital; Direction _direction = Direction.FromHospital;
Way _way = Way.OneWay; Way _way = Way.OneWay;
@override
void initState() {
super.initState();
if (widget.patientER.direction != null) {
_direction = widget.patientER.direction == 1
? Direction.ToHospital
: Direction.FromHospital;
_way = widget.patientER.tripType == 1 ? Way.OneWay : Way.TwoWays;
_erTransportationMethod = widget.amRequestViewModel
.amRequestModeList[(widget.patientER.selectedAmbulate - 1)];
}
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return SingleChildScrollView(
physics: BouncingScrollPhysics(),
child: Container(
margin: EdgeInsets.only(left: 12, right: 12), margin: EdgeInsets.only(left: 12, right: 12),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
@ -53,6 +68,7 @@ class _SelectTransportationMethodState
}); });
}, },
child: Container( child: Container(
margin: EdgeInsets.all(5),
decoration: BoxDecoration( decoration: BoxDecoration(
shape: BoxShape.rectangle, shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
@ -64,8 +80,8 @@ class _SelectTransportationMethodState
Expanded( Expanded(
flex: 3, flex: 3,
child: ListTile( child: ListTile(
title: Text(widget title: Text(widget.amRequestViewModel
.amRequestViewModel.amRequestModeList[index].title), .amRequestModeList[index].title),
leading: Radio( leading: Radio(
value: widget value: widget
.amRequestViewModel.amRequestModeList[index], .amRequestViewModel.amRequestModeList[index],
@ -96,7 +112,11 @@ class _SelectTransportationMethodState
SizedBox( SizedBox(
height: 5, height: 5,
), ),
Row( Container(
width: double.maxFinite,
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
Expanded( Expanded(
child: InkWell( child: InkWell(
@ -106,15 +126,14 @@ class _SelectTransportationMethodState
}); });
}, },
child: Container( child: Container(
width: double.maxFinite,
decoration: BoxDecoration( decoration: BoxDecoration(
shape: BoxShape.rectangle, shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
border: Border.all(color: Colors.grey, width: 0.5), border: Border.all(color: Colors.grey, width: 0.5),
color: Colors.white, color: Colors.white,
), ),
child: Row( child: ListTile(
children: [
ListTile(
title: Text('To Hospital'), title: Text('To Hospital'),
leading: Radio( leading: Radio(
value: Direction.ToHospital, value: Direction.ToHospital,
@ -127,8 +146,6 @@ class _SelectTransportationMethodState
}, },
), ),
), ),
],
),
), ),
), ),
), ),
@ -140,16 +157,15 @@ class _SelectTransportationMethodState
}); });
}, },
child: Container( child: Container(
width: double.maxFinite,
decoration: BoxDecoration( decoration: BoxDecoration(
shape: BoxShape.rectangle, shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
border: Border.all(color: Colors.grey, width: 0.5), border: Border.all(color: Colors.grey, width: 0.5),
color: Colors.white, color: Colors.white,
), ),
child: Row( child: ListTile(
children: [ title: Text('Form Hospital'),
ListTile(
title: Text('To Hospital'),
leading: Radio( leading: Radio(
value: Direction.FromHospital, value: Direction.FromHospital,
groupValue: _direction, groupValue: _direction,
@ -161,16 +177,19 @@ class _SelectTransportationMethodState
}, },
), ),
), ),
],
),
), ),
), ),
), ),
], ],
), ),
),
if (_direction == Direction.ToHospital) if (_direction == Direction.ToHospital)
Column( Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
SizedBox(
height: 8,
),
Texts('Select Direction'), Texts('Select Direction'),
SizedBox( SizedBox(
height: 5, height: 5,
@ -188,12 +207,11 @@ class _SelectTransportationMethodState
decoration: BoxDecoration( decoration: BoxDecoration(
shape: BoxShape.rectangle, shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
border: Border.all(color: Colors.grey, width: 0.5), border:
Border.all(color: Colors.grey, width: 0.5),
color: Colors.white, color: Colors.white,
), ),
child: Row( child: ListTile(
children: [
ListTile(
title: Text('One Way'), title: Text('One Way'),
leading: Radio( leading: Radio(
value: Way.OneWay, value: Way.OneWay,
@ -206,8 +224,6 @@ class _SelectTransportationMethodState
}, },
), ),
), ),
],
),
), ),
), ),
), ),
@ -222,12 +238,11 @@ class _SelectTransportationMethodState
decoration: BoxDecoration( decoration: BoxDecoration(
shape: BoxShape.rectangle, shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
border: Border.all(color: Colors.grey, width: 0.5), border:
Border.all(color: Colors.grey, width: 0.5),
color: Colors.white, color: Colors.white,
), ),
child: Row( child: ListTile(
children: [
ListTile(
title: Text('Two Ways'), title: Text('Two Ways'),
leading: Radio( leading: Radio(
value: Way.TwoWays, value: Way.TwoWays,
@ -240,8 +255,6 @@ class _SelectTransportationMethodState
}, },
), ),
), ),
],
),
), ),
), ),
), ),
@ -261,9 +274,13 @@ class _SelectTransportationMethodState
textColor: Colors.white, textColor: Colors.white,
onTap: () { onTap: () {
setState(() { setState(() {
widget.patientER.direction = _direction == Direction.ToHospital ? 1 : 2; widget.patientER.direction =
widget.patientER.tripType = _way == Way.TwoWays ? 1 : 2; _direction == Direction.ToHospital ? 1 : 2;
widget.patientER.selectedAmbulate = (widget.amRequestViewModel.amRequestModeList.indexOf(_erTransportationMethod)+1); widget.patientER.tripType = _way == Way.TwoWays ? 2 : 1;
widget.patientER.selectedAmbulate = (widget
.amRequestViewModel.amRequestModeList
.indexOf(_erTransportationMethod) +
1);
widget.changeCurrentTab(1); widget.changeCurrentTab(1);
}); });
}, },
@ -272,6 +289,7 @@ class _SelectTransportationMethodState
) )
], ],
), ),
),
); );
} }
} }

Loading…
Cancel
Save