public function getShowProfesor($profesor_id) { $user = User::fromToken(); $year = Year::datos_basicos($user->year_id); $asignaturas = Profesor::asignaturas($user->year_id, $profesor_id); $periodos = Periodo::where('year_id', '=', $user->year_id)->get(); $year->periodos = $periodos; $profesor = Profesor::detallado($profesor_id); foreach ($asignaturas as $keyAsig => $asignatura) { $alumnos = Grupo::alumnos($asignatura->grupo_id); $asignatura->nombres_profesor = $profesor->nombres_profesor; $asignatura->apellidos_profesor = $profesor->apellidos_profesor; $asignatura->foto_nombre = $profesor->foto_nombre; $asignatura->foto_id = $profesor->foto_id; $asignatura->sexo = $profesor->sexo; $asignatura->periodosProm = Periodo::where('year_id', '=', $user->year_id)->get(); // A cada alumno le daremos los periodos y la definitiva de cada periodo foreach ($alumnos as $keyAl => $alumno) { $periodosTemp = Periodo::where('year_id', '=', $user->year_id)->get(); foreach ($periodosTemp as $keyPer => $periodo) { // Unidades y subunidades de la asignatura en el periodo $asignaturaTemp = Asignatura::find($asignatura->asignatura_id); $asignaturaTemp->unidades = Unidad::deAsignatura($asignaturaTemp->id, $periodo->id); foreach ($asignaturaTemp->unidades as $unidad) { $unidad->subunidades = Subunidad::deUnidad($unidad->unidad_id); } // Traemos las notas de esta asignatura segun las unidades y subunidades calculadas arriba Asignatura::calculoAlumnoNotas($asignaturaTemp, $alumno->alumno_id); $periodo->nota_asignatura = $asignaturaTemp->nota_asignatura; unset($asignaturaTemp); } $alumno->periodos = $periodosTemp; unset($periodosTemp); foreach ($asignatura->periodosProm as $keyPer => $periodo) { if (!$periodo->sumatoria) { $periodo->sumatoria = 0; } foreach ($alumno->periodos as $keyPerAl => $periodo_alum) { if ($periodo_alum->id == $periodo->id) { $periodo->sumatoria += $periodo_alum->nota_asignatura; } } } } $asignatura->alumnos = $alumnos; } return array($year, $asignaturas); }
public function asignaturasPerdidasDeAlumnoPorPeriodo($alumno_id, $grupo_id, $periodo_id) { $asignaturas = Grupo::detailed_materias($grupo_id); foreach ($asignaturas as $keyAsig => $asignatura) { $asignatura->unidades = Unidad::deAsignatura($asignatura->asignatura_id, $periodo_id); foreach ($asignatura->unidades as $keyUni => $unidad) { $unidad->subunidades = Subunidad::perdidasDeUnidad($unidad->unidad_id, $alumno_id); if (count($unidad->subunidades) == 0) { unset($asignatura->unidades[$keyUni]); } } if (count($asignatura->unidades) == 0) { unset($asignaturas[$keyAsig]); } } return $asignaturas; }
public static function alumnoAsignaturasPeriodosDetailed($alumno_id, $year_id, $periodos_a_calcular = 'de_usuario', $periodo_usuario = 0) { $alumno = Alumno::alumnoData($alumno_id, $year_id); $asignaturas = Grupo::detailed_materias($alumno->grupo_id); $sumatoria_asignaturas_year = 0; $sub_perdidas_year = 0; foreach ($asignaturas as $keyAsig => $asignatura) { $periodos = Periodo::hastaPeriodo($year_id, $periodos_a_calcular, $periodo_usuario); $sum_asignatura_year = 0; $subunidadesPerdidas = 0; foreach ($periodos as $keyPer => $periodo) { $asigna = new stdClass(); $asigna->unidades = Unidad::deAsignatura($asignatura->asignatura_id, $periodo->id); foreach ($asigna->unidades as $unidad) { $unidad->subunidades = Subunidad::deUnidad($unidad->unidad_id); } Asignatura::calculoAlumnoNotas($asigna, $alumno->alumno_id); $sum_asignatura_year += $asigna->nota_asignatura; $subunidadesPerdidas += Asignatura::notasPerdidasAsignatura($asigna); } try { $asignatura->nota_asignatura_year = $sum_asignatura_year / count($periodos); $asignatura->subunidadesPerdidas = $subunidadesPerdidas; } catch (Exception $e) { $asignatura->nota_asignatura_year = 0; } $asignatura->periodos = $periodos; $sumatoria_asignaturas_year += $asignatura->nota_asignatura_year; $sub_perdidas_year += $subunidadesPerdidas; } try { $alumno->promedio_year = $sumatoria_asignaturas_year / count($asignaturas); $alumno->sub_perdidas_year = $sub_perdidas_year; } catch (Exception $e) { $alumno->promedio_year = 0; } $alumno->asignaturas = $asignaturas; return $alumno; }