Pastoid

The page you are looking at now is at this URL: http://pastoid.com/bzh

This paste was last updated on January 27, 2010 at 1:55 pm.

Pasted Coderaw

<?php
class Ticket
{
	public $ID = 0;
	public $owner = 0; // user ID
	public $bookmaker = '';
	public $money = 0;
	public $datetime; // PHP DateTime object
 
	public $bets = array(); // Array of Bet objects
 
	protected function __construct($ID = 0, $userID = 0, $bookmaker = '', $money = 0, DateTime $datetime = null, array $bets = array())
	{
		$this->ID        = $ID;
		$this->owner     = $userID;
		$this->bookmaker = $bookmaker;
		$this->money     = $money;
		$this->datetime  = ($datetime) ? $datetime : new DateTime();
		$this->bets      = $bets;
	}
 
	public static function create($bookmaker, $money, array $bets = array())
	{
		global $db, $user;
 
		$data = array(
			'user_id'   => $user->data['user_id'],
			'bookmaker' => $bookmaker,
			'money'     => $money,
			'datetime'  => time(),
		);
 
		$sql = 'INSERT INTO ' . TICKETS_TABLE . ' ' . $db->sql_build_array('INSERT', $data);
		$db->sql_query($sql);
		$ticket = new Ticket($db->sql_nextid(), $user->data['user_id'], $bookmaker, $money);
 
		foreach ($bets as $bet)
		{
			$bet->ticket = $ticket;
			$bet->store();
		}
 
		return $ticket;
	}
 
	public static function load($ID)
	{
		global $db;
 
		$select = array(
			'SELECT' => 't.*',
			'FROM'   => array(TICKETS_TABLE => 't'),
			'WHERE'  => 't.id = ' . $ID,
		);
 
		$result = $db->sql_query($db->sql_build_query('SELECT', $select));
		$row = $db->sql_fetchrow($result);
		$db->sql_freeresult($result);
 
		if (!$row)
			return null;
 
		$ticket = new Ticket();
		$ticket->loadFromRow($row);
 
		$select = array(
			'SELECT' => 'b.*',
			'FROM'   => array(BETS_TABLE => 'b'),
			'WHERE'  => 'b.ticket_id = ' . $ID,
		);
		$result = $db->sql_query($db->sql_build_query('SELECT', $select));
 
		while ($row = $db->sql_fetchrow($result))
		{
			$bet = new Bet($ticket);
			$bet->loadFromRow($row);
		}
 
		return $ticket;
	}
 
	public static function loadUserTickets($userID)
	{
		global $db;
 
		$select = array(
			'SELECT'   => 't.*',
			'FROM'     => array(TICKETS_TABLE => 't'),
			'WHERE'    => 't.user_id = ' . $userID . ' AND t.last_bet_datetime > ' . (time() + 24*3600),
			'ORDER_BY' => 't.datetime DESC',
		);
 
		$result = $db->sql_query($db->sql_build_query('SELECT', $select));
 
		if (!$result)
			return null;
 
		$tickets = array();
 
		while ($row = $db->sql_fetchrow($result))
		{
			$ticket = new Ticket();
			$ticket->loadFromRow($row);
			$tickets[$ticket->ID] = $ticket;
		}
 
		$db->sql_freeresult($result);
 
		if (empty($tickets))
			return null;
 
		$select = array(
			'SELECT' => 'b.*',
			'FROM'   => array(BETS_TABLE => 'b'),
			'WHERE'  => $db->sql_in_set('b.ticket_id', array_keys($tickets)),
		);
		$result = $db->sql_query($db->sql_build_query('SELECT', $select));
 
		while ($row = $db->sql_fetchrow($result))
		{
			$bet = new Bet($tickets[$row['ticket_id']]);
			$bet->loadFromRow($row);
		}
 
		$db->sql_freeresult($result);
 
		return $tickets;
	}
 
	public function loadFromRow(array $row)
	{
		$this->ID        = (int) $row['id'];
		$this->owner     = (int) $row['user_id'];
		$this->bookmaker = $row['bookmaker'];
		$this->money     = (int) $row['money'];
		$this->datetime  = new DateTime('@' . $row['datetime']);
	}
 
	public function exchange()
	{
		$exchange = 1;
 
		foreach ($this->bets as $bet)
		{
			$exchange *= $bet->exchange / 100;
		}
 
		return $exchange;
	}
 
	public function won()
	{
		foreach ($this->bets as $bet)
		{
			if (!$bet->won())
				return false;
		}
 
		return true;
	}
 
	public function prize()
	{
		if (!$this->won())
			return 0;
 
		return $this->exchange() * $this->money;
	}
 
	public function setTemplate($prefix = '', $setResult = false)
	{
		global $template, $user;
 
		$template->assign_block_vars($prefix . 'ticket', array(
			'ID'        => $this->ID,
			'DATETIME'  => $this->datetime->format('d/m/Y G:i'),
			'MONEY'     => $this->money,
			'EXCHANGE'  => $this->exchange(),
			'PRIZE'     => $this->prize(),
			'BOOKMAKER' => $this->bookmaker,
			'SET_RESULT'=> ($setResult) ? ($user->data['user_id'] == $this->owner) : false,
		));
 
		foreach ($this->bets as $bet)
		{
			$bet->setTemplate('ticket.');
		}
	}
 
	public function unsetTemplate($prefix = '')
	{
		global $template;
 
		$template->destroy_block_vars($prefix . 'ticket');
	}
 
	public function html($setResult = false)
	{
		global $template;
 
		$this->setTemplate('', $setResult);
		$html = $template->assign_display('ticket', '', true);
		$this->unsetTemplate();
 
		return $html;
	}
}
 
 

Toggle wordwrap

Referring DomainHits
Unknown Referer 127
pastoid.com 7
Is this paste spam?
<Hide