/**
  * 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;
     }
 }
Exemple #2
0
 /**
  * Obtiene $after+$before+1 perros ordenados segun el orden de salida
  * @param $perro ID de perro tomado como referencia
  *  if ID==0 means at begin of queue
  *  if ID<0 means at end of queue
  * @param $before numero de perros a buscar que hayan salido antes del de referencia
  * @param $after numero de perros a introducir que tengan que salir despues del de referencia
  */
 function videowall_windowCall($perro, $before, $after)
 {
     $this->myLogger->enter();
     $nitems = $before + $after + 1;
     // obtenemos listado ordenado de perros de la manga
     $osobj = new OrdenSalida("VideoWall-ng", $this->mangaid);
     $os = $osobj->getData(false);
     // omit inserting team info rows
     // obtenemos categoria y grado de la tanda
     $catstr = Tandas::$tipo_tanda[$this->tandatype]['Categoria'];
     // categoria
     $gradostr = Tandas::$tipo_tanda[$this->tandatype]['Grado'];
     // grado ("-" means any grade)
     // componemos un array de $before+1+$after perros
     $result = array();
     // reserve $before +1 empty slots before dog list
     for ($n = 0; $n < $before + 1; $n++) {
         array_unshift($result, $this->getEmptyData());
     }
     $found = -1;
     // add dog list, setting up starting orden
     $orden = 0;
     // if dog found, mark index
     foreach ($os['rows'] as &$item) {
         if (strstr($catstr, $item['Categoria']) === false) {
             continue;
         }
         // category does not match, ignore
         if ($gradostr !== '-' && $gradostr !== $item['Grado']) {
             continue;
         }
         // grade differs, ignore entry
         // same category and (if required) grade
         $orden++;
         $item['Orden'] = $orden;
         array_unshift($result, $item);
         // if item matches requested dog, cut
         if ($item['Perro'] == $perro) {
             $found = count($result) - 1;
         }
         if ($found <= 0) {
             continue;
         }
         // not yet found
         if (count($result) - $found > $after) {
             break;
         }
         // enought dogs; iteration no longer needed
     }
     // fill array with $after empty rows
     for ($n = 0; $n < $after; $n++) {
         array_unshift($result, $this->getEmptyData());
         // if dogID<0 means seek at end of list
         if ($perro >= 0) {
             continue;
         }
         if ($n != 0) {
             continue;
         }
         $found = count($result) - 1;
     }
     // if dog is not provided nor found, just assume default
     if ($found < 0) {
         $found = $before;
     }
     // and return 3 arrays:
     $res = array("before" => array_slice($result, -$found, $before), "current" => array_slice($result, -($found + 1), 1), "after" => array_slice($result, -($found + 1 + $after), $after));
     echo json_encode($res);
     return 0;
 }
                    break;
            }
            $rowcount++;
            $orden++;
        }
        // Línea de cierre
        $this->Cell(array_sum($this->pos), 0, '', 'T');
        $this->myLogger->leave();
    }
}
// Consultamos la base de datos
try {
    $prueba = http_request("Prueba", "i", 0);
    $jornada = http_request("Jornada", "i", 0);
    $manga = http_request("Manga", "i", 0);
    $mode = http_request("Mode", "i", 0);
    // Datos de la manga y su manga hermana
    $m = new Mangas("printEntradaDeDatos", $jornada);
    $mangas = $m->getHermanas($manga);
    // Datos del orden de salida
    $o = new OrdenSalida("printEntradaDeDatos", $manga);
    $orden = $o->getData();
    // Creamos generador de documento
    $pdf = new EntradaDeDatos($prueba, $jornada, $mangas, $orden['rows'], $mode);
    $pdf->AliasNbPages();
    $pdf->composeTable();
    $pdf->Output("entradaDeDatos.pdf", "D");
    // "D" means open download dialog
} catch (Exception $e) {
    die("Error accessing database: " . $e->getMessage());
}
Exemple #4
0
 /**
  * Obtiene la lista ordenada de perros de esta jornada asociadas a la sesion, y tandas especificadas
  * @param {integer} $s session id.
  *    0: ANY sesion
  *    1: ANY BUT User defined sessions
  *   -1: User defined sessions
  *    n: Session number "n"
  *   -n: Session number "n" PLUS User defined sessions
  * @param {number} $t Tanda ID.
  *     $t=0; mira todos los perros de todas las tandas de la sesion indicada
  *     $t>0; mira SOLO los perros de la tanda
  *     $t<0; mira todos los perros A PARTIR DE la tanda (-$t)
  * @param {number} $pendientes Pendientes $p==0 -> muestra todos los perros; else muestra los $p primeros pendientes de salir
  */
 private function getListaPerros($s = 0, $t = 0, $pendientes = 0)
 {
     $count = $pendientes;
     // contador de perros pendientes de listar
     $manga = 0;
     // variable para controlar manga "activa"
     $perrosmanga = null;
     // {array} lista de perros ordenada segun ordensalida de la manga
     $do_iterate = false;
     // indica si debe analizar los perros de la tanda
     $rows = array();
     // donde iremos guardando los resultados
     $result = array();
     // resultado a devolver en formato json
     // obtenemos la lista de tandas
     $lista_tandas = $this->getTandas($s);
     $club = new Clubes("Tandas::getListaPerros", $this->prueba->RSCE);
     // iteramos la lista de tandas
     foreach ($lista_tandas['rows'] as $tanda) {
         $this->myLogger->info("Analizando tanda \n" . json_encode($tanda));
         // Comprobamos si debemos analizar la tanda
         if ($t > 0) {
             $do_iterate = $tanda['ID'] == abs($t) ? true : false;
         }
         // iterar solo la tanda
         if ($t < 0) {
             if ($tanda['ID'] == abs($t)) {
                 $do_iterate = true;
             }
         }
         // iterar a partir de la tanda
         if ($t == 0) {
             $do_iterate = true;
         }
         // iterar TODAS las tandas
         if (!$do_iterate) {
             continue;
         }
         // this tanda is not the one we are looking for
         if ($tanda['Manga'] == 0) {
             continue;
         }
         // user defined tandas, has no manga associated
         // comprobamos ahora si hay cambio de manga
         if ($manga != $tanda['Manga']) {
             // cambio de manga
             $manga = $tanda['Manga'];
             // en cada manga cogemos  los perros ordenados segun el orden de salida
             $os = new OrdenSalida("Tandas::getListaPerros()", $manga);
             $perrosmanga = $os->getData(false);
             // false: do not include extra team information rows
         }
         // OK ya tenemos la lista ordenada de los perros de cada manga
         // Ahora vamos a sacar la lista por cada tanda
         foreach ($perrosmanga['rows'] as &$perro) {
             // si el perro no pertenece a la tanda skip (comprobar categoria)
             if (strpos($tanda['Categoria'], $perro['Categoria']) === false) {
                 continue;
             }
             $perro['Tanda'] = $tanda['Nombre'];
             $perro['ID'] = $tanda['ID'];
             // replace resultadoID por tandaID TODO: revise why
             if ($pendientes == 0) {
                 // include all
                 $perro['LogoClub'] = $club->getLogoName('NombreClub', $perro['NombreClub']);
                 array_push($rows, $perro);
                 continue;
             }
             if ($perro['Pendiente'] == 0) {
                 continue;
             }
             // not pendiente: skip
             if ($count > 0) {
                 // not yet at count: insert
                 $count--;
                 $perro['LogoClub'] = $club->getLogoName('NombreClub', $perro['NombreClub']);
                 array_push($rows, $perro);
                 continue;
             }
             // arriving here means that every requested dogs are filled
             $this->myLogger->debug("Tandas::getListaPerros() Already have {$pendientes} dogs");
             // so return
             $result['rows'] = $rows;
             $result['total'] = count($rows);
             $this->myLogger->leave();
             return $result;
         }
         // no more dogs in this tanda. go to next
     }
     $result['rows'] = $rows;
     $result['total'] = count($rows);
     $this->myLogger->leave();
     return $result;
 }
 $os = new OrdenSalida($file, $m);
 switch ($operation) {
     case "random":
         $am->access(PERMS_OPERATOR);
         $result = $os->random($mode);
         break;
     case "reverse":
         $am->access(PERMS_OPERATOR);
         $result = $os->reverse($mode);
         break;
     case "sameorder":
         $am->access(PERMS_OPERATOR);
         $result = $os->sameorder($mode);
         break;
     case "getData":
         $result = $os->getData($tv);
         break;
     case "getTeams":
         $result = $os->getTeams();
         break;
     case "getDataByTeam":
         $result = $os->getDataByTeam($team);
         break;
     case "dnd":
         $am->access(PERMS_ASSISTANT);
         $result = $os->dragAndDrop($f, $t, $w);
         break;
     case "dndTeams":
         $am->access(PERMS_ASSISTANT);
         $result = $os->dragAndDropEquipos($f, $t, $w);
         break;