diff --git a/lib/models/service_request/search_work_order.dart b/lib/models/service_request/search_work_order.dart index 216e1bee..f26aec6d 100644 --- a/lib/models/service_request/search_work_order.dart +++ b/lib/models/service_request/search_work_order.dart @@ -1,5 +1,6 @@ import 'dart:typed_data'; +import 'package:test_sa/models/device/asset.dart'; 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'; @@ -51,6 +52,8 @@ class SearchWorkOrder { this.woParentDto, this.timer, this.mrNumber, + this.loanAvailablity, + this.assetLoan }); SearchWorkOrder.fromJson(dynamic json) { @@ -116,6 +119,7 @@ class SearchWorkOrder { } engSignature = json['engSignature']; nurseSignature = json['nurseSignature']; + woParentDto = json['woParentDto'] != null ? WoParent.fromJson(json['woParentDto']) : null; } @@ -199,6 +203,10 @@ class SearchWorkOrder { TimerModel timer; String mrNumber; + Lookup loanAvailablity; + + AssetInfo assetLoan; + SearchWorkOrder copyWith({ num id, num parentWOId, @@ -234,6 +242,8 @@ class SearchWorkOrder { WoParent woParentDto, TimerModel timer, String mrNumber, + Lookup loanAvailablity, + AssetInfo assetLoan, }) => SearchWorkOrder( id: id ?? this.id, @@ -270,6 +280,8 @@ class SearchWorkOrder { woParentDto: woParentDto ?? this.woParentDto, timer: timer ?? this.timer, mrNumber: mrNumber ?? this.mrNumber, + loanAvailablity: loanAvailablity ?? this.loanAvailablity, + assetLoan: assetLoan ?? this.assetLoan, ); Map toJson() { @@ -342,6 +354,12 @@ class SearchWorkOrder { if (mrNumber != null) { map['mrNumber'] = mrNumber; } + if (loanAvailablity != null) { + map['loanAvailablity'] = loanAvailablity.toJson(); + } + if (assetLoan != null) { + map['assetLoan'] = assetLoan.toJson(); + } return map; } 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 046d04ef..62e6c115 100644 --- a/lib/views/pages/sub_workorder/create_sub_workorder_page.dart +++ b/lib/views/pages/sub_workorder/create_sub_workorder_page.dart @@ -12,6 +12,7 @@ import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart'; +import 'package:test_sa/models/device/asset.dart'; import 'package:test_sa/models/lookup.dart'; import 'package:test_sa/models/new_models/assigned_employee.dart'; import 'package:test_sa/models/new_models/assistant_employee.dart'; @@ -20,7 +21,9 @@ import 'package:test_sa/models/service_request/service_report.dart'; 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/providers/service_request_providers/equipment_status_provider.dart'; +import 'package:test_sa/providers/service_request_providers/loan_availability_provider.dart'; import 'package:test_sa/providers/work_order/vendor_provider.dart'; +import 'package:test_sa/views/widgets/equipment/pick_asset.dart'; import 'package:test_sa/views/widgets/images/multi_image_picker.dart'; import 'package:test_sa/views/widgets/loaders/app_loading.dart'; @@ -126,6 +129,8 @@ class _CreateSubWorkOrderPageState extends State { }); } + Asset loanAvailabilityAsset; + @override void dispose() { _workPreformedController?.dispose(); @@ -241,7 +246,9 @@ class _CreateSubWorkOrderPageState extends State { title: context.translation.reason, initialValue: _subWorkOrders.reason, onSelect: (value) { - _subWorkOrders.reason = value; + if(value!=null) { + _subWorkOrders.reason = value; + } }, ), 8.height, @@ -335,6 +342,37 @@ class _CreateSubWorkOrderPageState extends State { enable: false, controller: _workPreformedController, ), + 8.height, + SingleItemDropDownMenu( + context: context, + title: context.translation.loanAvailability, + initialValue: _subWorkOrders?.loanAvailablity, + onSelect: (status) { + if (status != null) { + setState(() { + _subWorkOrders.loanAvailablity = status; + if (_subWorkOrders.loanAvailablity.value != 1) { + loanAvailabilityAsset = null; + _subWorkOrders.assetLoan = null; + } + }); + } + }, + ), + if (_subWorkOrders?.loanAvailablity?.value == 1) 8.height, + if (_subWorkOrders?.loanAvailablity?.value == 1) + PickAsset( + device: loanAvailabilityAsset, // ?? _serviceReport.device, + onPickAsset: (asset) { + if (asset != null) { + _subWorkOrders.assetLoan = AssetInfo.fromJson(asset.toJson()); + setState(() { + loanAvailabilityAsset = asset; + }); + } + }, + ), + 8.height, ServiceReportAssistantEmployeeMenu( title: context.translation.assignAssistant, 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 090edb16..999388ed 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 @@ -79,8 +79,8 @@ class _CreateServiceReportState extends State with TickerPr super.initState(); if (context.mounted) { Provider.of(context, listen: false).reset(); - Provider.of(context, listen: false).reset(); - Provider.of(context, listen: false).serviceRequestId = widget.request.id; + Provider.of(context, listen: false).reset(); + Provider.of(context, listen: false).serviceRequestId = widget.request.id; } // _isLoading = true; } @@ -263,30 +263,36 @@ class _CreateServiceReportState extends State with TickerPr controller: _workPreformedController, ), 8.height, - // SingleItemDropDownMenu( - // context: context, - // title: context.translation.loanAvailability, - // initialValue: _serviceReport?.loanAvailablity, - // onSelect: (status) { - // setState(() { - // _serviceReport.loanAvailablity = status; - // if (_serviceReport.loanAvailablity.value != 1) { - // loanAvailabilityAsset = null; - // } - // }); - // }, - // ), - // if (_serviceReport?.loanAvailablity?.value == 1) 8.height, - // if (_serviceReport?.loanAvailablity?.value == 1) - // PickAsset( - // device: loanAvailabilityAsset,// ?? _serviceReport.device, - // onPickAsset: (asset) { - // setState(() { - // loanAvailabilityAsset = asset; - // }); - // }, - // ), - // 8.height, + SingleItemDropDownMenu( + context: context, + title: context.translation.loanAvailability, + initialValue: _serviceReport?.loanAvailablity, + onSelect: (status) { + if (status != null) { + setState(() { + _serviceReport.loanAvailablity = status; + if (_serviceReport.loanAvailablity.value != 1) { + loanAvailabilityAsset = null; + _serviceReport.assetLoan = null; + } + }); + } + }, + ), + if (_serviceReport?.loanAvailablity?.value == 1) 8.height, + if (_serviceReport?.loanAvailablity?.value == 1) + PickAsset( + device: loanAvailabilityAsset, // ?? _serviceReport.device, + onPickAsset: (asset) { + if (asset != null) { + _serviceReport.assetLoan = AssetInfo.fromJson(asset.toJson()); + setState(() { + loanAvailabilityAsset = asset; + }); + } + }, + ), + 8.height, ServiceReportAssistantEmployeeMenu( title: context.translation.assignAssistant, assetId: _serviceReport.callRequest?.asset?.id, 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 7bef0359..5a24ede4 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 @@ -11,9 +11,13 @@ import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart'; +import 'package:test_sa/models/device/asset.dart'; import 'package:test_sa/models/service_request/service_report.dart'; import 'package:test_sa/models/service_request/service_request.dart'; +import 'package:test_sa/new_views/common_widgets/asset_info_card.dart'; +import 'package:test_sa/providers/service_request_providers/loan_availability_provider.dart'; import 'package:test_sa/views/pages/user/requests/work_order/part_no_button.dart'; +import 'package:test_sa/views/widgets/equipment/pick_asset.dart'; import 'package:test_sa/views/widgets/loaders/loading_manager.dart'; import 'package:test_sa/views/widgets/status/report/service_report_last_call.dart'; @@ -63,6 +67,8 @@ class _EditServiceReportState extends State with TickerProvid ServiceStatusProvider _assetTypeProvider; CallRequest _callRequestForWorkOrder; + Asset loanAvailabilityAsset; + @override void initState() { _serviceReport = widget.report; @@ -247,6 +253,38 @@ class _EditServiceReportState extends State with TickerProvid controller: _workPreformedController, ), 8.height, + SingleItemDropDownMenu( + context: context, + title: context.translation.loanAvailability, + initialValue: _serviceReport?.loanAvailablity, + onSelect: (status) { + if (status != null) { + setState(() { + _serviceReport.loanAvailablity = status; + if (_serviceReport.loanAvailablity.value != 1) { + loanAvailabilityAsset = null; + _serviceReport.assetLoan = null; + } + }); + } + }, + ), + if (_serviceReport?.loanAvailablity?.value == 1) 8.height, + if (_serviceReport?.loanAvailablity?.value == 1) + PickAsset( + device: loanAvailabilityAsset, // ?? _serviceReport.device, + onPickAsset: (asset) { + if (asset != null) { + _serviceReport.assetLoan = AssetInfo.fromJson(asset.toJson()); + setState(() { + loanAvailabilityAsset = asset; + }); + } + }, + ), + if (_serviceReport.assetLoan != null && loanAvailabilityAsset == null) + Card(child: "${context.translation.assetNumber}: ${_serviceReport.assetLoan.assetNumber}".bodyText(context).paddingAll(16)), + 8.height, ServiceReportAssistantEmployeeMenu( title: context.translation.assignAssistant, assetId: _serviceReport.callRequest?.asset?.id,