// 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);
示例#4
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);
     }
 }
    $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());
}