예제 #1
0
 public function process()
 {
     $event = Events::getById($this->getElementValue('id'));
     Events::setSignupStatus($this->user->getId(), $event['id'], 'SIGNEDUP');
     Events::appendSignupComment($this->user->getId(), $event['id'], 'Forced signup.', Session::getUser()->getUsername());
     logActivity('Forced signup of:' . $this->getElementValue('username') . ' to event: ' . $event['id'] . ' (' . $event['name'] . ')');
     redirect('viewEvent.php?id=' . $event['id'], 'They have been signed up.');
 }
 public function process()
 {
     $sql = 'INSERT INTO finance_transactions (amount, description, timestamp, account) VALUES (:amount, :title, now(), :account) ';
     $stmt = DatabaseFactory::getInstance()->prepare($sql);
     foreach (Basket::getContents() as $basketItem) {
         $stmt->bindValue(':amount', $basketItem['cost']);
         $stmt->bindValue(':title', '(given cash) ' . $basketItem['title'] . ' ticket for ' . $basketItem['username']);
         $stmt->bindValue(':account', $this->getElementValue('username'));
         $stmt->execute();
         Events::setSignupStatus($basketItem['userId'], $basketItem['eventId'], 'CASH_IN_POST');
     }
 }
예제 #3
0
 public function process()
 {
     $event = Events::getById($this->getElementValue('event'));
     switch ($event['signups']) {
         case 'staff':
             $initialSignupStatus = 'STAFF';
             break;
         case 'punters':
             $initialSignupStatus = 'SIGNEDUP';
             break;
         case 'waitinglist':
             $initialSignupStatus = 'WAITING_LIST';
             break;
         default:
             throw new Exception('Cannot determine your initial signup status when the event signup status is: ' . $event['signups']);
     }
     Events::setSignupStatus($this->getElementValue('user'), $this->getElementValue('event'), $initialSignupStatus);
     $userReq = $this->getElementValue('comment');
     if (!empty($userReq)) {
         $userReq = 'User requirement: ' . $userReq;
     }
     Events::appendSignupComment($this->getElementValue('user'), $this->getElementValue('event'), 'User self signup. ' . $userReq);
 }
    case 'PAID':
        $authenticatedMachines = getAuthenticatedMachines($user->getId(), $event['id']);
        $sql = 'SELECT s.numberMachinesAllowed FROM signups s WHERE s.user = :user AND s.event = :event';
        $stmt = DatabaseFactory::getInstance()->prepare($sql);
        $stmt->bindValue(':user', $user->getId());
        $stmt->bindValue(':event', $event['id']);
        $stmt->execute();
        $signup = $stmt->fetchRowNotNull();
        if (count($authenticatedMachines) >= $signup['numberMachinesAllowed']) {
            apiReturn('reject-overuse');
        } else {
            $sql = 'INSERT INTO authenticated_machines (user, event, seat, ip, hostname, mac) VALUES (:user, :event, :seat, :ip, :hostname, :mac)';
            $stmt = DatabaseFactory::getInstance()->prepare($sql);
            $stmt->bindValue(':user', $user->getId());
            $stmt->bindValue(':event', $event['id']);
            $stmt->bindValue(':seat', $sanitizer->filterString('seat'));
            $stmt->bindValue(':ip', $sanitizer->filterString('ip'));
            $stmt->bindValue(':hostname', $sanitizer->filterString('hostname'));
            $stmt->bindValue(':mac', $sanitizer->filterString('mac'));
            $stmt->execute();
            Events::setSignupStatus($user->getId(), $event['id'], 'ATTENDED');
            Events::appendSignupComment($user->getId(), $event['id'], 'Authenticated machine: ' . $sanitizer->filterString('mac'));
            apiReturn('allow');
        }
    case 'STAFF':
        apiReturn('allow-full');
    case 'SIGNEDUP':
        apiReturn('reject-payment');
    default:
        apiReturn('fatal', 'Unrecognised signup status: ' . $signupStatus);
}
예제 #5
0
     break;
 case 'bacsComplete':
     foreach (Basket::getContents() as $ticket) {
         Events::setSignupStatus(Session::getUser()->getId(), $ticket['eventId'], 'BACS_WAITING');
     }
     Basket::clear();
     redirect('account.php', 'Thanks, you will be marked as PAID by an admin when they receive the transfer.');
     break;
 case 'paypalFail':
     logAndRedirect('account.php', 'Paypal transaction failed.');
     break;
 case 'paypalComplete':
     logActivity('Started processing PayPal payment notification');
     foreach (Basket::getContents() as $ticket) {
         logActivity('PayPal transaction processing - setting status to PAID for event. Ticket owner _u_, event _e_', $ticket['userId'], array('event' => $ticket['eventId'], 'user' => Session::getUser()->getId()));
         Events::setSignupStatus($ticket['userId'], $ticket['eventId'], 'PAID');
     }
     logActivity('Finished processing PayPal payment notification.');
     Basket::clear();
     redirect('account.php', 'Thanks, payment complete!');
     break;
 default:
     require_once 'includes/widgets/header.php';
     require_once 'includes/widgets/sidebar.php';
     startBox();
     echo str_replace('%BASKETTOTAL%', doubleToGbp($cost), getContent('selectPaymentMethod'));
     $tpl->assign('cost', $cost);
     $tpl->assign('costPaypal', getPaypalCommission($cost));
     $tpl->assign('paypalEmail', getSiteSetting('paypalEmail'));
     $tpl->assign('listBasketContents', Basket::getContents());
     $tpl->assign('baseUrl', getSiteSetting('baseUrl'));