From 2ef4d77e4f92d2d4c5c51f67dc8c6f8aec247ab6 Mon Sep 17 00:00:00 2001 From: ale Date: Tue, 12 Aug 2025 23:42:36 -0300 Subject: [PATCH] Agregado metodo para exportar pedido de ollas a csv --- app/Helpers/PedidosExportHelper.php | 25 ++++++++++++++++++++++++ app/Http/Controllers/AdminController.php | 17 ++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/app/Helpers/PedidosExportHelper.php b/app/Helpers/PedidosExportHelper.php index c8a16dc..59f8d97 100644 --- a/app/Helpers/PedidosExportHelper.php +++ b/app/Helpers/PedidosExportHelper.php @@ -128,6 +128,31 @@ class PedidosExportHelper ); } + /** + * @throws InvalidArgument + * @throws CannotInsertRecord + * @throws Exception + */ + static public function pedidoOllasDeBarrio(GrupoDeCompra $grupo) + { + $filePath = "csv/exports/" . $grupo->nombre . "-ollas-" . now()->format('Y-m-d') . ".csv"; + $tipo_olla = self::getTipoId('olla'); + + $falsoBarrio = new GrupoDeCompra(['nombre' => 'Total']); + $falsoBarrio->id = $grupo->id; + $header = collect([$falsoBarrio]); + + self::exportarCSV( + $filePath, + $header, + self::generarContenidoCSV( + $header, + fn($grupoId) => "subpedidos.grupo_de_compra_id = $grupoId + AND subpedidos.tipo_pedido_id = $tipo_olla" + ), + ); + } + /** * @throws InvalidArgument * @throws CannotInsertRecord diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php index 5b788af..248668d 100644 --- a/app/Http/Controllers/AdminController.php +++ b/app/Http/Controllers/AdminController.php @@ -60,4 +60,21 @@ class AdminController extends Controller return response()->download($files[0]); } + + public function exportarPedidoOllasACSV(GrupoDeCompra $gdc) + { + try { + PedidosExportHelper::pedidoOllasDeBarrio($gdc); + } catch (Exception $e) { + return response()->json(['message' => $e->getMessage()]); + } + $pattern = storage_path('csv/exports/'. $gdc->nombre . '-*.csv'); + $files = glob($pattern); + + usort($files, function ($a, $b) { + return filemtime($b) <=> filemtime($a); + }); + + return response()->download($files[0]); + } }