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; }
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)); }
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); }
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)); } } } }