diff --git a/lib/models/service_request/service_report.dart b/lib/models/service_request/service_report.dart index e0c50dde..1a41faa3 100644 --- a/lib/models/service_request/service_report.dart +++ b/lib/models/service_request/service_report.dart @@ -2,6 +2,7 @@ import 'dart:typed_data'; import 'package:flutter/cupertino.dart'; import 'package:fluttertoast/fluttertoast.dart'; +import 'package:test_sa/controllers/api_routes/urls.dart'; import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/models/lookup.dart'; import 'package:test_sa/models/service_request/spare_parts.dart'; @@ -115,6 +116,7 @@ class ServiceReport { if (json['attachmentsWorkOrder'] != null) { attachmentsWorkOrder = []; json['attachmentsWorkOrder'].forEach((v) { + v["name"] = URLs.getFileUrl(v["name"]); attachmentsWorkOrder.add(Attachment.fromJson(v)); }); } diff --git a/lib/views/pages/sub_workorder/create_sub_workorder_page.dart b/lib/views/pages/sub_workorder/create_sub_workorder_page.dart index 568e1b6a..b74d8cef 100644 --- a/lib/views/pages/sub_workorder/create_sub_workorder_page.dart +++ b/lib/views/pages/sub_workorder/create_sub_workorder_page.dart @@ -177,9 +177,29 @@ class _CreateSubWorkOrderPageState extends State { ADatePicker( label: context.translation.returnToService, date: DateTime.tryParse(_subWorkOrders.visitDate ?? ""), - onDatePicker: (date) { - _subWorkOrders.visitDate = date?.toIso8601String(); - setState(() {}); + formatDateWithTime: true, + onDatePicker: (selectedDate) { + if (selectedDate != null) { + showTimePicker( + context: context, + initialTime: TimeOfDay.now(), + ).then((selectedTime) { + if (selectedTime != null) { + DateTime selectedDateTime = DateTime( + selectedDate.year, + selectedDate.month, + selectedDate.day, + selectedTime.hour, + selectedTime.minute, + ); + if (selectedDateTime != null) { + setState(() { + _subWorkOrders.visitDate = selectedDateTime?.toIso8601String(); + }); + } + } + }); + } }, ), 8.height, diff --git a/lib/views/pages/user/requests/work_order/edit_service_report.dart b/lib/views/pages/user/requests/work_order/edit_service_report.dart index abef7791..d6731e9e 100644 --- a/lib/views/pages/user/requests/work_order/edit_service_report.dart +++ b/lib/views/pages/user/requests/work_order/edit_service_report.dart @@ -131,9 +131,30 @@ class _EditServiceReportState extends State with TickerProvid ADatePicker( label: context.translation.returnToService, date: DateTime.tryParse(_serviceReport.visitDate ?? ""), - onDatePicker: (date) { - _serviceReport.visitDate = date?.toIso8601String(); - setState(() {}); + formatDateWithTime: true, + onDatePicker: (selectedDate) { + + if (selectedDate != null) { + showTimePicker( + context: context, + initialTime: TimeOfDay.now(), + ).then((selectedTime) { + if (selectedTime != null) { + DateTime selectedDateTime = DateTime( + selectedDate.year, + selectedDate.month, + selectedDate.day, + selectedTime.hour, + selectedTime.minute, + ); + if (selectedDateTime != null) { + setState(() { + _serviceReport.visitDate = selectedDateTime?.toIso8601String(); + }); + } + } + }); + } }, ), 8.height, @@ -286,10 +307,10 @@ class _EditServiceReportState extends State with TickerProvid oldSignature: _serviceReport.engSignature, newSignature: _serviceReport.localEngSignature, onSaved: (signature) { - // if (signature == null || signature.isEmpty) { - // setState(() {}); - // return; - // } + if (signature == null || signature.isEmpty) { + setState(() {}); + return; + } _serviceReport.localEngSignature = signature; _serviceReport.engSignature = signature != null ? "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}" : null; }, @@ -300,10 +321,10 @@ class _EditServiceReportState extends State with TickerProvid oldSignature: _serviceReport.nurseSignature, newSignature: _serviceReport.localNurseSignature, onSaved: (signature) { - // if (signature == null || signature.isEmpty) { - // setState(() {}); - // return; - // } + if (signature == null || signature.isEmpty) { + setState(() {}); + return; + } _serviceReport.localNurseSignature = signature; _serviceReport.nurseSignature = signature != null ? "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}" : null; }, @@ -315,6 +336,7 @@ class _EditServiceReportState extends State with TickerProvid AppFilledButton( label: context.translation.updateRequest, onPressed: () async { + if ((!_formKey.currentState.validate()) || (!(await _serviceReport.validate(context)))) { setState(() {}); return; @@ -329,6 +351,7 @@ class _EditServiceReportState extends State with TickerProvid } catch (error) { print(error); } + await _serviceRequestsProvider.updateServiceReport(context, report: _serviceReport); }, ), diff --git a/lib/views/pages/user/requests/work_order/work_order_details_page.dart b/lib/views/pages/user/requests/work_order/work_order_details_page.dart index f7e57bf7..d8987a46 100644 --- a/lib/views/pages/user/requests/work_order/work_order_details_page.dart +++ b/lib/views/pages/user/requests/work_order/work_order_details_page.dart @@ -12,6 +12,7 @@ import 'package:test_sa/new_views/common_widgets/app_filled_button.dart'; import 'package:test_sa/new_views/common_widgets/default_app_bar.dart'; import 'package:test_sa/views/pages/sub_workorder/create_sub_workorder_page.dart'; import 'package:test_sa/views/pages/user/requests/work_order/update_service_report.dart'; +import 'package:test_sa/views/widgets/images/files_list.dart'; import 'package:test_sa/views/widgets/loaders/app_loading.dart'; import '../../../../../controllers/providers/api/user_provider.dart'; @@ -89,6 +90,11 @@ class WorkOrderDetailsPage extends StatelessWidget { Text('${context.translation.endDate}: ${workOrderDetails.endofWorkTime?.toServiceRequestDetailsFormat ?? "" ?? '' ?? ""}', style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20)), + if (workOrderDetails.attachmentsWorkOrder.isNotEmpty) ...[ + 8.height, + const Divider().defaultStyle(context), + FilesList(images: workOrderDetails.attachmentsWorkOrder.map((e) => e.name).toList()), + ], ], ).expanded, Column(