diff --git a/app/Http/Controllers/CatalogoController.php b/app/Http/Controllers/CatalogoController.php index f41ac4a..425580d 100644 --- a/app/Http/Controllers/CatalogoController.php +++ b/app/Http/Controllers/CatalogoController.php @@ -7,34 +7,30 @@ use Illuminate\Http\Request; class CatalogoController extends Controller { - - public function catalogo() - { - $products = Product::all(); - return view('catalogo', compact('products')); - } - /** * Muestra los registros de ventas con buscador y paginación. */ - public function index(Request $request) + public function catalogo(Request $request) { - // Recuperamos lo que el usuario escribió en el buscador (si escribió algo) - $query = $request->input('search'); - // Recuperamos el filtro aplicado (si aplica) - $filter = $request->input('filter'); + // Consulta base + $query = Product::query(); - // Construimos la consulta - $sales = Product::query() - ->when($query, function ($q) use ($query) { - // Si hay búsqueda, filtra por nombre o SKU - return $q->where('name', 'like', "%{$query}%") - ->orWhere('sku', 'like', "%{$query}%"); - }) - ->orderBy('stock_quantity', 'asc') // Ordenamos primero los que tienen poco stock (Alerta visual) - ->paginate(10) // Paginamos de a 10 - ->withQueryString(); // Mantiene el filtro de búsqueda al cambiar de página + // Lógica del Buscador: Si recibimos algo en el input "search" + if ($request->has('search')) { + $searchTerm = $request->input('search'); - return view('sales', compact('sales')); + $query->where(function($q) use ($searchTerm) { + $q->where('name', 'like', "%{$searchTerm}%") // Buscar por nombre + ->orWhere('sku', 'like', "%{$searchTerm}%"); // O por código SKU + }); + } + $query->whereIn('type', ['bike', 'accessory']);// Filtros para el público + $query->where('stock_quantity', '>', 0); // Solo mostrar si tiene stock + + // Resultados paginados + $products = $query->paginate(12)->withQueryString(); // withQueryString mantiene la búsqueda al cambiar de página + + // Devuelve la vista + return view('catalogo', compact('products')); } } diff --git a/resources/views/catalogo.blade.php b/resources/views/catalogo.blade.php index 3a4eecc..e58c78d 100644 --- a/resources/views/catalogo.blade.php +++ b/resources/views/catalogo.blade.php @@ -47,4 +47,9 @@

No hay productos disponibles.

@endif + + +
+ {{ $products->links() }} +
diff --git a/resources/views/components/navbar.blade.php b/resources/views/components/navbar.blade.php index 22715e9..61a108a 100644 --- a/resources/views/components/navbar.blade.php +++ b/resources/views/components/navbar.blade.php @@ -21,31 +21,68 @@ diff --git a/resources/views/welcome.blade.php b/resources/views/welcome.blade.php index e412c1e..30bd4af 100644 --- a/resources/views/welcome.blade.php +++ b/resources/views/welcome.blade.php @@ -1,4 +1,2 @@ - - Lauck - Inicio - Bienvenido - + +