timer on device transfer,

main_design2.0
Sikander Saleem 2 years ago
parent 375a4eab84
commit 8079646728

@ -162,13 +162,14 @@ class _NewGasRefillRequestPageState extends State<NewGasRefillRequestPage> {
},
),
8.height,
AppFilledButton(
label: context.translation.add,
maxWidth: true,
textColor: Colors.white,
buttonColor: context.isDark ? AppColor.neutral60 : AppColor.neutral50,
onPressed: _add,
),
if (_gasModel.gazRefillDetails?.isEmpty ?? true)
AppFilledButton(
label: context.translation.add,
maxWidth: true,
textColor: Colors.white,
buttonColor: context.isDark ? AppColor.neutral60 : AppColor.neutral50,
onPressed: _add,
),
24.height,
ListView.builder(
shrinkWrap: true,

@ -53,7 +53,7 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
await Fluttertoast.showToast(msg: "Working Hours Required");
return false;
}
if ((widget.isSender && _formModel?.senderTimer?.endAt == null) || (!widget.isSender && _formModel?.receiverTimer?.startAt == null)) {
if ((widget.isSender && _formModel?.senderTimer?.endAt == null) || (!widget.isSender && _formModel?.receiverTimer?.startAt == null || isTimerRunning)) {
await Fluttertoast.showToast(msg: "Please Stop The Timer");
return false;
}
@ -83,6 +83,8 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
super.dispose();
}
bool isTimerRunning = false;
@override
Widget build(BuildContext context) {
_userProvider = Provider.of<UserProvider>(context);
@ -128,6 +130,9 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
label: context.translation.workingHours,
timer: widget.isSender ? _formModel.senderTimer : _formModel.receiverTimer,
enabled: widget.isSender ? _formModel.senderEndDate == null : _formModel.receiverEndDate == null,
timerProgress: (isRunning) {
isTimerRunning = isRunning;
},
onChange: (timer) async {
if (widget.isSender) {
_formModel.senderTimer = timer;

@ -13,6 +13,8 @@ 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/lookup.dart';
import 'package:test_sa/models/new_models/assigned_employee.dart';
import 'package:test_sa/models/new_models/assistant_employee.dart';
import 'package:test_sa/models/service_request/search_work_order.dart';
import 'package:test_sa/models/service_request/service_report.dart';
import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
@ -132,10 +134,12 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
@override
Widget build(BuildContext context) {
final user = Provider.of<UserProvider>(context).user;
final isCurrentAssigned = user.id != ((widget.workOrder.assistantEmployees?.isNotEmpty ?? false) ? widget.workOrder.assistantEmployees?.first?.user?.id : null);
final isCurrentAssigned = (user.userID != widget.workOrder.assignedEmployee?.id);
if (isCurrentAssigned) {
_subWorkOrders.assistantEmployees = [widget.workOrder.assistantEmployees?.first?.copyWith(id: 0)];
// _subWorkOrders.assistantEmployees = [widget.workOrder.assistantEmployees?.first?.copyWith(id: 0)];
_subWorkOrders.assistantEmployees = [AssistantEmployees(id: 0, user: AssignedEmployee(id: user.userID, name: user.username))];
}
print("isCurrentAssigned:$isCurrentAssigned:${_subWorkOrders.assistantEmployees?.length}");
if (_callRequestForWorkOrder == null) {
_partsProvider = Provider.of<PartsProvider>(context);
getAssetType();
@ -310,12 +314,14 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
ServiceReportAssistantEmployeeMenu(
title: context.translation.assignAssistant,
assetId: widget.workOrder?.callRequest?.asset?.id,
initialValue: isCurrentAssigned
? (widget.workOrder.assistantEmployees.first)
: (_subWorkOrders.assistantEmployees?.isNotEmpty ?? false)
? _subWorkOrders.assistantEmployees?.first
: null,
enabled: !isCurrentAssigned,
initialValue: (_subWorkOrders.assistantEmployees?.isNotEmpty ?? false) ? _subWorkOrders.assistantEmployees?.first : null,
// initialValue: !isCurrentAssigned
// ? (widget.workOrder.assistantEmployees?.first)
// : (_subWorkOrders.assistantEmployees?.isNotEmpty ?? false)
// ? _subWorkOrders.assistantEmployees?.first
// : null,
enable: user.userID == _subWorkOrders.assignedEmployee.id,
onSelect: (employee) {
if (employee == null) {
_subWorkOrders.assistantEmployees = [];

@ -204,7 +204,9 @@ class _CreateServiceReportState extends State<CreateServiceReport> with TickerPr
SingleItemDropDownMenu<Lookup, ServiceTypeProvider>(
context: context,
title: context.translation.serviceType,
onSelect: (value) {},
onSelect: (value) {
},
),
8.height,
ServiceReportLastCallsMenu(

@ -189,7 +189,9 @@ class _EditServiceReportState extends State<EditServiceReport> with TickerProvid
SingleItemDropDownMenu<Lookup, ServiceTypeProvider>(
context: context,
title: context.translation.serviceType,
onSelect: (value) {},
onSelect: (value) {
},
),
8.height,
ServiceReportLastCallsMenu(

@ -10,8 +10,9 @@ class AssistantEmployeeMenu extends StatefulWidget {
final AssistantEmployees initialStatus;
final Function(AssistantEmployees) onSelect;
final String title;
final bool enable;
const AssistantEmployeeMenu({Key key, this.statuses, this.title, this.onSelect, this.initialStatus}) : super(key: key);
const AssistantEmployeeMenu({Key key, this.statuses, this.title, this.onSelect, this.initialStatus, this.enable = true}) : super(key: key);
@override
_SingleAssistantEmployeeMenuState createState() => _SingleAssistantEmployeeMenuState();
@ -73,7 +74,12 @@ class _SingleAssistantEmployeeMenuState extends State<AssistantEmployeeMenu> {
child: Stack(
alignment: Alignment.center,
children: [
const PositionedDirectional(end: 0, child: Icon(Icons.keyboard_arrow_down_rounded)),
PositionedDirectional(
end: 0,
child: Icon(
Icons.keyboard_arrow_down_rounded,
color: widget.enable ? null : Colors.grey,
)),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
@ -96,18 +102,30 @@ class _SingleAssistantEmployeeMenuState extends State<AssistantEmployeeMenu> {
),
style: TextStyle(color: Theme.of(context).primaryColor),
underline: const SizedBox.shrink(),
onChanged: (AssistantEmployees newValue) {
setState(() {
_selectedStatus = newValue;
});
widget.onSelect(newValue);
},
onChanged: widget.enable
? (AssistantEmployees newValue) {
setState(() {
_selectedStatus = newValue;
});
widget.onSelect(newValue);
}
: null,
// onChanged: (AssistantEmployees newValue) {
// setState(() {
// _selectedStatus = newValue;
// });
// widget.onSelect(newValue);
// },
items: widget.statuses.map<DropdownMenuItem<AssistantEmployees>>((AssistantEmployees value) {
return DropdownMenuItem<AssistantEmployees>(
value: value,
child: Text(
value.user?.name ?? "NULL",
style: Theme.of(context).textTheme.bodyLarge,
style: Theme.of(context).textTheme.bodyLarge.copyWith(
color: widget.enable ? Theme.of(context).primaryColor : Colors.grey,
),
),
);
}).toList(),

@ -1,42 +1,23 @@
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/models/new_models/assistant_employee.dart';
import 'package:test_sa/models/service_request/search_work_order.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';
class ServiceReportAssistantEmployeeMenu extends StatefulWidget {
class ServiceReportAssistantEmployeeMenu extends StatelessWidget {
final Function(AssistantEmployees) onSelect;
final AssistantEmployees initialValue;
final String title;
final num assetId;
final bool enabled;
final bool enable;
const ServiceReportAssistantEmployeeMenu({Key key, this.enabled = true, @required this.onSelect, @required this.assetId, this.title, this.initialValue}) : super(key: key);
@override
State<ServiceReportAssistantEmployeeMenu> createState() => _ServiceReportAssistantEmployeeMenuState();
}
class _ServiceReportAssistantEmployeeMenuState extends State<ServiceReportAssistantEmployeeMenu> {
AssistantEmployees _initialValue;
@override
void initState() {
_initialValue = widget.initialValue;
super.initState();
}
@override
void didUpdateWidget(covariant ServiceReportAssistantEmployeeMenu oldWidget) {
if (widget.initialValue != oldWidget.initialValue) {
_initialValue = widget.initialValue;
setState(() {});
}
super.didUpdateWidget(oldWidget);
}
const ServiceReportAssistantEmployeeMenu({Key key, @required this.onSelect,this.title, this.initialValue, this.assetId, this.enable = true}) : super(key: key);
@override
Widget build(BuildContext context) {
@ -46,22 +27,87 @@ class _ServiceReportAssistantEmployeeMenuState extends State<ServiceReportAssist
isFailedLoading: menuProvider.assistantEmployees == null,
stateCode: menuProvider.stateCode,
onRefresh: () async {
await menuProvider.getAssistantEmployees(widget.assetId);
await menuProvider.getAssistantEmployees(assetId);
// menuProvider.setStateCode = null;
},
child: SingleItemDropDownMenu<AssistantEmployees, NullableLoadingProvider>(
title: widget.title,
context: context,
enabled: widget.enabled,
initialValue: _initialValue,
staticData: menuProvider.assistantEmployees,
onSelect: widget.onSelect,
child: AssistantEmployeeMenu(
initialStatus: initialValue,
title: title,
statuses: menuProvider.assistantEmployees,
onSelect: onSelect,
enable: enable,
),
// child: AssistantEmployeeMenu(
// title: title,
// initialStatus: initialValue,
// statuses: menuProvider.assistantEmployees,
// onSelect: onSelect,
// ),
);
}
}
// 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 '../../../../controllers/providers/api/status_drop_down/report/service_report_assistants_employee_provider.dart';
// import '../../../../models/new_models/assistant_employee.dart';
//
// class ServiceReportAssistantEmployeeMenu extends StatefulWidget {
// final Function(AssistantEmployees) onSelect;
// final AssistantEmployees initialValue;
// final String title;
// final num assetId;
// final bool enabled;
//
// const ServiceReportAssistantEmployeeMenu({Key key, this.enabled = true, @required this.onSelect, @required this.assetId, this.title, this.initialValue}) : super(key: key);
//
// @override
// State<ServiceReportAssistantEmployeeMenu> createState() => _ServiceReportAssistantEmployeeMenuState();
// }
//
// class _ServiceReportAssistantEmployeeMenuState extends State<ServiceReportAssistantEmployeeMenu> {
// AssistantEmployees _initialValue;
//
// @override
// void initState() {
// _initialValue = widget.initialValue;
// super.initState();
// }
//
// @override
// void didUpdateWidget(covariant ServiceReportAssistantEmployeeMenu oldWidget) {
// if (widget.initialValue != oldWidget.initialValue) {
// _initialValue = widget.initialValue;
// setState(() {});
// }
// super.didUpdateWidget(oldWidget);
// }
//
// @override
// Widget build(BuildContext context) {
// ServiceReportAssistantsEmployeeProvider menuProvider = Provider.of<ServiceReportAssistantsEmployeeProvider>(context);
// return LoadingManager(
// isLoading: menuProvider.isLoading,
// isFailedLoading: menuProvider.assistantEmployees == null,
// stateCode: menuProvider.stateCode,
// onRefresh: () async {
// await menuProvider.getAssistantEmployees(widget.assetId);
// },
// child: SingleItemDropDownMenu<AssistantEmployees, NullableLoadingProvider>(
// title: widget.title,
// context: context,
// enabled: widget.enabled,
// initialValue: _initialValue,
// staticData: menuProvider.assistantEmployees,
// onSelect: widget.onSelect,
// ),
// // child: AssistantEmployeeMenu(
// // title: title,
// // initialStatus: initialValue,
// // statuses: menuProvider.assistantEmployees,
// // onSelect: onSelect,
// // ),
// );
// }
// }

@ -17,12 +17,15 @@ class AppTimer extends StatefulWidget {
final bool enabled;
final String label;
final Function(bool) timerProgress;
const AppTimer({
Key key,
this.label,
this.timer,
this.onChange,
this.style,
this.timerProgress,
this.enabled = true,
}) : super(key: key);
@ -80,6 +83,7 @@ class _AppTimerState extends State<AppTimer> {
}
_loading = false;
setState(() {});
widget.timerProgress(_running);
}
@override

Loading…
Cancel
Save