From 9f663df3cce393a4941613b664201f0b81aa8849 Mon Sep 17 00:00:00 2001 From: aamir-csol Date: Sun, 1 Mar 2026 13:48:29 +0300 Subject: [PATCH] QIPS-1205 --- lib/api/etqan_ovr_api_client.dart | 20 ++++++++++++++++---- lib/provider/etqan_ovr_provider.dart | 21 --------------------- lib/ui/etqan_ovr/etqan_ovr_home.dart | 2 +- lib/widgets/image_picker.dart | 4 ++-- 4 files changed, 19 insertions(+), 28 deletions(-) diff --git a/lib/api/etqan_ovr_api_client.dart b/lib/api/etqan_ovr_api_client.dart index 1018177..4435ec7 100644 --- a/lib/api/etqan_ovr_api_client.dart +++ b/lib/api/etqan_ovr_api_client.dart @@ -1,6 +1,7 @@ import 'dart:convert'; import 'package:flutter/foundation.dart'; +import 'package:intl/intl.dart'; import 'package:mohem_flutter_app/api/api_client.dart'; import 'package:mohem_flutter_app/app_state/app_state.dart'; import 'package:mohem_flutter_app/classes/consts.dart'; @@ -61,10 +62,21 @@ class EtqanApiClient { } if (responseData.isNotEmpty) { - for (EtqanGetEmployeeOvrRequestsResponse action in responseData) { - action.createdDate = action.createdDate?.split(" ")[0]; - } - responseData.sort((EtqanGetEmployeeOvrRequestsResponse a, EtqanGetEmployeeOvrRequestsResponse b) => (b.createdDate ?? '').compareTo(a.createdDate ?? '')); + responseData.sort((EtqanGetEmployeeOvrRequestsResponse a, EtqanGetEmployeeOvrRequestsResponse b) { + if (a.createdDate == null && b.createdDate == null) return 0; + if (a.createdDate == null) return 1; + if (b.createdDate == null) return -1; + + try { + // Parse dates in format "15-Feb-2026 05:24 PM" + DateFormat dateFormat = DateFormat("dd-MMM-yyyy hh:mm a"); + DateTime dateA = dateFormat.parse(a.createdDate!); + DateTime dateB = dateFormat.parse(b.createdDate!); + return dateB.compareTo(dateA); + } catch (e) { + return (b.createdDate ?? '').compareTo(a.createdDate ?? ''); + } + }); } return responseData; diff --git a/lib/provider/etqan_ovr_provider.dart b/lib/provider/etqan_ovr_provider.dart index deba5ba..6ac8cf7 100644 --- a/lib/provider/etqan_ovr_provider.dart +++ b/lib/provider/etqan_ovr_provider.dart @@ -112,17 +112,6 @@ class EtqanOvrProviderModel with ChangeNotifier, DiagnosticableTreeMixin { Utils.showLoading(context); getEtqanEmployeeRequestsList?.clear(); getEtqanEmployeeRequestsList = await EtqanApiClient().getEmployeeEtqanRequests(); - - // Sort by createdDate in descending order (newest first) - if (getEtqanEmployeeRequestsList != null && getEtqanEmployeeRequestsList!.isNotEmpty) { - getEtqanEmployeeRequestsList!.sort((a, b) { - if (a.createdDate == null && b.createdDate == null) return 0; - if (a.createdDate == null) return 1; - if (b.createdDate == null) return -1; - return b.createdDate!.compareTo(a.createdDate!); - }); - } - Utils.hideLoading(context); isLoading = false; notifyListeners(); @@ -203,16 +192,6 @@ class EtqanOvrProviderModel with ChangeNotifier, DiagnosticableTreeMixin { if (response != null) { getEtqanEmployeeRequestsList = await EtqanApiClient().getEmployeeEtqanRequests(); - // Sort by ticketNumber in descending order (newest first) - if (getEtqanEmployeeRequestsList != null && getEtqanEmployeeRequestsList!.isNotEmpty) { - getEtqanEmployeeRequestsList!.sort((a, b) { - if (a.ticketNumber == null && b.ticketNumber == null) return 0; - if (a.ticketNumber == null) return 1; - if (b.ticketNumber == null) return -1; - return b.ticketNumber!.compareTo(a.ticketNumber!); - }); - } - notifyListeners(); return response; } diff --git a/lib/ui/etqan_ovr/etqan_ovr_home.dart b/lib/ui/etqan_ovr/etqan_ovr_home.dart index 978f894..10c1306 100644 --- a/lib/ui/etqan_ovr/etqan_ovr_home.dart +++ b/lib/ui/etqan_ovr/etqan_ovr_home.dart @@ -69,7 +69,7 @@ class _EtqanOvrHomeState extends State { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ (data.ticketNumber ?? "").toText14(isBold: true, color: MyColors.darkTextColor), - Directionality(textDirection: TextDirection.ltr, child: (data.createdDate ?? "").toText12(color: MyColors.grey70Color)), + Directionality(textDirection: TextDirection.ltr, child: (data.createdDate!.split(" ").first ?? "").toText12(color: MyColors.grey70Color)), ], ), 8.height, diff --git a/lib/widgets/image_picker.dart b/lib/widgets/image_picker.dart index a5d346f..984d6ad 100644 --- a/lib/widgets/image_picker.dart +++ b/lib/widgets/image_picker.dart @@ -141,7 +141,7 @@ void galleryImageAndroid(Function(String, File) image) async { } void cameraImageAndroid(Function(String, File) image) async { - File _image = File(( await picker.pickMedia())?.path ?? ""); + File _image = File((await picker.pickImage(source: ImageSource.camera, imageQuality: 20))?.path ?? ""); String fileName = _image.path; var bytes = File(fileName).readAsBytesSync(); String base64Encode = base64.encode(bytes); @@ -159,7 +159,7 @@ class _BottomSheet extends StatelessWidget { Widget build(BuildContext context) { return Container( padding: const EdgeInsets.symmetric(vertical: 12.0), - decoration: BoxDecoration( borderRadius: const BorderRadius.only(topLeft: Radius.circular(16.0), topRight: Radius.circular(16.0))), + decoration: const BoxDecoration( borderRadius: BorderRadius.only(topLeft: Radius.circular(16.0), topRight: Radius.circular(16.0))), child: SafeArea( top: false, child: Column(