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(); } }
*/ $criteria = new Criteria(); $criteria->add(PerfilPeer::ID, 1); $perfil = PerfilPeer::doSelectOne($criteria); // deberia tener Infante $criteria = new Criteria(); $criteria->add(EscalasPeer::NOMBRE, "A"); // Escala A $criteria->add(EscalasPeer::TESTS_ID, 3); // 16pf $escala = EscalasPeer::doSelectOne($criteria); $percentiles = array(); for ($i = 1; $i < 10; $i++) { $criteria = new Criteria(); $criteria->add(PercentilesPeer::PERCENTIL, $i); $criteria->add(PercentilesPeer::ESCALAS_ID, $escala->getId()); $percentiles[$i] = PercentilesPeer::doSelectOne($criteria); } $t = new lime_test(11); $t->is('Infante', trim($perfil->getNombre()), "El perfil es Infante"); $t->is("A", $escala->getNombre(), "La escala es A"); $t->is(PercentilesPeer::evaluarValorEsperado($perfil, $percentiles[1]), false, "Si el percentil es 1 desaprueba"); $t->is(PercentilesPeer::evaluarValorEsperado($perfil, $percentiles[2]), false, "Si el percentil es 2 desaprueba"); $t->is(PercentilesPeer::evaluarValorEsperado($perfil, $percentiles[3]), true, "Si el percentil es 3 aprueba"); $t->is(PercentilesPeer::evaluarValorEsperado($perfil, $percentiles[4]), true, "Si el percentil es 4 aprueba"); $t->is(PercentilesPeer::evaluarValorEsperado($perfil, $percentiles[5]), true, "Si el percentil es 5 aprueba"); $t->is(PercentilesPeer::evaluarValorEsperado($perfil, $percentiles[6]), true, "Si el percentil es 6 aprueba"); $t->is(PercentilesPeer::evaluarValorEsperado($perfil, $percentiles[7]), false, "Si el percentil es 7 desaprueba"); $t->is(PercentilesPeer::evaluarValorEsperado($perfil, $percentiles[8]), false, "Si el percentil es 8 desaprueba"); $t->is(PercentilesPeer::evaluarValorEsperado($perfil, $percentiles[9]), false, "Si el percentil es 9 desaprueba");