From 47f635ba8a375ea5056d3e6f74b707b582262ad2 Mon Sep 17 00:00:00 2001 From: lizandrogd <77708265+lizandrogd@users.noreply.github.com> Date: Mon, 19 Jan 2026 20:54:03 -0500 Subject: [PATCH] Update GestionStockPage.php --- app/Filament/Pages/GestionStockPage.php | 32 ++++++++++++++++++++----- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/app/Filament/Pages/GestionStockPage.php b/app/Filament/Pages/GestionStockPage.php index ae86bbf..9cfeec6 100644 --- a/app/Filament/Pages/GestionStockPage.php +++ b/app/Filament/Pages/GestionStockPage.php @@ -45,12 +45,32 @@ class GestionStockPage extends Page 'categoria' => $producto->categoria->nombre ?? 'Sin categoría', 'stock_actual' => $producto->getStockEfectivo(), 'stock_minimo' => $producto->stock_minimo, - 'distribucion' => $producto->bodegas->map(function ($bodega) { - return [ - 'bodega' => $bodega->nombre, - 'stock' => $bodega->pivot->stock, - ]; - })->toArray(), + 'distribucion' => (function($producto) { + // Productos con variantes: agregar stock por bodegas a partir de variantes + if ($producto->variants()->exists()) { + $bodegaTotals = []; + foreach ($producto->variants as $variante) { + foreach ($variante->bodegas as $bodega) { + $id = $bodega->id; + if (! isset($bodegaTotals[$id])) { + $bodegaTotals[$id] = ['bodega' => $bodega->nombre, 'stock' => 0]; + } + $bodegaTotals[$id]['stock'] += (int) ($bodega->pivot->stock ?? 0); + } + } + + return array_values($bodegaTotals); + } + + // Productos sin variantes: información directa desde producto_bodega + return $producto->bodegas->map(function ($bodega) { + return [ + 'bodega' => $bodega->nombre, + 'stock' => $bodega->pivot->stock, + ]; + })->toArray(); + + })($producto), ]; }) ->toArray();