示例#1
0
 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");