Advertisement
jamboljack

Save Ticket SIMPEL

Jan 28th, 2019
499
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.24 KB | None | 0 0
  1. public function saveticket_post()
  2.     {
  3.         $username   = trim($this->post('username'));
  4.         $level      = trim($this->post('level'));
  5.         $nama       = trim($this->post('nama'));
  6.         $email      = trim($this->post('email'));
  7.         $subyek     = trim($this->post('subyek'));
  8.         $desc_pesan = trim($this->post('pesan'));
  9.  
  10.         if ($username == '') {
  11.             $response = [
  12.                 'resp_error' => true,
  13.                 'resp_msg'   => 'Username Kosong.',
  14.             ];
  15.         } elseif ($level == '') {
  16.             $response = [
  17.                 'resp_error' => true,
  18.                 'resp_msg'   => 'Level tidak diketahui.',
  19.             ];
  20.         } elseif ($nama == '') {
  21.             $response = [
  22.                 'resp_error' => true,
  23.                 'resp_msg'   => 'Nama Masih Kosong.',
  24.             ];
  25.         } elseif ($email == '') {
  26.             $response = [
  27.                 'resp_error' => true,
  28.                 'resp_msg'   => 'Email Masih Kosong.',
  29.             ];
  30.         } elseif ($subyek == '') {
  31.             $response = [
  32.                 'resp_error' => true,
  33.                 'resp_msg'   => 'Subyek Masih Kosong.',
  34.             ];
  35.         } elseif ($desc_pesan == '') {
  36.             $response = [
  37.                 'resp_error' => true,
  38.                 'resp_msg'   => 'Pesan Masih Kosong.',
  39.             ];
  40.         } else {
  41.             $data = array(
  42.                 'user_member'      => $username,
  43.                 'ticket_level'     => 'Lembaga Penelitian',
  44.                 'ticket_subject'   => $subyek,
  45.                 'ticket_status'    => 'Open',
  46.                 'ticket_date_post' => date('Y-m-d'),
  47.                 'ticket_time_post' => date('H:i:s'),
  48.                 'ticket_update'    => date('Y-m-d H:i:s'),
  49.             );
  50.  
  51.             $this->db->insert('lemlit_ticket', $data);
  52.             $ticket_id = $this->db->insert_id();
  53.  
  54.             // Simpan ke Detail Ticket
  55.             if (!empty($_FILES['fileattach']['name'])) {
  56.                 $data = array(
  57.                     'ticket_id'        => $ticket_id,
  58.                     'user_username'    => $username,
  59.                     'detail_level'     => 'Member',
  60.                     'detail_message'   => $desc_pesan,
  61.                     'detail_image'     => $this->upload->file_name,
  62.                     'detail_date_post' => date('Y-m-d'),
  63.                     'detail_time_post' => date('Y-m-d H:i:s'),
  64.                 );
  65.             } else {
  66.                 $data = array(
  67.                     'ticket_id'        => $ticket_id,
  68.                     'user_username'    => $username,
  69.                     'detail_level'     => 'Member',
  70.                     'detail_message'   => $desc_pesan,
  71.                     'detail_date_post' => date('Y-m-d'),
  72.                     'detail_time_post' => date('Y-m-d H:i:s'),
  73.                 );
  74.             }
  75.  
  76.             $this->db->insert('lemlit_ticket_detail', $data);
  77.  
  78.             // Header Email Ticket
  79.             $header     = $this->db->get_where('lemlit_content', array('content_id' => 2))->row();
  80.             $dataHeader = $header->content_desc;
  81.             $footer     = $this->db->get_where('lemlit_content', array('content_id' => 3))->row();
  82.             $dataFooter = $footer->content_desc;
  83.             // Kirim Email
  84.             $sender_email = 'no-reply@umk.ac.id';
  85.             $sender_name  = 'no-reply';
  86.             $subject      = '[Ticket ID : #' . $ticket_id . ' ] ' . $subyek;
  87.             $subjectemail = $subyek;
  88.             $pesan        = $desc_pesan;
  89.             $message      = $nama . " (-)<br>" .
  90.                 $dataHeader . "<br>
  91.                              Subject : " . $subjectemail . "<br>
  92.                              Status  : OPEN<br>
  93.                              " . $dataFooter;
  94.  
  95.             $this->load->library('email');
  96.             $this->email->set_mailtype("html");
  97.             $this->email->from($sender_email, $sender_name);
  98.             $this->email->to($email);
  99.             $this->email->subject($subject);
  100.             $this->email->message($message);
  101.  
  102.             if ($this->email->send()) {
  103.                 $dataNotif  = array(
  104.                     'user_pengirim'    => $username,
  105.                     'user_username'    => $username,
  106.                     'notifikasi_date'  => date('Y-m-d'),
  107.                     'notifikasi_desc'  => $pesanNotif,
  108.                     'notifikasi_level' => 'Admin',
  109.                 );
  110.  
  111.                 $this->db->insert('lemlit_notifikasi', $dataNotif);
  112.  
  113.                 $listUser = $this->db->get_where('lemlit_users', array('device_id !=' => '', 'user_level' => 'Admin'))->result();
  114.                 if (count($listUser) > 0) {
  115.                     foreach ($listUser as $r) {
  116.                         sendNotification($r->device_id, $pesanNotif);
  117.                     }
  118.                 }
  119.  
  120.                 $response = [
  121.                     'resp_error' => false,
  122.                     'resp_msg'   => 'Email Ticket Berhasil Terkirim',
  123.                 ];
  124.             } else {
  125.                 $response = [
  126.                     'resp_error' => true,
  127.                     'resp_msg'   => 'Email Ticket Gagal Terkirim',
  128.                 ];
  129.             }
  130.         }
  131.  
  132.         $this->response($response, 200);
  133.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement