import 'package:device_calendar/device_calendar.dart'; import 'package:diplomaticquarterapp/core/model/childvaccines/List_BabyInformationModel.dart'; import 'package:diplomaticquarterapp/core/model/childvaccines/add_newchild_model.dart'; import 'package:diplomaticquarterapp/core/model/childvaccines/user_information_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/child_vaccines/add_new_child_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/child_vaccines/child_vaccines_view_model.dart'; import 'package:diplomaticquarterapp/pages/Blood/new_text_Field.dart'; import 'package:diplomaticquarterapp/pages/ChildVaccines/add_newchild_page.dart'; import 'package:diplomaticquarterapp/pages/ChildVaccines/child_page.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/medical/active_medications/DayCheckBoxDialog.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_datetime_picker/flutter_datetime_picker.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; enum Gender { Male, Female, NON } enum BeneficiaryType { MyAccount, MyFamilyFiles, OtherAccount, NON } class AddNewChildPage extends StatefulWidget { final int frequency; final int days; final String itemDescription; String dateAdd; List _scheduleList = List(); List daysOfWeek = [ DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday, DayOfWeek.Saturday, DayOfWeek.Sunday ]; DateTime startDay; DateTime endDay; //AddNewChildPage({Key key, this.frequency, this.days, this.itemDescription}) : super(key: key); AddNewChildPage({Key key, this.frequency, this.days, this.itemDescription}) { startDay = DateTime.now(); endDay = DateTime.now(); //endDay = DateTime.now().add(Duration(days: days)); int hour = 24; //(24 / frequency).round(); int durations = 24 ~/ hour; for (int count = 0; count < durations; count++) { _scheduleList.add(DateTime(DateTime.now().year, DateTime.now().month, DateTime.now().day, (hour * count))); } } @override _AddNewChildPageState createState() => _AddNewChildPageState(); } class _AddNewChildPageState extends State { int tappedIndex; int checkedValue; @override void initState() { super.initState(); tappedIndex = -1; } TextEditingController _firstTextController = TextEditingController(); TextEditingController _secondTextController = TextEditingController(); TextEditingController _notesTextController = TextEditingController(); BeneficiaryType beneficiaryType = BeneficiaryType.NON; Gender gender = Gender.Male; //ChildVaccinesViewModel addvancedModel = ChildVaccinesViewModel(); List_BabyInformationModel addvancedModel = List_BabyInformationModel(); CreateNewBaby newChild=CreateNewBaby(); List_UserInformationModel informationModel =List_UserInformationModel(); @override Widget build(BuildContext context) { return BaseView( builder: (_,model,w)=> AppScaffold( isShowAppBar: true, appBarTitle: "Vaccintion", body: SingleChildScrollView( physics: ScrollPhysics(), child: Container( margin: EdgeInsets.all(12), child: Column( // crossAxisAlignment: CrossAxisAlignment.center, children: [ SizedBox( height: 50, ), Texts( "Add the child's information below to recieve the schedule of vaccinations.", //+model.user.firstName, textAlign: TextAlign.center, ), SizedBox( height: 12, ), NewTextFields( hintText: "First Name", controller: _firstTextController, ), SizedBox( height: 12, ), NewTextFields( hintText: "Second Name", controller: _secondTextController, ), SizedBox( height: 12, ), Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( "Gender:", textAlign: TextAlign.end, ), ], ), Container( height: MediaQuery.of(context).size.height * 0.12, width: double.infinity, padding: EdgeInsets.all(12), child: Row( crossAxisAlignment: CrossAxisAlignment.stretch, mainAxisAlignment: MainAxisAlignment.center, children: [ Container( height: MediaQuery.of(context).size.height * 0.12, width: 170, child: SecondaryButton( textColor: checkedValue == 1 ? Colors.white : Colors.black, color: checkedValue == 1 ? Colors.red : Colors.white, label: "Male", // onTap: () { // bloodDetails.city=_selectedHospital.toString(); setState(() { checkedValue = 1; print("checkedValue=" + checkedValue.toString()); }); // bloodDetails. }, ), ), Container( height: MediaQuery.of(context).size.height * 0.12, width: 170, child: SecondaryButton( textColor: checkedValue == 2 ? Colors.white : Colors.black, color: checkedValue == 2 ? Colors.red : Colors.white, label: "Female", // onTap: () { setState(() { checkedValue = 2; print("checkedValue=" + checkedValue.toString()); }); // bloodDetails.city=_selectedHospital.toString(); // bloodDetails. }, ), ) ], ), ), //========== SizedBox( height: 6, ), Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( "Date Of Birth::", textAlign: TextAlign.end, ), ], ), InkWell( onTap: () { DatePicker.showDatePicker( context, showTitleActions: true, // minTime: DateTime( // DateTime.now().year, DateTime.now().month - 1, 1), minTime: DateTime(1, 1, 1), maxTime: DateTime.now(), onConfirm: (date) { setState(() { widget.startDay = date; }); }, currentTime: widget.startDay, // locale: projectViewModel.localeType ); }, child: Container( padding: EdgeInsets.all(12), width: double.infinity, height: 65, decoration: BoxDecoration( borderRadius: BorderRadius.circular(12), color: Colors.white), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Texts(//getStartDay() // DateUtil.yearMonthDay(DateTime.now()) getStartDay() ), Icon( Icons.calendar_today, color: Colors.black, ) ], ), ), ), SizedBox( height: 12, ), //========= ], ), ), ), bottomSheet: Container( height: MediaQuery.of(context).size.height * 0.12, width: double.infinity, padding: EdgeInsets.all(12), child: SecondaryButton( textColor: Colors.white, color: checkedValue == false ? Colors.white24 : Color.fromRGBO( 63, 72, 74, 1, ), label: "Add", // onTap: () { newChild.babyName = _firstTextController.text + " " + _secondTextController.text; newChild.gender = checkedValue.toString(); newChild.strDOB=getStartDay() ; newChild.alertBy=addvancedModel.alertBy; newChild.createdBy=informationModel.createdBy ; newChild.editedBy=informationModel.createdBy; newChild.tempValue=true; // newChild.userID=46013;//informationModel.userID; newChild.isLogin=true; //newChild.tokenID='qMgbP94U23RkXtWWT0Sw=='; //'ZBGoQFUG50eQJd6Y7u1ykA=='; model.getNewBabyOrders(newChild: newChild); //DateTime.now();//DateUtil.convertStringToDate(getStartDay()); // addvancedModel.alertBy = 2; // addvancedModel.alertBy = addvancedModel.babyID; // addvancedModel.genderDescription = // checkedValue == 1 ? "Male" : "Female"; // addvancedModel.patientID = addvancedModel.patientID; // addvancedModel.userID = addvancedModel.userID; // // advanceModel.fileNumber = _fileTextController.text; // // advanceModel.hospitalsModel = _selectedHospital; // // advanceModel.note = _notesTextController.text; // // advanceModel.email = email ?? model.user.emailAddress; // // advanceModel.amount = amount; // // bloodDetails.city=_selectedHospital.toString(); AppToast.showSuccessToast(message: "Record Added"); //============ Navigator.push( context, FadePage( page: ChildPage(), //ChildPage(babyInformationModelList:model.BabyInformationModelList) // HospitalsPage( // findusHospitalModelList: model.FindusHospitalModelList, // ) ), ); //============== // bloodDetails. }, ), ), ), ); } String getStartDay() { return "${DateUtil.getMonth(widget.startDay.month)} ${widget.startDay.day}, ${widget.startDay.year}"; } String getEndDay() { return "${DateUtil.getMonth(widget.endDay.month)} ${widget.endDay.day}, ${widget.endDay.year}"; } String getDateTime(DateTime dateTime) { return '${dateTime.hour}:${dateTime.minute}'; } String getDays() { String days = ""; widget.daysOfWeek.forEach((element) { days += "${DateUtil.getDay(element)},"; }); return days; } void confirmSelectDayDialog() { showDialog( context: context, child: DayCheckBoxDialog( title: 'Select Day', selectedDaysOfWeek: widget.daysOfWeek, onValueSelected: (value) { setState(() { widget.daysOfWeek = value; }); }, ), ); } }