/** * 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; }