Ejemplo n.º 1
0
 public static function serveNextTicket($topicalDomains, $op_code, $desk_number)
 {
     if (!$topicalDomains) {
         throw new Exception(__METHOD__ . " Provided empty topicalDomains array");
     }
     $topicalDomains = (array) $topicalDomains;
     $desk_number = (int) $desk_number;
     $conn = Database::getConnection();
     $topicalDomains = array_map('strtoupper', $topicalDomains);
     $topicalDomains = array_map(array($conn, 'quote'), $topicalDomains);
     $topicalDomains = implode(",", $topicalDomains);
     $row = self::getNextTicket($topicalDomains);
     if (!$row) {
         global $gvCallOtherTdWhenEmpty;
         if (!$gvCallOtherTdWhenEmpty) {
             // No ticket to be served
             return null;
         }
         // Try again with all topical domains
         $row = self::getNextTicket(false);
         if (!$row) {
             // No ticket at all in the queue
             return null;
         }
     }
     $ticket = self::newFromDatabaseRow($row, 'ticket_in');
     $ticket->decrementNoticeCounter();
     self::sendNotices();
     $ticket->sendYourTurn();
     $ticket->moveToNextTable($op_code, $desk_number);
     $ticket->save();
     // Add ticket to display_main table
     DisplayMain::addRecord($ticket);
     return $ticket;
 }