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; }