Example #1
0
 public function setResultadoInicial($pruebas)
 {
     foreach ($pruebas as $prueba) {
         $result = new Resultados();
         $result->setAspirantesId($this->getAttribute('usuarioId'));
         $result->setPuntaje(0);
         $result->setPruebas($prueba);
         $result->setEstadosresultadosId(sfConfig::get('app_resultado_noapto'));
         $result->save();
     }
 }
            $this->SetFont($this->getFontName(), 'B', 11);
            // bold 11px
            $this->Cell($this->pos[13], 6, $puesto, 'LR', 0, $this->align[13], true);
            $this->Ln();
            $rowcount++;
        }
        // Línea de cierre
        $this->Cell(array_sum($this->pos), 0, '', 'T');
        $this->myLogger->leave();
    }
}
// Consultamos la base de datos
try {
    $idprueba = http_request("Prueba", "i", 0);
    $idjornada = http_request("Jornada", "i", 0);
    $idmanga = http_request("Manga", "i", 0);
    $mode = http_request("Mode", "i", 0);
    $mngobj = new Mangas("printResultadosByManga", $idjornada);
    $manga = $mngobj->selectByID($idmanga);
    $resobj = new Resultados("printResultadosByManga", $idprueba, $idmanga);
    $resultados = $resobj->getResultados($mode);
    // throw exception if pending dogs
    // Creamos generador de documento
    $pdf = new ResultadosByManga($idprueba, $idjornada, $manga, $resultados, $mode);
    $pdf->AliasNbPages();
    $pdf->composeTable();
    $pdf->Output("resultadosByManga.pdf", "D");
    // "D" means open download dialog
} catch (Exception $e) {
    die($e->getMessage());
}
 /**
  * Constructor
  * @param {obj} $manga datos de la manga
  * @param {obj} $resultados resultados asociados a la manga/categoria pedidas
  * @throws Exception
  */
 function __construct($prueba, $jornada, $manga, $resultados, $mode)
 {
     parent::__construct('Portrait', "print_resultadosEquipos3", $prueba, $jornada);
     $this->manga = $manga;
     $this->resultados = $resultados;
     $this->mode = $mode;
     $mindogs = 0;
     switch (intval($this->jornada->Equipos3)) {
         case 1:
             $mindogs = 3;
             break;
             // old style 3 best of 4
         // old style 3 best of 4
         case 2:
             $mindogs = 2;
             break;
             // 2 besto of 3
         // 2 besto of 3
         case 3:
             $mindogs = 3;
             break;
             // 3 best of 4
         // 3 best of 4
         default:
             break;
     }
     switch (intval($this->jornada->Equipos4)) {
         case 1:
             $mindogs = 4;
             break;
             // old style 4 combined
         // old style 4 combined
         case 2:
             $mindogs = 2;
             break;
             // 2 combined
         // 2 combined
         case 3:
             $mindogs = 3;
             break;
             // 3 combined
         // 3 combined
         case 4:
             $mindogs = 4;
             break;
             // 4 combined
         // 4 combined
         default:
             break;
     }
     $this->cellHeader = array(_('Dorsal'), _('Name'), _('Lic') . '.', _('Handler'), $this->strClub, _('Cat') . '.', _('Flt') . '.', _('Tch') . '.', _('Ref') . '.', _('Time'), _('Vel') . '.', _('Penal') . '.', _('Calification'), _('Position'), _('Team global'));
     $this->equipos = Resultados::getTeamResults($resultados['rows'], $prueba, $jornada, $mindogs);
     $this->eqmgr = new Equipos("print_resultadosByEquipos", $prueba, $jornada);
 }
 /**
  * Evalua el puesto en que ha quedado un perro determinado en la clasificacion final
  * hay que tener en cuenta que en esta clasificacion, el perro en cuestion todavia
  * no tiene los datos de (al menos) una manga almacenados, con lo que si nos lo encontramos,
  * habrá que quitar "1 pendiente" y substituirlo por los datos que tenemos
  *
  * Esta funcion no tiene en cuenta pruebas por equipos ni ko. simplemente considera las dos primeras
  * mangas (o solo la primera, si no hay manga hermana
  *
  *@param {integer} $mode Modo 0:L 1:M 2:S 3:M+S 4:L+M+S 5:T 6:L+M 7:S+T 8:L+M+S+T
  *@param {array} $perro datos del perro (Perro,Faltas,Tocados,Rehuses,Eliminado,NoPresentado,Tiempo,IDManga)
  *@return {array} requested data or error
  */
 function getPuestoFinal($mode, $perro)
 {
     $result = null;
     $myManga = $perro['Manga'];
     // buscamos la manga hermana
     $mng = new Mangas("getPuestoFinal", $this->jornada->ID);
     $hermanas = $mng->getHermanas($myManga);
     $id1 = intval($hermanas[0]->ID);
     $id2 = 0;
     $r1 = new Resultados("Clasificaciones::getPuestoFinal", $this->prueba->ID, $id1);
     $c1 = $r1->getPenalizaciones($mode, $myManga == $id1 ? $perro : null);
     $c2 = null;
     if ($hermanas[1] != null) {
         $id2 = intval($hermanas[1]->ID);
         $r2 = new Resultados("Clasificaciones::getPuestoFinal", $this->prueba->ID, $id2);
         $c2 = $r2->getPenalizaciones($mode, $myManga == $id2 ? $perro : null);
     }
     $result = $this->evalPenalizacionFinal(array($id1, $id2), $c1, $c2);
     if ($result == null) {
         return null;
     }
     // null result -> error
     if (!is_array($result)) {
         $this->myLogger->error($result);
         return $result;
     }
     // iterate result to find our dog
     $table = $result['rows'];
     $size = $result['total'];
     $idperro = intval($perro['Perro']);
     // en el caso de que todavia no haya clasificaciones, la tabla esta vacia y nuestro perro va el primero :-)
     if ($size == 0) {
         return array('success' => true, 'puesto' => 1, 'penalizacion' => 0);
     }
     // buscamos el puesto en el que finalmente ha quedado $myPerro y lo retornamos
     for ($idx = 0; $idx < $size; $idx++) {
         if ($table[$idx]['Perro'] != $idperro) {
             continue;
         }
         return array('success' => true, 'puesto' => 1 + $idx, 'penalizacion' => $table[$idx]['Penalizacion']);
     }
     //arriving here means error: perro not found
     return $this->error("Perro:{$idperro} not found in clasificaciones::getPuesto()");
 }
