/**
  * Asigna cada pincho confirmado a 3 jurados profesionales
  * 
  * @throws PDOException si existe un error con la base de datos
  * @return Boolean Devuelve true si los pinchos se han repartidos
  */
 public function asignarPinchosJurados()
 {
     $establecimientoMapper = new Establecimientomapper();
     $pinchoMapper = new Pinchomapper();
     $juradoProfesionalMap = new Juradoprofesionalmapper();
     $concursoMapper = new Concursomapper();
     $establecimientosConfirmados = $establecimientoMapper->recuperarConfirmados();
     $pinchosConfirmados = $pinchoMapper->recuperarPinchosAsociados($establecimientosConfirmados);
     $jurados = $juradoProfesionalMap->recuperarTodosLosJurados();
     $numJurados = count($jurados);
     $i = 0;
     foreach ($pinchosConfirmados as $pincho) {
         // Se asigna cada pincho a tres jurados
         for ($j = 0; $j < 3; $j++) {
             $jurado = $jurados[$i];
             $juradoProfesionalMap->asignarPincho($jurado, $pincho);
             $i++;
             if ($i >= $numJurados) {
                 $i = 0;
             }
         }
     }
     $concursoMapper->asignacionesCompletadas(1);
 }
Пример #2
0
 /**
  * Calcula y recupera las ids de los pinchos finalistas
  *
  *
  * @param $numero numero de pinchos que pasan a la final
  * @throws PDOException si existe un error con la base de datos
  * @return $idPinchos array con las ids de los pinchos que pasan a la final
  *
  */
 public function calcularFinalistas($numero)
 {
     $pinchoMap = new Pinchomapper();
     $concursoMap = new Concursomapper();
     $stmt = $this->db->prepare("SELECT idpincho FROM pincho");
     $stmt->execute();
     $idPinchosRecuperados = $stmt->fetchAll();
     $notasVotacionProfesional = array();
     $totalVotacionPopular = array();
     $idsPincho = array();
     $arrayGlobal = array(array());
     $x = 0;
     foreach ($idPinchosRecuperados as $idPincho) {
         $notasVotacionProfesiona[$x] = $pinchoMap->recuperarNotaMedia($idPincho[0]) * 100;
         $totalVotacionPopular[$x] = $pinchoMap->recuperarTotalVotosPopulares($idPincho[0]);
         $idsPincho[$x] = $idPincho[0];
         $arrayGlobal[$x] = array('vp' => $notasVotacionProfesiona[$x], 'po' => $totalVotacionPopular[$x], 'id' => $idsPincho[$x]);
         $x++;
     }
     $x--;
     $numeroTotalPinchos = $x;
     $pinchosADevolver = $numeroTotalPinchos - $numero;
     $arrayGlobal = $pinchoMap->msort($arrayGlobal, array('vp', 'po', 'id'));
     $idPinchos = array();
     for (; $x > $pinchosADevolver; $x--) {
         $idPinchos[$x] = $arrayGlobal[$x]['id'];
         $pinchoMap->establecerFinalista($arrayGlobal[$x]['id']);
     }
     $concursoMap->faseFinal(1);
     return $idPinchos;
 }
Пример #3
0
 public function actualizarConcurso()
 {
     // Se carga el mapper
     $concursomapper = new Concursomapper();
     // Se recupera el concurso
     $concursoactual = $concursomapper->recuperarConcurso(1);
     // Se recuperan los datos del formulario
     $iniciovot = $_POST['inputIniciovotacion'];
     $finalvotpop = $_POST['inputFinalvotacionpopular'];
     $finalvotpro = $_POST['inputFinalvotacionprofesional'];
     $iniciovotfin = $_POST['inputComienzovotacionfinalistas'];
     $finalvotfin = $_POST['inputFinalvotacionfinalistas'];
     // Se actualiza el objeto concurso actual
     $concursoactual->set_comienzo_vot_popular($iniciovot);
     $concursoactual->set_final_vot_pop($finalvotpop);
     $concursoactual->set_final_vot_pro($finalvotpro);
     $concursoactual->set_comienzo_vot_finalistas($iniciovotfin);
     $concursoactual->set_final_vot_finalistas($finalvotfin);
     // Se intenta modificar en la base de datos
     $operacionCorrecta = $concursomapper->modificarConcursoActual($concursoactual);
     if ($operacionCorrecta) {
         $mensajes[] = "Concurso <strong>modificado</strong>";
         $_SESSION['mensajes'] = $mensajes;
     } else {
         $mensajes[] = "<strong>Error!</strong> No se ha podido modificar el concurso";
         $_SESSION['mensajes'] = $mensajes;
     }
     header("Location: ?controller=admin&action=index");
 }