/** Constructor
  * @param {int} $prueba prueba id
  * @param {int} $jornada jornada id
  * @param {array} $mangas datos de la manga
  * @param {array} $results resultados asociados a la manga/categoria pedidas
  * @param {int} $mode manga mode
  * @throws Exception
  */
 function __construct($prueba, $jornada, $mangas, $results, $mode)
 {
     parent::__construct('Landscape', "print_clasificacion_eqBest", $prueba, $jornada);
     $dbobj = new DBObject("print_clasificacionEquipos");
     $this->manga1 = null;
     $this->manga2 = null;
     $this->trs1 = null;
     $this->trs2 = null;
     if ($mangas[0] != 0) {
         $this->manga1 = $dbobj->__getObject("Mangas", $mangas[0]);
         $this->trs1 = $results['trs1'];
     }
     if ($mangas[1] != 0) {
         $this->manga2 = $dbobj->__getObject("Mangas", $mangas[1]);
         $this->trs2 = $results['trs2'];
     }
     $this->categoria = $this->getModeString(intval($mode));
     $this->equipos = $results['equipos'];
     // recuerda que YA viene indexado por puesto
     // insertamos perros dentro de cada equipo.
     // para ello vamos a crear un array indexado por teamID
     $teams = array();
     foreach ($this->equipos as &$equipo) {
         $equipo['Perros'] = array();
         $teams[$equipo['ID']] = $equipo;
     }
     // iteramos los perros insertandolos en el equipo. Recuerda que los perros ya vienen ordenados
     foreach ($results['individual'] as &$perro) {
         array_push($teams[$perro['Equipo']]['Perros'], $perro);
     }
     $this->equipos = $teams;
 }
 /**
  * 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'));
 }
 /**
  * Constructor
  * @param {integer} $prueba Prueba ID
  * @param {integer} $jornada Jormada ID
  * @param {integer} $manga Manga ID
  * @throws Exception
  */
 function __construct($prueba, $jornada, $manga)
 {
     parent::__construct('Portrait', "print_entradaDeDatosEquipos4", $prueba, $jornada);
     if ($prueba <= 0 || $jornada <= 0) {
         $this->errormsg = "print_datosEquipos4: 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_datosEquipos4: Jornada {$jornada} has no Team competition declared";
         throw new Exception($this->errormsg);
     }
     // guardamos info de la manga
     $this->manga = $this->myDBObject->__getObject("Mangas", $manga);
     // Datos del orden de salida de equipos
     $m = new OrdenSalida("ordenSalidaEquipos4", $manga);
     $teams = $m->getTeams();
     $this->equipos = $teams['rows'];
     // anyadimos el array de perros del equipo
     foreach ($this->equipos as &$equipo) {
         $equipo['Perros'] = array();
     }
     $r = $this->myDBObject->__select("*", "Resultados", "(Manga={$manga})", "", "");
     foreach ($r['rows'] as $perro) {
         foreach ($this->equipos as &$equipo) {
             if ($perro['Equipo'] == $equipo['ID']) {
                 array_push($equipo['Perros'], $perro);
                 break;
             }
         }
     }
 }
