middleware('can:grupo.index')->only('index','show'); $this->middleware('can:grupo.create')->only('create','store'); $this->middleware('can:grupo.edit')->only('edit','update'); $this->middleware('can:grupo.destroy')->only('destroy'); } public function index() { $user = Auth::user(); if ($user->hasRole('Admin')) { $grupos = Grupo::all(); } if ($user->hasRole(['Control escolar','Coordinación académica'])) { $plantelesIds = $user->plantelUsuarios->pluck('id'); $grupos = Grupo::with('plan') ->whereHas('plan.planesPlantel', function ($query) use ($plantelesIds) { $query->whereIn('plantel_id', $plantelesIds); }) ->get(); } return view('grupo.index', compact('grupos')); } public function create() { $turnos= Turno::all(); $user = Auth::user(); $plantels = $user->plantelUsuarios->pluck('id'); $planteles = $user->plantelUsuarios; $plans = Plan::with(['carreraRel', 'nivelRel']) ->whereHas('planesPlantel', function ($query) use ($plantels) { $query->whereIn('plantel_id', $plantels); }) ->get() ->groupBy(function ($plan) { return $plan->nivelRel->name; }); return view('grupo.create',compact(['turnos','plans','planteles'])); } public function store(Request $request) { $nivel = Plan::where('id',$request->plan_id)->first(); $grupo = Grupo::create([ 'plan_id' => $request->plan_id, 'ciclo' => 1, 'nivel' => $nivel->nivel, 'plantel' => $request->plantel, 'turno' => $request->turno, 'status'=>1 ]); return redirect()->route('grupo.edit',$grupo)->with('info','El grupo se creo correctamente'); } public function show(Plane $plane) { return view('grupo.show',compact('plane')); } public function edit(Grupo $grupo) { $turnos= Turno::all(); $user = Auth::user(); $plantels = $user->plantelUsuarios->pluck('id'); $planteles = $user->plantelUsuarios; $plans = Plan::with(['carreraRel', 'nivelRel']) ->whereHas('planesPlantel', function ($query) use ($plantels) { $query->whereIn('plantel_id', $plantels); }) ->get() ->groupBy(function ($plan) { return $plan->nivelRel->name; }); $ciclos = Plan::where('id',$grupo->plan_id)->first(); return view('grupo.edit',compact(['grupo','turnos','plans','planteles','ciclos'])); } public function update(Request $request,Grupo $grupo) { $nivel = Plan::where('id',$request->plan_id)->first(); $grupo = Grupo::update([ 'plan_id' => $request->plan_id, 'ciclo' => 1, 'nivel' => $nivel->nivel, 'plantel' => $request->plantel, 'turno' => $request->turno, 'status'=>1 ]); return redirect()->route('grupo.edit',$grupo)->with('info','El grupo se actualizo correctamente'); } public function destroy(Grupo $grupo,Request $request) { if($request->alumno){ $alumno= Alumno::find($request->alumno); $alumno->grupos()->detach(); session()->flash('swal',[ 'icon'=>'success', 'title'=>'Eliminado!', 'text'=>'Se ha eliminado el registro correctamente' ]); return redirect()->route('grupo.edit',$grupo); }else{ $grupo->alumnos()->detach(); $grupo->delete(); session()->flash('swal',[ 'icon'=>'success', 'title'=>'Eliminado!', 'text'=>'Se ha eliminado el registro correctamente' ]); return redirect()->route('grupo.index'); } } }