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()"); }
/** * 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("≈", '± ', $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; }
/** * 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; } }
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":
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 */ }