QIPS-1205

etqan_ovr_integration
aamir-csol 2 weeks ago
parent a8f390d49f
commit 9f663df3cc

@ -1,6 +1,7 @@
import 'dart:convert'; import 'dart:convert';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:intl/intl.dart';
import 'package:mohem_flutter_app/api/api_client.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/app_state/app_state.dart';
import 'package:mohem_flutter_app/classes/consts.dart'; import 'package:mohem_flutter_app/classes/consts.dart';
@ -61,10 +62,21 @@ class EtqanApiClient {
} }
if (responseData.isNotEmpty) { if (responseData.isNotEmpty) {
for (EtqanGetEmployeeOvrRequestsResponse action in responseData) { responseData.sort((EtqanGetEmployeeOvrRequestsResponse a, EtqanGetEmployeeOvrRequestsResponse b) {
action.createdDate = action.createdDate?.split(" ")[0]; if (a.createdDate == null && b.createdDate == null) return 0;
} if (a.createdDate == null) return 1;
responseData.sort((EtqanGetEmployeeOvrRequestsResponse a, EtqanGetEmployeeOvrRequestsResponse b) => (b.createdDate ?? '').compareTo(a.createdDate ?? '')); 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; return responseData;

@ -112,17 +112,6 @@ class EtqanOvrProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
Utils.showLoading(context); Utils.showLoading(context);
getEtqanEmployeeRequestsList?.clear(); getEtqanEmployeeRequestsList?.clear();
getEtqanEmployeeRequestsList = await EtqanApiClient().getEmployeeEtqanRequests(); 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); Utils.hideLoading(context);
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
@ -203,16 +192,6 @@ class EtqanOvrProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
if (response != null) { if (response != null) {
getEtqanEmployeeRequestsList = await EtqanApiClient().getEmployeeEtqanRequests(); 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(); notifyListeners();
return response; return response;
} }

@ -69,7 +69,7 @@ class _EtqanOvrHomeState extends State<EtqanOvrHome> {
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[ children: <Widget>[
(data.ticketNumber ?? "").toText14(isBold: true, color: MyColors.darkTextColor), (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, 8.height,

@ -141,7 +141,7 @@ void galleryImageAndroid(Function(String, File) image) async {
} }
void cameraImageAndroid(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; String fileName = _image.path;
var bytes = File(fileName).readAsBytesSync(); var bytes = File(fileName).readAsBytesSync();
String base64Encode = base64.encode(bytes); String base64Encode = base64.encode(bytes);
@ -159,7 +159,7 @@ class _BottomSheet extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
padding: const EdgeInsets.symmetric(vertical: 12.0), 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( child: SafeArea(
top: false, top: false,
child: Column( child: Column(

Loading…
Cancel
Save