Exemplo n.º 4
0
 /**
  * Constructor
  * @throws Exception
  */
 function __construct($federation)
 {
     date_default_timezone_set('Europe/Madrid');
     parent::__construct('Portrait', "print_listaPerros", 1, 0);
     // use default prueba. not really needed
     $d = new Dogs("print_listaPerros");
     $res = $d->select();
     if (!is_array($res)) {
         $this->errormsg = "print_listaPerros: select() failed";
         throw new Exception($this->errormsg);
     }
     $this->lista = $res['rows'];
     // rework federation handling as parent got it from senseless prueba ID
     $this->federation = Federations::getFederation(intval($federation));
     $this->strClub = $this->federation->isInternational() ? _('Country') : _('Club');
     $this->icon = getIconPath($this->federation->get('Name'), "agilitycontest.png");
     $this->icon2 = getIconPath($this->federation->get('Name'), $this->federation->get('Logo'));
     $this->cols[8] = $this->strClub;
     // use "country" or "club" according federation
     if ($this->federation->get('WideLicense') == true) {
         // on wide license hide loe/rrc
         $this->pos[3] += $this->pos[4];
         $this->pos[4] = 0;
         $this->pos[3] += 5;
         // decrease handler name
         $this->pos[7] -= 5;
     }
 }
 /**
  * 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_resultadosByManga", $prueba, $jornada);
     $this->manga = $manga;
     $this->resultados = $resultados;
     $this->mode = $mode;
     $catgrad = Jornadas::hasGrades($this->jornada) ? _('Cat') . '/' . _('Grade') : _('Cat') . ".";
     $this->cellHeader = array(_('Dorsal'), _('Name'), _('Lic'), _('Handler'), $this->strClub, $catgrad, _('Flt'), _('Tch'), _('Ref'), _('Time'), _('Vel'), _('Penal'), _('Calification'), _('Position'));
 }
Exemplo n.º 6
0
 /**
  * Constructor
  * @param {integer} $prueba Prueba ID
  * @param {integer} $jornada Jornada ID
  * @param {integer} $m Print mode. 0:Trs/Trm evaluation calc sheet 1:Trsdata template to enter data
  * @throws Exception
  */
 function __construct($prueba, $jornada, $m)
 {
     date_default_timezone_set('Europe/Madrid');
     parent::__construct($m == 0 ? 'Landscape' : 'Portrait', "print_Templates", $prueba, $jornada);
     if ($prueba <= 0 || $jornada <= 0) {
         $this->errormsg = "printTemplates: either prueba or jornada data are invalid";
         throw new Exception($this->errormsg);
     }
     $this->mode = $m;
 }
 /**
  * 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);
 }
Exemplo n.º 8
0
 /** Constructor
  * @param {obj} $manga datos de la manga
  * @param {obj} $resultados resultados asociados a la manga/categoria pedidas
  * @throws Exception
  */
 function __construct($prueba, $jornada, $mangas)
 {
     parent::__construct('Portrait', "print_etiquetasPDF", $prueba, $jornada);
     $dbobj = new DBObject("print_etiquetas_pdf");
     $this->manga1 = $dbobj->__getObject("Mangas", $mangas[0]);
     $this->manga2 = $dbobj->__getObject("Mangas", $mangas[1]);
     // add version date and license serial to every label
     $ser = substr($this->regInfo['Serial'], 4, 4);
     $ver = substr($this->config->getEnv("version_date"), 2, 6);
     $this->serialno = "{$ver}-{$ser}";
 }
 /**
  * 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;
 }
Exemplo n.º 10
0
 /** Constructor
  * @param {int} $prueba
  * @param {int} $jornada
  * @param {array} $mangas lista de mangaid's
  * @param {array} $results resultados asociados a la manga pedidas
  * @throws Exception
  */
 function __construct($prueba, $jornada, $mangas, $results)
 {
     parent::__construct('Landscape', "print_podium", $prueba, $jornada);
     $dbobj = new DBObject("print_clasificacion");
     $this->manga1 = $dbobj->__getObject("Mangas", $mangas[0]);
     $this->manga2 = null;
     if ($mangas[1] != 0) {
         $this->manga2 = $dbobj->__getObject("Mangas", $mangas[1]);
     }
     $this->resultados = $results;
 }
Exemplo n.º 11
0
 /**
  * Constructor
  * @param {integer} $prueba Prueba ID
  * @param {integer} $jornada Jornada ID
  * @throws Exception
  */
 function __construct($prueba, $jornada)
 {
     date_default_timezone_set('Europe/Madrid');
     parent::__construct('Portrait', "print_ordenTandas", $prueba, $jornada);
     if ($prueba <= 0 || $jornada <= 0) {
         $this->errormsg = "printTandas: either prueba or jornada data are invalid";
         throw new Exception($this->errormsg);
     }
     // Datos del orden de tandas
     $o = new Tandas("PrintTandas", $prueba, $jornada);
     $ot = $o->getTandas(0);
     // 0: any tanda
     $this->orden = $ot['rows'];
 }
Exemplo n.º 12
0
 /** Constructor
  * @param {int} $prueba prueba id
  * @param {int} $jornada jornada id
  * @param {array} $mangas datos de la manga
  * @param {array} $results resultados asociados a la manga/categoria pedidas
  * @param {int} $mode manga mode
  * @throws Exception
  */
 function __construct($prueba, $jornada, $mangas, $results, $mode)
 {
     parent::__construct('Landscape', "print_clasificacion", $prueba, $jornada);
     $dbobj = new DBObject("print_clasificacion");
     $this->manga1 = $dbobj->__getObject("Mangas", $mangas[0]);
     $this->manga2 = null;
     if ($mangas[1] != 0) {
         $this->manga2 = $dbobj->__getObject("Mangas", $mangas[1]);
     }
     $this->resultados = $results['rows'];
     $this->trs1 = $results['trs1'];
     $this->trs2 = null;
     if ($mangas[1] != 0) {
         $this->trs2 = $results['trs2'];
     }
     $this->categoria = $this->getModeString(intval($mode));
 }
