public function executeVote(sfWebRequest $request) { $liste_id = $request->getParameter('id'); if ($liste_id != 0) { $liste = $this->getRoute()->getObject(); } else { $liste = 0; } if ($liste_id != 0 && !$liste) { $this->getUser()->setFlash('error', 'Cette liste n\'existe pas.'); } else { if ($liste_id != 0 && $liste->getSemestreId() != sfConfig::get('app_portail_current_semestre')) { $this->getUser()->setFlash('error', 'Vous ne pouvez pas voter pour cette liste.'); } else { if (!$this->isCotisant()) { $this->getUser()->setFlash('error', 'Vous n\'êtes pas cotisant. Vous ne pouvez pas participer aux élections du BDE.'); } else { if (VoteTable::getInstance()->getVoteForUserAndSemestre($this->getUser()->getGuardUser()->getPrimaryKey(), sfConfig::get('app_portail_current_semestre'))->fetchOne()) { $this->getUser()->setFlash('error', 'Vous avez déjà voté.'); } else { $vote = new Vote(); $vote->setIp($_SERVER['REMOTE_ADDR']); $vote->setSemestreId(sfConfig::get('app_portail_current_semestre')); $vote->setUserId($this->getUser()->getGuardUser()->getId()); $vote->setLogin($this->getUser()->getGuardUser()->getUsername()); $vote->save(); if ($liste_id != 0) { $pdo = Doctrine_Manager::getInstance()->getCurrentConnection()->getDbh(); $stmt = $pdo->prepare('UPDATE `vote_liste` SET `count`=(`count`+1) WHERE `id` = :id'); $stmt->bindParam(':id', $liste->getPrimaryKey(), PDO::PARAM_INT); $stmt->execute(); } $this->getUser()->setFlash('success', 'Votre vote a été pris en compte.'); } } } } $this->redirect('homepage'); }