public function actionAppComputar($id_professor, $ip, $voto) { $model = new Voto(); $model->id_professor = $id_professor; $model->voto = $voto; $model->ip = $ip; // Verificando se o usuário já votou no professor (pelo IP) $c = new CDbCriteria(); $c->condition = "id_professor = :id"; $c->addCondition("ip = :ip"); $c->params = array('id' => $model->id_professor, 'ip' => $model->ip); $model2 = Voto::model()->find($c); if ($model2 == null) { /* O usuàrio não votou anteriormente */ if ($model->save()) { echo '{"msg": "Voto computado"}'; } else { echo '{"msg": "Ocorreu um erro"}'; } } else { /* Foi detectado um voto anterior do usuário */ echo '{"msg": "Sua nota já foi computada"}'; } }
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"); }