Example #5
0
 /**
  * Pagina de datos de las mangas de cada jornada
  */
 function createJornadaInfoPage($jornada)
 {
     $jdatapage = $this->myWriter->addNewSheetAndMakeItCurrent();
     $name = $this->normalizeSheetName("Info " . $jornada['Nombre']);
     $jdatapage->setName($name);
     $hdr = array(_('Type'), _('Round'), _('Dist'), _('Obst'), _('SCT'), _('MCT'), _('Vel'), _('Judge') . " 1", _('Judge') . " 2");
     $this->myWriter->addRowWithStyle($hdr, $this->rowHeaderStyle);
     // por cada manga buscamos el nombre, tipo y datos de trs/trm
     // obtenemos la lista de mangas de la jornada
     $res = Jornadas::enumerateMangasByJornada($jornada['ID'])['rows'];
     foreach ($res as $manga) {
         $results = new Resultados("excel_Clasificicaciones", $this->prueba['ID'], $manga['Manga']);
         $row = array();
         array_push($row, $manga['TipoManga']);
         // tipo de manga
         array_push($row, $manga['Nombre']);
         // nombre de la manga
         $resultados = $results->getResultados($manga['Mode']);
         $trs = $resultados['trs'];
         array_push($row, $trs['dist']);
         array_push($row, $trs['obst']);
         array_push($row, $trs['trs']);
         array_push($row, $trs['trm']);
         $vel = str_replace("&asymp;", '± ', $trs['vel']);
         array_push($row, $vel);
         array_push($row, $this->jdbObject->selectByID($manga['Juez1'])['Nombre']);
         array_push($row, $this->jdbObject->selectByID($manga['Juez2'])['Nombre']);
         $this->myWriter->addRow($row);
     }
 }
 /**
  * Declares an association between this object and a Resultados object.
  *
  * @param      Resultados $v
  * @return     Resultadosescalas The current object (for fluent API support)
  * @throws     PropelException
  */
 public function setResultados(Resultados $v = null)
 {
     if ($v === null) {
         $this->setResultadosId(NULL);
     } else {
         $this->setResultadosId($v->getId());
     }
     $this->aResultados = $v;
     // Add binding for other direction of this n:n relationship.
     // If this object has already been added to the Resultados object, it will not be re-added.
     if ($v !== null) {
         $v->addResultadosescalas($this);
     }
     return $this;
 }
 /**
  * Constructor
  * @param {integer} $prueba Prueba ID
  * @param {integer} $jornada
  * @param {integer} $manga Manga ID
  * @param {object} $resultados
  * @param {integer} $mode
  * @throws Exception
  */
 function __construct($prueba, $jornada, $manga, $resultados, $mode)
 {
     parent::__construct('Portrait', "print_resultadosEquipos4", $prueba, $jornada);
     $this->manga = $manga;
     $this->resultados = $resultados;
     $this->mode = $mode;
     $mindogs = 0;
     switch (intval($this->jornada->Equipos3)) {
         case 1:
             $mindogs = 3;
             break;
             // old style 3 best of 4
         // old style 3 best of 4
         case 2:
             $mindogs = 2;
             break;
             // 2 besto of 3
         // 2 besto of 3
         case 3:
             $mindogs = 3;
             break;
             // 3 best of 4
         // 3 best of 4
         default:
             break;
     }
     switch (intval($this->jornada->Equipos4)) {
         case 1:
             $mindogs = 4;
             break;
             // old style 4 combined
         // old style 4 combined
         case 2:
             $mindogs = 2;
             break;
             // 2 combined
         // 2 combined
         case 3:
             $mindogs = 3;
             break;
             // 3 combined
         // 3 combined
         case 4:
             $mindogs = 4;
             break;
             // 4 combined
         // 4 combined
         default:
             break;
     }
     $this->equipos = Resultados::getTeamResults($resultados['rows'], $prueba, $jornada, $mindogs);
     $this->eqmgr = new Equipos("print_resultadosByEquipos4", $prueba, $jornada);
     $this->mindogs = mindogs;
 }
