public function allNotasAlumno(&$alumno, $grupo_id, $periodo_id, $comport_and_frases = false) { $asignaturas = Grupo::detailed_materias($grupo_id); foreach ($asignaturas as $asignatura) { $asignatura->unidades = Unidad::deAsignatura($asignatura->asignatura_id, $periodo_id); foreach ($asignatura->unidades as $unidad) { $unidad->subunidades = Subunidad::deUnidad($unidad->unidad_id); } } $alumno->asignaturas = $asignaturas; $sumatoria_asignaturas = 0; foreach ($alumno->asignaturas as $asignatura) { if ($comport_and_frases) { $asignatura->ausencias = Ausencia::deAlumno($asignatura->asignatura_id, $alumno->alumno_id, $periodo_id); $asignatura->frases = FraseAsignatura::deAlumno($asignatura->asignatura_id, $alumno->alumno_id, $periodo_id); } Asignatura::calculoAlumnoNotas($asignatura, $alumno->alumno_id); $sumatoria_asignaturas += $asignatura->nota_asignatura; // Para sacar promedio del periodo // SUMAR AUSENCIAS Y TARDANZAS if ($comport_and_frases) { $cantAus = 0; $cantTar = 0; foreach ($asignatura->ausencias as $ausencia) { $cantAus += (int) $ausencia->cantidad_ausencia; $cantTar += (int) $ausencia->cantidad_tardanza; } $asignatura->total_ausencias = $cantAus; $asignatura->total_tardanzas = $cantTar; } } try { $alumno->promedio = $sumatoria_asignaturas / count($alumno->asignaturas); } catch (Exception $e) { $alumno->promedio = 0; } // COMPORTAMIENTO Y SUS FRASES if ($comport_and_frases) { $comportamiento = NotaComportamiento::where('alumno_id', '=', $alumno->alumno_id)->where('periodo_id', '=', $periodo_id)->first(); $alumno->comportamiento = $comportamiento; $definiciones = []; if ($comportamiento) { $definiciones = DefinicionComportamiento::frases($comportamiento->id); $alumno->comportamiento->definiciones = $definiciones; } } return $alumno; }