Exemplo n.º 1
0
 /**
  * enumera las diversas rondas (Pre-agility, Grado I, Grado II, etc de la jornada ) con sus mangas asociadas
  * @param $jornadaid
  * @return array|null
  */
 static function enumerateRondasByJornada($jornadaid)
 {
     if ($jornadaid <= 0) {
         // no jornada id provided
         return array('total' => 0, 'rows' => array());
     }
     $dbobj = new DBObject("enumerateRondasByJornada");
     $dbobj->myLogger->enter();
     $jornada = $dbobj->__getArray("Jornadas", $jornadaid);
     $prueba = $dbobj->__getArray("pruebas", $jornada['Prueba']);
     $mangas = $dbobj->__select("*", "Mangas", "(Jornada={$jornadaid})", "TIPO ASC", "")['rows'];
     $data = array();
     if ($jornada['PreAgility2'] != 0) {
         // $dbobj->myLogger->trace("Procesando mangas de preagility-2");
         /* Pre-Agility siempre tiene recorrido comun para todas las categorias */
         $m1 = Jornadas::__searchManga(1, $mangas);
         // PA-1
         $m2 = Jornadas::__searchManga(2, $mangas);
         // PA-2
         Jornadas::__compose($data, $prueba, $jornadaid, 2, $m1, $m2);
     } else {
         if ($jornada['PreAgility'] != 0) {
             // $dbobj->myLogger->trace("Procesando mangas de preagility-1");
             /* Pre-Agility siempre tiene recorrido comun para todas las categorias */
             $m1 = Jornadas::__searchManga(1, $mangas);
             // PA-1
             Jornadas::__compose($data, $prueba, $jornadaid, 1, $m1, null);
         }
     }
     if ($jornada['Grado1'] != 0) {
         // Jornadas::tiporonda=3
         $m1 = Jornadas::__searchManga(3, $mangas);
         // Agility 1 Grado I
         $m2 = Jornadas::__searchManga(4, $mangas);
         // Agility 2 Grado I
         Jornadas::__compose($data, $prueba, $jornadaid, 3, $m1, $m2);
     }
     if ($jornada['Grado2'] != 0) {
         // Jornadas::tiporonda=4
         $m1 = Jornadas::__searchManga(5, $mangas);
         // Agility Grado II
         $m2 = Jornadas::__searchManga(10, $mangas);
         // Jumping Grado II
         Jornadas::__compose($data, $prueba, $jornadaid, 4, $m1, $m2);
     }
     if ($jornada['Grado3'] != 0) {
         // Jornadas::tiporonda=5
         $m1 = Jornadas::__searchManga(6, $mangas);
         // Agility Grado III
         $m2 = Jornadas::__searchManga(11, $mangas);
         // Jumping Grado III
         Jornadas::__compose($data, $prueba, $jornadaid, 5, $m1, $m2);
     }
     if ($jornada['Open'] != 0) {
         // Jornadas::tiporonda=6
         $m1 = Jornadas::__searchManga(7, $mangas);
         // Agility Open
         $m2 = Jornadas::__searchManga(12, $mangas);
         // Jumping Open
         Jornadas::__compose($data, $prueba, $jornadaid, 6, $m1, $m2);
     }
     if ($jornada['Equipos3'] != 0) {
         // Jornadas::tiporonda=7
         $m1 = Jornadas::__searchManga(8, $mangas);
         // Agility Equipos3
         $m2 = Jornadas::__searchManga(13, $mangas);
         // Jumping Equipos3
         Jornadas::__compose($data, $prueba, $jornadaid, 7, $m1, $m2);
     }
     if ($jornada['Equipos4'] != 0) {
         // Jornadas::tiporonda=8
         $m1 = Jornadas::__searchManga(9, $mangas);
         // Agility Equipos3
         $m2 = Jornadas::__searchManga(14, $mangas);
         // Jumping Equipos3
         Jornadas::__compose($data, $prueba, $jornadaid, 8, $m1, $m2);
     }
     if ($jornada['KO'] != 0) {
         // $dbobj->myLogger->trace("Procesando mangas K.O.");
         // TODO: write
         return null;
     }
     if ($jornada['Especial'] != 0) {
         // Jornadas::tiporonda=10
         $m1 = Jornadas::__searchManga(16, $mangas);
         // Manga especial a una vuelta
         Jornadas::__compose($data, $prueba, $jornadaid, 10, $m1, null);
     }
     // TODO: evaluate conjuntas Grado II y III
     $result = array('total' => count($data), 'rows' => $data);
     return $result;
 }