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; }
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(); } }
public function getTicketStats() { return TicketStats::newFromTicket($this); }