diff --git a/lib/config/config.dart b/lib/config/config.dart index 9fd3f14a..1205d14c 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -26,7 +26,9 @@ const PATIENT_GET_CLINIC_BY_PROJECT_URL = "Services/DoctorApplication.svc/REST/GetClinicsByProjectID"; const PROJECT_GET_INFO = "Services/DoctorApplication.svc/REST/GetProjectInfo"; -const GET_PROJECTS = 'Services/Lists.svc/REST/GetProjectForDoctorAPP'; +//const GET_PROJECTS = 'Services/Lists.svc/REST/GetProjectForDoctorAPP'; +const GET_PROJECTS = 'Services/DoctorApplication.svc/REST/GetProjectInfo'; + const GET_PATIENT_VITAL_SIGN = 'Services/Doctors.svc/REST/Doctor_GetPatientVitalSign'; const GET_PATIENT_VITAL_SIGN_DATA = diff --git a/lib/core/service/sickleave_service.dart b/lib/core/service/sickleave_service.dart index 15d77d5c..8eebd23c 100644 --- a/lib/core/service/sickleave_service.dart +++ b/lib/core/service/sickleave_service.dart @@ -24,6 +24,8 @@ class SickLeaveService extends BaseService { dynamic get postReschedule => _postReschedule; dynamic _postReschedule; + dynamic get sickLeaveResponse => _sickLeaveResponse; + dynamic _sickLeaveResponse; Future getStatistics(appoNo, patientMRN) async { hasError = false; await baseAppClient.post( @@ -48,10 +50,8 @@ class SickLeaveService extends BaseService { await baseAppClient.post( ADD_SICK_LEAVE, onSuccess: (dynamic response, int statusCode) { - Future.value(response); - //print(response); - // _statistics = {}; - // _statistics = response['SickLeaveStatistics']; + _sickLeaveResponse = response; + return Future.value(response); }, onFailure: (String error, int statusCode) { hasError = true; @@ -72,10 +72,8 @@ class SickLeaveService extends BaseService { await baseAppClient.post( EXTEND_SICK_LEAVE, onSuccess: (dynamic response, int statusCode) { - Future.value(response); - print(response); - // _statistics = {}; - // _statistics = response['SickLeaveStatistics']; + _sickLeaveResponse = response; + return Future.value(response); }, onFailure: (String error, int statusCode) { hasError = true; diff --git a/lib/core/viewModel/hospital_view_model.dart b/lib/core/viewModel/hospital_view_model.dart index 56f03686..7865a40f 100644 --- a/lib/core/viewModel/hospital_view_model.dart +++ b/lib/core/viewModel/hospital_view_model.dart @@ -6,7 +6,7 @@ import 'package:flutter/cupertino.dart'; class HospitalViewModel with ChangeNotifier { BaseAppClient baseAppClient = BaseAppClient(); - Future getProjectsList() async { + Future getProjectsList(memberID) async { const url = GET_PROJECTS; // TODO create model or remove it if no info need var info = { @@ -17,7 +17,8 @@ class HospitalViewModel with ChangeNotifier { "Channel": 9, "TokenID": "", "SessionID": "i1UJwCTSqt", - "IsLoginForDoctorApp": true + "IsLoginForDoctorApp": true, + "MemberID": memberID }; dynamic localRes; diff --git a/lib/core/viewModel/sick_leave_view_model.dart b/lib/core/viewModel/sick_leave_view_model.dart index 8e1c68d9..80f9ea1d 100644 --- a/lib/core/viewModel/sick_leave_view_model.dart +++ b/lib/core/viewModel/sick_leave_view_model.dart @@ -17,6 +17,7 @@ class SickLeaveViewModel extends BaseViewModel { List get coveringDoctors => _sickLeaveService.coveringDoctorsList; get getReschduleLeave => _sickLeaveService.getAllRescheduleLeave; get postSechedule => _sickLeaveService.postReschedule; + get sickleaveResponse => _sickLeaveService.sickLeaveResponse; Future addSickLeave(AddSickLeaveRequest addSickLeaveRequest) async { setState(ViewState.Busy); await _sickLeaveService.addSickLeave(addSickLeaveRequest); diff --git a/lib/screens/reschedule-leaves/reschedule_leave.dart b/lib/screens/reschedule-leaves/reschedule_leave.dart index f0bf122f..822a2181 100644 --- a/lib/screens/reschedule-leaves/reschedule_leave.dart +++ b/lib/screens/reschedule-leaves/reschedule_leave.dart @@ -52,8 +52,8 @@ class _RescheduleLeaveScreen extends State { var fromDate; var toDate; var clinicID; - var fromTime; - var toTime; + String fromTime; + String toTime; TextEditingController _controller4 = new TextEditingController(); TextEditingController _controller5 = new TextEditingController(); void _presentDatePicker(id) { @@ -764,7 +764,9 @@ class _RescheduleLeaveScreen extends State { //df.format(DateTime.parse(widget.updateData.dateTimeFrom)); this.fromTime = df.format(DateTime.parse(widget.updateData.dateTimeFrom)); + this.fromTime = this.fromTime.substring(0, this.fromTime.length - 3); this.toTime = df.format(DateTime.parse(widget.updateData.dateTimeTo)); + this.toTime = this.toTime.substring(0, this.toTime.length - 3); _toDateController2.text = dateFormat.format(DateTime.parse(widget.updateData.dateTimeTo)); _controller5.text = toTime; @@ -820,8 +822,8 @@ class _RescheduleLeaveScreen extends State { "weekDayId": 1, "shiftId": 1, "isOpen": true, - "timeFrom": "", - "timeTo": "", + "timeFrom": fromTime, + "timeTo": toTime, "timeFromstr": "", "timeTostr": "" } @@ -845,17 +847,17 @@ class _RescheduleLeaveScreen extends State { } updateRecheduleLeave(model) { - final df = new DateFormat('yyyy-MM-ddTHH:MM:ss'); - final dateFormat = new DateFormat('yyyy-MM-dd'); + // final df = new DateFormat('yyyy-MM-ddTHH:MM:ss'); + final df = new DateFormat('yyyy-MM-dd'); var fromDates = fromDate; var toDates = toDate; if (offTime == '1') { - fromDate = df.format(DateTime.parse(fromDates)) + + fromDate = df.format(DateTime.parse(_toDateController.text)) + 'T' + fromTime + ':' + DateTime.now().second.toString(); - toDate = df.format(DateTime.parse(fromDates)) + + toDate = df.format(DateTime.parse(_toDateController.text)) + 'T' + toTime + ':' + @@ -883,10 +885,10 @@ class _RescheduleLeaveScreen extends State { "weekDayId": 1, "shiftId": 1, "isOpen": true, - "timeFrom": fromTime, - "timeTo": toTime, - "timeFromstr": "", - "timeTostr": "" + "timeFrom": "", + "timeTo": "", + "timeFromstr": fromTime, + "timeTostr": toTime } ] } diff --git a/lib/screens/sick-leave/sick_leave.dart b/lib/screens/sick-leave/sick_leave.dart index fcc641ff..b4ee3ace 100644 --- a/lib/screens/sick-leave/sick_leave.dart +++ b/lib/screens/sick-leave/sick_leave.dart @@ -4,7 +4,9 @@ import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/core/viewModel/patient_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/sick_leave_view_model.dart'; import 'package:doctor_app_flutter/models/sickleave/add_sickleave_request.dart'; +import 'package:doctor_app_flutter/routes.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart'; +import 'package:doctor_app_flutter/screens/sick-leave/add-sickleave.dart'; import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart'; import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart'; import 'package:doctor_app_flutter/util/helpers.dart'; @@ -116,6 +118,10 @@ class _SickLeaveScreenState extends State { borderColor: Colors.white, onChanged: (value) { addSickLeave.noOfDays = value; + if (widget.extendedData != null) { + widget.extendedData.noOfDays = + int.parse(value); + } }, hintText: widget.extendedData != null ? widget.extendedData.noOfDays @@ -163,6 +169,10 @@ class _SickLeaveScreenState extends State { inputFormatter: ONLY_DATE, onChanged: (value) { addSickLeave.startDate = value; + if (widget.extendedData != null) { + widget.extendedData.startDate = + value; + } }), ], )), @@ -323,6 +333,9 @@ class _SickLeaveScreenState extends State { .remarks), onChanged: (value) { addSickLeave.remarks = value; + if (widget.extendedData != null) { + widget.extendedData.remarks = value; + } }, ) ], @@ -338,14 +351,26 @@ class _SickLeaveScreenState extends State { title: widget.isExtended == true ? TranslationBase.of(context).extend : TranslationBase.of(context).add, - onPressed: () { + onPressed: () async { if (widget.isExtended) { - model2 - .extendSickLeave( - widget.extendedData) - .then((value) => (value) { - print(value); - }); + await model2.extendSickLeave( + widget.extendedData); + + DrAppToastMsg.showSuccesToast( + model2.sickleaveResponse[ + 'ListSickLeavesToExtent'] + ['success']); + Navigator.of(context).popUntil((route) { + return route.settings.name == + PATIENTS_PROFILE; + }); + Navigator.of(context).pushNamed( + ADD_SICKLEAVE, + arguments: { + 'patient': widget.patient + }); + //print(value); + //}); } else { _validateInputs(model2); } diff --git a/lib/widgets/auth/login_form.dart b/lib/widgets/auth/login_form.dart index 4f496010..4709a94a 100644 --- a/lib/widgets/auth/login_form.dart +++ b/lib/widgets/auth/login_form.dart @@ -63,7 +63,7 @@ class _LoginFormState extends State { Widget build(BuildContext context) { authProv = Provider.of(context); projectsProv = Provider.of(context); - getProjects(); + return Form( key: loginFormKey, child: Container( @@ -88,9 +88,13 @@ class _LoginFormState extends State { onSaved: (value) { userInfo.userID = value.trim(); }, + onChanged: (value) { + userInfo.userID = value.trim(); + }, onFieldSubmitted: (_) { focusPass.nextFocus(); }, + onEditingComplete: () {}, autofocus: false, ), buildSizedBox(), @@ -113,8 +117,11 @@ class _LoginFormState extends State { }, onFieldSubmitted: (_) { focusPass.nextFocus(); - helpers.showCupertinoPicker( - context, projectsList, 'Name', onSelectProject); + // helpers.showCupertinoPicker( + // context, projectsList, 'facilityName', onSelectProject); + }, + onTap: () { + this.getProjects(userInfo.userID); }, ), buildSizedBox(), @@ -123,8 +130,8 @@ class _LoginFormState extends State { focusNode: focusProject, controller: projectIdController, onTap: () { - helpers.showCupertinoPicker( - context, projectsList, 'Name', onSelectProject); + // helpers.showCupertinoPicker(context, projectsList, + // 'facilityName', onSelectProject); }, showCursor: false, readOnly: true, @@ -143,7 +150,7 @@ class _LoginFormState extends State { readOnly: true, decoration: buildInputDecoration( context, - TranslationBase.of(context).loading, + TranslationBase.of(context).pleaseEnterYourProject, 'assets/images/password_icon.png')), buildSizedBox(), Row( @@ -322,13 +329,15 @@ class _LoginFormState extends State { }); } - getProjectsList() { + getProjectsList(memberID) { //showLoading(); - projectsProv.getProjectsList().then((res) { + projectsProv.getProjectsList(memberID).then((res) { //hideLoading(); if (res['MessageStatus'] == 1) { + projectsList = res['ProjectInfo']; setState(() { - projectsList = res['ListProject']; + userInfo.projectID = projectsList[0]["facilityId"]; + projectIdController.text = projectsList[0]['facilityName']; }); } else { // handel error @@ -350,8 +359,8 @@ class _LoginFormState extends State { onSelectProject(index) { setState(() { - userInfo.projectID = projectsList[index]["ID"]; - projectIdController.text = projectsList[index]['Name']; + userInfo.projectID = projectsList[index]["facilityId"]; + projectIdController.text = projectsList[index]['facilityName']; }); primaryFocus.unfocus(); @@ -371,10 +380,10 @@ class _LoginFormState extends State { Navigator.pop(context); } - getProjects() { - if (_isInit) { + getProjects(value) { + if (value != null && value != '') { if (projectsList.length == 0) { - getProjectsList(); + getProjectsList(value); } } _isInit = false;