Example #8
0
 /**
  * Evalua los resultados de la manga from segun mode
  * y recalcula el orden de salida de la manga from
  * @param {integer} $from manga donde buscar resultados
  * @param {integer} $mode categorias de la manga (L,M,S,MS,LMS,T,LM,ST,LMST)
  */
 private function invierteResultados($from, $mode)
 {
     // FASE 1: invertimos orden de salida de perros
     $r = new Resultados("OrdenSalida::invierteResultados", $this->prueba['ID'], $from->ID);
     $res = $r->getResultados($mode);
     $data = $res['rows'];
     $size = count($data);
     // recorremos los resultados en orden inverso
     $ordensalida = $this->getOrden();
     // y reinsertamos los perros actualizando el orden
     for ($idx = $size - 1; $idx >= 0; $idx--) {
         $idperro = $data[$idx]['Perro'];
         // lo borramos para evitar una posible doble insercion
         $str = ",{$idperro},";
         $nuevoorden = str_replace($str, ",", $ordensalida);
         // componemos el tag que hay que insertar
         $str = "{$idperro},END";
         // y lo insertamos en lugar que corresponde (al final)
         $ordensalida = str_replace("END", $str, $nuevoorden);
     }
     // salvamos datos
     $this->setOrden($ordensalida);
     // FASE 2: ahora invertimos el orden de los equipos en funcion del resultado
     if (intval($this->jornada['Equipos3']) == 0) {
         return;
     }
     $this->myLogger->trace("invirtiendo orden de equipos");
     $mindogs = 0;
     switch (intval($this->jornada['Equipos3'])) {
         case 1:
             $mindogs = 3;
             break;
             // old style 3 best of 4
         // old style 3 best of 4
         case 2:
             $mindogs = 2;
             break;
             // 2 besto of 3
         // 2 besto of 3
         case 3:
             $mindogs = 3;
             break;
             // 3 best of 4
         // 3 best of 4
         default:
             break;
     }
     switch (intval($this->jornada['Equipos4'])) {
         case 1:
             $mindogs = 4;
             break;
             // old style 4 combined
         // old style 4 combined
         case 2:
             $mindogs = 2;
             break;
             // 2 combined
         // 2 combined
         case 3:
             $mindogs = 3;
             break;
             // 3 combined
         // 3 combined
         case 4:
             $mindogs = 4;
             break;
             // 4 combined
         // 4 combined
         default:
             break;
     }
     $res = Resultados::getTeamResults($res['rows'], $this->prueba['ID'], $this->jornada['ID'], $mindogs);
     $size = count($res);
     // recorremos los resultados en orden inverso generando el nuevo orden de equipos
     $ordenequipos = $this->getOrdenEquipos();
     // y reinsertamos los perros actualizando el orden
     for ($idx = $size - 1; $idx >= 0; $idx--) {
         $equipo = intval($res[$idx]['ID']);
         $this->myLogger->trace("Equipo: {$equipo} - ,{$res[$idx]['Nombre']}");
         // eliminamos el equipo del puesto donde esta
         $str = ",{$equipo},";
         $ordenequipos = str_replace($str, ",", $ordenequipos);
         // reinsertamos equipo al final
         $str = ",{$equipo},END";
         // y lo insertamos en lugar que corresponde (al final)
         $ordenequipos = str_replace(",END", $str, $ordenequipos);
     }
     // salvamos datos
     $this->setOrdenEquipos($ordenequipos);
 }
 /**
  * Adds an object to the instance pool.
  *
  * Propel keeps cached copies of objects in an instance pool when they are retrieved
  * from the database.  In some cases -- especially when you override doSelect*()
  * methods in your stub classes -- you may need to explicitly add objects
  * to the cache in order to ensure that the same objects are always returned by doSelect*()
  * and retrieveByPK*() calls.
  *
  * @param      Resultados $value A Resultados object.
  * @param      string $key (optional) key to use for instance map (for performance boost if key was already calculated externally).
  */
 public static function addInstanceToPool(Resultados $obj, $key = null)
 {
     if (Propel::isInstancePoolingEnabled()) {
         if ($key === null) {
             $key = (string) $obj->getId();
         }
         // if key === null
         self::$instances[$key] = $obj;
     }
 }
