コード例 #1
0
 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;
 }
コード例 #2
0
ファイル: Nota.php プロジェクト: bluesky777/5myvc
 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;
 }