public function votar() { $currentuser = $_SESSION["currentuser"]; $errors = array(); $votoPincho = new Voto(); if (isset($_POST["codigoP"])) { //Comprueba que la valoración introducida es correcta $votoPincho->checkIsValidForVoto(); /*Guarda los datos introducidos en el formulario en el objeto, más el email del usuario actual que es el que realiza la votacion*/ $votoPincho->setUsuarioEmailU($currentuser->getEmailU()); $votoPincho->setCodigoPinchoV($_POST["codigoP"]); $votoPincho->setValoracionV($_POST["valoracionP"]); /*Comprueba si el codigo introducido es correcto y lo introduce en el objeto*/ if (!$votoPincho->isCorrectCode()) { $errors["codigoP"] = "El código introducido no pertenece a ningun pincho"; } if ($votoPincho->isPinchoVotado($currentuser->getEmailU())) { $errors["codigoP"] = "Este codigo pertenece a un pincho que ya has votado"; } try { // comprueba si el código del pincho introducido ya forma parte de un voto anterior if (!$votoPincho->votoExist()) { //continua solo si no se ha producido ningun error $concu = $this->concurso->ver_datos(); /*En el caso de que ya sea la fecha en la que ya se deben saber los finalistas, apartir de ese momento el jurado profesional solamenre podra votar a los pinchos que sean finalistas (los que esten en la tabla premiados con el valor del atributo "ronda=1")*/ if ($concu->getFechaFinalistasC() <= date("Y-m-d")) { if (!$votoPincho->esPinchoFinalista()) { $errors["codigoP"] = "Este pincho no pertenece a la lista de finalistas"; } } if (!sizeof($errors) > 0) { $votoPincho->updateNumVotosProf(); /*Si no es asi, guarda las votaciones en la base de datos*/ $votoPincho->save(); //mensaje de confirmación y redirige al metodo verPerfil del controlador profesionalCotroller echo "<script> alert('Voto registrado correctamente'); </script>"; echo "<script>window.location.replace('index.php?controller=profesional&action=verPerfil');</script>"; } else { $this->view->setVariable("errors", $errors); } /*Si ya existe en la base de datos muestra un mensaje de error*/ } else { $errors["codigoP"] = "Este código ya esta registrado"; $this->view->setVariable("errors", $errors); } } catch (ValidationException $ex) { $errors = $ex->getErrors(); } } /*Permite visualizar: view/vistas/votarJPopu.php */ $this->view->render("vistas", "votarJProf"); }