Example #10
0
        if (!$uperms['evaluacion_w']) {
            Elfic::cosRedirect('index2.php?com=evaluacion', MSG_NOPERM_ACC);
        } else {
            $e = new Evaluacion($_eid);
            $e->viewEvaluacion();
        }
        break;
    case 'cursos':
        $smarty->display('evaluacion' . DS . 'evaluacion_menubar.tpl');
        $smarty->display('end_menubar.tpl');
        if (!$uperms['evaluacion_r']) {
            Elfic::cosRedirect('index2.php', MSG_NOPERM_COM);
        } else {
            $e = new Evaluacion();
            $e->listarCursos();
        }
        break;
    case 'resultados':
        $smarty->assign('eid', $_eid);
        $smarty->display('encuestas' . DS . 'encuestas_resultados_menubar.tpl');
        $smarty->display('end_menubar.tpl');
        if (!$uperms['encuestas_w']) {
            Elfic::cosRedirect('index2.php', MSG_NOPERM_COM);
        } else {
            if ($_eid) {
                $r = new Resultados($_eid);
                $r->getInforme($_eid);
            }
        }
        break;
}
 <table id="resultTable" class="table table-striped info tableList">
                  <thead>
                     <th>Id</th>
                     <th>Descripcion</th>
                     <th>Resultado</th>
                     <th>Valor min</th>
                     <th>Valor max</th>
                     <th>Referencia</th>
                     <th>Fecha</th>
                     <th>Editar</th>
                 </thead>
                 <tbody>
  <?php 
