downloadExcel method
Downloads the filtered organizations data in Excel format.
Implementation
Future<void> downloadExcel() async {
try {
// Convert the list of OrganizationDetailsModel to a format suitable for Excel export
final List<Map<String, dynamic>> exportData = [];
for (final orgDetail in state.filteredOrganizationDetails) {
if (orgDetail.organizations.isEmpty) continue;
final org = orgDetail.organizations.first;
exportData.add({
'Organization ID': org.$id,
'Organization Name': org.data['name'] ?? 'Unknown',
'Device Count': orgDetail.deviceCount,
'Mother Count': orgDetail.motherCount,
'Test Count': orgDetail.testCount,
'Created On': org.data['createdOn'] ?? 'Unknown',
// Add more fields as needed
});
}
await ExcelExportService.exportOrganizationsToExcel(
context,
state.organizationDetails,
);
} catch (e) {
ScaffoldMessenger.of(
context,
).showSnackBar(SnackBar(content: Text("Failed to export: $e")));
}
}