diff --git a/lib/modules/cm_module/views/components/activities_list_view.dart b/lib/modules/cm_module/views/components/activities_list_view.dart index fa580b32..300beeea 100644 --- a/lib/modules/cm_module/views/components/activities_list_view.dart +++ b/lib/modules/cm_module/views/components/activities_list_view.dart @@ -80,37 +80,7 @@ class _ActivitiesListViewState extends State { children: [ (activities.isEmpty && reOrderActivities.isEmpty) ? NoDataFound(message: context.translation.noDataFound).center.expanded - : - // : showReorderView - // ? ReorderableListView( - // padding: const EdgeInsets.all(16), - // children: [ - // for (int index = 0; index < reOrderActivities.length; index++) - // if (reOrderActivities[index].activityMaintenance != null) - // ReorderWidget( - // key: ValueKey(index), - // child: maintenanceActivityCard(requestDetailProvider: requestDetailProvider, userProvider: userProvider, context: context, activity: reOrderActivities[index]) - // .paddingOnly(top: 8, bottom: 8), - // ) - // else - // ReorderWidget( - // key: ValueKey(index), - // child: sparePartActivityCard(requestDetailProvider: requestDetailProvider, userProvider: userProvider, context: context, activity: reOrderActivities[index]) - // .paddingOnly(top: 8, bottom: 8), - // ) - // ], - // onReorder: (oldIndex, newIndex) { - // setState(() { - // if (oldIndex < newIndex) { - // newIndex -= 1; - // } - // final Activities item = reOrderActivities.removeAt(oldIndex); - // reOrderActivities.insert(newIndex, item); - // }); - // }).expanded - // : - - ListView.separated( + : ListView.separated( padding: const EdgeInsets.all(16), itemCount: activities.length, separatorBuilder: (czt, index) => 16.height, @@ -131,17 +101,6 @@ class _ActivitiesListViewState extends State { loading: requestDetailProvider.isLoading, disableButton: disableNewActivity, onPressed: () async { - // if (showReorderView) { - // // requestDetailProvider.currentWorkOrder!.data!.activities = reOrderActivities; - // List> data = []; - // for (int i = 0; i < reOrderActivities.length; i++) { - // data.add({"id": reOrderActivities[i].id, "orderNo": i}); - // } - // reOrderActivities = []; - // requestDetailProvider.reOrderActivities(workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, reOrderActivityDTOs: data); - // showReorderView = false; - // return; - // } ServiceRequestBottomSheet.activityTypeBottomSheet(context: context); }, )) @@ -152,6 +111,11 @@ class _ActivitiesListViewState extends State { } Widget sparePartActivityCard({required ServiceRequestDetailProvider requestDetailProvider, required UserProvider userProvider, required BuildContext context, required Activities activity}) { + bool showActionButtons = userProvider.user!.userID == requestDetailProvider.currentWorkOrder?.data?.assignedEmployee?.userId && + userProvider.user!.type == UsersTypes.engineer && + requestDetailProvider.currentWorkOrder?.data?.status?.value != 5 && + requestDetailProvider.currentWorkOrder?.data?.status?.value != 3; + return Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, @@ -167,10 +131,7 @@ class _ActivitiesListViewState extends State { backgroundColor: AppColor.primary10, ), // "drag_icon".toSvgAsset(height: 12, width: 23, color: AppColor.neutral160), - if (userProvider.user!.userID == requestDetailProvider.currentWorkOrder?.data?.assignedEmployee?.userId && - userProvider.user!.type == UsersTypes.engineer && - requestDetailProvider.currentWorkOrder?.data?.status?.value != 5 && - requestDetailProvider.currentWorkOrder?.data?.status?.value != 3) + if (showActionButtons) Row( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceBetween, @@ -225,10 +186,10 @@ class _ActivitiesListViewState extends State { ], ], ).toShadowContainer(context, padding: 12, showShadow: false).onPress(() { + if (showActionButtons) return; if (requestDetailProvider.isReadOnlyRequest) { editSparePartRequest(context: context, requestDetailProvider: requestDetailProvider, activity: activity); - } - else if(userProvider.user!.userID == requestDetailProvider.currentWorkOrder?.data?.assignedEmployee?.userId) { + } else if (userProvider.user!.userID == requestDetailProvider.currentWorkOrder?.data?.assignedEmployee?.userId) { requestDetailProvider.isReadOnlyRequest = true; editSparePartRequest(context: context, requestDetailProvider: requestDetailProvider, activity: activity); } @@ -239,6 +200,10 @@ class _ActivitiesListViewState extends State { double totalWorkingHours = activity.activityMaintenance?.activityMaintenanceTimers?.fold(0.0, (sum, item) => (sum ?? 0) + DateTime.parse(item.endTime!).difference(DateTime.parse(item.startTime!)).inSeconds) ?? 0; + bool showActionButtons = userProvider.user!.userID == requestDetailProvider.currentWorkOrder?.data?.assignedEmployee?.userId && + userProvider.user!.type == UsersTypes.engineer && + requestDetailProvider.currentWorkOrder?.data?.status?.value != 5 && + requestDetailProvider.currentWorkOrder?.data?.status?.value != 3; return Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, @@ -268,10 +233,7 @@ class _ActivitiesListViewState extends State { ), // "drag_icon".toSvgAsset(height: 12, width: 23, color: AppColor.neutral160), - if (userProvider.user!.userID == requestDetailProvider.currentWorkOrder?.data?.assignedEmployee?.userId && - userProvider.user!.type == UsersTypes.engineer && - requestDetailProvider.currentWorkOrder?.data?.status?.value != 5 && - requestDetailProvider.currentWorkOrder?.data?.status?.value != 3) + if (showActionButtons) Row( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceBetween, @@ -338,10 +300,10 @@ class _ActivitiesListViewState extends State { // ] ], ).toShadowContainer(context, padding: 12, showShadow: false).onPress(() { + if (showActionButtons) return; if (requestDetailProvider.isReadOnlyRequest) { editMaintenanceRequest(context: context, requestDetailProvider: requestDetailProvider, activity: activity); - } - else if(userProvider.user!.userID == requestDetailProvider.currentWorkOrder?.data?.assignedEmployee?.userId) { + } else if (userProvider.user!.userID == requestDetailProvider.currentWorkOrder?.data?.assignedEmployee?.userId) { requestDetailProvider.isReadOnlyRequest = true; editMaintenanceRequest(context: context, requestDetailProvider: requestDetailProvider, activity: activity); } @@ -399,7 +361,7 @@ class _ActivitiesListViewState extends State { if (activity.activityMaintenance?.supplier != null) { requestDetailProvider.activityMaintenanceHelperModel?.supplier?.suppPersons = await requestDetailProvider.getSupplierEngineerData(supplierName: activity.activityMaintenance!.supplier!.name!); } - requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel); + // requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel); // return; } catch (e) { print("Edit error $e"); diff --git a/lib/modules/cm_module/views/forms/maintenance_request/maintenance_request_main.dart b/lib/modules/cm_module/views/forms/maintenance_request/maintenance_request_main.dart index 8f858476..0dc286d8 100644 --- a/lib/modules/cm_module/views/forms/maintenance_request/maintenance_request_main.dart +++ b/lib/modules/cm_module/views/forms/maintenance_request/maintenance_request_main.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:fluttertoast/fluttertoast.dart'; import 'package:provider/provider.dart'; +import 'package:test_sa/controllers/api_routes/api_manager.dart'; import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_report_repair_location_provider.dart'; import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/int_extensions.dart'; @@ -168,14 +169,44 @@ class _MaintenanceRequestFormState extends State with Si Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.activityStatus}"); return false; } - if (model.activityMaintenanceTimerModel?.startAt == null) { - Fluttertoast.showToast(msg: "Working Hours Required"); - return false; - } - if (model.activityMaintenanceTimerModel?.endAt == null) { - Fluttertoast.showToast(msg: "Please Stop The Timer"); - return false; + + bool isTimerPickerEnable = ApiManager.instance.assetGroup?.enabledEngineerTimer ?? false; + + if (isTimerPickerEnable) { + if (model.activityMaintenanceTimerModel?.startAt == null && model.activityTimePicker == null) { + Fluttertoast.showToast(msg: "Working Hours Required"); + return false; + } + if (model.activityTimePicker == null) { + if (model.activityMaintenanceTimerModel?.startAt == null) { + Fluttertoast.showToast(msg: "Working Hours Required"); + return false; + } + if (model.activityMaintenanceTimerModel?.endAt == null) { + Fluttertoast.showToast(msg: "Please Stop The Timer"); + return false; + } + } + } else { + if (model.activityMaintenanceTimerModel?.startAt == null) { + Fluttertoast.showToast(msg: "Working Hours Required"); + return false; + } + if (model.activityMaintenanceTimerModel?.endAt == null) { + Fluttertoast.showToast(msg: "Please Stop The Timer"); + return false; + } } + + // + // if (model.activityMaintenanceTimerModel?.startAt == null) { + // Fluttertoast.showToast(msg: "Working Hours Required"); + // return false; + // } + // if (model.activityMaintenanceTimerModel?.endAt == null) { + // Fluttertoast.showToast(msg: "Please Stop The Timer"); + // return false; + // } // if (model.startTime == null) { // Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.startTime}"); // return false; diff --git a/lib/views/widgets/timer/app_timer.dart b/lib/views/widgets/timer/app_timer.dart index 441b3f85..e72757ca 100644 --- a/lib/views/widgets/timer/app_timer.dart +++ b/lib/views/widgets/timer/app_timer.dart @@ -166,7 +166,7 @@ class _AppTimerState extends State { backgroundColor: AppColor.neutral100, date: _pickerStartAt, from: widget.pickerFromDate, - enable: _tempPickerTimer == null, + enable: widget.enabled ? _tempPickerTimer == null:false, formatDateWithTime: true, onDatePicker: (selectedDate) { showTimePicker( @@ -185,7 +185,7 @@ class _AppTimerState extends State { label: context.translation.endTime, hideShadow: true, backgroundColor: AppColor.neutral100, - enable: _pickerStartAt != null, + enable: widget.enabled? _pickerStartAt != null:false, from:_pickerStartAt, date: _pickerEndAt, to: DateTime.now(),