|
|
|
|
@ -19,6 +19,10 @@ import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils
|
|
|
|
|
|
|
|
|
|
import 'package:doctor_app_flutter/widgets/shared/text_fields/app-textfield-custom.dart';
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:hijri/hijri_calendar.dart';
|
|
|
|
|
import 'package:hijri_picker/hijri_picker.dart';
|
|
|
|
|
import 'package:doctor_app_flutter/core/enum/CalenderType.dart';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class RegisterSearchPatientPage extends StatefulWidget {
|
|
|
|
|
final Function changePageViewIndex;
|
|
|
|
|
@ -49,6 +53,10 @@ class _RegisterSearchPatientPageState extends State<RegisterSearchPatientPage> {
|
|
|
|
|
|
|
|
|
|
DateTime _birthDate;
|
|
|
|
|
String birthdateError;
|
|
|
|
|
var selectedHijriDate = new HijriCalendar.now();
|
|
|
|
|
CalenderType calenderType = CalenderType.Gregorian;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
@ -157,6 +165,37 @@ class _RegisterSearchPatientPageState extends State<RegisterSearchPatientPage> {
|
|
|
|
|
SizedBox(
|
|
|
|
|
height: 10,
|
|
|
|
|
),
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
Expanded(
|
|
|
|
|
child: RadioListTile<CalenderType>(
|
|
|
|
|
title: AppText("Gregorian"),
|
|
|
|
|
value: CalenderType.Gregorian,
|
|
|
|
|
groupValue: calenderType,
|
|
|
|
|
onChanged: (CalenderType value) {
|
|
|
|
|
setState(() {
|
|
|
|
|
calenderType = value;
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
Expanded(
|
|
|
|
|
child: RadioListTile<CalenderType>(
|
|
|
|
|
title: AppText("Hijri"),
|
|
|
|
|
value: CalenderType.Hijri,
|
|
|
|
|
groupValue: calenderType,
|
|
|
|
|
onChanged: (CalenderType value) {
|
|
|
|
|
setState(() {
|
|
|
|
|
calenderType = value;
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
SizedBox(
|
|
|
|
|
height: 10,
|
|
|
|
|
),
|
|
|
|
|
AppTextFieldCustom(
|
|
|
|
|
height: screenSize.height * 0.075,
|
|
|
|
|
hintText: "Birthdate",
|
|
|
|
|
@ -300,16 +339,39 @@ class _RegisterSearchPatientPageState extends State<RegisterSearchPatientPage> {
|
|
|
|
|
}
|
|
|
|
|
Future _selectDate(BuildContext context, DateTime dateTime,
|
|
|
|
|
Function(DateTime picked) updateDate) async {
|
|
|
|
|
final DateTime picked = await showDatePicker(
|
|
|
|
|
context: context,
|
|
|
|
|
initialDate: dateTime,
|
|
|
|
|
firstDate: DateTime(DateTime.now().year - 150),
|
|
|
|
|
lastDate: DateTime(DateTime.now().year + 150),
|
|
|
|
|
initialEntryMode: DatePickerEntryMode.calendar,
|
|
|
|
|
);
|
|
|
|
|
if (picked != null && picked != dateTime) {
|
|
|
|
|
updateDate(picked);
|
|
|
|
|
if(calenderType == CalenderType.Hijri) {
|
|
|
|
|
final HijriCalendar picked = await showHijriDatePicker(
|
|
|
|
|
context: context,
|
|
|
|
|
initialDate: selectedHijriDate,
|
|
|
|
|
|
|
|
|
|
lastDate: new HijriCalendar()
|
|
|
|
|
..hYear = 1445
|
|
|
|
|
..hMonth = 9
|
|
|
|
|
..hDay = 25,
|
|
|
|
|
firstDate: new HijriCalendar()
|
|
|
|
|
..hYear = 1438
|
|
|
|
|
..hMonth = 12
|
|
|
|
|
..hDay = 25,
|
|
|
|
|
initialDatePickerMode: DatePickerMode.day,
|
|
|
|
|
);
|
|
|
|
|
if (picked != null && selectedHijriDate != picked)
|
|
|
|
|
setState(() {
|
|
|
|
|
selectedHijriDate = picked;
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
final DateTime picked = await showDatePicker(
|
|
|
|
|
context: context,
|
|
|
|
|
initialDate: dateTime,
|
|
|
|
|
firstDate: DateTime(DateTime.now().year - 150),
|
|
|
|
|
lastDate: DateTime(DateTime.now().year + 150),
|
|
|
|
|
initialEntryMode: DatePickerEntryMode.calendar,
|
|
|
|
|
);
|
|
|
|
|
if (picked != null && picked != dateTime) {
|
|
|
|
|
updateDate(picked);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void openListDialogField(String attributeName, String attributeValueId,
|
|
|
|
|
|