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