downloadExcel method

Future<void> downloadExcel()

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")));
  }
}