Exemplo n.º 13
0
 /**
  * Constructor
  * @param {integer} $prueba 
  * @param {integer} $jornada 
  * @param {array[object]} datos de la manga y (si existe) manga hermana
  * @param {array} $ordens Lista de inscritos en formato jquery array[count,rows[]]
  * @param {integer} $numrows numero de perros a imprimir por cada hoja
  * @throws Exception
  */
 function __construct($prueba, $jornada, $mangas, $ordens, $numrows)
 {
     parent::__construct('Portrait', "print_entradaDeDatos", $prueba, $jornada);
     if ($prueba <= 0 || $jornada <= 0 || $mangas === null || $ordens === null) {
         $this->errormsg = "printEntradaDeDatos: either prueba/jornada/ manga/orden data are invalid";
         throw new Exception($this->errormsg);
     }
     $this->manga = $mangas[0];
     if (array_key_exists(1, $mangas)) {
         $this->manga2 = $mangas[1];
     }
     $this->orden = $ordens;
     $this->numrows = $numrows;
     $this->categoria = "L";
     $this->cellHeader[4] = $this->strClub;
     // fix country/club text
 }
Exemplo n.º 14
0
 /**
  * Constructor
  * @param {integer} $prueba Prueba ID
  * @param {integer} $jornada Jormada ID
  * @param {integer} $manga Manga ID
  * @throws Exception
  */
 function __construct($prueba, $jornada, $manga)
 {
     parent::__construct('Portrait', "print_ordenDeSalida", $prueba, $jornada);
     if ($prueba <= 0 || $jornada <= 0 || $manga <= 0) {
         $this->errormsg = "printOrdenDeSalida: either prueba/jornada/ manga/orden data are invalid";
         throw new Exception($this->errormsg);
     }
     // Datos de la manga
     $m = new Mangas("printOrdenDeSalida", $jornada);
     $this->manga = $m->selectByID($manga);
     // Datos del orden de salida
     $o = new OrdenSalida("printOrdenDeSalida", $manga);
     $os = $o->getData();
     $this->orden = $os['rows'];
     $this->categoria = "L";
     $this->cellHeader = array(_('Order'), _('Dorsal'), _('Name'), _('Breed'), _('Lic'), _('Handler'), $this->strClub, _('Heat'), _('Comments'));
     // obtenemos los datos de equipos de la jornada indexados por el ID del equipo
     $eq = new Equipos("print_ordenDeSalida", $prueba, $jornada);
     $this->teams = array();
     foreach ($eq->getTeamsByJornada() as $team) {
         $this->teams[$team['ID']] = $team;
     }
 }
 /**
  * Constructor
  * @param {integer} $prueba Prueba ID
  * @param {array} $inscritos Lista de inscritos en formato jquery array[count,rows[]]
  * @throws Exception
  */
 function __construct($prueba, $inscritos, $jornadas, $jornadaid)
 {
     parent::__construct('Portrait', 'print_inscritosByJornada', $prueba, 0);
     if ($prueba == 0 || $inscritos === null) {
         $this->errormsg = "printInscritosByPrueba: either prueba or inscription data are invalid";
         throw new Exception($this->errormsg);
     }
     usort($inscritos['rows'], function ($a, $b) {
         return $a['Dorsal'] > $b['Dorsal'] ? 1 : -1;
     });
     $this->inscritos = $inscritos['rows'];
     $this->jornadas = $jornadas['rows'];
     $this->setPageName("inscritosByJornada.pdf");
     $this->cellHeader = array(_('Dorsal'), _('Name'), _('Lic'), _('Handler'), $this->strClub, _('Cat'), _('Grado'), _('Heat'), _('Comments'));
     $this->JName = "";
     foreach ($jornadas['rows'] as $j) {
         if ($j['ID'] == $jornadaid) {
             $this->jornada = $j;
             $this->JName = "J{$j['Numero']}";
             // remove "Grade" from cell array if jornada is open/team/KO
             if (!Jornadas::hasGrades($j)) {
                 $this->pos[5] = 16;
                 // increase category size
                 $this->pos[6] = 0;
                 // set grade size to zero
             }
             break;
         }
     }
     if ($this->JName === "") {
         $this->errormsg = "printInscritosByJornada: Invalid Jornada ID:{$jornadaid} for provided prueba";
         throw new Exception($this->errormsg);
     }
 }