Пример #1
0
    public function reply($ticketid)
    {
        $ticketid = intval($ticketid);
        //Check Anon Access
        $this->anon_access($ticketid);
        if (isset($_SESSION['tid']) && $_SESSION['tid'] > 0) {
            $ticket = $this->ticket_model->getTicket($ticketid);
            $staffFlag = 0;
            $userid = 0;
        } elseif ($this->user->loggedin) {
            if ($this->user->info->access_level > 0) {
                $staffFlag = 1;
                $ticket = $this->ticket_model->getTicket($ticketid);
            } else {
                $staffFlag = 0;
                $ticket = $this->ticket_model->getTicket($ticketid, $this->user->info->ID);
            }
            $userid = $this->user->info->ID;
        } else {
            $this->template->error(lang("error_msg_login"));
        }
        if ($ticket->num_rows() == 0) {
            $this->template->error(lang("error_msg_tik11"));
        }
        $message = $this->lib_filter->go($this->input->post("message"));
        if (empty($message)) {
            $this->template->error(lang("error_msg_tik15"));
        }
        $r = $ticket->row();
        if ($r->status == 2) {
            $this->template->error(lang("error_msg_tik16"));
        }
        $fileInfo = array();
        if ($this->settings->info->file_enable) {
            $this->load->library('upload');
            // File upload script
            $this->upload->initialize(array("upload_path" => $this->settings->info->upload_path, "overwrite" => FALSE, "max_filename" => 300, "encrypt_name" => TRUE, "remove_spaces" => TRUE, "allowed_types" => "txt|gif|jpg|png|jpeg|", "max_size" => 300, "xss_clean" => TRUE));
            $fileInfo = array();
            $attachments = 0;
            if ($this->upload->do_multi_upload("files")) {
                $attachments = 1;
                $fileInfo = $this->upload->get_multi_upload_data();
            }
        } else {
            $attachments = 0;
        }
        $replyid = $this->ticket_model->createReply($r->ID, $userid, $message, $staffFlag, $attachments);
        if (count($fileInfo) > 0) {
            foreach ($fileInfo as $file) {
                $this->ticket_model->addFileToTicket($replyid, $file);
            }
        }
        if ($staffFlag) {
            $addflag = 0;
            $tick = $ticket->row();
            $assigned = explode("***", $tick->assigned);
            foreach ($assigned as $user) {
                $uid = str_replace("U", "", $user);
                if ($uid == $this->user->info->ID) {
                    $addflag = 1;
                }
            }
            if (!$addflag) {
                // Assigned staff member to ticket
                $assigned[] = "U" . $this->user->info->ID . "U";
                $assigned = implode("***", $assigned);
                $this->ticket_model->update_assigned($assigned, $ticketid);
            }
            // Send Email to ticket owner
            $this->load->library('email');
            $this->email->from($this->settings->info->support_email, $this->settings->info->site_name);
            $this->email->to($r->email);
            $message = 'Dear ' . $r->name . ', <br /><br /> ' . lang("email_part10") . $this->settings->info->site_name . '. ' . lang("email_part8") . '<a href="' . site_url() . '">' . site_urL() . '</a> ' . lang("email_part9") . ' <br /><br />';
            if ($tick->userid == 0) {
                $message = $message . lang("email_part16") . '<br /> <a href="' . site_url("tickets/anon_pro/?ticketid=" . $tick->ID . "&email=" . $tick->email . "&pass="******">' . site_url("tickets/anon_pro/?ticketid=" . $tick->ID . "&email=" . $tick->email . "&pass="******"email_part5") . $this->settings->info->site_name;
            $this->email->subject('Ticket Response #' . $r->ID);
            $this->email->message($message);
            $this->email->send();
            $this->ticket_model->addAgentLog($this->user->info->ID, "{$this->user->info->name} replied to ticket #{$ticketid}", $ticketid);
        } else {
            // Email Staff
            if ($this->settings->info->alert_support_staff) {
                $this->load->model("admin_model");
                $agents = $this->admin_model->getAgents();
                foreach ($agents->result() as $rr) {
                    $this->email->from($this->settings->info->support_email, $this->settings->info->site_name);
                    $this->email->to($rr->email);
                    $this->email->subject(lang("email_part12") . '(#' . $ticketid . ')');
                    $this->email->message('Dear ' . $rr->name . ',<br /><br />
						' . lang("email_part13") . $ticketid . '. ' . lang("email_part14") . ' <a href="' . site_url() . '">' . site_url() . '</a>.');
                    $this->email->send();
                }
            }
        }
        $this->ticket_model->increaseTicketResponses($this->user->info->ID);
        $this->session->set_flashdata("globalmsg", lang("flash_data_p35"));
        redirect(site_url("tickets/view/" . $r->ID));
    }
Пример #2
0
 function graphical_summary_payments($start_date, $end_date)
 {
     $this->load->model('reports/Summary_payments');
     $model = $this->Summary_payments;
     $data = array("title" => $this->lang->line('reports_payments_summary_report'), "data_file" => site_urL("reports/graphical_summary_payments_graph/{$start_date}/{$end_date}"), "subtitle" => date('m/d/Y', strtotime($start_date)) . '-' . date('m/d/Y', strtotime($end_date)), "summary_data" => $model->getSummaryData(array('start_date' => $start_date, 'end_date' => $end_date)));
     $this->load->view("reports/graphical", $data);
 }