user()->can('ver reportes'); } public ?string $fromDate = null; public ?string $toDate = null; public ?string $email = null; public function generateReport() { $this->validate([ 'fromDate' => 'required|date', 'toDate' => 'required|date|after_or_equal:fromDate', 'email' => 'required|email', // Validar que el campo 'email' sea una dirección de correo válida ]); $email = $this->email; // El correo electrónico del formulario // Obtener las ventas dentro del rango de fechas $ventas = Venta::with(['cliente', 'detalles.producto', 'detalles.variante']) ->whereBetween('created_at', [$this->fromDate, $this->toDate]) ->get(); // Enviar el correo con el reporte de ventas Mail::to($email)->send(new ReporteVentasMail($ventas, $this->fromDate, $this->toDate, $email)); // Restablecer los campos a null después de enviar el correo $this->fromDate = null; $this->toDate = null; $this->email = null; // Mostrar mensaje de éxito session()->flash('success', 'Reporte enviado al correo.'); } }