Merge branch 'bryam' of https://github.com/BryamE/ProyectoLauck into nLucas

This commit is contained in:
2026-04-04 16:58:10 -03:00
30 changed files with 484 additions and 328 deletions
+36 -5
View File
@@ -11,13 +11,44 @@ use Illuminate\Support\Facades\DB;
class SaleController extends Controller
{
public function index()
public function index(Request $request)
{
$sales = Sale::with('client')
->orderBy('created_at', 'desc')
->paginate(15);
// Recuperar filtros
$search = $request->input('search'); // Búsqueda por ID
$clientId = $request->input('client_id'); // Filtro Cliente
$dateFrom = $request->input('date_from'); // Fecha Desde
$dateTo = $request->input('date_to'); // Fecha Hasta
return view('sales.index', compact('sales'));
// Query principal
$sales = Sale::query()
->with(['client', 'details'])
// 1. Filtro por ID de venta (si escriben en el buscador texto)
->when($search, function ($query, $search) {
return $query->where('id', 'like', "%{$search}%");
})
// 2. Filtro por Cliente (Select2)
->when($clientId, function ($query, $clientId) {
return $query->where('client_id', $clientId);
})
// 3. Filtro por Rango de Fechas
->when($dateFrom, function ($query, $dateFrom) {
return $query->whereDate('created_at', '>=', $dateFrom);
})
->when($dateTo, function ($query, $dateTo) {
return $query->whereDate('created_at', '<=', $dateTo);
})
->latest() // Ordenar por fecha descendente
->paginate(10)
->withQueryString(); // Mantener filtros al cambiar de página
// Traemos clientes para el select del filtro (solo id y nombre para optimizar)
$clients = Client::orderBy('name')->get(['id', 'name']);
return view('sales.index', compact('sales', 'clients'));
}
public function create()