/**
  * Add new ticket into database.
  *
  * @access	public
  * @param	int	Selected urgency.
  * @param	int	Selected category.
  * @param	string	Subject of the ticket.
  * @param	string	Content of the ticket.
  */
 public function addTicket($urgency, $services, $subject = "", $content = "")
 {
     if ($this->validator->required($urgency, $services, $subject, $content)) {
         $query1 = $this->chkTicketExistance("table", "ts_ticket_topic", "subject", $subject);
         $query2 = $this->chkTicketExistance("table", "ts_ticket_topic", "content", $content);
         if (!$query1 && !$query2) {
             // Later user method whoIsFromStaff
             $this->db->query("\n\t\t\t\t\tINSERT INTO ts_ticket_topic(\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tauthor_id,\n\t\t\t\t\t\trecepient_id,\n\t\t\t\t\t\tsubject,\n\t\t\t\t\t\tdate_time,\n\t\t\t\t\t\tcategory_id,\n\t\t\t\t\t\tpriority_id,\n\t\t\t\t\t\tstatus_id,\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t\tuser_ip\n\t\t\t\t\t) VALUES(\n\t\t\t\t\t\tNULL,\n\t\t\t\t\t\t" . $this->db->escapeVal($_SESSION['id']) . ",\n\t\t\t\t\t\t1,\n\t\t\t\t\t\t'" . $this->db->escapeVal($subject) . "',\n\t\t\t\t\t\tNOW(),\n\t\t\t\t\t\t" . $this->db->escapeVal($services) . ",\n\t\t\t\t\t\t" . $this->db->escapeVal($urgency) . ",\n\t\t\t\t\t\t1,\n\t\t\t\t\t\t'" . $this->db->escapeVal($this->validator->eliminateTags($content)) . "',\n\t\t\t\t\t\t'" . $this->db->escapeVal($_SERVER['REMOTE_ADDR']) . "'\n\t\t\t\t\t)\n\t\t\t\t");
         }
     }
     header("Location: / ");
 }
 /**
  * Calculate the number of pages.
  *
  * @access	public
  * @return	int
  */
 public function getNumPages()
 {
     if ($this->user->ugroup == 1) {
         $query = "SELECT COUNT(1) AS total FROM ts_tickets_view WHERE status_name = 'Opened'";
         $total = $this->db->fetchAssoc($query);
     } else {
         $query = "SELECT COUNT(1) AS total FROM ts_tickets_view WHERE author_id = " . $this->db->escapeVal($this->user->id);
         $total = $this->db->fetchAssoc($query);
     }
     $this->totalEntryNum = (int) $total['total'];
     $this->numPages = ceil($this->totalEntryNum / $this->entryPerPage);
     return $this->numPages;
 }
 /**
  * Search for user in database. Check whether user is
  * a numeric value, for example user id or is it an array
  * of user attributes.
  *
  * @access	public
  * @param	int | array
  * @return	array | bool
  */
 public function chkUserExistance($user)
 {
     if (is_numeric($user)) {
         $query = "\n\t\t\t\tSELECT id, username, userpass, email, ugroup\n\t\t\t\tFROM ts_users\n\t\t\t\tWHERE id = " . $this->db->escapeVal($user) . "\n\t\t\t\tLIMIT 1\n\t\t\t";
         return $query;
     } else {
         if (is_array($user)) {
             $query = "\n\t\t\t\tSELECT id, username, userpass, email, ugroup\n\t\t\t\tFROM ts_users\n\t\t\t\tWHERE username = '******'username']) . "'\n\t\t\t\tOR email = '" . $this->db->escapeVal($user['email']) . "'\n\t\t\t\tLIMIT 1\n\t\t\t";
             # If user not found
             if (!($row = $this->db->fetchAssoc($query))) {
                 return false;
             }
             return true;
         }
     }
 }