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