Exemple #1
0
 /**
  * Delete jornada with provided ID
  * @param {integer} jornada name primary key
  * @return "" on success ; otherwise null
  */
 function delete($jornadaid)
 {
     $this->myLogger->enter();
     if ($jornadaid <= 0) {
         return $this->error("Invalid Jornada ID");
     }
     // borramos cada una de las mangas de esta jornada
     $mng = new Mangas("deleteJornada", $jornadaid);
     $res = $mng->selectByJornada();
     if (!is_array($res)) {
         return $res;
     }
     // error
     foreach ($res['rows'] as $manga) {
         $mng->deleteByID($manga['ID']);
     }
     // borramos cada una de las tandas de la jornada
     $tnd = new Tandas("jornadas::delete()", $this->prueba, $jornadaid);
     $tnd->removeJornada();
     // Borramos equipos de esta prueba/jornada
     $res = $this->query("DELETE FROM Equipos WHERE ( Jornada = {$jornadaid} );");
     if (!$res) {
         return $this->error($this->conn->error);
     }
     // y borramos la propia jornada
     $res = $this->query("DELETE FROM Jornadas WHERE ( ID = {$jornadaid} );");
     if (!$res) {
         return $this->error($this->conn->error);
     }
     $this->myLogger->leave();
     return "";
 }
 $mangas = new Mangas("mangaFunctions", $jornada);
 $am = new AuthManager("mangaFunctions");
 switch ($operation) {
     // no direct "insert", as created/destroyed from jornadaFunctions
     case "update":
         $am->access(PERMS_OPERATOR);
         $result = $mangas->update($manga);
         break;
     case "sharejuez":
         $am->access(PERMS_OPERATOR);
         $result = $mangas->shareJuez();
         break;
         // no direct delete as created/destroyed from jornadaFunctions
     // no direct delete as created/destroyed from jornadaFunctions
     case "enumerate":
         $result = $mangas->selectByJornada();
         break;
     case "swap":
         $result = $mangas->swapMangas($manga);
         break;
     case "getbyid":
         $result = $mangas->selectByID($manga);
         break;
     default:
         throw new Exception("mangaFunctions:: invalid operation: {$operation} provided");
 }
 if ($result === null) {
     throw new Exception($mangas->errormsg);
 }
 if ($result === "") {
     echo json_encode(array('success' => true, 'insert_id' => 0, 'affected_rows' => 0));
 function printFormulario()
 {
     $cols = array(_("Category"), _("Dist") . ".", _("Obst") . ".", _("Spd") . ".", _("SCT"), _("MCT"));
     $size = array(20, 15, 12.5, 12.5, 15, 15);
     $mng = new Mangas("printFormularioTRS", $this->jornada->ID);
     // obtenemos la lista de mangas de la jornada
     $mangas = $mng->selectByJornada()['rows'];
     for ($count = 0; $count < count($mangas); $count++) {
         if ($count % 8 == 0) {
             $this->AddPage();
             $this->Ln(15);
         }
         $manga1 = $mangas[$count];
         $manga2 = null;
         if (array_key_exists($count + 1, $mangas)) {
             $manga2 = $mangas[$count + 1];
         }
         // cabecera
         $this->ac_header(2, 12);
         $this->Cell(90, 10, $manga1['Descripcion'], 'LTBR', 0, 'L', true);
         if ($manga2 != null) {
             $this->Cell(10, 10, "", 0, 0, 0, false);
             $this->Cell(90, 10, $manga2['Descripcion'], 'LTBR', 0, 'L', true);
         }
         $this->Ln();
         // columnas
         $this->ac_row(1, 10);
         $this->Cell(20, 10, $cols[0], 'LRB', 0, 'C', true);
         for ($n = 1; $n < count($size); $n++) {
             $this->Cell($size[$n], 10, $cols[$n], "RB", 0, "C", true);
         }
         if ($manga2 != null) {
             $this->Cell(10, 10, "", 0, 0, 0, false);
             $this->Cell(20, 10, $cols[0], 'LRB', 0, 'C', true);
             for ($n = 1; $n < count($size); $n++) {
                 $this->Cell($size[$n], 10, $cols[$n], "RB", 0, "C", true);
             }
         }
         $this->Ln();
         // datos
         $this->ac_row(0, 10);
         $this->Cell(20, 10, $this->federation->getCategory('L'), 'LRB', 0, 'C', true);
         for ($n = 1; $n < count($size); $n++) {
             $this->Cell($size[$n], 10, "", "RB", 0, "C", true);
         }
         if ($manga2 != null) {
             $this->Cell(10, 10, "", 0, 0, 0, false);
             $this->Cell(20, 10, $this->federation->getCategory('L'), 'LRB', 0, 'C', true);
             for ($n = 1; $n < count($size); $n++) {
                 $this->Cell($size[$n], 10, "", "RB", 0, "C", true);
             }
         }
         $this->Ln();
         $this->Cell(20, 10, $this->federation->getCategory('M'), 'LRB', 0, 'C', true);
         for ($n = 1; $n < count($size); $n++) {
             $this->Cell($size[$n], 10, "", "RB", 0, "C", true);
         }
         if ($manga2 != null) {
             $this->Cell(10, 10, "", 0, 0, 0, false);
             $this->Cell(20, 10, $this->federation->getCategory('M'), 'LRB', 0, 'C', true);
             for ($n = 1; $n < count($size); $n++) {
                 $this->Cell($size[$n], 10, "", "RB", 0, "C", true);
             }
         }
         $this->Ln();
         $this->Cell(20, 10, $this->federation->getCategory('S'), 'LRB', 0, 'C', true);
         for ($n = 1; $n < count($size); $n++) {
             $this->Cell($size[$n], 10, "", "RB", 0, "C", true);
         }
         if ($manga2 != null) {
             $this->Cell(10, 10, "", 0, 0, 0, false);
             $this->Cell(20, 10, $this->federation->getCategory('S'), 'LRB', 0, 'C', true);
             for ($n = 1; $n < count($size); $n++) {
                 $this->Cell($size[$n], 10, "", "RB", 0, "C", true);
             }
         }
         $this->Ln();
         if (intval($this->federation->get('Heights')) == 4) {
             $this->Cell(20, 10, $this->federation->getCategory('T'), 'LRB', 0, 'C', true);
             for ($n = 1; $n < count($size); $n++) {
                 $this->Cell($size[$n], 10, "", "RB", 0, "C", true);
             }
             if ($manga2 != null) {
                 $this->Cell(10, 10, "", 0, 0, 0, false);
                 $this->Cell(20, 10, $this->federation->getCategory('T'), 'LRB', 0, 'C', true);
                 for ($n = 1; $n < count($size); $n++) {
                     $this->Cell($size[$n], 10, "", "RB", 0, "C", true);
                 }
             }
             $this->Ln();
         }
         $this->Ln(5);
         $count++;
     }
 }
/**
 * Comprueba y actualiza las referencias de una inscripcion en una jornada
 * @param {object} $inscripcion Datos de la inscripcion
 * @param {object} $jornada Datos de la jornada
 * @param {object} $perro Datos del perro
 */
function inscribePerroEnJornada($inscripcion, $jornada, $perro)
{
    $myConfig = Config::getInstance();
    $myLogger = new Logger("inscribePerroEnJornada", $myConfig->getEnv("debug_level"));
    $j = $jornada['ID'];
    $p = $jornada['Prueba'];
    $idperro = $inscripcion['Perro'];
    $g = $perro['Grado'];
    // buscamos la lista de mangas de esta jornada
    $mobj = new Mangas("inscribePerroEnJornada", $jornada['ID']);
    $mangas = $mobj->selectByJornada();
    if (!$mangas) {
        throw new Exception("No hay mangas definidas para la jornada {$j} de la prueba {$p}");
    }
    foreach ($mangas['rows'] as $manga) {
        $mid = $manga['ID'];
        $mtype = $manga['Tipo'];
        $mgrado = $manga['Grado'];
        $inscribir = false;
        // comprobamos si el perro tiene que estar en esta manga
        switch ($mtype) {
            case 1:
                //  'Pre Agility Manga 1', 'P.A.'
                if ($g === 'P.A.') {
                    $inscribir = true;
                }
                break;
            case 2:
                // 'Pre Agility Manga 2', 'P.A.'
                if ($g === 'P.A.') {
                    $inscribir = true;
                }
                break;
            case 3:
                // 'Agility Grado I Manga 1', 'GI'
            // 'Agility Grado I Manga 1', 'GI'
            case 4:
                // 'Agility Grado I Manga 2', 'GI'
                if ($g === 'GI') {
                    $inscribir = true;
                }
                break;
            case 5:
                // 'Agility Grado II', 'GII'
                if ($g === 'GII') {
                    $inscribir = true;
                }
                break;
            case 6:
                // 'Agility Grado III', 'GIII'
                if ($g === 'GIII') {
                    $inscribir = true;
                }
                break;
            case 7:
                // 'Agility Abierta', '-'
            // 'Agility Abierta', '-'
            case 8:
                // 'Agility Equipos (3 mejores)', '-'
            // 'Agility Equipos (3 mejores)', '-'
            case 9:
                // 'Agility Equipos (Conjunta)', '-'
                $inscribir = true;
                break;
            case 10:
                // 'Jumping Grado II', 'GII'
                if ($g === 'GII') {
                    $inscribir = true;
                }
                break;
            case 11:
                // 'Jumping Grado III', 'GIII'
                if ($g === 'GIII') {
                    $inscribir = true;
                }
                break;
            case 12:
                // 'Jumping Abierta', '-'
            // 'Jumping Abierta', '-'
            case 13:
                // 'Jumping Equipos (3 mejores)', '-'
            // 'Jumping Equipos (3 mejores)', '-'
            case 14:
                // 'Jumping Equipos (Conjunta)', '-'
            // 'Jumping Equipos (Conjunta)', '-'
            case 15:
                // 'Ronda K.O.', '-'
            // 'Ronda K.O.', '-'
            case 16:
                // 'Manga especial', '-'
                $inscribir = true;
                break;
            default:
                throw new Exception("Tipo de manga {$mtype} desconocido. Manga:{$mid} Jornada:{$j} Prueba:{$p}");
                break;
        }
        // Verificamos el orden de salida de la manga
        $os = new OrdenSalida("inscribePerroEnJornada", $manga['ID']);
        $orden = $os->getOrden();
        $myLogger->info("OrdenDeSalida Prueba:{$p} Jornada:{$j} Manga:{$mid} Tipo:{$mtype} Grado:{$mgrado} es:\n{$orden}");
        if ($inscribir == false) {
            $myLogger->info("Eliminando Perro:{$idperro} Grado:{$g} del orden de salida grado:{$mgrado}");
            $os->removeFromList($idperro);
        } else {
            $myLogger->info("Insertando Perro:{$idperro} Grado:{$g} en del orden de salida gradp:{$mgrado}");
            $os->insertIntoList($idperro);
        }
        $orden = $os->getOrden();
        $myLogger->info("Nuevo OrdenDeSalidada: \n{$orden}");
        // verificamos la tabla de resultados de esta manga
        $rs = new Resultados("inscribePerroEnJornada::Resultados", $jornada['Prueba'], $mid);
        if ($inscribir == false) {
            $myLogger->info("Borrando Perro:{$idperro} Grado:{$g} de Resultados manga:{$mid}");
            // borramos entrada del perro en la tabla de resultados de la manga
            $rs->delete($idperro);
        } else {
            $eqobj = new Equipos("inscribePerroEnJornada", $p, $j);
            // nos aseguramos de que existe una entrada
            $myLogger->info("Insertando Perro:{$idperro} Grado:{$g} en Resultados manga:{$mid}");
            // en la tabla de resultados de esta manga para este perro
            $res = $rs->insertByData($perro, $inscripcion, $eqobj->getTeamByPerro($idperro));
            if ($res !== "") {
                // esta funcion es in "insert on duplicate key update"...
                // no deberia fallar si ya existe una entrada en la tabla de resultados
                $myLogger->error("Failed: Insert into Resultados perro:{$idperro} Prueba:{$p} Jornada:{$j} Manga:{$mid}");
                $myLogger->error($res);
            }
        }
    }
    /* foreach */
}