Esempio n. 1
0
 public static function calcularmillon($resultadosParciales)
 {
     $resultados = Test::cargarResultadosExcel($resultadosParciales);
     $aspirante = $resultadosParciales[0]->getAspirantes();
     //        $aspirante = new Aspirantes();
     $edad = $aspirante->getEdad();
     $sexo = $aspirante->getSexo();
     $datos = array("G12" => $sexo, "G14" => $edad);
     $idAspirante = $aspirante->getId();
     $resultado = ResultadosPeer::getResultado($resultadosParciales[0]->getPruebas()->getId(), $aspirante->getId());
     $resultadoMillon = test::procesarMillon($resultados, $datos, $idAspirante);
     // esto me devuelve un arreglo con las escalas y sus valores
     $aprobado = true;
     // inicializo un marcador de aprobacion del test
     //        var_dump($resultadoMillon); die();
     foreach ($resultadoMillon as $escala => $valor) {
         // Busco en la base de datos la escala correspondiente por nombre
         $criteria = new Criteria();
         $criteria->add(EscalasPeer::NOMBRE, $escala);
         $Escala = EscalasPeer::doSelectOne($criteria);
         // Creo el Resultadosescalas
         $result = new Resultadosescalas();
         $result->setEscalas($Escala);
         // le seteo la Escala
         $result->setValor($valor);
         // le seteo el valor
         $result->setResultados($resultado);
         // la asocio a el resultado general del test
         $result->save();
         // lo guardo
         if ($escala == "V" and $valor != 0) {
             // si saca algo distito a 0(cero) en la escala de validez, queda afuera
             $aprobado = false;
         }
         if ($escala != "V" and $valor > 70) {
             // si saca mas de 70 en cualquier otra escala, queda afuera
             $aprobado = false;
         }
     }
     // segun aprobado le sereo el estado del resultado Aprobacion o NO
     $resultado->setEstadosresultadosId($aprobado == true ? 1 : 2);
     // TODO: manopleado??
     $resultado->save();
     // guardo el resultado
     // no me quedaria nada mas por hacer ya estaria todo guardado.
 }
<?php

require_once dirname(__FILE__) . '/../bootstrap/unit.php';
$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'test', true);
new sfDatabaseManager($configuration);
$t = new lime_test(14);
/*
 * Obtengo la Escala A del 16pf
 */
$criteria = new Criteria();
$criteria->add(EscalasPeer::NOMBRE, "A");
// 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);