Enhancements

main_design2.0
zaid_daoud 2 years ago
parent 03926a1fd1
commit af17525c3c

@ -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;

@ -101,11 +101,12 @@ class _AppTextFormFieldState extends State<AppTextFormField> {
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 ?? "",

@ -15,6 +15,7 @@ class SingleItemDropDownMenu<T extends Base, X extends LoadingListNotifier> exte
final bool enabled;
final List<T> 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<T extends Base, X extends LoadingListNotifier> exte
this.initialValue,
this.enabled = true,
this.staticData,
this.backgroundColor,
}) : super(key: key);
@override
@ -99,7 +101,7 @@ class _SingleItemDropDownMenuState<T extends Base, X extends LoadingListNotifier
? AppColor.neutral60
: (widget.enabled == false || isEmpty)
? AppColor.neutral40
: Theme.of(context).cardColor,
: widget.backgroundColor ?? Theme.of(context).cardColor,
borderRadius: BorderRadius.circular(10),
boxShadow: [BoxShadow(color: Colors.black.withOpacity(0.05), blurRadius: 10)],
),

@ -113,7 +113,7 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
}
_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<CreateSubWorkOrderPage> {
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,

@ -237,7 +237,7 @@ class _CreateServiceReportState extends State<CreateServiceReport> 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,

@ -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<EditServiceReport> 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<EditServiceReport> 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,

@ -62,6 +62,7 @@ class _PartNoButtonState extends State<PartNoButton> {
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<PartNoButton> {
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<PartNoButton> {
32.width,
"trash".toSvgAsset().onPress(() {
list.remove(list[index]);
if (widget.onAdd != null) widget.onAdd(list);
setState(() {});
}),
],

@ -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<AssistantEmployees, NullableLoadingProvider>(
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,
// ),
);
}
}

@ -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<Lookup, NullableLoadingProvider>(
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,
// ),
);
}
}

Loading…
Cancel
Save