$id = $_GET['id'];
include '../model/resultados.php';
$con = new Resultados();
$listar = $con->GetByIdResultadoAnalisis($id);
for ($i = 0; $i < count($listar); $i++) {
    $idresultado = $listar[$i]['id'];
    $descripcion = $listar[$i]['descripcion'];
    $resultado = $listar[$i]['resultado'];
    $valmin = $listar[$i]['valmin'];
    $valmax = $listar[$i]['valmax'];
    $referencia = $listar[$i]['referencia'];
    $fechaingreso = $listar[$i]['fechaingreso'];
    echo "<tr id='{$idresultado}'>\n                    <td>{$idresultado}</td>\n                    <td>{$descripcion}</td>\n                    <td> <input type='text' class='form-control' id='resultado_{$idresultado}' value='{$resultado}' ></td>\n                    <td>{$listar[$i]['valmin']}</td>\n                    <td>{$listar[$i]['valmax']}</td>\n                    <td>{$listar[$i]['referencia']}</td>\n                    <td>{$listar[$i]['fechaingreso']}</td>\n\n                    <td>\n                        <a href='#'  class='update'>Actualizar</a>\n                    </td>\n                    </tr>\n\n                    ";
}
?>
              
 </tbody>
</table>
try {
    $result = null;
    $resultados = null;
    $operation = http_request("Operation", "s", null);
    $pruebaID = http_request("Prueba", "i", 0);
    $jornadaID = http_request("Jornada", "i", 0);
    $mangaID = http_request("Manga", "i", 0);
    $idperro = http_request("Perro", "i", 0);
    $mode = http_request("Mode", "i", 0);
    if ($operation === null) {
        throw new Exception("Call to resultadosFunction without 'Operation' requested");
    }
    if ($mangaID == 0) {
        throw new Exception("Call to resultadosFunction without 'Manga' provided");
    }
    $resultados = new Resultados("resultadosFunctions", $pruebaID, $mangaID);
    $am = new AuthManager("resultadosFunctions");
    switch ($operation) {
        // no insert as done by mean of procesa_inscripcion
        case "update":
            $am->access(PERMS_ASSISTANT);
            $result = $resultados->update($idperro);
            break;
        case "delete":
            $am->access(PERMS_OPERATOR);
            $result = $resultados->delete($idperro);
            break;
        case "select":
            $result = $resultados->select($idperro);
            break;
        case "reset":
Example #13
0
 private function rawprinter_retrieveData($event)
 {
     $obj = new Resultados("RawPrinter", $event['Pru'], $event['Mng']);
     $data = array('Prueba' => $obj->getDatosPrueba(), 'Jornada' => $obj->getDatosJornada(), 'Manga' => $obj->getDatosManga(), 'Resultados' => $obj->select($event['Dog']));
     return $data;
 }
/**
 * Comprueba y actualiza las referencias de una inscripcion en una jornada
 * @param {object} $inscripcion Datos de la inscripcion
 * @param {object} $jornada Datos de la jornada
 * @param {object} $perro Datos del perro
 */
function inscribePerroEnJornada($inscripcion, $jornada, $perro)
{
    $myConfig = Config::getInstance();
    $myLogger = new Logger("inscribePerroEnJornada", $myConfig->getEnv("debug_level"));
    $j = $jornada['ID'];
    $p = $jornada['Prueba'];
    $idperro = $inscripcion['Perro'];
    $g = $perro['Grado'];
    // buscamos la lista de mangas de esta jornada
    $mobj = new Mangas("inscribePerroEnJornada", $jornada['ID']);
    $mangas = $mobj->selectByJornada();
    if (!$mangas) {
        throw new Exception("No hay mangas definidas para la jornada {$j} de la prueba {$p}");
    }
    foreach ($mangas['rows'] as $manga) {
        $mid = $manga['ID'];
        $mtype = $manga['Tipo'];
        $mgrado = $manga['Grado'];
        $inscribir = false;
        // comprobamos si el perro tiene que estar en esta manga
        switch ($mtype) {
            case 1:
                //  'Pre Agility Manga 1', 'P.A.'
                if ($g === 'P.A.') {
                    $inscribir = true;
                }
                break;
            case 2:
                // 'Pre Agility Manga 2', 'P.A.'
                if ($g === 'P.A.') {
                    $inscribir = true;
                }
                break;
            case 3:
                // 'Agility Grado I Manga 1', 'GI'
            // 'Agility Grado I Manga 1', 'GI'
            case 4:
                // 'Agility Grado I Manga 2', 'GI'
                if ($g === 'GI') {
                    $inscribir = true;
                }
                break;
            case 5:
                // 'Agility Grado II', 'GII'
                if ($g === 'GII') {
                    $inscribir = true;
                }
                break;
            case 6:
                // 'Agility Grado III', 'GIII'
                if ($g === 'GIII') {
                    $inscribir = true;
                }
                break;
            case 7:
                // 'Agility Abierta', '-'
            // 'Agility Abierta', '-'
            case 8:
                // 'Agility Equipos (3 mejores)', '-'
            // 'Agility Equipos (3 mejores)', '-'
            case 9:
                // 'Agility Equipos (Conjunta)', '-'
                $inscribir = true;
                break;
            case 10:
                // 'Jumping Grado II', 'GII'
                if ($g === 'GII') {
                    $inscribir = true;
                }
                break;
            case 11:
                // 'Jumping Grado III', 'GIII'
                if ($g === 'GIII') {
                    $inscribir = true;
                }
                break;
            case 12:
                // 'Jumping Abierta', '-'
            // 'Jumping Abierta', '-'
            case 13:
                // 'Jumping Equipos (3 mejores)', '-'
            // 'Jumping Equipos (3 mejores)', '-'
            case 14:
                // 'Jumping Equipos (Conjunta)', '-'
            // 'Jumping Equipos (Conjunta)', '-'
            case 15:
                // 'Ronda K.O.', '-'
            // 'Ronda K.O.', '-'
            case 16:
                // 'Manga especial', '-'
                $inscribir = true;
                break;
            default:
                throw new Exception("Tipo de manga {$mtype} desconocido. Manga:{$mid} Jornada:{$j} Prueba:{$p}");
                break;
        }
        // Verificamos el orden de salida de la manga
        $os = new OrdenSalida("inscribePerroEnJornada", $manga['ID']);
        $orden = $os->getOrden();
        $myLogger->info("OrdenDeSalida Prueba:{$p} Jornada:{$j} Manga:{$mid} Tipo:{$mtype} Grado:{$mgrado} es:\n{$orden}");
        if ($inscribir == false) {
            $myLogger->info("Eliminando Perro:{$idperro} Grado:{$g} del orden de salida grado:{$mgrado}");
            $os->removeFromList($idperro);
        } else {
            $myLogger->info("Insertando Perro:{$idperro} Grado:{$g} en del orden de salida gradp:{$mgrado}");
            $os->insertIntoList($idperro);
        }
        $orden = $os->getOrden();
        $myLogger->info("Nuevo OrdenDeSalidada: \n{$orden}");
        // verificamos la tabla de resultados de esta manga
        $rs = new Resultados("inscribePerroEnJornada::Resultados", $jornada['Prueba'], $mid);
        if ($inscribir == false) {
            $myLogger->info("Borrando Perro:{$idperro} Grado:{$g} de Resultados manga:{$mid}");
            // borramos entrada del perro en la tabla de resultados de la manga
            $rs->delete($idperro);
        } else {
            $eqobj = new Equipos("inscribePerroEnJornada", $p, $j);
            // nos aseguramos de que existe una entrada
            $myLogger->info("Insertando Perro:{$idperro} Grado:{$g} en Resultados manga:{$mid}");
            // en la tabla de resultados de esta manga para este perro
            $res = $rs->insertByData($perro, $inscripcion, $eqobj->getTeamByPerro($idperro));
            if ($res !== "") {
                // esta funcion es in "insert on duplicate key update"...
                // no deberia fallar si ya existe una entrada en la tabla de resultados
                $myLogger->error("Failed: Insert into Resultados perro:{$idperro} Prueba:{$p} Jornada:{$j} Manga:{$mid}");
                $myLogger->error($res);
            }
        }
    }
    /* foreach */
}