diff --git a/lib/models/service_request/search_work_order.dart b/lib/models/service_request/search_work_order.dart index f3b37916..a3c54b30 100644 --- a/lib/models/service_request/search_work_order.dart +++ b/lib/models/service_request/search_work_order.dart @@ -1,3 +1,5 @@ +import 'dart:typed_data'; + import 'package:test_sa/models/lookup.dart'; import 'package:test_sa/models/service_request/service_report.dart'; import 'package:test_sa/models/service_request/spare_parts.dart'; @@ -189,7 +191,9 @@ class SearchWorkOrder { Lookup equipmentStatus; List suppEngineerWorkOrders; String engSignature; + Uint8List localEngSignature; String nurseSignature; + Uint8List localNurseSignature; WoParent woParentDto; TimerModel timer; String mrNumber; 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 45cd5069..eafc914b 100644 --- a/lib/views/pages/sub_workorder/create_sub_workorder_page.dart +++ b/lib/views/pages/sub_workorder/create_sub_workorder_page.dart @@ -25,6 +25,7 @@ import 'package:test_sa/views/widgets/loaders/app_loading.dart'; import '../../../attachment.dart'; import '../../../controllers/api_routes/http_status_manger.dart'; import '../../../controllers/providers/api/status_drop_down/report/service_report_fault_description_provider.dart'; +import '../../../controllers/providers/api/status_drop_down/report/service_report_last_calls_provider.dart'; import '../../../models/service_request/spare_parts.dart'; import '../../../models/service_request/supp_engineer_work_orders.dart'; import '../../../models/service_request/supplier_details.dart'; @@ -35,6 +36,7 @@ import '../../../new_views/common_widgets/single_item_drop_down_menu.dart'; import '../../../providers/loading_list_notifier.dart'; import '../../../providers/work_order/reason_provider.dart'; import '../../widgets/date_and_time/date_picker.dart'; +import '../../widgets/e_signature/e_signature.dart'; import '../../widgets/status/report/service_report_assistant_employee_menu.dart'; import '../../widgets/status/report/service_report_last_call.dart'; import '../../widgets/timer/app_timer.dart'; @@ -57,6 +59,7 @@ class _CreateSubWorkOrderPageState extends State { bool _isLoading = false; bool _showVendorFields = false; SuppEngineerWorkOrders engineer; + SupplierDetails initialSupplier; @override void initState() { @@ -79,6 +82,7 @@ class _CreateSubWorkOrderPageState extends State { CallRequest _callRequestForWorkOrder; Future getAssetType() async { + Provider.of(context, listen: false).reset(); final serviceRequestProvider = Provider.of(context); Provider.of(context, listen: false).reset(); assetTypesProvider = Provider.of(context, listen: false); @@ -88,6 +92,7 @@ class _CreateSubWorkOrderPageState extends State { _subWorkOrders.copyDetails(subWoDetails); _serviceReport.equipmentStatus = subWoDetails.equipmentStatus; _serviceReport.reason = subWoDetails.reason; + initialSupplier = subWoDetails.supplier; // _serviceReport.faultDescription = subWoDetails.faultDescription; } await assetTypesProvider.getTypes(); @@ -179,12 +184,14 @@ class _CreateSubWorkOrderPageState extends State { ServiceReportLastCallsMenu( report: _serviceReport, title: context.translation.callLastSituation, - parentId: widget.workOrder?.callRequest?.id?.toString(), + parentId: widget.workOrder?.id?.toString(), onSelect: (status) { _serviceReport.calllastSituation = status; if (checkVendorFieldsVisibility(status)) { _subWorkOrders.supplier ??= SupplierDetails(id: _subWorkOrders?.supplier?.id); engineer = null; + } else { + _subWorkOrders.supplier = initialSupplier; } if (status?.value == 12 || _subWorkOrders.calllastSituation?.value == 12) { _subWorkOrders.calllastSituation = status; @@ -195,6 +202,7 @@ class _CreateSubWorkOrderPageState extends State { setState(() {}); }, ), + if (_subWorkOrders.calllastSituation?.value == 12) const SizedBox(height: 8), if (_subWorkOrders.calllastSituation?.value == 12) AppTextFormField( labelText: context.translation.mrNumber, @@ -272,6 +280,20 @@ class _CreateSubWorkOrderPageState extends State { ), 8.height, MultiFilesPicker(label: context.translation.attachImage, files: _files), + 8.height, + ESignature( + title: context.translation.engSign, + oldSignature: _subWorkOrders.engSignature, + newSignature: _subWorkOrders.localEngSignature, + onSaved: (signature) { + // if (signature == null || signature.isEmpty) { + // setState(() {}); + // return; + // } + _subWorkOrders.localEngSignature = signature; + _subWorkOrders.engSignature = signature != null ? "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}" : null; + }, + ), ], ), ), diff --git a/lib/views/pages/user/requests/work_order/create_service_report.dart b/lib/views/pages/user/requests/work_order/create_service_report.dart index f1f5a641..b48bdba4 100644 --- a/lib/views/pages/user/requests/work_order/create_service_report.dart +++ b/lib/views/pages/user/requests/work_order/create_service_report.dart @@ -23,6 +23,7 @@ import 'package:test_sa/views/widgets/loaders/loading_manager.dart'; import 'package:test_sa/views/widgets/status/report/service_report_assistant_employee_menu.dart'; import 'package:test_sa/views/widgets/status/report/service_report_last_call.dart'; +import '../../../../../controllers/providers/api/status_drop_down/report/service_report_last_calls_provider.dart'; import '../../../../../controllers/providers/api/status_drop_down/report/service_types_provider.dart'; import '../../../../../models/lookup.dart'; import '../../../../../models/service_request/spare_parts.dart'; @@ -69,6 +70,9 @@ class _CreateServiceReportState extends State with TickerPr sparePartsWorkOrders: [], ); super.initState(); + if (context.mounted) { + Provider.of(context, listen: false).reset(); + } // _isLoading = true; }