From c6dcec4a3c84ded3cc29c818347223f40f50e6ca Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Tue, 29 Oct 2024 11:27:33 +0300 Subject: [PATCH 1/3] test --- ios/Podfile.lock | 331 ++++++++++++++++++ .../firebase_notification_manger.dart | 2 +- .../common_widgets/app_bottom_nav_bar.dart | 4 +- .../views/components/verify_arrival_view.dart | 2 - pubspec.yaml | 2 +- 5 files changed, 335 insertions(+), 6 deletions(-) create mode 100644 ios/Podfile.lock diff --git a/ios/Podfile.lock b/ios/Podfile.lock new file mode 100644 index 00000000..dd268e0a --- /dev/null +++ b/ios/Podfile.lock @@ -0,0 +1,331 @@ +PODS: + - audioplayers_darwin (0.0.1): + - Flutter + - device_calendar (0.0.1): + - Flutter + - DKImagePickerController/Core (4.3.9): + - DKImagePickerController/ImageDataManager + - DKImagePickerController/Resource + - DKImagePickerController/ImageDataManager (4.3.9) + - DKImagePickerController/PhotoGallery (4.3.9): + - DKImagePickerController/Core + - DKPhotoGallery + - DKImagePickerController/Resource (4.3.9) + - DKPhotoGallery (0.0.19): + - DKPhotoGallery/Core (= 0.0.19) + - DKPhotoGallery/Model (= 0.0.19) + - DKPhotoGallery/Preview (= 0.0.19) + - DKPhotoGallery/Resource (= 0.0.19) + - SDWebImage + - SwiftyGif + - DKPhotoGallery/Core (0.0.19): + - DKPhotoGallery/Model + - DKPhotoGallery/Preview + - SDWebImage + - SwiftyGif + - DKPhotoGallery/Model (0.0.19): + - SDWebImage + - SwiftyGif + - DKPhotoGallery/Preview (0.0.19): + - DKPhotoGallery/Model + - DKPhotoGallery/Resource + - SDWebImage + - SwiftyGif + - DKPhotoGallery/Resource (0.0.19): + - SDWebImage + - SwiftyGif + - file_picker (0.0.1): + - DKImagePickerController/PhotoGallery + - Flutter + - Firebase/CoreOnly (11.2.0): + - FirebaseCore (= 11.2.0) + - Firebase/Messaging (11.2.0): + - Firebase/CoreOnly + - FirebaseMessaging (~> 11.2.0) + - firebase_core (3.6.0): + - Firebase/CoreOnly (= 11.2.0) + - Flutter + - firebase_messaging (15.1.3): + - Firebase/Messaging (= 11.2.0) + - firebase_core + - Flutter + - FirebaseCore (11.2.0): + - FirebaseCoreInternal (~> 11.0) + - GoogleUtilities/Environment (~> 8.0) + - GoogleUtilities/Logger (~> 8.0) + - FirebaseCoreInternal (11.4.2): + - "GoogleUtilities/NSData+zlib (~> 8.0)" + - FirebaseInstallations (11.4.0): + - FirebaseCore (~> 11.0) + - GoogleUtilities/Environment (~> 8.0) + - GoogleUtilities/UserDefaults (~> 8.0) + - PromisesObjC (~> 2.4) + - FirebaseMessaging (11.2.0): + - FirebaseCore (~> 11.0) + - FirebaseInstallations (~> 11.0) + - GoogleDataTransport (~> 10.0) + - GoogleUtilities/AppDelegateSwizzler (~> 8.0) + - GoogleUtilities/Environment (~> 8.0) + - GoogleUtilities/Reachability (~> 8.0) + - GoogleUtilities/UserDefaults (~> 8.0) + - nanopb (~> 3.30910.0) + - Flutter (1.0.0) + - flutter_keyboard_visibility (0.0.1): + - Flutter + - flutter_local_notifications (0.0.1): + - Flutter + - flutter_sound (9.6.0): + - Flutter + - flutter_sound_core (= 9.6.0) + - flutter_sound_core (9.6.0) + - flutter_timezone (0.0.1): + - Flutter + - fluttertoast (0.0.2): + - Flutter + - Toast + - FMDB (2.7.12): + - FMDB/standard (= 2.7.12) + - FMDB/Core (2.7.12) + - FMDB/standard (2.7.12): + - FMDB/Core + - GoogleDataTransport (10.1.0): + - nanopb (~> 3.30910.0) + - PromisesObjC (~> 2.4) + - GoogleUtilities/AppDelegateSwizzler (8.0.2): + - GoogleUtilities/Environment + - GoogleUtilities/Logger + - GoogleUtilities/Network + - GoogleUtilities/Privacy + - GoogleUtilities/Environment (8.0.2): + - GoogleUtilities/Privacy + - GoogleUtilities/Logger (8.0.2): + - GoogleUtilities/Environment + - GoogleUtilities/Privacy + - GoogleUtilities/Network (8.0.2): + - GoogleUtilities/Logger + - "GoogleUtilities/NSData+zlib" + - GoogleUtilities/Privacy + - GoogleUtilities/Reachability + - "GoogleUtilities/NSData+zlib (8.0.2)": + - GoogleUtilities/Privacy + - GoogleUtilities/Privacy (8.0.2) + - GoogleUtilities/Reachability (8.0.2): + - GoogleUtilities/Logger + - GoogleUtilities/Privacy + - GoogleUtilities/UserDefaults (8.0.2): + - GoogleUtilities/Logger + - GoogleUtilities/Privacy + - image_cropper (0.0.4): + - Flutter + - TOCropViewController (~> 2.7.4) + - image_picker_ios (0.0.1): + - Flutter + - local_auth_darwin (0.0.1): + - Flutter + - FlutterMacOS + - MTBBarcodeScanner (5.0.11) + - nanopb (3.30910.0): + - nanopb/decode (= 3.30910.0) + - nanopb/encode (= 3.30910.0) + - nanopb/decode (3.30910.0) + - nanopb/encode (3.30910.0) + - open_file_ios (0.0.1): + - Flutter + - package_info (0.0.1): + - Flutter + - path_provider_foundation (0.0.1): + - Flutter + - FlutterMacOS + - permission_handler_apple (9.3.0): + - Flutter + - pointer_interceptor_ios (0.0.1): + - Flutter + - PromisesObjC (2.4.0) + - qr_code_scanner (0.2.0): + - Flutter + - MTBBarcodeScanner + - record_mp3_plus (1.0.0): + - Flutter + - rive_common (0.0.1): + - Flutter + - SDWebImage (5.19.7): + - SDWebImage/Core (= 5.19.7) + - SDWebImage/Core (5.19.7) + - share (0.0.1): + - Flutter + - shared_preferences_foundation (0.0.1): + - Flutter + - FlutterMacOS + - speech_to_text (0.0.1): + - Flutter + - FlutterMacOS + - Try + - sqflite (0.0.3): + - Flutter + - FlutterMacOS + - SwiftyGif (5.4.5) + - Toast (4.1.1) + - TOCropViewController (2.7.4) + - Try (2.1.1) + - url_launcher_ios (0.0.1): + - Flutter + +DEPENDENCIES: + - audioplayers_darwin (from `.symlinks/plugins/audioplayers_darwin/ios`) + - device_calendar (from `.symlinks/plugins/device_calendar/ios`) + - file_picker (from `.symlinks/plugins/file_picker/ios`) + - firebase_core (from `.symlinks/plugins/firebase_core/ios`) + - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) + - Flutter (from `Flutter`) + - flutter_keyboard_visibility (from `.symlinks/plugins/flutter_keyboard_visibility/ios`) + - flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`) + - flutter_sound (from `.symlinks/plugins/flutter_sound/ios`) + - flutter_timezone (from `.symlinks/plugins/flutter_timezone/ios`) + - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) + - FMDB + - image_cropper (from `.symlinks/plugins/image_cropper/ios`) + - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) + - local_auth_darwin (from `.symlinks/plugins/local_auth_darwin/darwin`) + - open_file_ios (from `.symlinks/plugins/open_file_ios/ios`) + - package_info (from `.symlinks/plugins/package_info/ios`) + - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) + - permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`) + - pointer_interceptor_ios (from `.symlinks/plugins/pointer_interceptor_ios/ios`) + - qr_code_scanner (from `.symlinks/plugins/qr_code_scanner/ios`) + - record_mp3_plus (from `.symlinks/plugins/record_mp3_plus/ios`) + - rive_common (from `.symlinks/plugins/rive_common/ios`) + - share (from `.symlinks/plugins/share/ios`) + - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) + - speech_to_text (from `.symlinks/plugins/speech_to_text/darwin`) + - sqflite (from `.symlinks/plugins/sqflite/darwin`) + - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) + +SPEC REPOS: + trunk: + - DKImagePickerController + - DKPhotoGallery + - Firebase + - FirebaseCore + - FirebaseCoreInternal + - FirebaseInstallations + - FirebaseMessaging + - flutter_sound_core + - FMDB + - GoogleDataTransport + - GoogleUtilities + - MTBBarcodeScanner + - nanopb + - PromisesObjC + - SDWebImage + - SwiftyGif + - Toast + - TOCropViewController + - Try + +EXTERNAL SOURCES: + audioplayers_darwin: + :path: ".symlinks/plugins/audioplayers_darwin/ios" + device_calendar: + :path: ".symlinks/plugins/device_calendar/ios" + file_picker: + :path: ".symlinks/plugins/file_picker/ios" + firebase_core: + :path: ".symlinks/plugins/firebase_core/ios" + firebase_messaging: + :path: ".symlinks/plugins/firebase_messaging/ios" + Flutter: + :path: Flutter + flutter_keyboard_visibility: + :path: ".symlinks/plugins/flutter_keyboard_visibility/ios" + flutter_local_notifications: + :path: ".symlinks/plugins/flutter_local_notifications/ios" + flutter_sound: + :path: ".symlinks/plugins/flutter_sound/ios" + flutter_timezone: + :path: ".symlinks/plugins/flutter_timezone/ios" + fluttertoast: + :path: ".symlinks/plugins/fluttertoast/ios" + image_cropper: + :path: ".symlinks/plugins/image_cropper/ios" + image_picker_ios: + :path: ".symlinks/plugins/image_picker_ios/ios" + local_auth_darwin: + :path: ".symlinks/plugins/local_auth_darwin/darwin" + open_file_ios: + :path: ".symlinks/plugins/open_file_ios/ios" + package_info: + :path: ".symlinks/plugins/package_info/ios" + path_provider_foundation: + :path: ".symlinks/plugins/path_provider_foundation/darwin" + permission_handler_apple: + :path: ".symlinks/plugins/permission_handler_apple/ios" + pointer_interceptor_ios: + :path: ".symlinks/plugins/pointer_interceptor_ios/ios" + qr_code_scanner: + :path: ".symlinks/plugins/qr_code_scanner/ios" + record_mp3_plus: + :path: ".symlinks/plugins/record_mp3_plus/ios" + rive_common: + :path: ".symlinks/plugins/rive_common/ios" + share: + :path: ".symlinks/plugins/share/ios" + shared_preferences_foundation: + :path: ".symlinks/plugins/shared_preferences_foundation/darwin" + speech_to_text: + :path: ".symlinks/plugins/speech_to_text/darwin" + sqflite: + :path: ".symlinks/plugins/sqflite/darwin" + url_launcher_ios: + :path: ".symlinks/plugins/url_launcher_ios/ios" + +SPEC CHECKSUMS: + audioplayers_darwin: 877d9a4d06331c5c374595e46e16453ac7eafa40 + device_calendar: 9cb33f88a02e19652ec7b8b122ca778f751b1f7b + DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c + DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60 + file_picker: 09aa5ec1ab24135ccd7a1621c46c84134bfd6655 + Firebase: 98e6bf5278170668a7983e12971a66b2cd57fc8c + firebase_core: 2bedc3136ec7c7b8561c6123ed0239387b53f2af + firebase_messaging: 15d114e1a41fc31e4fbabcd48d765a19eec94a38 + FirebaseCore: a282032ae9295c795714ded2ec9c522fc237f8da + FirebaseCoreInternal: 35731192cab10797b88411be84940d2beb33a238 + FirebaseInstallations: 6ef4a1c7eb2a61ee1f74727d7f6ce2e72acf1414 + FirebaseMessaging: c9ec7b90c399c7a6100297e9d16f8a27fc7f7152 + Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 + flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069 + flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086 + flutter_sound: dde9a913063b65a27ba8fdc2039036b99b136c79 + flutter_sound_core: 0c6eb9d5268adc70ff159b3d65fd3d98a82d3a27 + flutter_timezone: ffb07bdad3c6276af8dada0f11978d8a1f8a20bb + fluttertoast: 723e187574b149e68e63ca4d39b837586b903cfa + FMDB: 728731dd336af3936ce00f91d9d8495f5718a0e6 + GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 + GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d + image_cropper: 37d40f62177c101ff4c164906d259ea2c3aa70cf + image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1 + local_auth_darwin: 66e40372f1c29f383a314c738c7446e2f7fdadc3 + MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb + nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 + open_file_ios: 461db5853723763573e140de3193656f91990d9e + package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62 + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 + permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2 + pointer_interceptor_ios: 508241697ff0947f853c061945a8b822463947c1 + PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 + qr_code_scanner: bb67d64904c3b9658ada8c402e8b4d406d5d796e + record_mp3_plus: be7806da5b5ff9694f8069f401120853c89f3398 + rive_common: cbbac3192af00d7341f19dae2f26298e9e37d99e + SDWebImage: 8a6b7b160b4d710e2a22b6900e25301075c34cb3 + share: 0b2c3e82132f5888bccca3351c504d0003b3b410 + shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 + speech_to_text: 627d3fd2194770b51abb324ba45c2d39398f24a8 + sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec + SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4 + Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e + TOCropViewController: 80b8985ad794298fb69d3341de183f33d1853654 + Try: 5ef669ae832617b3cee58cb2c6f99fb767a4ff96 + url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe + +PODFILE CHECKSUM: d8654c27146ad2b7c852fbdd93ef1a3785d9310b + +COCOAPODS: 1.12.0 diff --git a/lib/controllers/notification/firebase_notification_manger.dart b/lib/controllers/notification/firebase_notification_manger.dart index 4d7cc0d2..98bb0e99 100644 --- a/lib/controllers/notification/firebase_notification_manger.dart +++ b/lib/controllers/notification/firebase_notification_manger.dart @@ -111,7 +111,7 @@ class FirebaseNotificationManger { static initialized(BuildContext context) async { - +//TOD0 add platform check here also if (!(await isGoogleServicesAvailable())) { var initialNotification = await h_push.Push.getInitialNotification(); if (initialNotification != null) { diff --git a/lib/new_views/common_widgets/app_bottom_nav_bar.dart b/lib/new_views/common_widgets/app_bottom_nav_bar.dart index cfca45d9..19833129 100644 --- a/lib/new_views/common_widgets/app_bottom_nav_bar.dart +++ b/lib/new_views/common_widgets/app_bottom_nav_bar.dart @@ -18,7 +18,7 @@ class AppBottomNavigationBar extends StatelessWidget { Widget build(BuildContext context) { bool isEngineer = (Provider.of(context, listen: false).user?.type) == UsersTypes.engineer; return Container( - height: 84.toScreenHeight, + // height: 84.toScreenHeight, decoration: BoxDecoration( color: AppColor.background(context), boxShadow: [boxShadowR14], @@ -47,7 +47,7 @@ class AppBottomNavigationBar extends StatelessWidget { icon: iconName .toSvgAsset( width: showLabel ? 26 : 38, - height: showLabel ? 26 : 38, + height: showLabel ? 26 : 38, color: showLabel || (showLabel && selectedIndex != 2) ? selectedIndex == index ? Theme.of(context).bottomNavigationBarTheme.selectedItemColor diff --git a/lib/service_request_latest/views/components/verify_arrival_view.dart b/lib/service_request_latest/views/components/verify_arrival_view.dart index fe312ef0..d6166073 100644 --- a/lib/service_request_latest/views/components/verify_arrival_view.dart +++ b/lib/service_request_latest/views/components/verify_arrival_view.dart @@ -233,8 +233,6 @@ class _VerifyArrivalViewState extends State { // backgroundColor: Colors.transparent, // builder: (context) => RequestApprovalBottomSheet(), // )); - print('value of arrived i got is ${isArrived}'); - // return ; if (requestDetailProvider.isVerifyArrivalBottomSheetOpen) { if (isArrived == null) { "Requester not confirmed you arrival".showToast; diff --git a/pubspec.yaml b/pubspec.yaml index eea0cbe9..4125a975 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -15,7 +15,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 1.3.0+12 +version: 1.3.0+13 environment: sdk: ">=3.5.0 <4.0.0" From e878881e5a5b211b1c84b6e794f69f99e6fb1254 Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Mon, 9 Dec 2024 16:10:59 +0300 Subject: [PATCH 2/3] request confirmation improvements. --- .../widgets/request_category_list.dart | 1 - .../my_request/all_requests_filter_page.dart | 4 +-- .../service_request_detail_provider.dart | 32 ++++++++----------- .../action_button/footer_action_button.dart | 2 +- .../service_request_bottomsheet.dart | 18 +++++------ .../asset_retired/verify_asset_detail.dart | 5 +-- .../widgets/e_signature/e_signature.dart | 2 +- lib/views/widgets/loaders/image_loader.dart | 5 +-- 8 files changed, 32 insertions(+), 37 deletions(-) diff --git a/lib/dashboard_latest/widgets/request_category_list.dart b/lib/dashboard_latest/widgets/request_category_list.dart index 446f1e97..c70903e9 100644 --- a/lib/dashboard_latest/widgets/request_category_list.dart +++ b/lib/dashboard_latest/widgets/request_category_list.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:test_sa/dashboard_latest/widgets/app_bar_widget.dart'; import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/models/new_models/dashboard_detail.dart'; diff --git a/lib/new_views/pages/land_page/my_request/all_requests_filter_page.dart b/lib/new_views/pages/land_page/my_request/all_requests_filter_page.dart index 15ac42f5..6ad8f9fb 100644 --- a/lib/new_views/pages/land_page/my_request/all_requests_filter_page.dart +++ b/lib/new_views/pages/land_page/my_request/all_requests_filter_page.dart @@ -133,7 +133,7 @@ class _AllRequestsFilterPageState extends State { ADatePicker( label: context.translation.from, from: DateTime(2000), - date: search!.startDate!, + date: search!.startDate, onDatePicker: (date) { setState(() { search!.startDate = date; @@ -144,7 +144,7 @@ class _AllRequestsFilterPageState extends State { ADatePicker( label: context.translation.to, from: DateTime(2000), - date: search!.endDate!, + date: search!.endDate, onDatePicker: (date) { setState(() { search!.endDate = date; diff --git a/lib/service_request_latest/service_request_detail_provider.dart b/lib/service_request_latest/service_request_detail_provider.dart index bd7f5958..87a95b0a 100644 --- a/lib/service_request_latest/service_request_detail_provider.dart +++ b/lib/service_request_latest/service_request_detail_provider.dart @@ -66,7 +66,6 @@ class ServiceRequestDetailProvider extends ChangeNotifier { bool _isArrivalLoading = false; bool _isVerifyArrivalBottomSheetOpen = false; - bool get isVerifyArrivalBottomSheetOpen => _isVerifyArrivalBottomSheetOpen; set isVerifyArrivalBottomSheetOpen(bool value) { @@ -123,7 +122,7 @@ class ServiceRequestDetailProvider extends ChangeNotifier { void updateNeedVisitHelperModel(NeedVisitHelperModel? value) { needVisitHelperModel = value; - log ("value:${value!.visitDate.toString()}"); + log("value:${value!.visitDate.toString()}"); notifyListeners(); } @@ -381,7 +380,7 @@ class ServiceRequestDetailProvider extends ChangeNotifier { stateCode = response.statusCode; if (response.statusCode >= 200 && response.statusCode < 300) { currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); - notifyListeners(); + notifyListeners(); } isLoading = false; notifyListeners(); @@ -440,7 +439,7 @@ class ServiceRequestDetailProvider extends ChangeNotifier { } //engineer Confirm Arrive...... - Future engineerConfirmArrival({required int workOrderId, required int verificationTypeId, String ?photoInfo, String ?otp, String? assetNo, String? workOrderCreatedById}) async { + Future engineerConfirmArrival({required int workOrderId, required int verificationTypeId, String? photoInfo, String? otp, String? assetNo, String? workOrderCreatedById}) async { Response response; try { //"workOrderCreatedById": "string" @@ -566,15 +565,13 @@ class ServiceRequestDetailProvider extends ChangeNotifier { //Nurse confirm arrival Future nurseConfirmEngineerArrival({required int workOrderId}) async { try { - Map body = { - "workOrderId": workOrderId - }; + Map body = {"workOrderId": workOrderId}; isLoading = true; notifyListeners(); final response = await ApiManager.instance.post(URLs.nurseConfirmEngineerArrivalUrl, body: body); stateCode = response.statusCode; if (response.statusCode >= 200 && response.statusCode < 300) { - currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); + currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); } isLoading = false; notifyListeners(); @@ -585,18 +582,17 @@ class ServiceRequestDetailProvider extends ChangeNotifier { notifyListeners(); return -1; } - }//Nurse confirm arrival + } //Nurse confirm arrival + Future nurseRejectEngineerArrival({required int workOrderId}) async { try { - Map body = { - "workOrderId": workOrderId - }; + Map body = {"workOrderId": workOrderId}; isLoading = true; notifyListeners(); final response = await ApiManager.instance.post(URLs.nurseRejectEngineerArrivedUrl, body: body); stateCode = response.statusCode; if (response.statusCode >= 200 && response.statusCode < 300) { - currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); + currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); } isLoading = false; notifyListeners(); @@ -610,25 +606,25 @@ class ServiceRequestDetailProvider extends ChangeNotifier { } //Nurse confirm close - Future nurseConfirm() async { + Future nurseConfirm() async { try { isLoading = true; notifyListeners(); final response = await ApiManager.instance.post(URLs.nurseConfirmUrl, body: nurseActionHelperModel!.toJson()); stateCode = response.statusCode; - CommonResponseModel commonResponseModel = CommonResponseModel(); + WorkOrderDetail? workOrderDetail; if (response.statusCode >= 200 && response.statusCode < 300) { - // commonResponseModel = CommonResponseModel.fromJson(json.decode(response.body)); + workOrderDetail = WorkOrderDetail.fromJson(json.decode(response.body)); } isLoading = false; notifyListeners(); - return commonResponseModel; + return workOrderDetail; } catch (e) { log("engineer accept [error] : $e"); isLoading = false; notifyListeners(); - return CommonResponseModel(); + return null; } } 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 400738ab..ae886a65 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.every((object) => object.activityStatus!.name!.toLowerCase() == "completed"); + bool showMarkAsFixedButton = activities.isEmpty ? true : 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/bottom_sheets/service_request_bottomsheet.dart b/lib/service_request_latest/views/components/bottom_sheets/service_request_bottomsheet.dart index ce023edc..f54cbe1c 100644 --- a/lib/service_request_latest/views/components/bottom_sheets/service_request_bottomsheet.dart +++ b/lib/service_request_latest/views/components/bottom_sheets/service_request_bottomsheet.dart @@ -15,6 +15,7 @@ import 'package:test_sa/models/helper_data_models/maintenance_request/activity_m import 'package:test_sa/models/helper_data_models/spare_part/activity_spare_part_model.dart'; import 'package:test_sa/models/helper_data_models/workorder/work_order_helper_models.dart'; import 'package:test_sa/models/lookup.dart'; +import 'package:test_sa/models/new_models/work_order_detail_model.dart'; import 'package:test_sa/new_views/common_widgets/app_lazy_loading.dart'; import 'package:test_sa/new_views/common_widgets/single_item_drop_down_menu.dart'; import 'package:test_sa/providers/service_request_providers/reject_reason_provider.dart'; @@ -306,8 +307,6 @@ class ServiceRequestBottomSheet { initialVisitReminderBottomSheet(context: context); } - - // }, ), @@ -1017,15 +1016,14 @@ class ServiceRequestBottomSheet { buttonColor: AppColor.green70, onPressed: () async { if (newSignature != null) { - requestDetailProvider.nurseActionHelperModel = NurseActionHelperModel( - workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, - signatureNurse: nurseSignature, - ); - requestDetailProvider.nurseConfirm(); - if (requestDetailProvider.currentWorkOrder!.data!.requestId != null) { - requestDetailProvider.getWorkOrderById(id: requestDetailProvider.currentWorkOrder!.data!.requestId!); + requestDetailProvider.nurseActionHelperModel = NurseActionHelperModel(workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, signatureNurse: nurseSignature); + WorkOrderDetail? data = await requestDetailProvider.nurseConfirm(); + if (data != null) { + if (requestDetailProvider.currentWorkOrder!.data!.requestId != null) { + requestDetailProvider.updateCurrentWorkOrder(data); + } + Navigator.pop(context); } - Navigator.pop(context); } else { context.translation.signaturesAreRequired.showToast; } diff --git a/lib/service_request_latest/views/forms/asset_retired/verify_asset_detail.dart b/lib/service_request_latest/views/forms/asset_retired/verify_asset_detail.dart index 0872b098..104e37ba 100644 --- a/lib/service_request_latest/views/forms/asset_retired/verify_asset_detail.dart +++ b/lib/service_request_latest/views/forms/asset_retired/verify_asset_detail.dart @@ -50,7 +50,7 @@ class _VerifyAssetDetailsState extends State with TickerProv @override void initState() { super.initState(); - assignValues(); + } Future getFaultDescription({required int? assetId}) async { @@ -64,7 +64,7 @@ class _VerifyAssetDetailsState extends State with TickerProv void assignValues() { // ServiceRequestDetailProvider requestDetailProvider = Provider.of(context, listen: false); - _requestDetailProvider = Provider.of(context, listen: false); + // _requestDetailProvider = Provider.of(context, listen: false); WorkOrderData currentWorkOrderData = _requestDetailProvider!.currentWorkOrder!.data!; _requestDetailProvider!.engineerUpdateWorkOrderHelperModel = EngineerUpdateWorkOrderHelperModel( workOrderId: currentWorkOrderData.requestId, @@ -104,6 +104,7 @@ class _VerifyAssetDetailsState extends State with TickerProv _equipmentStatusProvider!.getDate(); }); _reasonProvider?.serviceRequestId = _requestDetailProvider?.currentWorkOrder!.data!.requestId.toString(); + assignValues(); } return Scaffold( diff --git a/lib/views/widgets/e_signature/e_signature.dart b/lib/views/widgets/e_signature/e_signature.dart index 23bc5f30..3a88e54b 100644 --- a/lib/views/widgets/e_signature/e_signature.dart +++ b/lib/views/widgets/e_signature/e_signature.dart @@ -103,7 +103,7 @@ class _ESignatureState extends State { height: 135.toScreenHeight, width: MediaQuery.of(context).size.width, padding: const EdgeInsets.only(bottom: 8), - child: signature != null ? Image.memory(signature!) : ImageLoader(boxFit: BoxFit.contain, url: URLs.getFileUrl(widget.oldSignature)??''), + child: signature != null ? Image.memory(signature!) : ImageLoader(showDefaultIcon: true,boxFit: BoxFit.contain, url: URLs.getFileUrl(widget.oldSignature)??''), ) : AbsorbPointer( absorbing: !_editable, diff --git a/lib/views/widgets/loaders/image_loader.dart b/lib/views/widgets/loaders/image_loader.dart index 676a130a..eed5d473 100644 --- a/lib/views/widgets/loaders/image_loader.dart +++ b/lib/views/widgets/loaders/image_loader.dart @@ -8,8 +8,9 @@ class ImageLoader extends StatelessWidget { final Alignment? alignment; final double? width; final double? height; + final bool showDefaultIcon; - const ImageLoader({Key? key, required this.url, this.boxFit, this.color, this.alignment, this.width, this.height}) : super(key: key); + const ImageLoader({Key? key, required this.url, this.boxFit, this.color, this.alignment, this.width, this.height, this.showDefaultIcon = false}) : super(key: key); @override Widget build(BuildContext context) { @@ -20,7 +21,7 @@ class ImageLoader extends StatelessWidget { width: width, height: height, placeholder: (context, url) => const Center(child: CircularProgressIndicator()), - errorWidget: (context, url, error) => const Icon(Icons.broken_image_rounded), + errorWidget: (context, url, error) => Icon(showDefaultIcon ? Icons.image_outlined : Icons.broken_image_rounded), ); } } From 45a98b18e15acf927963cc2ca113502c3cb2a0e0 Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Mon, 9 Dec 2024 16:38:08 +0300 Subject: [PATCH 3/3] on category list was refreshing everytime, fixed. --- .../requests/request_paginated_listview.dart | 2 +- .../land_page/requests/service_request_item_view.dart | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/new_views/pages/land_page/requests/request_paginated_listview.dart b/lib/new_views/pages/land_page/requests/request_paginated_listview.dart index 7e3c5aec..5faf580f 100644 --- a/lib/new_views/pages/land_page/requests/request_paginated_listview.dart +++ b/lib/new_views/pages/land_page/requests/request_paginated_listview.dart @@ -49,7 +49,7 @@ class RequestPaginatedListview extends StatelessWidget { bool isPPMs = request.transactionNo == 4; if (isServiceRequest) { - return ServiceRequestItemView(requestData: request); + return ServiceRequestItemView(requestData: request,refreshData: false,); } else if (isGasRefill) { return GasRefillItemView(requestData: request); } else if (isPPMs) { diff --git a/lib/new_views/pages/land_page/requests/service_request_item_view.dart b/lib/new_views/pages/land_page/requests/service_request_item_view.dart index 4c2c297a..6b936f2e 100644 --- a/lib/new_views/pages/land_page/requests/service_request_item_view.dart +++ b/lib/new_views/pages/land_page/requests/service_request_item_view.dart @@ -1,7 +1,6 @@ //service request item page import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import 'package:test_sa/controllers/providers/api/user_provider.dart'; import 'package:test_sa/controllers/providers/settings/setting_provider.dart'; import 'package:test_sa/dashboard_latest/dashboard_provider.dart'; import 'package:test_sa/extensions/context_extension.dart'; @@ -10,7 +9,6 @@ import 'package:test_sa/extensions/string_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/models/all_requests_and_count_model.dart'; -import 'package:test_sa/models/enums/user_types.dart'; import 'package:test_sa/models/new_models/dashboard_detail.dart'; import 'package:test_sa/service_request_latest/views/service_request_detail_main_view.dart'; @@ -21,8 +19,9 @@ class ServiceRequestItemView extends StatelessWidget { final Data? requestData; final RequestsDetails? requestDetails; final bool showShadow; + final bool refreshData; - const ServiceRequestItemView({Key? key, this.requestData, this.requestDetails, this.showShadow = true}) : super(key: key); + const ServiceRequestItemView({Key? key, this.requestData, this.requestDetails, this.showShadow = true, this.refreshData = true}) : super(key: key); @override Widget build(BuildContext context) { @@ -77,9 +76,11 @@ class ServiceRequestItemView extends StatelessWidget { ], ), ], - ).toShadowContainer(context, withShadow: showShadow).onPress(() async{ + ).toShadowContainer(context, withShadow: showShadow).onPress(() async { await Navigator.of(context).push(MaterialPageRoute(builder: (_) => ServiceRequestDetailMain(requestId: requestData!.id!))); - Provider.of(context, listen: false).refreshDashboard(userType: Provider.of(context, listen: false).user!.type!, context: context); + if (refreshData) { + Provider.of(context, listen: false).refreshDashboard(userType: Provider.of(context, listen: false).user!.type!, context: context); + } }); } if (requestDetails != null) {