public static function calcular16pf($resultadosParciales) { $Escalas = array(); // arreglo para guardar los objetos Escalas $resultadosEscalas = array(); // arreglo para guardar los resultados por cada Objeto Escala // $r = new Resultadosparciales(); $prueba = $resultadosParciales[0]->getPruebas(); // la prueba actual $aspirante = $resultadosParciales[0]->getAspirantes(); // el aspirante actual $aspirantes_id = $aspirante->getId(); // el id de aspirante $pruebas_id = $prueba->getId(); // el id de la prueba $perfil = $prueba->getEvaluaciones()->getPerfil(); // el perfil en el cual se esta evaluando $criteria = new Criteria(); // creo una nueva consulta $criteria->add(ResultadosPeer::ASPIRANTES_ID, $aspirantes_id); $criteria->add(ResultadosPeer::PRUEBAS_ID, $pruebas_id); $resultado = ResultadosPeer::doSelectOne($criteria); // me traigo el Resultado para foreach ($resultadosParciales as $resultadoParcial) { // por cada resultado parcial obtengo la respuesta // $respuesta = new Respuestas(); // $resultadoParcial = new Resultadosparciales(); $preguntas_id = $resultadoParcial->getPreguntasId(); $opciones_id = $resultadoParcial->getOpcionesId(); $criteria = new Criteria(); $criteria->add(RespuestasPeer::PREGUNTAS_ID, $preguntas_id); $criteria->add(RespuestasPeer::OPCIONES_ID, $opciones_id); $respuesta = RespuestasPeer::doSelectOne($criteria); $Respuestasescalas = $respuesta->getRespuestasescalass(); //cuando ya tengo la respuestas le pido las RespuestasEscalas // echo $Respuestasescalas[0]; // die(); foreach ($Respuestasescalas as $Respuestaescala) { // por cada Respuesta escala // $Respuestaescala = new Respuestasescalas(); // var_dump($Respuestaescala->getEscalas()); //die(); $Escalas[$Respuestaescala->getEscalas()->getId()] = $Respuestaescala->getEscalas(); // Guardo la escala en el arreglo // $resultadosEscalas[$Respuestaescala->getEscalas()->getId()] = (isset($resultadosEscalas[$Respuestaescala->getEscalas()->getId()]) ? $resultadosEscalas[$Respuestaescala->getEscalas()->getId()] : 0) + $Respuestaescala->getValor(); } // die(); } // $percentiles_por_escala = array(); $aprobado_general = true; foreach ($resultadosEscalas as $EscalaId => $valor) { $Escala = $Escalas[$EscalaId]; $Resultadosescalas = new Resultadosescalas(); $Resultadosescalas->setEscalas($Escala); $Resultadosescalas->setResultados($resultado); //$Resultadosescalas->setValor($valor); $percentil = PercentilesPeer::getPercentilPorEscala($EscalaId, $valor); // $percentil = new Percentiles(); // $percentil->getPercentil(); // $percentiles_por_escala[$Escala] = $percentil->getPercentil(); $Resultadosescalas->setValor($percentil->getPercentil()); $Resultadosescalas->save(); $aprobado = PercentilesPeer::evaluarValorEsperado($perfil, $percentil); // devuelve true si aprobo, sino false if ($aprobado === false) { $aprobado_general = false; } } if ($aprobado_general === true) { // $prueba = new Tests(); $result = ResultadosPeer::getResultado($prueba->getTestsId(), $aspirante); $result->setEstadosresultadosId(sfConfig::get('app_resultado_apto')); $result->save(); } }
// Escala A $criteria->add(EscalasPeer::TESTS_ID, 3); // 16pf $escala = EscalasPeer::doSelectOne($criteria); $t->is("A", $escala->getNombre(), "La escala es A"); $percentiles = PercentilesPeer::getPercentilPorEscala($escala->getId(), 0); $t->is(1, $percentiles[0]->getPercentil(), "En la escala A, 0 puntos = percentil 1"); $percentiles = PercentilesPeer::getPercentilPorEscala($escala->getId(), 1); $t->is(1, $percentiles[0]->getPercentil(), "En la escala A, 1 puntos = percentil 1"); $percentiles = PercentilesPeer::getPercentilPorEscala($escala->getId(), 2); $t->is(1, $percentiles[0]->getPercentil(), "En la escala A, 2 puntos = percentil 1"); $percentiles = PercentilesPeer::getPercentilPorEscala($escala->getId(), 3); $t->is(1, $percentiles[0]->getPercentil(), "En la escala A, 3 puntos = percentil 1"); $percentiles = PercentilesPeer::getPercentilPorEscala($escala->getId(), 4); $t->is(2, $percentiles[0]->getPercentil(), "En la escala A, 4 puntos = percentil 2"); $percentiles = PercentilesPeer::getPercentilPorEscala($escala->getId(), 5); $t->is(2, $percentiles[0]->getPercentil(), "En la escala A, 5 puntos = percentil 2"); $percentiles = PercentilesPeer::getPercentilPorEscala($escala->getId(), 6); $t->is(3, $percentiles[0]->getPercentil(), "En la escala A, 6 puntos = percentil 3"); $percentiles = PercentilesPeer::getPercentilPorEscala($escala->getId(), 7); $t->is(4, $percentiles[0]->getPercentil(), "En la escala A, 7 puntos = percentil 4"); $percentiles = PercentilesPeer::getPercentilPorEscala($escala->getId(), 8); $t->is(5, $percentiles[0]->getPercentil(), "En la escala A, 8 puntos = percentil 5"); $percentiles = PercentilesPeer::getPercentilPorEscala($escala->getId(), 9); $t->is(6, $percentiles[0]->getPercentil(), "En la escala A, 9 puntos = percentil 6"); $percentiles = PercentilesPeer::getPercentilPorEscala($escala->getId(), 10); $t->is(7, $percentiles[0]->getPercentil(), "En la escala A, 10 puntos = percentil 7"); $percentiles = PercentilesPeer::getPercentilPorEscala($escala->getId(), 11); $t->is(8, $percentiles[0]->getPercentil(), "En la escala A, 11 puntos = percentil 8"); $percentiles = PercentilesPeer::getPercentilPorEscala($escala->getId(), 12); $t->is(9, $percentiles[0]->getPercentil(), "En la escala A, 12 puntos = percentil 9");