diff --git a/lib/controllers/providers/api/device_transfer_provider.dart b/lib/controllers/providers/api/device_transfer_provider.dart index f9ed081d..a534fbc0 100644 --- a/lib/controllers/providers/api/device_transfer_provider.dart +++ b/lib/controllers/providers/api/device_transfer_provider.dart @@ -24,6 +24,8 @@ class DeviceTransferProvider extends ChangeNotifier { floor = null; department = null; room=""; + startDate = null; + endDate = null; } // state code of current request to defied error message @@ -177,6 +179,8 @@ class DeviceTransferProvider extends ChangeNotifier { "senderMachineStatusId": newModel.status.id, "senderComment": newModel.comment, "senderWorkingHours": newModel.workingHours, + "senderStartDate": newModel.startDate?.toIso8601String(), + "senderEndDate": newModel.endDate?.toIso8601String(), "senderTravelingHours": newModel.travelingHours, "senderAttachmentName": "${newModel.signature}.png", "destSiteId": oldModel.receiver.client.id, @@ -185,6 +189,8 @@ class DeviceTransferProvider extends ChangeNotifier { "receiverMachineStatusId": oldModel.receiver.status.id ?? "", "receiverComment": oldModel.receiver.comment, "receiverWorkingHours": oldModel.receiver.workingHours, + "receiverStartDate": oldModel.receiver.startDate?.toIso8601String(), + "receiverEndDate": oldModel.receiver.endDate?.toIso8601String(), "receiverTravelingHours": oldModel.receiver.travelingHours, "receiverAttachmentName": "${oldModel.receiver.signature}.png", }); @@ -196,6 +202,8 @@ class DeviceTransferProvider extends ChangeNotifier { "senderMachineStatusId": oldModel.sender.status.id, "senderComment": oldModel.sender.comment, "senderWorkingHours": oldModel.sender.workingHours, + "senderStartDate": oldModel.sender.startDate?.toIso8601String(), + "senderEndDate": oldModel.sender.endDate?.toIso8601String(), "senderTravelingHours": oldModel.sender.travelingHours, "senderAttachmentName": "${oldModel.sender.signature}.png", "destSiteId": newModel.client.id, @@ -204,6 +212,8 @@ class DeviceTransferProvider extends ChangeNotifier { "receiverMachineStatusId": newModel.status?.id ?? "", "receiverComment": newModel.comment, "receiverWorkingHours": newModel.workingHours, + "receiverStartDate": newModel.startDate?.toIso8601String(), + "receiverEndDate": newModel.endDate?.toIso8601String(), "receiverTravelingHours": newModel.travelingHours, "receiverAttachmentName": "${newModel.signature}.png", }); diff --git a/lib/models/device/device_transfer.dart b/lib/models/device/device_transfer.dart index d4d062b4..a8202f42 100644 --- a/lib/models/device/device_transfer.dart +++ b/lib/models/device/device_transfer.dart @@ -59,6 +59,8 @@ class DeviceTransfer { travelingHours: parsedJson["senderTravelingHours"], comment: parsedJson["senderComment"], workingHours: parsedJson["senderWorkingHours"], + startDate: parsedJson["senderStartDate"]==null ? null:DateTime.parse(parsedJson["senderStartDate"]), + endDate: parsedJson["senderEndDate"]==null ? null:DateTime.parse(parsedJson["senderEndDate"]), userId: parsedJson["senderAssignedEmployeeId"], userName: parsedJson["senderAssignedEmployeeName"], assignedEmployeeName: parsedJson["senderAssignedEmployeeName"], @@ -78,6 +80,8 @@ class DeviceTransfer { travelingHours: parsedJson["receiverTravelingHours"], comment: parsedJson["receiverComment"], workingHours: parsedJson["receiverWorkingHours"], + startDate: parsedJson["receiverStartDate"]==null ? null:DateTime.parse(parsedJson["receiverStartDate"]), + endDate: parsedJson["receiverEndDate"]==null ? null:DateTime.parse(parsedJson["receiverEndDate"]), userId: parsedJson["receiverAssignedEmployeeId"], userName: parsedJson["receiverAssignedEmployeeName"], assignedEmployeeName: parsedJson["receiverAssignedEmployeeName"], diff --git a/lib/models/device/device_transfer_info.dart b/lib/models/device/device_transfer_info.dart index 74365ce0..41d0843a 100644 --- a/lib/models/device/device_transfer_info.dart +++ b/lib/models/device/device_transfer_info.dart @@ -8,6 +8,8 @@ class DeviceTransferInfo { Hospital client; Department department; String workingHours; + DateTime startDate; + DateTime endDate; String travelingHours; String userName; String signature; @@ -21,6 +23,8 @@ class DeviceTransferInfo { this.client, this.userName, this.travelingHours, + this.startDate, + this.endDate, this.workingHours, this.signature, this.status, @@ -33,6 +37,8 @@ class DeviceTransferInfo { if (comment != null && comment.isNotEmpty) body["${baseKey}comment"] = comment; if (workingHours != null && workingHours.isNotEmpty) body["${baseKey}working_hours"] = workingHours; + if (startDate != null) body["${baseKey}start_date"] = startDate?.toIso8601String(); + if (endDate != null) body["${baseKey}end_date"] = endDate?.toIso8601String(); if (travelingHours != null && travelingHours.isNotEmpty) body["${baseKey}travel_hours"] = travelingHours; if (status != null) body["${baseKey}status"] = status.id.toString(); if (signature != null && signature.isNotEmpty) body["${baseKey}image"] = signature; @@ -51,6 +57,8 @@ class DeviceTransferInfo { client = Hospital.fromHospital(old.client); department = Department.fromDepartment(old.department); workingHours = old.workingHours; + startDate = old.startDate; + endDate = old.endDate; travelingHours = old.travelingHours; comment = old.comment; if (withSignature) signature = old.signature; @@ -60,6 +68,8 @@ class DeviceTransferInfo { factory DeviceTransferInfo.fromJson(Map parsedJson, String key) { return DeviceTransferInfo( workingHours: parsedJson["${key}working_hours"], + startDate: parsedJson["${key}start_date"], + endDate: parsedJson["${key}end_date"], travelingHours: parsedJson["${key}travel_hours"], userName: parsedJson["${key}name"], signature: parsedJson["${key}image"], diff --git a/lib/models/engineer.dart b/lib/models/engineer.dart index 096dd316..ffedca72 100644 --- a/lib/models/engineer.dart +++ b/lib/models/engineer.dart @@ -8,8 +8,9 @@ class Engineer { }); factory Engineer.fromJson(Map parsedJson) { + if(parsedJson==null) return Engineer(); return Engineer( - id: parsedJson["userId"] ?? parsedJson["id"], + id: parsedJson["userId"] ?? parsedJson["id"], name: parsedJson["userName"] ?? parsedJson["name"], ); } diff --git a/lib/views/pages/device_transfer/update_device_transfer.dart b/lib/views/pages/device_transfer/update_device_transfer.dart index eaaafded..9b2c8033 100644 --- a/lib/views/pages/device_transfer/update_device_transfer.dart +++ b/lib/views/pages/device_transfer/update_device_transfer.dart @@ -25,6 +25,7 @@ import '../../widgets/date_and_time/time_picker.dart'; class UpdateDeviceTransfer extends StatefulWidget { final DeviceTransfer model; final bool isSender; + const UpdateDeviceTransfer({Key key, this.model, this.isSender}) : super(key: key); @override @@ -162,12 +163,12 @@ class _UpdateDeviceTransferState extends State { height: 8 * AppStyle.getScaleFactor(context), ), ADateTimePicker( - date: _deviceTransferProvider.startDate, + date: _formModel.startDate, from: DateTime.now().subtract(const Duration(days: 365)), to: DateTime.now().add(const Duration(days: 365)), onDateTimePicker: (date) { - _deviceTransferProvider.startDate = date; - _formModel.workingHours=((_deviceTransferProvider.endDate?.difference(_deviceTransferProvider.startDate)?.inMinutes ?? 0) / 60)?.toStringAsFixed(2)?.toString() ?? 0; + _formModel.startDate = date; + _formModel.workingHours = ((_formModel.endDate?.difference(_formModel.startDate)?.inMinutes ?? 0) / 60)?.toStringAsFixed(2)?.toString() ?? 0; setState(() {}); }, ), @@ -184,12 +185,12 @@ class _UpdateDeviceTransferState extends State { height: 8 * AppStyle.getScaleFactor(context), ), ADateTimePicker( - date: _deviceTransferProvider.endDate, + date: _formModel.endDate, from: DateTime.now().subtract(const Duration(days: 365)), to: DateTime.now().add(const Duration(days: 365)), onDateTimePicker: (date) { - _deviceTransferProvider.endDate = date; - _formModel.workingHours=((_deviceTransferProvider.endDate?.difference(_deviceTransferProvider.startDate)?.inMinutes ?? 0) / 60)?.toStringAsFixed(2)?.toString() ?? 0; + _formModel.endDate = date; + _formModel.workingHours = ((_formModel.endDate?.difference(_formModel.startDate)?.inMinutes ?? 0) / 60)?.toStringAsFixed(2)?.toString() ?? 0; setState(() {}); }, ), @@ -198,12 +199,13 @@ class _UpdateDeviceTransferState extends State { ), ], ), + const SizedBox(height: 4), + ASubTitle(_subtitle.workingHours), + const SizedBox(height: 4), ATextFormField( initialValue: null, textAlign: TextAlign.center, - hintText: _deviceTransferProvider.startDate == null - ? "0" - : ((_deviceTransferProvider.endDate?.difference(_deviceTransferProvider.startDate)?.inMinutes ?? 0) / 60)?.toStringAsFixed(2)?.toString() ?? "0", + hintText: _formModel.startDate == null ? "0" : ((_formModel.endDate?.difference(_formModel.startDate)?.inMinutes ?? 0) / 60)?.toStringAsFixed(2)?.toString() ?? "0", enable: false, style: Theme.of(context).textTheme.subtitle1, //validator: (value) => Validator.isNumeric(value) ? null : _subtitle.requiredWord, diff --git a/lib/views/pages/user/requests/report/create_service_report.dart b/lib/views/pages/user/requests/report/create_service_report.dart index ad6647e6..d94ddb69 100644 --- a/lib/views/pages/user/requests/report/create_service_report.dart +++ b/lib/views/pages/user/requests/report/create_service_report.dart @@ -94,7 +94,7 @@ class _CreateServiceReportState extends State with TickerPr _isLoading = true; setState(() {}); _callRequestForWorkOrder = await _serviceRequestsProvider.getCallRequestForWorkOrder(callId: widget.request.id); - _serviceReport.engineer = Engineer.fromJson(_callRequestForWorkOrder.assignedEmployee?.toJson()); + _serviceReport.engineer = Engineer.fromJson(_callRequestForWorkOrder?.assignedEmployee?.toJson()); await _assetTypeProvider.getTypes(user: _userProvider.user, host: _settingProvider.host); _isLoading = false; setState(() {});