$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());
}
示例#2
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("≈", '± ', $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);
     }
 }
示例#3
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);
 }
示例#4
0
 /**
  * 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: