public function asignaturasPerdidasDeAlumno($alumno, $grupo_id, $year_id, $periodos_a_calcular, $periodo_usuario) { $asignaturas = Grupo::detailed_materias($grupo_id); foreach ($asignaturas as $keyAsig => $asignatura) { $periodos = Periodo::hastaPeriodo($year_id, $periodos_a_calcular, $periodo_usuario); $asignatura->cantTotal = 0; foreach ($periodos as $keyPer => $periodo) { $periodo->cantNotasPerdidas = 0; $periodo->unidades = Unidad::deAsignatura($asignatura->asignatura_id, $periodo->id); foreach ($periodo->unidades as $keyUni => $unidad) { $subunidades = Subunidad::perdidasDeUnidad($unidad->unidad_id, $alumno->alumno_id); if (count($subunidades) > 0) { $unidad->subunidades = $subunidades; $periodo->cantNotasPerdidas += count($subunidades); } else { $uniTemp = $periodo->unidades; unset($uniTemp[$keyUni]); $periodo->unidades = $uniTemp; } } //$periodo->unidades = $unidades; $asignatura->cantTotal += $periodo->cantNotasPerdidas; /* if (count($unidades) > 0) { $periodo->unidades = $unidades; }else{ unset($periodos[$keyPer]); } */ } if (count($periodos) > 0) { $asignatura->periodos = $periodos; } else { unset($asignaturas[$keyAsig]); } $hasPeriodosConPerdidas = false; foreach ($periodos as $keyPer => $periodo) { if (count($periodo->unidades) > 0) { $hasPeriodosConPerdidas = true; } } if (!$hasPeriodosConPerdidas) { 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; }