/**
  * Constructor
  * @param {integer} $prueba Prueba ID
  * @param {integer} $jornada Jormada ID
  * @param {integer} $manga Manga ID
  * @throws Exception
  */
 function __construct($prueba, $jornada)
 {
     parent::__construct('Portrait', "print_equiposByJornada", $prueba, $jornada);
     if ($prueba <= 0 || $jornada <= 0) {
         $this->errormsg = "print_teamsByJornada: either prueba or jornada data are invalid";
         throw new Exception($this->errormsg);
     }
     // comprobamos que estamos en una jornada por equipos
     $flag = intval($this->jornada->Equipos3) + intval($this->jornada->Equipos4);
     if ($flag == 0) {
         $this->errormsg = "print_teamsByJornada: Jornada {$jornada} has no Team competition declared";
         throw new Exception($this->errormsg);
     }
     // Datos de equipos de la jornada
     $m = new Equipos("print_teamsByJornada", $prueba, $jornada);
     $teams = $m->getTeamsByJornada();
     // reindexamos por ID y anyadimos un campo extra "Perros" con los perros del equipo
     $this->equipos = array();
     foreach ($teams as &$equipo) {
         $equipo['Perros'] = $m->getPerrosByTeam($equipo['ID']);
         $this->equipos[$equipo['ID']] = $equipo;
     }
     // Datos de los participantes (indexados por ID de perro)
     $m = new DBObject("print_teamsByJornada");
     $r = $m->__select("*", "Resultados", "(Jornada={$jornada})", "", "");
     $this->perros = array();
     foreach ($r['rows'] as $item) {
         $this->perros[intval($item['Perro'])] = $item;
     }
     // finalmente internacionalizamos cabeceras
     $this->cellHeader = array(_('Dorsal'), _('Name'), _('Breed'), _('Lic'), _('Category'), _('Handler'), $this->strClub, _('Heat'), _('Comments'));
 }
Example #2
0
 /**
  * enumera las diversas rondas (Pre-agility, Grado I, Grado II, etc de la jornada ) con sus mangas asociadas
  * @param $jornadaid
  * @return array|null
  */
 static function enumerateRondasByJornada($jornadaid)
 {
     if ($jornadaid <= 0) {
         // no jornada id provided
         return array('total' => 0, 'rows' => array());
     }
     $dbobj = new DBObject("enumerateRondasByJornada");
     $dbobj->myLogger->enter();
     $jornada = $dbobj->__getArray("Jornadas", $jornadaid);
     $prueba = $dbobj->__getArray("pruebas", $jornada['Prueba']);
     $mangas = $dbobj->__select("*", "Mangas", "(Jornada={$jornadaid})", "TIPO ASC", "")['rows'];
     $data = array();
     if ($jornada['PreAgility2'] != 0) {
         // $dbobj->myLogger->trace("Procesando mangas de preagility-2");
         /* Pre-Agility siempre tiene recorrido comun para todas las categorias */
         $m1 = Jornadas::__searchManga(1, $mangas);
         // PA-1
         $m2 = Jornadas::__searchManga(2, $mangas);
         // PA-2
         Jornadas::__compose($data, $prueba, $jornadaid, 2, $m1, $m2);
     } else {
         if ($jornada['PreAgility'] != 0) {
             // $dbobj->myLogger->trace("Procesando mangas de preagility-1");
             /* Pre-Agility siempre tiene recorrido comun para todas las categorias */
             $m1 = Jornadas::__searchManga(1, $mangas);
             // PA-1
             Jornadas::__compose($data, $prueba, $jornadaid, 1, $m1, null);
         }
     }
     if ($jornada['Grado1'] != 0) {
         // Jornadas::tiporonda=3
         $m1 = Jornadas::__searchManga(3, $mangas);
         // Agility 1 Grado I
         $m2 = Jornadas::__searchManga(4, $mangas);
         // Agility 2 Grado I
         Jornadas::__compose($data, $prueba, $jornadaid, 3, $m1, $m2);
     }
     if ($jornada['Grado2'] != 0) {
         // Jornadas::tiporonda=4
         $m1 = Jornadas::__searchManga(5, $mangas);
         // Agility Grado II
         $m2 = Jornadas::__searchManga(10, $mangas);
         // Jumping Grado II
         Jornadas::__compose($data, $prueba, $jornadaid, 4, $m1, $m2);
     }
     if ($jornada['Grado3'] != 0) {
         // Jornadas::tiporonda=5
         $m1 = Jornadas::__searchManga(6, $mangas);
         // Agility Grado III
         $m2 = Jornadas::__searchManga(11, $mangas);
         // Jumping Grado III
         Jornadas::__compose($data, $prueba, $jornadaid, 5, $m1, $m2);
     }
     if ($jornada['Open'] != 0) {
         // Jornadas::tiporonda=6
         $m1 = Jornadas::__searchManga(7, $mangas);
         // Agility Open
         $m2 = Jornadas::__searchManga(12, $mangas);
         // Jumping Open
         Jornadas::__compose($data, $prueba, $jornadaid, 6, $m1, $m2);
     }
     if ($jornada['Equipos3'] != 0) {
         // Jornadas::tiporonda=7
         $m1 = Jornadas::__searchManga(8, $mangas);
         // Agility Equipos3
         $m2 = Jornadas::__searchManga(13, $mangas);
         // Jumping Equipos3
         Jornadas::__compose($data, $prueba, $jornadaid, 7, $m1, $m2);
     }
     if ($jornada['Equipos4'] != 0) {
         // Jornadas::tiporonda=8
         $m1 = Jornadas::__searchManga(9, $mangas);
         // Agility Equipos3
         $m2 = Jornadas::__searchManga(14, $mangas);
         // Jumping Equipos3
         Jornadas::__compose($data, $prueba, $jornadaid, 8, $m1, $m2);
     }
     if ($jornada['KO'] != 0) {
         // $dbobj->myLogger->trace("Procesando mangas K.O.");
         // TODO: write
         return null;
     }
     if ($jornada['Especial'] != 0) {
         // Jornadas::tiporonda=10
         $m1 = Jornadas::__searchManga(16, $mangas);
         // Manga especial a una vuelta
         Jornadas::__compose($data, $prueba, $jornadaid, 10, $m1, null);
     }
     // TODO: evaluate conjuntas Grado II y III
     $result = array('total' => count($data), 'rows' => $data);
     return $result;
 }