pedido_csv.dart 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import 'package:csv/csv.dart';
  2. import 'package:intl/intl.dart';
  3. import 'package:path_provider/path_provider.dart';
  4. import 'dart:io';
  5. import 'package:path/path.dart' as p;
  6. import 'package:yoshi_papas_app/models/pedido_model.dart';
  7. Future<void> exportarPedidosACSV(List<Pedido> pedidos, String fileName) async {
  8. List<List<dynamic>> rows = [
  9. [
  10. "Folio",
  11. "Cliente",
  12. "Producto",
  13. "Cantidad",
  14. "Precio Unitario",
  15. "Estado",
  16. "Fecha"
  17. ]
  18. ];
  19. for (var pedido in pedidos) {
  20. for (var producto in pedido.productos) {
  21. List<dynamic> row = [
  22. pedido.id,
  23. pedido.nombreCliente,
  24. producto.producto?.nombre ?? 'No especificado',
  25. producto.cantidad,
  26. producto.producto?.precio ?? '0.0',
  27. pedido.estatus,
  28. pedido.peticion ?? ''
  29. ];
  30. rows.add(row);
  31. }
  32. }
  33. String csv = const ListToCsvConverter().convert(rows);
  34. final directory = await getApplicationDocumentsDirectory();
  35. final path = p.join(directory.path, fileName);
  36. final file = File(path);
  37. await file.writeAsString(csv);
  38. print('Archivo CSV guardado en $path');
  39. }