Modificaciones en catalogo y catalogo controller
This commit is contained in:
@@ -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'));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user