// 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 $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']; }
See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ require_once __DIR__ . "/../logging.php"; require_once __DIR__ . "/../tools.php"; require_once __DIR__ . "/classes/Clasificaciones.php"; try { $result = null; $prueba = http_request("Prueba", "i", 0); $jornada = http_request("Jornada", "i", 0); $mode = http_request("Mode", "i", "0"); // 0:Large 1:Medium 2:Small 3:Medium+Small 4:Large+Medium+Small $op = http_request("Operation", "s", "clasificacionIndividual"); $c = new Clasificaciones("clasificacionesFunctions", $prueba, $jornada); switch ($op) { case "clasificacionIndividual": $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[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 $mode = http_request("Mode", "i", 0); // 0:Large 1:Medium 2:Small 3:Medium+Small 4:Large+Medium+Small $rowcount = http_request("Start", "i", 0); // offset to first label in page $listadorsales = http_request("List", "s", ""); // CSV Dorsal List // 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_pdf", $prueba, $jornada); // obtenemos la clasificacion de la tanda seleccionada $r = $c->clasificacionFinal($rondas, $mangas, $mode); $result[0] = $r['rows']; /* $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);
/** * 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); } }
$prueba = http_request("Prueba", "i", 0); $jornada = http_request("Jornada", "i", 0); $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 $mode = http_request("Mode", "i", "0"); // 0:Large 1:Medium 2:Small 3:Medium+Small 4:Large+Medium+Small $c = new Clasificaciones("print_clasificacion_pdf", $prueba, $jornada); $cfinal = $c->clasificacionFinalEquipos($rondas, $mangas, $mode); // Creamos generador de documento $pdf = new PrintClasificacionTeam($prueba, $jornada, $mangas, $cfinal, $mode); $pdf->AliasNbPages(); $pdf->composeTable(); $pdf->Output("print_clasificacion_team.pdf", "D"); // "D" means open download dialog } catch (Exception $e) { do_log($e->getMessage()); die($e->getMessage()); }