Ejemplo n.º 1
0
 public function execute()
 {
     $this->td_served = gfPostVar('td_served', array());
     $_SESSION['td_served'] = $this->td_served;
     if (!$this->td_served && !isset($_POST['pause'])) {
         $this->message = "Errore: selezionare almeno un'area tematica.";
         return true;
     }
     // Handle served ticket
     $served = Ticket::fromDatabaseByDesk($this->getDesk()->getNumber());
     if ($served) {
         $stats = TicketStats::newFromTicket($served);
         $served->delete();
         if (!$stats->save()) {
             throw new Exception("Unable to save ticket stats.");
         }
     }
     // Handle pause button
     if (isset($_POST['pause'])) {
         $this->pauseButtonEnabled = false;
         $this->ticket_served = null;
         return true;
     }
     // Call next ticket
     $ticket = Ticket::serveNextTicket($this->td_served, $this->getOperator()->getCode(), $this->getDesk()->getNumber());
     if (!$ticket) {
         $this->message = "Nessun ticket da chiamare";
         $this->pauseButtonEnabled = false;
         $this->ticket_served = null;
         return true;
     }
     $ticket->save();
     $this->ticket_served = $ticket;
     $this->disableNextButton = true;
     $this->pauseButtonEnabled = true;
     return true;
 }
Ejemplo n.º 2
0
 public static function clearTableForLogout($op_code, $desk = null, $ticket = null)
 {
     if (!$desk) {
         // Load desk
         $desk = Desk::fromDatabaseByOperator($op_code);
     }
     if (!$ticket) {
         // Load ticket
         $ticket = Ticket::fromDatabaseByOperator($op_code);
     }
     if ($desk) {
         $desk->setLastActivityTime(null);
         $desk->setOpCode(null);
         $desk->save();
     }
     if ($ticket) {
         $stats = TicketStats::newFromTicket($ticket);
         $ticket->delete();
         $stats->save();
     }
 }
Ejemplo n.º 3
0
 public function getTicketStats()
 {
     return TicketStats::newFromTicket($this);
 }