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