doctor leave bug fix

merge-requests/238/head
Sultan Khan 5 years ago
parent 87d90a394b
commit c4cae6fb38

@ -21,6 +21,9 @@ class SickLeaveService extends BaseService {
List<GetRescheduleLeavesResponse> get getAllRescheduleLeave => List<GetRescheduleLeavesResponse> get getAllRescheduleLeave =>
_getReScheduleLeave; _getReScheduleLeave;
List<GetRescheduleLeavesResponse> _getReScheduleLeave = []; List<GetRescheduleLeavesResponse> _getReScheduleLeave = [];
dynamic get postReschedule => _postReschedule;
dynamic _postReschedule;
Future getStatistics(appoNo, patientMRN) async { Future getStatistics(appoNo, patientMRN) async {
hasError = false; hasError = false;
await baseAppClient.post( await baseAppClient.post(
@ -171,15 +174,17 @@ class SickLeaveService extends BaseService {
); );
} }
addReschedule(request) async { Future addReschedule(request) async {
hasError = false; hasError = false;
await baseAppClient.post( await baseAppClient.post(
ADD_RESCHDEULE, ADD_RESCHDEULE,
onSuccess: (dynamic response, int statusCode) { onSuccess: (dynamic response, int statusCode) {
Future.value(response); // return Future.value(response);
_postReschedule = response;
}, },
onFailure: (String error, int statusCode) { onFailure: (String error, int statusCode) {
_postReschedule = null;
hasError = true; hasError = true;
super.error = error; super.error = error;
}, },
@ -193,9 +198,11 @@ class SickLeaveService extends BaseService {
await baseAppClient.post( await baseAppClient.post(
UPDATE_RESCHDEULE, UPDATE_RESCHDEULE,
onSuccess: (dynamic response, int statusCode) { onSuccess: (dynamic response, int statusCode) {
Future.value(response); _postReschedule = response;
// return Future.value(response);
}, },
onFailure: (String error, int statusCode) { onFailure: (String error, int statusCode) {
_postReschedule = null;
hasError = true; hasError = true;
super.error = error; super.error = error;
}, },

@ -16,6 +16,7 @@ class SickLeaveViewModel extends BaseViewModel {
List get allReasons => _sickLeaveService.getReasons; List get allReasons => _sickLeaveService.getReasons;
List get coveringDoctors => _sickLeaveService.coveringDoctorsList; List get coveringDoctors => _sickLeaveService.coveringDoctorsList;
get getReschduleLeave => _sickLeaveService.getAllRescheduleLeave; get getReschduleLeave => _sickLeaveService.getAllRescheduleLeave;
get postSechedule => _sickLeaveService.postReschedule;
Future addSickLeave(AddSickLeaveRequest addSickLeaveRequest) async { Future addSickLeave(AddSickLeaveRequest addSickLeaveRequest) async {
setState(ViewState.Busy); setState(ViewState.Busy);
await _sickLeaveService.addSickLeave(addSickLeaveRequest); await _sickLeaveService.addSickLeave(addSickLeaveRequest);
@ -99,7 +100,7 @@ class SickLeaveViewModel extends BaseViewModel {
Future addReschedule(request) async { Future addReschedule(request) async {
setState(ViewState.Busy); setState(ViewState.Busy);
await _sickLeaveService.addReschedule(request); await _sickLeaveService.addReschedule(request);
notifyListeners();
if (_sickLeaveService.hasError) { if (_sickLeaveService.hasError) {
error = _sickLeaveService.error; error = _sickLeaveService.error;
setState(ViewState.Error); setState(ViewState.Error);

@ -6,6 +6,7 @@ import 'package:doctor_app_flutter/core/viewModel/patient_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/sick_leave_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/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/base/base_view.dart';
import 'package:doctor_app_flutter/util/dr_app_shared_pref.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/dr_app_toast_msg.dart';
@ -41,9 +42,10 @@ class _RescheduleLeaveScreen extends State<RescheduleLeaveScreen> {
TextEditingController _toDateController = new TextEditingController(); TextEditingController _toDateController = new TextEditingController();
TextEditingController _toDateController2 = new TextEditingController(); TextEditingController _toDateController2 = new TextEditingController();
ProjectViewModel projectsProvider; ProjectViewModel projectsProvider;
SickLeaveViewModel sickLeaveViewModel;
String _selectedClinic; String _selectedClinic;
Map profile = {}; Map profile = {};
var offTime = '2'; var offTime = '1';
var date; var date;
var doctorID; var doctorID;
var reason; var reason;
@ -53,6 +55,7 @@ class _RescheduleLeaveScreen extends State<RescheduleLeaveScreen> {
var fromTime; var fromTime;
var toTime; var toTime;
TextEditingController _controller4; TextEditingController _controller4;
TextEditingController _controller5;
void _presentDatePicker(id) { void _presentDatePicker(id) {
var date = new DateTime.now(); var date = new DateTime.now();
var initialDate = id == 'fromDate' var initialDate = id == 'fromDate'
@ -66,25 +69,6 @@ class _RescheduleLeaveScreen extends State<RescheduleLeaveScreen> {
initialDate: initialDate, initialDate: initialDate,
firstDate: firstDate, firstDate: firstDate,
lastDate: DateTime(2050), lastDate: DateTime(2050),
).then((pickedDate) {
if (pickedDate == null) {
return;
}
setState(() {
final df = new DateFormat('yyyy-MM-dd');
fromDate = pickedDate; //df.format();
_toDateController.text = df.format(pickedDate);
toDate = pickedDate;
});
});
}
void _presentCurrentDate(id) {
showDatePicker(
context: context,
initialDate: DateTime.now(),
firstDate: DateTime.now(),
lastDate: DateTime(2050),
).then((pickedDate) { ).then((pickedDate) {
if (pickedDate == null) { if (pickedDate == null) {
return; return;
@ -99,6 +83,13 @@ class _RescheduleLeaveScreen extends State<RescheduleLeaveScreen> {
_toDateController2.text = df.format(pickedDate); _toDateController2.text = df.format(pickedDate);
} }
}); });
setState(() {
final df = new DateFormat('yyyy-MM-dd');
fromDate = pickedDate; //df.format();
_toDateController.text = df.format(pickedDate);
toDate = pickedDate;
});
}); });
} }
@ -112,6 +103,7 @@ class _RescheduleLeaveScreen extends State<RescheduleLeaveScreen> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
projectsProvider = Provider.of(context); projectsProvider = Provider.of(context);
return BaseView<PatientViewModel>( return BaseView<PatientViewModel>(
onModelReady: (model) => model.getClinicsList(), onModelReady: (model) => model.getClinicsList(),
builder: (_, model, w) => BaseView<SickLeaveViewModel>( builder: (_, model, w) => BaseView<SickLeaveViewModel>(
@ -345,24 +337,26 @@ class _RescheduleLeaveScreen extends State<RescheduleLeaveScreen> {
CrossAxisAlignment.start, CrossAxisAlignment.start,
children: [ children: [
AppTextFormField( AppTextFormField(
hintText: TranslationBase.of( hintText:
context) TranslationBase.of(context)
.fromDate, .fromDate,
borderColor: Colors.white, borderColor: Colors.white,
prefix: IconButton( prefix: IconButton(
icon: Icon(Icons icon: Icon(
.calendar_today)), Icons.calendar_today)),
textInputType: textInputType:
TextInputType.number, TextInputType.number,
controller: _toDateController, controller: _toDateController,
onTap: () { onTap: () {
_presentCurrentDate( _presentDatePicker(
'fromDate'); 'fromDate');
}, },
inputFormatter: ONLY_DATE, inputFormatter: ONLY_DATE,
onChanged: (value) { onChanged: (val) =>
fromDate = value; fromDate = val,
}), onSaved: (val) =>
fromDate = val,
)
], ],
)), )),
Row( Row(
@ -391,22 +385,16 @@ class _RescheduleLeaveScreen extends State<RescheduleLeaveScreen> {
type: type:
DateTimePickerType.time, DateTimePickerType.time,
controller: _controller4, controller: _controller4,
//initialValue: _initialValue, onChanged: (val) =>
// icon: Icon(Icons.access_time), fromTime = val,
//use24HourFormat: false,
//locale: Locale('en', 'US'),
onChanged: (val) => () {
print(val);
this.fromTime = val;
},
validator: (val) { validator: (val) {
print(val); print(val);
// setState( // setState(
// () => _valueToValidate4 = val); // () => _valueToValidate4 = val);
return null; return null;
}, },
onSaved: (val) => {}, onSaved: (val) =>
fromTime = val,
) )
], ],
), ),
@ -435,10 +423,9 @@ class _RescheduleLeaveScreen extends State<RescheduleLeaveScreen> {
.toTime, .toTime,
type: type:
DateTimePickerType.time, DateTimePickerType.time,
controller: _controller4, controller: _controller5,
onChanged: (val) => () { onChanged: (val) =>
this.toTime = val; toTime = val,
},
validator: (val) { validator: (val) {
print(val); print(val);
// setState( // setState(
@ -446,7 +433,7 @@ class _RescheduleLeaveScreen extends State<RescheduleLeaveScreen> {
return null; return null;
}, },
onSaved: (val) => onSaved: (val) =>
{print(val)}, toTime = val,
) )
], ],
), ),
@ -510,7 +497,7 @@ class _RescheduleLeaveScreen extends State<RescheduleLeaveScreen> {
AppTextFormField( AppTextFormField(
hintText: TranslationBase hintText: TranslationBase
.of(context) .of(context)
.fromDate, .toDate,
borderColor: Colors.white, borderColor: Colors.white,
prefix: IconButton( prefix: IconButton(
icon: Icon( icon: Icon(
@ -777,16 +764,34 @@ class _RescheduleLeaveScreen extends State<RescheduleLeaveScreen> {
return clinicInfo.length > 0 ? clinicInfo[0]['ClinicDescription'] : ""; return clinicInfo.length > 0 ? clinicInfo[0]['ClinicDescription'] : "";
} }
addRecheduleLeave(model) { addRecheduleLeave(model) async {
final df = new DateFormat('yyyy-MM-ddThh:mm:ss'); final df = new DateFormat('yyyy-MM-ddTHH:MM:ss');
final dateFormat = new DateFormat('yyyy-MM-dd');
var fromDates = fromDate;
var toDates = toDate;
if (offTime == '1') {
fromDate = df.format(DateTime.parse(dateFormat.format(fromDates) +
'T' +
fromTime +
':' +
DateTime.now().second.toString()));
toDate = df.format(DateTime.parse(dateFormat.format(fromDates) +
'T' +
toTime +
':' +
DateTime.now().second.toString()));
} else {
fromDate = df.format(fromDates);
toDate = df.format(toDates);
}
Map<String, dynamic> request = { Map<String, dynamic> request = {
"Requisition": { "Requisition": {
"requisitionNo": 0, "requisitionNo": 0,
"requisitionType": offTime, "requisitionType": offTime,
"clinicId": this.profile['ClinicID'], "clinicId": this.profile['ClinicID'],
"doctorId": this.profile['DoctorID'], "doctorId": this.profile['DoctorID'],
"dateTimeFrom": df.format(fromDate), "dateTimeFrom": fromDate,
"dateTimeTo": toDate != null ? df.format(toDate) : df.format(fromDate), "dateTimeTo": toDate,
"date": df.format(DateTime.now()), "date": df.format(DateTime.now()),
"reasonId": reason == null ? model.allOffTime[0]['code'] : reason, "reasonId": reason == null ? model.allOffTime[0]['code'] : reason,
"coveringDoctorId": "coveringDoctorId":
@ -797,8 +802,8 @@ class _RescheduleLeaveScreen extends State<RescheduleLeaveScreen> {
"weekDayId": 1, "weekDayId": 1,
"shiftId": 1, "shiftId": 1,
"isOpen": true, "isOpen": true,
"timeFrom": fromTime, "timeFrom": "",
"timeTo": toTime, "timeTo": "",
"timeFromstr": "", "timeFromstr": "",
"timeTostr": "" "timeTostr": ""
} }
@ -806,29 +811,41 @@ class _RescheduleLeaveScreen extends State<RescheduleLeaveScreen> {
} }
}; };
model.addReschedule(request).then((response) { await model.addReschedule(request).then((value) {
DrAppToastMsg.showSuccesToast(TranslationBase.of(context).leaveCreated); if (model.postSechedule != null) {
Navigator.pop(context); DrAppToastMsg.showSuccesToast(TranslationBase.of(context).leaveCreated);
Navigator.push( Navigator.pushNamedAndRemoveUntil(context, HOME, (r) => false);
context, Navigator.push(
MaterialPageRoute( context,
builder: (context) => AddRescheduleLeavScreen(), MaterialPageRoute(
// MyReferredPatient(), builder: (context) => AddRescheduleLeavScreen(),
), // MyReferredPatient(),
); ),
);
}
}); });
} }
updateRecheduleLeave(model) { updateRecheduleLeave(model) {
final df = new DateFormat('yyyy-MM-ddThh:mm:ss'); final df = new DateFormat('yyyy-MM-ddThh:mm:ss');
final dateFormat = new DateFormat('yyyy-MM-dd');
if (offTime == '1') {
fromDate = dateFormat.format(fromDate) + 'T' + fromTime + '00';
toDate = dateFormat.format(fromDate) + 'T' + toTime + '00';
} else {
fromDate = df.format(fromDate);
toDate = df.format(toDate);
}
Map<String, dynamic> request = { Map<String, dynamic> request = {
"Requisition": { "Requisition": {
"requisitionNo": 0, "requisitionNo": 0,
"requisitionType": offTime, "requisitionType": offTime,
"clinicId": this.profile['ClinicID'], "clinicId": this.profile['ClinicID'],
"doctorId": this.profile['DoctorID'], "doctorId": this.profile['DoctorID'],
"dateTimeFrom": df.format(fromDate), "dateTimeFrom": fromDate,
"dateTimeTo": toDate != null ? df.format(toDate) : df.format(fromDate), "dateTimeTo": toDate,
"date": df.format(DateTime.now()), "date": df.format(DateTime.now()),
"reasonId": reason == null ? model.allOffTime[0]['code'] : reason, "reasonId": reason == null ? model.allOffTime[0]['code'] : reason,
"coveringDoctorId": "coveringDoctorId":
@ -849,7 +866,17 @@ class _RescheduleLeaveScreen extends State<RescheduleLeaveScreen> {
}; };
model.updateReschedule(request).then((response) { model.updateReschedule(request).then((response) {
print(response); if (model.postSechedule != null) {
DrAppToastMsg.showSuccesToast(TranslationBase.of(context).leaveCreated);
Navigator.pushNamedAndRemoveUntil(context, HOME, (r) => false);
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => AddRescheduleLeavScreen(),
// MyReferredPatient(),
),
);
}
}); });
} }
} }

Loading…
Cancel
Save