Esempio n. 1
0
 function determinarProximoNivel()
 {
     end($this->seguimiento);
     $ultimoregistro = current($this->seguimiento);
     $anioultimo = $ultimoregistro[RegAno];
     $periodoultimo = $ultimoregistro[id_periodo];
     $nivelultimo = $ultimoregistro[nivel];
     $id_nivelultimo = $ultimoregistro[id_nivel];
     $notaultima = $ultimoregistro[Def_numero];
     $penultimoregistro = prev($this->seguimiento);
     $aniopenultimo = $penultimoregistro[RegAno];
     $periodopenultimo = $penultimoregistro[id_periodo];
     $periodo = new Periodo();
     $periodoactual = $periodo->sel_periodo_Actual();
     $anioactual = date("Y");
     if ($periodo->siguientePeriodo($periodoultimo, $periodoactual, $anioultimo, $anioactual) > 1) {
         $nivelDeterminado = $this->ultimoPeriodoAprobado();
         if ($nivelDeterminado == "") {
             $nivelDeterminado = $nivelultimo;
         }
     } elseif ($periodo->siguientePeriodo($periodopenultimo, $periodoultmimo, $aniopenultimo, $anioultimo) == 1) {
         $nivelDeterminado = $nivelultimo;
     } elseif ($this->siDosCompromisosSeguidos($ultimoregistro, $penultimoregistro)) {
         $nivelDeterminado = $nivelultimo;
     } elseif ($notaultima < 75) {
         $nivelDeterminado = $nivelultimo;
     } else {
         $nivel = new Nivel();
         $nivel->sel_niveles_mas_Actual($id_nivelultimo, $ultimoregistro[id_programa]);
         $arreglonivel = $nivel->retornaSiguienteNivelAprobado();
         $nivelDeterminado = $arreglonivel[1];
     }
     return $nivelDeterminado;
 }