Merge branch 'add_out_patient_filter' into 'development'

Add out patient filter

See merge request Cloud_Solution/doctor_app_flutter!622
merge-requests/623/merge
Mohammad Aljammal 5 years ago
commit 2c81941428

@ -16,6 +16,9 @@ class PatientSearchViewModel extends BaseViewModel{
List<PatiantInformtion> filterData = []; List<PatiantInformtion> filterData = [];
DateTime selectedFromDate;
DateTime selectedToDate;
searchData(String str) { searchData(String str) {
var strExist = str.length > 0 ? true : false; var strExist = str.length > 0 ? true : false;
if (strExist) { if (strExist) {
@ -83,14 +86,19 @@ class PatientSearchViewModel extends BaseViewModel{
String dateTo; String dateTo;
String dateFrom; String dateFrom;
if (item == 'Previous') { if (item == 'Previous') {
selectedFromDate = DateTime(DateTime.now().year, DateTime.now().month-1,
DateTime.now().day);
selectedToDate = DateTime(DateTime.now().year, DateTime.now().month,
DateTime.now().day-1);
dateTo = DateUtils.convertDateToFormat( dateTo = DateUtils.convertDateToFormat(
DateTime(DateTime.now().year, DateTime.now().month, selectedToDate,
DateTime.now().day-1),
'yyyy-MM-dd'); 'yyyy-MM-dd');
dateFrom = DateUtils.convertDateToFormat( dateFrom = DateUtils.convertDateToFormat(
DateTime(DateTime.now().year, DateTime.now().month-3, selectedFromDate,
DateTime.now().day),
'yyyy-MM-dd'); 'yyyy-MM-dd');
} else if (item == 'Next Week') { } else if (item == 'Next Week') {

@ -16,6 +16,7 @@ class FilterDatePage extends StatefulWidget {
final OutPatientFilterType outPatientFilterType; final OutPatientFilterType outPatientFilterType;
final PatientSearchViewModel patientSearchViewModel; final PatientSearchViewModel patientSearchViewModel;
const FilterDatePage( const FilterDatePage(
{Key key, this.outPatientFilterType, this.patientSearchViewModel}) {Key key, this.outPatientFilterType, this.patientSearchViewModel})
: super(key: key); : super(key: key);
@ -25,11 +26,15 @@ class FilterDatePage extends StatefulWidget {
} }
class _FilterDatePageState extends State<FilterDatePage> { class _FilterDatePageState extends State<FilterDatePage> {
DateTime selectedFromDate; @override
DateTime selectedToDate; void initState() {
// TODO: implement initState
super.initState();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
var screenSize; var screenSize;
return AppScaffold( return AppScaffold(
isShowAppBar: false, isShowAppBar: false,
@ -77,10 +82,10 @@ class _FilterDatePageState extends State<FilterDatePage> {
.of( .of(
context) context)
.fromDate, .fromDate,
selectedFromDate != null widget.patientSearchViewModel.selectedFromDate != null
? "${DateUtils ? "${DateUtils
.convertStringToDateFormat( .convertStringToDateFormat(
selectedFromDate.toString(), widget.patientSearchViewModel.selectedFromDate.toString(),
"yyyy-MM-dd")}" "yyyy-MM-dd")}"
: null, : null,
true, true,
@ -110,10 +115,10 @@ class _FilterDatePageState extends State<FilterDatePage> {
.of( .of(
context) context)
.toDate, .toDate,
selectedToDate != null widget.patientSearchViewModel.selectedToDate != null
? "${DateUtils ? "${DateUtils
.convertStringToDateFormat( .convertStringToDateFormat(
selectedToDate.toString(), widget.patientSearchViewModel.selectedToDate.toString(),
"yyyy-MM-dd")}" "yyyy-MM-dd")}"
: null, : null,
true, true,
@ -164,31 +169,45 @@ class _FilterDatePageState extends State<FilterDatePage> {
padding: 10, padding: 10,
color: Color(0xFF359846), color: Color(0xFF359846),
onPressed: () async { onPressed: () async {
if (selectedFromDate == null || if (widget.patientSearchViewModel.selectedFromDate ==
selectedToDate == null) { null ||
widget.patientSearchViewModel.selectedToDate ==
null) {
Helpers.showErrorToast( Helpers.showErrorToast(
"Please Select All The date Fields "); "Please Select All The date Fields ");
} else { } else {
String dateTo = DateUtils.convertDateToFormat( Duration difference = widget
selectedToDate, .patientSearchViewModel.selectedToDate
'yyyy-MM-dd'); .difference(
String dateFrom = DateUtils.convertDateToFormat( widget.patientSearchViewModel.selectedFromDate);
selectedFromDate, if (difference.inDays > 90) {
'yyyy-MM-dd'); Helpers.showErrorToast(
"The difference between from date and end date must be less than 3 months");
} else {
String dateTo = DateUtils.convertDateToFormat(
widget.patientSearchViewModel.selectedToDate,
'yyyy-MM-dd');
String dateFrom = DateUtils.convertDateToFormat(
widget.patientSearchViewModel.selectedFromDate,
'yyyy-MM-dd');
PatientSearchRequestModel currentModel = PatientSearchRequestModel(); PatientSearchRequestModel currentModel =
currentModel.to = dateTo; PatientSearchRequestModel();
currentModel.from= dateFrom;
GifLoaderDialogUtils.showMyDialog(context);
await widget.patientSearchViewModel.getOutPatient(
currentModel, isLocalBusy: true);
GifLoaderDialogUtils.hideDialog(context);
if(widget.patientSearchViewModel.state == ViewState.ErrorLocal) {
Helpers.showErrorToast(widget.patientSearchViewModel.error);
}else {
Navigator.of(context).pop();
}
currentModel.to = dateTo;
currentModel.from = dateFrom;
GifLoaderDialogUtils.showMyDialog(context);
await widget.patientSearchViewModel
.getOutPatient(currentModel, isLocalBusy: true);
GifLoaderDialogUtils.hideDialog(context);
if (widget.patientSearchViewModel.state ==
ViewState.ErrorLocal) {
Helpers.showErrorToast(
widget.patientSearchViewModel.error);
} else {
Navigator.of(context).pop();
}
}
} }
}, },
), ),
@ -208,8 +227,8 @@ class _FilterDatePageState extends State<FilterDatePage> {
{bool isFromDate = true, DateTime firstDate, lastDate}) async { {bool isFromDate = true, DateTime firstDate, lastDate}) async {
Helpers.hideKeyboard(context); Helpers.hideKeyboard(context);
DateTime selectedDate = isFromDate DateTime selectedDate = isFromDate
? this.selectedFromDate ?? firstDate ? this.widget.patientSearchViewModel.selectedFromDate ?? firstDate
: this.selectedToDate ?? lastDate; : this.widget.patientSearchViewModel.selectedToDate ?? lastDate;
final DateTime picked = await showDatePicker( final DateTime picked = await showDatePicker(
context: context, context: context,
initialDate: selectedDate, initialDate: selectedDate,
@ -220,11 +239,11 @@ class _FilterDatePageState extends State<FilterDatePage> {
if (picked != null) { if (picked != null) {
if (isFromDate) { if (isFromDate) {
setState(() { setState(() {
this.selectedFromDate = picked; this.widget.patientSearchViewModel.selectedFromDate = picked;
}); });
} else { } else {
setState(() { setState(() {
this.selectedToDate = picked; this.widget.patientSearchViewModel.selectedToDate = picked;
}); });
} }
} }
@ -235,9 +254,9 @@ class _FilterDatePageState extends State<FilterDatePage> {
return DateTime( return DateTime(
DateTime DateTime
.now() .now()
.year, DateTime .year -20, DateTime
.now() .now()
.month - 3, DateTime .month, DateTime
.now() .now()
.day); .day);
} else { } else {
@ -254,14 +273,8 @@ class _FilterDatePageState extends State<FilterDatePage> {
getLastDate(OutPatientFilterType outPatientFilterType) { getLastDate(OutPatientFilterType outPatientFilterType) {
if (outPatientFilterType == OutPatientFilterType.Previous) { if (outPatientFilterType == OutPatientFilterType.Previous) {
return DateTime( return DateTime(DateTime.now().year, DateTime.now().month,
DateTime DateTime.now().day-1);
.now()
.year, DateTime
.now()
.month, (DateTime
.now()
.day - 1));
} else { } else {
return DateTime( return DateTime(
DateTime DateTime

@ -199,7 +199,7 @@ class _OutPatientsScreenState extends State<OutPatientsScreen> {
, ,
prefix: IconButton( prefix: IconButton(
icon: Icon( icon: Icon(
_activeLocation == 1 _activeLocation !=0
? DoctorApp.filter_1 ? DoctorApp.filter_1
: FontAwesomeIcons.slidersH, : FontAwesomeIcons.slidersH,
color: Colors.black, color: Colors.black,
@ -208,7 +208,7 @@ class _OutPatientsScreenState extends State<OutPatientsScreen> {
padding: padding:
EdgeInsets.only( EdgeInsets.only(
bottom: 30), bottom: 30),
onPressed: _activeLocation == 1 ? null : () { onPressed: _activeLocation !=0 ? null : () {
Navigator.push(context, MaterialPageRoute( Navigator.push(context, MaterialPageRoute(
builder: (BuildContext context) => builder: (BuildContext context) =>
FilterDatePage(outPatientFilterType: outPatientFilterType,patientSearchViewModel: model,))); FilterDatePage(outPatientFilterType: outPatientFilterType,patientSearchViewModel: model,)));

Loading…
Cancel
Save