/**
  * 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'));
 }