Exemple #1
0
 public static function crearGrupo($nombre, $carrera_id, $ciclo_id, $cuatrimestre = 1)
 {
     $ciclo = Ciclo::find($ciclo_id);
     $year = intval((new DateTime($ciclo->fecha_inicio))->format('Y'));
     $grupo = Grupo::create(array('nombre' => $nombre, 'carrera_id' => $carrera_id, 'ciclo_id' => $ciclo_id, 'cuatrimestre' => $cuatrimestre));
     $num_alumnos = rand(25, 30);
     for ($i = 0; $i < $num_alumnos; $i++) {
         $alumno = Alumno::crearAlumno($carrera_id, $year);
         $alumno->grupos()->attach($grupo->id);
     }
     return $grupo;
 }
Exemple #2
0
 public static function crearClases($grupo_id, $ciclo_id)
 {
     $grupo = Grupo::find($grupo_id);
     $asignaturas = Asignatura::with(array('carreras' => function ($q) use($grupo) {
         $q->where('carrera_id', '=', $grupo->carrera_id);
     }))->whereHas('carreras', function ($q) use($grupo) {
         $q->where('carrera_id', '=', $grupo->carrera_id)->where('cuatrimestre', '=', $grupo->cuatrimestre);
     })->get();
     foreach ($asignaturas as $asignatura) {
         $horas_semana = $asignatura->carreras->first()->pivot->horas_semana;
         $horarios_disponibles = Horario::whereDoesntHave('clases', function ($q) use($grupo) {
             $q->where('grupo_id', '=', $grupo->id);
         })->get();
         $profesor = Profesor::disponible($horarios_disponibles, $asignatura->id, $ciclo_id, $horas_semana);
         $horarios_seleccionados = Horario::organizarSemana($horarios_disponibles, $profesor->id, $horas_semana, $ciclo_id);
         foreach ($horarios_seleccionados as $horario) {
             $aula = Aula::disponible($horario->id, $ciclo_id);
             $clase = Clase::create(array('profesor_id' => $profesor->id, 'grupo_id' => $grupo->id, 'asignatura_id' => $asignatura->id, 'aula_id' => $aula->id, 'horario_id' => $horario->id));
         }
     }
 }
Exemple #3
0
 public function avanzarGrupos($ciclo_anterior_id, $ciclo_actual_id)
 {
     echo "\nAvanzando grupos...";
     $grupos = Grupo::where('ciclo_id', '=', $ciclo_anterior_id)->where('cuatrimestre', '<', 10)->get();
     foreach ($grupos as $grupo) {
         $grupo->avanzarCiclo($ciclo_actual_id);
     }
 }