From f3d52eef5289f36351d5da31322603747cf5a06a Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Tue, 10 Dec 2024 13:42:01 +0300 Subject: [PATCH] bug fixes --- android/app/proguard-rules.pro | 1 + lib/controllers/api_routes/urls.dart | 2 +- .../api/service_requests_provider.dart | 2 +- .../service_request_detail_provider.dart | 17 +++++++++++++++-- .../action_button/footer_action_button.dart | 2 +- .../views/components/asset_detail_card.dart | 6 ++++-- .../forms/asset_retired/asset_retired.dart | 4 ++++ 7 files changed, 27 insertions(+), 7 deletions(-) diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro index 27acb9d8..4fe6f5fc 100644 --- a/android/app/proguard-rules.pro +++ b/android/app/proguard-rules.pro @@ -27,6 +27,7 @@ -keep class com.huawei.updatesdk.**{*;} -keep class com.huawei.hms.**{*;} -keep class com.huawei.hms.flutter.** { *; } +-keep class com.builttoroam.devicecalendar.** { *; } # Prevent R8 from leaving Data object members always null -keepclassmembers,allowobfuscation class * { diff --git a/lib/controllers/api_routes/urls.dart b/lib/controllers/api_routes/urls.dart index 74822eb6..16961141 100644 --- a/lib/controllers/api_routes/urls.dart +++ b/lib/controllers/api_routes/urls.dart @@ -102,7 +102,7 @@ class URLs { static get getSystemNotifications => "$_baseUrl/SystemNotification/GetSystemNotifications"; // get static get getRecentNotifications => "$_baseUrl/return/user/recent/notification"; // get static get createRequest => "$_baseUrl/CallRequest/AddCallRequest"; // get - static get CheckIfAssetHasAnotherServiceRequest => "$_baseUrl/CallRequest/CheckIfAssetHasAnotherServiceRequest"; // get + static get CheckIfAssetHasAnotherServiceRequest => "$_baseUrl/ServiceRequest/CheckForPendingRequestForAsset"; // get static get createReport => "$_baseUrl/handle/create/report/issue"; // get static get updateRequestDate => "$_baseUrl/CallRequest/UpdateCallRequest"; // get diff --git a/lib/controllers/providers/api/service_requests_provider.dart b/lib/controllers/providers/api/service_requests_provider.dart index f46b21f7..2063dad5 100644 --- a/lib/controllers/providers/api/service_requests_provider.dart +++ b/lib/controllers/providers/api/service_requests_provider.dart @@ -268,7 +268,7 @@ class ServiceRequestsProvider extends ChangeNotifier { Future checkAssetPendingRequest(int assetId) async { Response response; try { - response = await ApiManager.instance.get(URLs.CheckIfAssetHasAnotherServiceRequest + "?assetId=$assetId"); + response = await ApiManager.instance.post(URLs.CheckIfAssetHasAnotherServiceRequest + "?assetId=$assetId",body: {}); stateCode = response.statusCode; if (response.statusCode >= 200 && response.statusCode < 300) {} return PendingAssetServiceRequest.fromJson(json.decode(response.body)["data"]); diff --git a/lib/service_request_latest/service_request_detail_provider.dart b/lib/service_request_latest/service_request_detail_provider.dart index 87a95b0a..90da16a5 100644 --- a/lib/service_request_latest/service_request_detail_provider.dart +++ b/lib/service_request_latest/service_request_detail_provider.dart @@ -35,12 +35,18 @@ class ServiceRequestDetailProvider extends ChangeNotifier { notifyListeners(); } + bool refreshTimer = true; + void startTimer() { if (isTimerRunning) return; resetTimer(); + markedAsFixed = false; timer = Timer.periodic(const Duration(seconds: 1), (Timer t) { timerStartTime = timerStartTime.add(const Duration(seconds: 1)); - notifyListeners(); // Notify UI when time is updated + if (refreshTimer) { + notifyListeners(); + } + // Notify UI when time is updated }); isTimerRunning = true; notifyListeners(); // Notify UI when timer starts @@ -50,7 +56,9 @@ class ServiceRequestDetailProvider extends ChangeNotifier { resetTimer(); timer?.cancel(); isTimerRunning = false; - engineerStopTimer(); + if (!markedAsFixed) { + engineerStopTimer(); + } notifyListeners(); // Notify UI when timer stops } @@ -393,6 +401,8 @@ class ServiceRequestDetailProvider extends ChangeNotifier { } } + bool markedAsFixed = false; + //engineerMarkAsFixed...... Future engineerMarkAsFixed({required int workOrderId, required String feedback}) async { Response response; @@ -404,6 +414,8 @@ class ServiceRequestDetailProvider extends ChangeNotifier { stateCode = response.statusCode; if (response.statusCode >= 200 && response.statusCode < 300) { currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); + markedAsFixed = true; + stopTimer(); } isLoading = false; notifyListeners(); @@ -497,6 +509,7 @@ class ServiceRequestDetailProvider extends ChangeNotifier { return -1; } } + //assignEngineerToWorkOrder...... Future assignEngineerWorkOrder({required String workOrderId, required String engineerId}) async { try { diff --git a/lib/service_request_latest/views/components/action_button/footer_action_button.dart b/lib/service_request_latest/views/components/action_button/footer_action_button.dart index ae886a65..02570263 100644 --- a/lib/service_request_latest/views/components/action_button/footer_action_button.dart +++ b/lib/service_request_latest/views/components/action_button/footer_action_button.dart @@ -38,7 +38,7 @@ class FooterActionButton { {required WorkOrderNextStepEnum workOrderNextStepStatus, List activities = const [], required BuildContext context, required UserProvider userProvider}) { ServiceRequestDetailProvider requestDetailProvider = Provider.of(context, listen: false); - bool showMarkAsFixedButton = activities.isEmpty ? true : activities.any((object) => object.activityStatus!.name!.toLowerCase() == "fixed"); + bool showMarkAsFixedButton = activities.isEmpty ? false : activities.any((object) => object.activityStatus!.name!.toLowerCase() == "fixed"); if (userProvider.user?.type == UsersTypes.engineer) { switch (workOrderNextStepStatus) { case WorkOrderNextStepEnum.onlyView: diff --git a/lib/service_request_latest/views/components/asset_detail_card.dart b/lib/service_request_latest/views/components/asset_detail_card.dart index 9eb011ec..f86b30ad 100644 --- a/lib/service_request_latest/views/components/asset_detail_card.dart +++ b/lib/service_request_latest/views/components/asset_detail_card.dart @@ -34,13 +34,15 @@ class AssetDetailCard extends StatelessWidget { textColor: AppColor.white10, backgroundColor: AppColor.getEquipmentStatusColor(context, requestDetailProvider.engineerUpdateWorkOrderHelperModel!.equipmentStatus!.id ?? 0), ), - "edit_icon".toSvgAsset(height: 21, width: 21).onPress(() { - Navigator.push( + "edit_icon".toSvgAsset(height: 21, width: 21).onPress(() async{ + requestDetailProvider.refreshTimer = false; + await Navigator.push( context, MaterialPageRoute( builder: (context) => VerifyAssetDetails( isEdit: true, ))); + requestDetailProvider.refreshTimer = true; }), ]), 6.height, diff --git a/lib/service_request_latest/views/forms/asset_retired/asset_retired.dart b/lib/service_request_latest/views/forms/asset_retired/asset_retired.dart index 51ae882f..6a149c1a 100644 --- a/lib/service_request_latest/views/forms/asset_retired/asset_retired.dart +++ b/lib/service_request_latest/views/forms/asset_retired/asset_retired.dart @@ -83,6 +83,9 @@ class _AssetRetiredState extends State with TickerProviderStateMix onSelect: (value) { if (value != null) { requestDetailProvider.assetRetiredHelperModel?.retirmentReason = value; + setState(() { + + }); } }, ), @@ -124,6 +127,7 @@ class _AssetRetiredState extends State with TickerProviderStateMix int status = await requestDetailProvider.createActivityAssetToBeRetired(); if (status == 200) { Navigator.pop(context); + requestDetailProvider.stopTimer(); const SizedBox().flushBar(context: context, title: '', message: context.translation.assetRetirementRequestSubmittedSuccessfully); } },