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"}';
     }
 }
Пример #2
0
 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");
 }