$configuracion = ConfiguracionUser::where('user_id', Auth::id())->first(); $listaproductos = Producto::where(function ($query) use ($producto) { $query->where('producto_nombre', 'like', '%' . $producto . '%') ->orWhere('producto_marca', 'like', '%' . $producto . '%') ->orWhere('producto_modelo', 'like', '%' . $producto . '%'); }) ->join('inventarios', 'productos.id', '=', 'inventarios.producto_id') ->where('inventarios.almacenestienda_id', $configuracion->almacenestienda_id) ->where('inventarios.cantidad', '>', 0) ->select('productos.*', 'inventarios.cantidad as cantidadtienda') ->get(); y la tabla seria. public function ventacaja(Request $request): View { $configuracion = ConfiguracionUser::where('user_id', Auth::id())->first(); // Obtener el rango de fechas del request $rangoFechas = $request->input('rango_fechas'); $fechas = explode(' to ', $rangoFechas); // Inicializar la consulta de ventas // Consulta base $baseQuery = Venta::orderBy('id', 'desc') ->where("caja_id", $configuracion->caja_id) ->where("usuario_id", $configuracion->user_id); // Aplicar filtro de fechas if (empty($fechas[0])) { $baseQuery->whereDate('created_at', now()->toDateString()); } else { $fechaInicio = Carbon::parse($fechas[0]); // Si no hay fechaFin, usar solo la fechaInicio if (!isset($fechas[1])) { $baseQuery->whereDate('created_at', $fechaInicio); } else { $fechaFin = Carbon::parse($fechas[1]); if ($fechaInicio->isSameDay($fechaFin)) { $baseQuery->whereDate('created_at', $fechaInicio); } else { $baseQuery->whereBetween('created_at', [ $fechaInicio->startOfDay(), $fechaFin->endOfDay() ]); } } } // Paginación (usa una clonación de la consulta) $ventas = clone $baseQuery; $ventas = $ventas->paginate(); // Sumas con condiciones específicas $sumatotalventas = (clone $baseQuery) ->where(function ($q) { $q->where("estado", "confirmado en tienda") ->orWhere("estado", "Confirmado por finanzas"); }) ->sum("venta_total"); $sumatotalventasproceso = (clone $baseQuery) ->where("estado", "Proceso confirmacion Finanzas") ->sum("venta_total"); $sumatotalventasanulado = (clone $baseQuery) ->where("estado", "Anulado tienda") ->sum("venta_total"); $sumatotalventasrechazado = (clone $baseQuery) ->where("estado", "Rechazado finanzas") ->sum("venta_total"); return view('venta.ventasencaja', compact('ventas', 'configuracion', 'sumatotalventas', 'sumatotalventasproceso', 'sumatotalventasanulado', 'sumatotalventasrechazado')) ->with('i', ($request->input('page', 1) - 1) * $ventas->perPage()); }