Ejemplo n.º 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;
 }
Ejemplo n.º 2
0
 public static function crearProfesor()
 {
     $genero = rand(0, 1) ? "H" : "M";
     $nombre = Alumno::randomNombre($genero) . (rand(0, 1) ? " " . Alumno::randomNombre($genero) : "");
     $apellido_paterno = Alumno::randomApellido();
     $apellido_materno = Alumno::randomApellido();
     $fecha_nacimiento = Alumno::randomFechaNacimiento(rand(1970, 1980));
     $ciudad_estado = Alumno::randomCiudadEstado();
     $ciudad = $ciudad_estado['ciudad'];
     $estado = $ciudad_estado['estado'];
     $curp = Alumno::curp($nombre, $apellido_paterno, $apellido_materno, $fecha_nacimiento, $genero, $ciudad_estado['clave']);
     return self::create(array('nombre' => $nombre, 'apellido_paterno' => $apellido_paterno, 'apellido_materno' => $apellido_materno, 'fecha_nacimiento' => $fecha_nacimiento, 'curp' => $curp, 'genero' => $genero, 'ciudad' => $ciudad, 'estado' => $estado));
 }
Ejemplo n.º 3
0
 public static function curp($nombre, $paterno, $materno, $fecha, $genero, $estado)
 {
     $nombre = str_replace(array('á', 'Á', 'é', 'É', 'í', 'Í', 'ó', 'Ó', 'ú', 'Ú', 'ñ', 'Ñ'), array('a', 'A', 'e', 'E', 'i', 'I', 'o', 'O', 'u', 'U', 'x', 'X'), $nombre);
     $paterno = str_replace(array('á', 'Á', 'é', 'É', 'í', 'Í', 'ó', 'Ó', 'ú', 'Ú', 'ñ', 'Ñ'), array('a', 'A', 'e', 'E', 'i', 'I', 'o', 'O', 'u', 'U', 'x', 'X'), $paterno);
     $materno = str_replace(array('á', 'Á', 'é', 'É', 'í', 'Í', 'ó', 'Ó', 'ú', 'Ú', 'ñ', 'Ñ'), array('a', 'A', 'e', 'E', 'i', 'I', 'o', 'O', 'u', 'U', 'x', 'X'), $materno);
     $curp = $paterno[0];
     //primera letra apellido paterno
     preg_match("/([aeiou])/", substr($paterno, 1), $vocal);
     $curp .= $vocal[1];
     //primera vocal interna apellido paterno
     $curp .= $materno[0];
     //primera letra apellido materno
     $curp .= $nombre[0];
     //primera letra nombre
     $fecha = new DateTime($fecha);
     $curp .= $fecha->format('y');
     //año
     $curp .= $fecha->format('m');
     //mes
     $curp .= $fecha->format('d');
     //dia
     $curp .= $genero;
     //genero
     $curp .= $estado;
     //clave estado
     preg_match("/([^aeiou])/i", substr($paterno, 1), $consonante);
     $curp .= $consonante[1];
     //primera consonante interna apellido paterno;
     preg_match("/([^aeiou])/i", substr($materno, 1), $consonante);
     $curp .= $consonante[1];
     //primera consonante interna apellido materno;
     preg_match("/([^aeiou])/i", substr($nombre, 1), $consonante);
     $curp .= $consonante[1];
     //primera consonante interna del nombre;
     //homoclave
     for ($i = 65; $i <= 90; $i++) {
         if (Alumno::where('curp', 'like', '%' . strtoupper($curp . chr($i)) . '%')->get()->isEmpty() && Profesor::where('curp', 'like', '%' . strtoupper($curp . chr($i)) . '%')->get()->isEmpty()) {
             $curp .= chr($i);
             break;
         }
     }
     $curp .= rand(1, 9);
     return strtoupper($curp);
 }
Ejemplo n.º 4
0
 public function publicarCalificaciones($ciclo_id)
 {
     echo "\nGenerando calificaciones...";
     $ciclo = Ciclo::find($ciclo_id);
     $grupos = Grupo::where('ciclo_id', '=', $ciclo->id)->get();
     foreach ($grupos as $grupo) {
         $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();
         $alumnos = Alumno::whereHas('grupos', function ($q) use($grupo) {
             $q->where('grupo_id', '=', $grupo->id);
         })->get();
         foreach ($alumnos as $alumno) {
             foreach ($asignaturas as $asignatura) {
                 $corte_1 = min(10, rand(7, 10) + rand(0, 9) / 10);
                 $corte_2 = min(10, rand(7, 10) + rand(0, 9) / 10);
                 $corte_3 = min(10, rand(7, 10) + rand(0, 9) / 10);
                 $alumno->calificaciones()->attach($asignatura->id, array('corte_1' => $corte_1, 'corte_2' => $corte_2, 'corte_3' => $corte_3));
             }
         }
     }
 }