. */ require_once(FILESYSTEMROOTPATH."include/classes/IDao.php"); require_once(FILESYSTEMROOTPATH."jc/include/model/Ballots.php"); class BallotsDao implements IDao { /** MySQL object */ private $mysql; /** * Default constructor */ public function __construct(MySQL $mysql) { $this->mysql = $mysql; } /** * Load Ballots by id * * @param id * @return */ public function load($id) { $query = "SELECT * FROM `ballots` WHERE `id`='".$id."'"; if( $this->mysql->query($query) ) { return new Ballots($this->mysql->fetchArray()); }else { return array(); } } public function loadByTicket($ticket) { $query = 'SELECT * FROM `ballots` WHERE `ticket`="'.$ticket.'"'; if( $this->mysql->query($query) ) { $ret = array(); while( $row = $this->mysql->fetchArray() ) { $ret[] = $row; } return $ret; }else { return array(); } } public function getTicket($election_id) { $query = "INSERT INTO `ballots` SET `election_id`=".$election_id.', `ticket` = 0, `candidate_id`=-1'; $this->mysql->query($query); $id = $this->mysql->getInsertId(); //$aid = $_SESSION['JC_MODULE']['AgoraId'] % 100; $seed = $id; srand($seed); $checksum = rand()%10000; $ticket = $id*10000+$checksum; $ticket = sprintf('%012d', $ticket); $ticket = substr($ticket,0,4).'-'.substr($ticket,4,4).'-'.substr($ticket,8,4); //we don't delete it, in order to store ticket even for empty ballot $query2 = "UPDATE `ballots` set `ticket`='".$ticket."' WHERE `id`=".$id; $this->mysql->query($query2); return $ticket; } public function loadByElection($eid){ $query = 'SELECT * FROM `ballots` WHERE `election_id`='.$eid.' ORDER BY `ticket`,`candidate_id`'; if( $this->mysql->query($query) ) { $ret = array(); while( $row = $this->mysql->fetchArray() ) { $ret[] = $row; } return $ret; }else { return array(); } } /** * Save or update Ballots: * @param object with the data * @return boolean true in case of success, false otherwise */ public function saveOrUpdate(IModel $ballot) { $query=""; $recordID=$ballot->getId(); if($recordID==NULL) { $query.="INSERT INTO `ballots` SET "; } else { $query.="UPDATE `ballots` SET "; } $query .="`candidate_id` = '".$this->mysql->escape($ballot->getCandidate_id())."', "; $query .="`election_id` = '".$this->mysql->escape($ballot->getElection_id())."', "; $query .="`ticket` = '".$this->mysql->escape($ballot->getTicket())."'"; if($recordID!=NULL) { $query.=" where `id` = ".$recordID; } //echo $query; return $this->mysql->query($query); } } ?>