pedido_csv.dart 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import 'package:csv/csv.dart';
  2. import 'package:path_provider/path_provider.dart';
  3. import 'dart:io';
  4. import 'package:path/path.dart'
  5. as p; // Importa path como p para evitar conflictos con otros nombres
  6. import '../../models/models.dart';
  7. Future<void> exportarPedidosACSV(List<Pedido> pedidos) async {
  8. List<List<dynamic>> rows = [
  9. [
  10. "Folio",
  11. "Cliente",
  12. "Producto",
  13. "Cantidad",
  14. "Precio Unitario",
  15. "Comentarios"
  16. ]
  17. ];
  18. for (var pedido in pedidos) {
  19. for (var producto in pedido.productos) {
  20. List<dynamic> row = [
  21. pedido.folio,
  22. pedido.nombreCliente,
  23. producto.producto?.nombre ?? 'No especificado',
  24. producto.cantidad,
  25. producto.producto?.precio ?? '0.0',
  26. pedido.comentarios ?? ''
  27. ];
  28. rows.add(row);
  29. }
  30. }
  31. String csv = const ListToCsvConverter().convert(rows);
  32. final directory =
  33. await getApplicationDocumentsDirectory(); // Obtiene el directorio de documentos
  34. final path = p.join(
  35. directory.path, 'pedidos.csv'); // Crea la ruta completa para el archivo
  36. final file = File(path);
  37. await file.writeAsString(csv); // Escribe el CSV en el archivo
  38. print('Archivo CSV guardado en $path');
  39. }