diff --git a/lib/models/new_models/assistant_employee.dart b/lib/models/new_models/assistant_employee.dart index 8d1b4092..efdfebed 100644 --- a/lib/models/new_models/assistant_employee.dart +++ b/lib/models/new_models/assistant_employee.dart @@ -1,14 +1,17 @@ +import 'package:test_sa/models/base.dart'; import 'package:test_sa/models/new_models/assigned_employee.dart'; -class AssistantEmployees { +class AssistantEmployees extends Base { AssistantEmployees({ this.id, this.user, - }); + }) : super(name: user?.name, identifier: user?.id); AssistantEmployees.fromJson(dynamic json) { id = json['id']; user = json['user'] != null ? AssignedEmployee.fromJson(json['user']) : null; + name = user?.name; + identifier = user?.id; } num id; diff --git a/lib/new_views/common_widgets/app_text_form_field.dart b/lib/new_views/common_widgets/app_text_form_field.dart index 1db35075..1a645f83 100644 --- a/lib/new_views/common_widgets/app_text_form_field.dart +++ b/lib/new_views/common_widgets/app_text_form_field.dart @@ -101,11 +101,12 @@ class _AppTextFormFieldState extends State { constraints: const BoxConstraints(), suffixIconConstraints: const BoxConstraints(minWidth: 0), filled: true, - fillColor: widget.backgroundColor ?? context.isDark && (widget.enable == false) - ? AppColor.neutral60 - : (widget.enable == false) - ? AppColor.neutral40 - : Theme.of(context).cardColor, + fillColor: widget.backgroundColor ?? + (context.isDark && (widget.enable == false) + ? AppColor.neutral60 + : (widget.enable == false) + ? AppColor.neutral40 + : Theme.of(context).cardColor), errorStyle: AppTextStyle.tiny.copyWith(color: context.isDark ? AppColor.red50 : AppColor.red60), floatingLabelStyle: AppTextStyle.body1?.copyWith(fontWeight: FontWeight.w500, color: context.isDark ? null : AppColor.neutral20), hintText: widget.hintText ?? "", diff --git a/lib/new_views/common_widgets/single_item_drop_down_menu.dart b/lib/new_views/common_widgets/single_item_drop_down_menu.dart index 48d863f5..41f79e3b 100644 --- a/lib/new_views/common_widgets/single_item_drop_down_menu.dart +++ b/lib/new_views/common_widgets/single_item_drop_down_menu.dart @@ -15,6 +15,7 @@ class SingleItemDropDownMenu exte final bool enabled; final List staticData; final String title; + final Color backgroundColor; /// To use a static data (without calling API) /// just send [NullableLoadingProvider] as generic data type and fill the [staticData] @@ -26,6 +27,7 @@ class SingleItemDropDownMenu exte this.initialValue, this.enabled = true, this.staticData, + this.backgroundColor, }) : super(key: key); @override @@ -99,7 +101,7 @@ class _SingleItemDropDownMenuState { } _subWorkOrders.supplier ??= SupplierDetails(id: _subWorkOrders?.supplier?.id); } - _spareParts = _serviceReport.sparePartsWorkOrders.map((e) => e.sparePart).toList(); + _spareParts = _serviceReport?.sparePartsWorkOrders?.map((e) => e.sparePart)?.toList(); setState(() { _isLoading = false; }); @@ -303,7 +303,7 @@ class _CreateSubWorkOrderPageState extends State { assetId: widget.workOrder?.callRequest?.asset?.id, initialValue: (_subWorkOrders.assistantEmployees?.isNotEmpty ?? false) ? _subWorkOrders.assistantEmployees?.first : null, onSelect: (employee) { - _subWorkOrders.assistantEmployees = [employee.copyWith(id: 0)]; + _subWorkOrders.assistantEmployees = [employee?.copyWith(id: 0)]; }, ), 8.height, 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 3b817833..1c654f11 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 @@ -237,7 +237,7 @@ class _CreateServiceReportState extends State with TickerPr assetId: _serviceReport.callRequest?.asset?.id, initialValue: (_serviceReport.assistantEmployees?.isNotEmpty ?? false) ? _serviceReport.assistantEmployees?.first : null, onSelect: (employee) { - _serviceReport.assistantEmployees = [employee.copyWith(id: 0)]; + _serviceReport.assistantEmployees = [employee?.copyWith(id: 0)]; }, ), 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 1c8b984f..a15d62b6 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 @@ -1,5 +1,4 @@ import 'dart:convert'; -import 'dart:developer'; import 'dart:io'; import 'package:flutter/material.dart'; @@ -75,7 +74,6 @@ class _EditServiceReportState extends State with TickerProvid _isLoading = true; setState(() {}); _callRequestForWorkOrder = await _serviceRequestsProvider?.getCallRequestForWorkOrder(callId: widget.request.id); - log(_serviceReport.faultDescription?.toJson()?.toString()); _serviceReport.assignedEmployee = _callRequestForWorkOrder?.assignedEmployee; await _assetTypeProvider?.getTypes(user: _userProvider.user, host: _settingProvider.host); _isLoading = false; @@ -224,7 +222,7 @@ class _EditServiceReportState extends State with TickerProvid assetId: _serviceReport.callRequest?.asset?.id, initialValue: (_serviceReport.assistantEmployees?.isNotEmpty ?? false) ? _serviceReport.assistantEmployees?.first : null, onSelect: (employee) { - _serviceReport.assistantEmployees = [employee.copyWith(id: 0)]; + _serviceReport.assistantEmployees = [employee?.copyWith(id: 0)]; }, ), 8.height, diff --git a/lib/views/pages/user/requests/work_order/part_no_button.dart b/lib/views/pages/user/requests/work_order/part_no_button.dart index e7badb17..8a38eb3d 100644 --- a/lib/views/pages/user/requests/work_order/part_no_button.dart +++ b/lib/views/pages/user/requests/work_order/part_no_button.dart @@ -62,6 +62,7 @@ class _PartNoButtonState extends State { title: context.translation.partNo, staticData: widget.spareParts, initialValue: current?.sparePart, + backgroundColor: context.isDark ? AppColor.neutral20 : AppColor.neutral30, // initialValue: (_serviceReport.sparePartsWorkOrders?.isNotEmpty ?? false) ? _serviceReport.sparePartsWorkOrders.first.sparePart : null, onSelect: (part) { current = SparePartsWorkOrders(id: 0, sparePart: part, qty: 0); @@ -73,6 +74,7 @@ class _PartNoButtonState extends State { controller: widget.controller, labelText: context.translation.quantity, textInputType: TextInputType.number, + backgroundColor: context.isDark ? AppColor.neutral20 : AppColor.neutral30, enable: current != null, validator: (value) => value == null || value.isEmpty ? context.translation.requiredField @@ -117,6 +119,7 @@ class _PartNoButtonState extends State { 32.width, "trash".toSvgAsset().onPress(() { list.remove(list[index]); + if (widget.onAdd != null) widget.onAdd(list); setState(() {}); }), ], diff --git a/lib/views/widgets/status/report/service_report_assistant_employee_menu.dart b/lib/views/widgets/status/report/service_report_assistant_employee_menu.dart index 089bb0a6..258402d0 100644 --- a/lib/views/widgets/status/report/service_report_assistant_employee_menu.dart +++ b/lib/views/widgets/status/report/service_report_assistant_employee_menu.dart @@ -1,7 +1,8 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import 'package:test_sa/new_views/common_widgets/single_item_drop_down_menu.dart'; +import 'package:test_sa/providers/loading_list_notifier.dart'; import 'package:test_sa/views/widgets/loaders/loading_manager.dart'; -import 'package:test_sa/views/widgets/status/assistant_employee_menu.dart'; import '../../../../controllers/providers/api/status_drop_down/report/service_report_assistants_employee_provider.dart'; import '../../../../models/new_models/assistant_employee.dart'; @@ -24,12 +25,19 @@ class ServiceReportAssistantEmployeeMenu extends StatelessWidget { onRefresh: () async { await menuProvider.getAssistantEmployees(assetId); }, - child: AssistantEmployeeMenu( + child: SingleItemDropDownMenu( title: title, - initialStatus: initialValue, - statuses: menuProvider.assistantEmployees, + context: context, + initialValue: initialValue, + staticData: menuProvider.assistantEmployees, onSelect: onSelect, ), + // child: AssistantEmployeeMenu( + // title: title, + // initialStatus: initialValue, + // statuses: menuProvider.assistantEmployees, + // onSelect: onSelect, + // ), ); } } diff --git a/lib/views/widgets/status/report/service_report_last_call.dart b/lib/views/widgets/status/report/service_report_last_call.dart index 7b6b3117..6b478e41 100644 --- a/lib/views/widgets/status/report/service_report_last_call.dart +++ b/lib/views/widgets/status/report/service_report_last_call.dart @@ -1,10 +1,13 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_report_last_calls_provider.dart'; +import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/models/lookup.dart'; import 'package:test_sa/models/service_request/service_report.dart'; +import 'package:test_sa/new_views/common_widgets/single_item_drop_down_menu.dart'; import 'package:test_sa/views/widgets/loaders/loading_manager.dart'; -import 'package:test_sa/views/widgets/status/single_status_menu.dart'; + +import '../../../../providers/loading_list_notifier.dart'; class ServiceReportLastCallsMenu extends StatelessWidget { final Function(Lookup) onSelect; @@ -28,12 +31,19 @@ class ServiceReportLastCallsMenu extends StatelessWidget { parentId: parentId, ); }, - child: SingleStatusMenu( - title: title, - initialStatus: report?.calllastSituation, - statuses: menuProvider.calls, + child: SingleItemDropDownMenu( + context: context, + title: context.translation.callLastSituation, + staticData: menuProvider.calls, + initialValue: report?.calllastSituation, onSelect: onSelect, ), + // child: SingleStatusMenu( + // title: title, + // initialStatus: report?.calllastSituation, + // statuses: menuProvider.calls, + // onSelect: onSelect, + // ), ); } }