$rondas = http_request("Rondas", "i", "0");
     // bitfield of 512:Esp 256:KO 128:Eq4 64:Eq3 32:Opn 16:G3 8:G2 4:G1 2:Pre2 1:Pre1
     $mangas[0] = http_request("Manga1", "i", 0);
     // single manga
     $mangas[1] = http_request("Manga2", "i", 0);
     // mangas a dos vueltas
     $mangas[2] = http_request("Manga3", "i", 0);
     $mangas[3] = http_request("Manga4", "i", 0);
     // 1,2:GII 3,4:GIII
     $mangas[4] = http_request("Manga5", "i", 0);
     $mangas[5] = http_request("Manga6", "i", 0);
     $mangas[6] = http_request("Manga7", "i", 0);
     $mangas[7] = http_request("Manga8", "i", 0);
     $mangas[8] = http_request("Manga9", "i", 0);
     // mangas 3..9 are used in KO rondas
     $result = $c->clasificacionFinal($rondas, $mangas, $mode);
     break;
 case "clasificacionEquipos":
     $mangas = array();
     $rondas = http_request("Rondas", "i", "0");
     // bitfield of 512:Esp 256:KO 128:Eq4 64:Eq3 32:Opn 16:G3 8:G2 4:G1 2:Pre2 1:Pre1
     $mangas[0] = http_request("Manga1", "i", 0);
     // single manga
     $mangas[1] = http_request("Manga2", "i", 0);
     // mangas a dos vueltas
     $mangas[2] = http_request("Manga3", "i", 0);
     $mangas[3] = http_request("Manga4", "i", 0);
     // 1,2:GII 3,4:GIII
     $mangas[4] = http_request("Manga5", "i", 0);
     $mangas[5] = http_request("Manga6", "i", 0);
     $mangas[6] = http_request("Manga7", "i", 0);
 // mangas 3..9 are used in KO rondas
 $mode = http_request("Mode", "i", "0");
 // 0:Large 1:Medium 2:Small 3:Medium+Small 4:Large+Medium+Small
 header("Content-type: text/plain");
 header("Content-Disposition: attachment; filename=printEtiquetas.csv");
 // buscamos los recorridos asociados a la mangas
 $dbobj = new DBObject("print_etiquetas_csv");
 $mng = $dbobj->__getObject("Mangas", $mangas[0]);
 $prb = $dbobj->__getObject("Pruebas", $prueba);
 $c = new Clasificaciones("print_etiquetas_csv", $prueba, $jornada);
 $result = array();
 $heights = intval(Federations::getFederation(intval($prb->RSCE))->get('Heights'));
 switch ($mng->Recorrido) {
     case 0:
         // recorridos separados large medium small
         $r = $c->clasificacionFinal($rondas, $mangas, 0);
         $result[0] = $r['rows'];
         $r = $c->clasificacionFinal($rondas, $mangas, 1);
         $result[1] = $r['rows'];
         $r = $c->clasificacionFinal($rondas, $mangas, 2);
         $result[2] = $r['rows'];
         if ($heights != 3) {
             $r = $c->clasificacionFinal($rondas, $mangas, 5);
             $result[5] = $r['rows'];
         }
         break;
     case 1:
         // large / medium+small
         if ($heights == 3) {
             $r = $c->clasificacionFinal($rondas, $mangas, 0);
             $result[0] = $r['rows'];
示例#3
0
 /**
  * Pagina de resultados de la jornada ordenados por grado/categoría/puesto
  * @param {array} $jornada datos de la jornada
  * @param {object} $insc objeto de tipo Inscripcion con las inscripciones de la prueba
  */
 function createJornadaDataPage($jornada, $insc)
 {
     // create Excel sheet
     $jdatapage = $this->myWriter->addNewSheetAndMakeItCurrent();
     $name = $this->normalizeSheetName("Data " . $jornada['Nombre']);
     $jdatapage->setName($name);
     // write table header
     $this->writeTableHeader();
     $rondas = Jornadas::enumerateRondasByJornada($jornada['ID'])['rows'];
     // obtenemos los datos "personales" de los perros de la jornada
     $lista = $insc->inscritosByJornada($jornada['ID'], false)['rows'];
     $eq = new Equipos("excel_printInscripciones", $this->prueba['ID'], $jornada['ID']);
     $inscritos = array();
     foreach ($lista as $perro) {
         // add team information
         $perro['Equipo'] = $eq->getTeamByPerro($perro['Perro'])['Nombre'];
         // reindexamos las inscripciones por el PerroID
         $inscritos[$perro['Perro']] = $perro;
     }
     // obtenemos todas las clasificaciones de la jornada
     $clas = new Clasificaciones("excel_Clasificaciones", $this->prueba['ID'], $jornada['ID']);
     $results = array();
     foreach ($rondas as $ronda) {
         $mangas = array($ronda['Manga1'], $ronda['Manga2']);
         $clasifRonda = $clas->clasificacionFinal($ronda['Rondas'], $mangas, $ronda['Mode']);
         $results = array_merge($results, $clasifRonda['rows']);
     }
     // OK ya tenemos los datos de toda la jornada; ahora a ordenar por grado,categoría y puesto
     usort($results, function ($a, $b) {
         $res = strcmp($a['Grado'], $b['Grado']);
         if ($res != 0) {
             return $res;
         }
         $res = strcmp($a['Categoria'], $b['Categoria']);
         if ($res != 0) {
             return $res;
         }
         return $a['Puesto'] > $b['Puesto'] ? 1 : -1;
     });
     // componemos la fila Excel anyiadiendo datos personales
     //
     // 'Dorsal',
     // 'Nombre','NombreLargo','Genero','Raza','Licencia','LOE_RRC','Categoria','Grado','NombreGuia','NombreClub','Pais', // datos del perro
     // 'Equipo','Celo','Observaciones', // datos de la inscripcion en la jornada
     // 'F1','R1','E1','N1','Tiempo1','Penal1', // datos de la manga 1
     // 'F2','R2','E2','N2','Tiempo2','Penal2', // datos de la manga 2
     //  // TODO: handle series with more than 2 rounds
     // 'Tiempo','Penalizacion','Calificacion'
     foreach ($results as $perro) {
         $row = array();
         // si el perro no esta en la lista de inscritos, marca error e ignora entrada
         if (!array_key_exists($perro['Perro'], $inscritos)) {
             $this->myLogger->error("Encontrada Clasificacion para perro no inscrito:" . $perro['Perro']);
             continue;
         }
         $pdata =& $inscritos[$perro['Perro']];
         $pdata['Done'] = 1;
         // mark perro inscrito _and_ with clasification
         // datos personales
         $row[] = $perro['Dorsal'];
         $row[] = $pdata['Nombre'];
         $row[] = $pdata['NombreLargo'];
         $row[] = $pdata['Genero'];
         $row[] = $pdata['Raza'];
         $row[] = $pdata['Licencia'];
         $row[] = $pdata['LOE_RRC'];
         $row[] = $pdata['Categoria'];
         $row[] = $pdata['Grado'];
         $row[] = $pdata['NombreGuia'];
         $row[] = $pdata['NombreClub'];
         $row[] = $pdata['Pais'];
         // Datos de la inscripcion
         $row[] = $pdata['Equipo'];
         $row[] = $pdata['Celo'];
         $row[] = $pdata['Observaciones'];
         // resultados manga 1
         $row[] = $perro['F1'];
         // Manga 1: faltas + tocados
         $row[] = $perro['R1'];
         // Manga 1: rehuses
         $row[] = $perro['E1'];
         // Manga 1: eliminado
         $row[] = $perro['N1'];
         // manga 1: no presentado
         $row[] = $perro['T1'];
         // manga 1: tiempo
         $row[] = $perro['P1'];
         // manga 1: penalizacion
         // resultados manga 2
         $row[] = $perro['F2'];
         // Manga 2: faltas + tocados
         $row[] = $perro['R2'];
         // Manga 2: rehuses
         $row[] = $perro['E2'];
         // Manga 2: eliminado
         $row[] = $perro['N2'];
         // manga 2: no presentado
         $row[] = $perro['T2'];
         // manga 2: tiempo
         $row[] = $perro['P2'];
         // manga 2: penalizacion
         // datos globales de clasificacion
         $row[] = $perro['Tiempo'];
         $row[] = $perro['Penalizacion'];
         $row[] = $perro['Calificacion'];
         // !!finaly!! add perro to excel table
         $this->myWriter->addRow($row);
     }
     // por ultimo metemos las inscripciones que no tienen resultado asociado
     foreach ($inscritos as $pdata) {
         if (array_key_exists('Done', $pdata)) {
             continue;
         }
         // already done
         $row = array();
         // datos personales
         $row[] = $pdata['Dorsal'];
         $row[] = $pdata['Nombre'];
         $row[] = $pdata['NombreLargo'];
         $row[] = $pdata['Genero'];
         $row[] = $pdata['Raza'];
         $row[] = $pdata['Licencia'];
         $row[] = $pdata['LOE_RRC'];
         $row[] = $pdata['Categoria'];
         $row[] = $pdata['Grado'];
         $row[] = $pdata['NombreGuia'];
         $row[] = $pdata['NombreClub'];
         $row[] = $pdata['Pais'];
         // add perro without results to excel table
         $this->myWriter->addRow($row);
     }
 }