configuracion = Configuracione::orderby('id', 'desc')->first(); $month = $this->showLastMonth ? date('m', strtotime('last month')) : date('m'); $consulta_ventas = User::with(['historiales_venta' => function ($query) use ($month) { $query->whereMonth('fecha_inicio', $month); }]) ->withCount(['historiales_venta' => function ($query) use ($month) { $query->whereMonth('fecha_inicio', $month); }]) ->orderBy('historiales_venta_count', 'desc') ->limit(10) ->get(); //dd($consulta_ventas); return view('livewire.show-top', [ 'usuarios' => $consulta_ventas, ]); } public function entregarPremio() { $month = date('m', strtotime('last month')); $rangos = ['primero', 'segundo', 'tercero', 'cuarto', 'quinto', 'sexto', 'séptimo', 'octavo', 'noveno', 'décimo']; $top_vendedores = User::with(['historiales_venta' => function ($query) use ($month) { $query->whereMonth('fecha_inicio', $month); }]) ->withCount(['historiales_venta' => function ($query) use ($month) { $query->whereMonth('fecha_inicio', $month); }])->orderBy('historiales_venta_count', 'desc')->take(10)->get(); foreach ($top_vendedores as $index => $vendedor) { $premio = $this->configuracion->{'premio_' . ($index + 1)}; $notificacion = new Notificacion(); $notificacion->remitente_id = Auth::user()->id; $notificacion->destinatario_id = $vendedor->id; $notificacion->titulo = 'Felicidades ' . $vendedor->name ?? '' . ' 🎊'; $notificacion->descripcion = 'Quedaste ' . $rangos[$index] . ' en el #Top10MejoresDistribuidores del mes de ' . date('M', strtotime('last month')); $notificacion->estado = 1; $notificacion->todos = 0; $notificacion->premio = str_replace('.','',str_replace('$', '', $premio)); $notificacion->save(); } } }