$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()); }
/** * 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); } }
/** * 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); }
/** * Evalua las clasificaciones en funcion de los datos pedidos * @param {integer} $rondas bitfield Jornadas::$tipo_ronda * @param {array[{integer}]} $idmangas array con los ID's de las mangas a evaluar * @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 */ function clasificacionFinal($rondas, $idmangas, $mode) { // vamos a ver que tipo de clasificacion nos estan pidiendo switch ($rondas) { case 0x1: // pre-agility a una vuelta $r1 = new Resultados("Clasificaciones::Preagility 1", $this->prueba->ID, $idmangas[0]); $c1 = $r1->getResultados($mode); return $this->evalFinal($idmangas, $c1, null); case 0x2: // pre-agility a dos vueltas // pre-agility a dos vueltas case 0x4: // Grado I // Grado I case 0x8: // Grado II // Grado II case 0x10: // Grado III // Grado III case 0x20: // Open $r1 = new Resultados("Clasificaciones Ronda:{$rondas} manga:{$idmangas[0]}", $this->prueba->ID, $idmangas[0]); // Agility $r2 = new Resultados("Clasificaciones Ronda:{$rondas} manga:{$idmangas[1]}", $this->prueba->ID, $idmangas[1]); // Jumping $c1 = $r1->getResultados($mode); $c2 = $r2->getResultados($mode); return $this->evalFinal($idmangas, $c1, $c2); break; case 0x18: // Conjunta GII - GIII $r1 = new Resultados("Clasificaciones Ronda:{$rondas} manga:{$idmangas[0]}", $this->prueba->ID, $idmangas[0]); // Agility GII $r2 = new Resultados("Clasificaciones Ronda:{$rondas} manga:{$idmangas[1]}", $this->prueba->ID, $idmangas[1]); // Jumping GII $r3 = new Resultados("Clasificaciones Ronda:{$rondas} manga:{$idmangas[2]}", $this->prueba->ID, $idmangas[2]); // Agility GIII $r4 = new Resultados("Clasificaciones Ronda:{$rondas} manga:{$idmangas[3]}", $this->prueba->ID, $idmangas[3]); // Jumping GIII $c1 = $this->combina($r1->getResultados($mode), $r3->getResultados($mode)); $c2 = $this->combina($r2->getResultados($mode), $r4->getResultados($mode)); return $this->evalFinal($idmangas, $c1, $c2); case 0x400: // equipos 2 mejores de 3 // equipos 2 mejores de 3 case 0x40: // equipos 3 mejores de 4 $r1 = new Resultados("Clasificaciones Ronda:{$rondas} manga:{$idmangas[0]}", $this->prueba->ID, $idmangas[0]); // Agility Equipos best $r2 = new Resultados("Clasificaciones Ronda:{$rondas} manga:{$idmangas[1]}", $this->prueba->ID, $idmangas[1]); // Jumping Equipos best $c1 = $r1->getResultados($mode); $c2 = $r2->getResultados($mode); return $this->evalFinal($idmangas, $c1, $c2); case 0x800: // equipos 2 conjunta // equipos 2 conjunta case 0x1000: // equipos 3 conjunta // equipos 3 conjunta case 0x80: // equipos 4 conjunta $r1 = new Resultados("Clasificaciones Ronda:{$rondas} manga:{$idmangas[0]}", $this->prueba->ID, $idmangas[0]); // Agility Equipos combined $r2 = new Resultados("Clasificaciones Ronda:{$rondas} manga:{$idmangas[1]}", $this->prueba->ID, $idmangas[1]); // Jumping Equipos combined $c1 = $r1->getResultados($mode); $c2 = $r2->getResultados($mode); return $this->evalFinal($idmangas, $c1, $c2); case 0x100: // ronda KO 1..8 vueltas $this->errormsg = "Clasificaciones:: Ronda {$rondas} is not yet supported"; return null; case 0x200: // manga especial (una vuelta) $r1 = new Resultados("Clasificaciones::Manga Especial", $this->prueba->ID, $idmangas[0]); $c1 = $r1->getResultados($mode); return $this->evalFinal($idmangas, $c1, null); } // arriving here means error return null; }
case "delete": $am->access(PERMS_OPERATOR); $result = $resultados->delete($idperro); break; case "select": $result = $resultados->select($idperro); break; case "reset": $am->access(PERMS_OPERATOR); $result = $resultados->reset(); break; case "getPendientes": $result = $resultados->getPendientes($mode); break; case "getResultados": $result = $resultados->getResultados($mode); break; case "getResultadosEquipos": $result = $resultados->getResultadosEquipos($mode); break; case "getPuesto": $data = array('Perro' => $idperro, 'Faltas' => http_request("Faltas", "i", 0), 'Tocados' => http_request("Tocados", "i", 0), 'Rehuses' => http_request("Rehuses", "i", 0), 'Eliminado' => http_request("Eliminado", "i", 0), 'NoPresentado' => http_request("NoPresentado", "i", 1), 'Tiempo' => http_request("Tiempo", "f", 0)); $result = $resultados->getPuesto($mode, $data); break; case "getTRS": $result = $resultados->getTRS($mode); break; case "bestTimes": $result = $resultados->bestTimes($mode); break; default: