From b5f444383653506c0eb6e2d37754d0527531ed57 Mon Sep 17 00:00:00 2001
From: Rodrigo
Date: Tue, 15 Oct 2024 20:44:28 -0300
Subject: [PATCH] Boton para descargar notas en pag de compras
---
app/GrupoDeCompra.php | 34 +++++++++++++++++++---
app/Http/Controllers/ComprasController.php | 6 ++++
resources/js/components/compras/Body.vue | 10 +++++++
routes/web.php | 1 +
4 files changed, 47 insertions(+), 4 deletions(-)
diff --git a/app/GrupoDeCompra.php b/app/GrupoDeCompra.php
index 33c8043..717c713 100644
--- a/app/GrupoDeCompra.php
+++ b/app/GrupoDeCompra.php
@@ -228,12 +228,38 @@ class GrupoDeCompra extends Model
$planilla = GrupoDeCompra::obtenerTemplateDeFilasVacias($gdcs->count());
$planilla = self::getPlanilla($gdcs, $planilla);
- // Guardar en un archivo .csv
+ // Guardar en un archivo .csv
try {
- $writer = Writer::createFromPath(resource_path('csv/exports/total-pedidos.csv'), 'w');
- $writer->insertAll($planilla);
+ $writer = Writer::createFromPath(resource_path('csv/exports/total-pedidos.csv'), 'w');
+ $writer->insertAll($planilla);
} catch (CannotInsertRecord $e) {
- var_export($e->getRecords());
+ var_export($e->getRecords());
+ }
+ }
+
+ public static function exportarProductosConNotasEnCSV() {
+ $gdcs = GrupoDeCompra::all();
+ foreach ($gdcs as $i => $gdc) {
+ $productos_en_pedido = DB::table('pedidos_aprobados')->where('grupo_de_compra_id', $gdc->id)->get()->keyBy('producto_id');
+ $pedidos = $gdc->pedidosAprobados();
+ foreach ($productos_en_pedido as $id => $producto_pedido) {
+ foreach ($pedidos as $pedido) {
+ $producto = $pedido->productos()->find($id);
+ if ($producto != null && $producto->requiere_notas) {
+ $planilla[$i+1][0] = $gdc->nombre;
+ $planilla[$i+1][1] = $producto->nombre;
+ $planilla[$i+1][2] = $producto->pivot->cantidad;
+ $planilla[$i+1][3] = $producto->pivot->notas;
+ }
+ }
+ }
+ }
+ // Guardar en un archivo .csv
+ try {
+ $writer = Writer::createFromPath(resource_path('csv/exports/pedidos-notas.csv'), 'w');
+ $writer->insertAll($planilla);
+ } catch (CannotInsertRecord $e) {
+ var_export($e->getRecords());
}
}
}
diff --git a/app/Http/Controllers/ComprasController.php b/app/Http/Controllers/ComprasController.php
index 5c7e3d1..e39eeda 100644
--- a/app/Http/Controllers/ComprasController.php
+++ b/app/Http/Controllers/ComprasController.php
@@ -15,6 +15,12 @@ class ComprasController
$file = resource_path('csv/exports/total-pedidos.csv');
return response()->download($file);
}
+
+ public function descargarNotas() {
+ GrupoDeCompra::exportarProductosConNotasEnCSV();
+ $file = resource_path('csv/exports/pedidos-notas.csv');
+ return response()->download($file);
+ }
public function show()
{
diff --git a/resources/js/components/compras/Body.vue b/resources/js/components/compras/Body.vue
index 6b0a468..07c3786 100644
--- a/resources/js/components/compras/Body.vue
+++ b/resources/js/components/compras/Body.vue
@@ -11,6 +11,16 @@
+
diff --git a/routes/web.php b/routes/web.php
index c2b0ea0..baaa801 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -81,4 +81,5 @@ Route::get('/compras', 'ComprasController@show')->name('compras_login.show');
Route::middleware(['compras'])->group( function() {
Route::get('/compras/pedidos', 'ComprasController@indexPedidos')->name('compras.pedidos');
Route::get('/compras/pedidos/descargar', 'ComprasController@descargarPedidos')->name('compras.pedidos.descargar');
+ Route::get('/compras/pedidos/notas', 'ComprasController@descargarNotas')->name('compras.pedidos.descargar');
});