Esempio n. 1
0
function main()
{
    // Check whether this device needs to be redirected somewhere
    $dev = Device::fromDatabaseByIpAddress($_SERVER['REMOTE_ADDR']);
    if ($content = getContentForRedirect($dev, 0)) {
        $output = new JsonOutput();
        $output->setContent($content);
        $output->output();
        exit;
    }
    $td_code = gfGetVar('td_code', '');
    $lastTicket = gfGetVar('lastTicket', 'A000');
    $content = null;
    $startTime = time();
    while (time() - $startTime < 120) {
        sleep(1);
        // Check every second
        $currentState = DisplayMain::fromDatabaseCompleteList($td_code);
        if (count($currentState) == 0) {
            continue;
        }
        if ($lastTicket != $currentState[0]->getTicket()) {
            // Something changed, compute new tickets
            $newTickets = array($currentState[0]);
            $i = 1;
            while ($i < count($currentState) && $i < 8 && $lastTicket != $currentState[$i]->getTicket()) {
                $newTickets[] = $currentState[$i];
                $i++;
            }
            $content = array('status' => 'changed', 'count' => count($newTickets), 'entries' => $newTickets);
            break;
        }
        unset($currentState);
    }
    // End while
    if (!$content) {
        // Polling wait expired
        $content = array('status' => 'unchanged');
    }
    $output = new JsonOutput();
    $output->setContent($content);
    $output->output();
}
Esempio n. 2
0
<?php

include '../includes/Setup.php';
include './displayFunctions.php';
// Do not lock tables
Database::lockTables(false);
$deskNumber = gfGetVar('deskNumber');
// Check whether this device needs to be redirected somewhere
$dev = Device::fromDatabaseByIpAddress($_SERVER['REMOTE_ADDR']);
if ($content = getContentForRedirect($dev, (int) $deskNumber)) {
    $output = new JsonOutput();
    $output->setContent($content);
    $output->output();
    exit;
}
// Response is json
$output = new JsonOutput();
$pageTicketCode = gfGetVar('ticketCode', '');
$pageTicketNumber = gfGetVar('ticketNumber', '');
$startTime = time();
while (time() - $startTime < 120) {
    sleep(1);
    // Check every second
    // Update table for session timed out
    $desk = Desk::fromDatabaseByNumber($deskNumber);
    $desk->isOpen();
    $currentTicket = Ticket::fromDatabaseByDesk($deskNumber);
    if (!$currentTicket) {
        if ($pageTicketCode == '' && $pageTicketNumber == '') {
            // Still no ticket
            continue;