|
Server : Apache/2.4.18 (Ubuntu) System : Linux canvaswebdesign 3.13.0-71-generic #114-Ubuntu SMP Tue Dec 1 02:34:22 UTC 2015 x86_64 User : oppastar ( 1041) PHP Version : 7.0.33-0ubuntu0.16.04.15 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, Directory : /var/www/rabbithabit.com/public_html/application/models/ |
Upload File : |
<?php
class Notifpembelian extends CI_Model {
public function __construct() {
parent::__construct();
$this->load->model('User');
}
public function getAll() {
$this->db->order_by('date','desc');
$query = $this->db->get('notifpembelian');
return $query->result();
}
public function countAll() {
$query = $this->db->get('notifpembelian');
$this->session->set_userdata('c_notifbuy', $query->num_rows());
return $query->num_rows();
}
public function updateStatusread($id_notif){
$data = array(
'read_satatus' => '1'
);
$this->db->where('notifpembelian_id',$id_notif);
$this->db->where('user_id',$this->session->userdata('admin')['id']);
$this->db->update('notifpembelianread', $data);
}
public function updateStatusDelete($id_notif){
$this->db->select('*');
$this->db->from('notifpembelian');
$this->db->where('id',$id_notif);
$query = $this->db->get();
if($query->num_rows() > 0){
$result = $query->row();
$data = array(
'read_satatus' => '2'
);
$this->db->where('notifpembelian_id',$result->id);
$this->db->where('user_id',$this->session->userdata('admin')['id']);
$this->db->update('notifpembelianread', $data);
return $result->link;
} else {
return false;
}
}
public function saveSatatusRead($insertData){
$ex = explode('#',$insertData['role']);
$this->db->select('*');
$this->db->from('users');
$query = $this->db->get();
foreach ($query->result() as $value) {
if(in_array($value->role, $ex)){
$data = array(
'user_id' => $value->id,
'notifpembelian_id' => $insertData['nid'],
'read_satatus' => '0'
);
$this->db->insert('notifpembelianread', $data);
}
}
}
public function saveNotif($insertData){
$data = array(
'title' => $insertData['title'],
'link' => $insertData['link'],
'user_id' => $this->session->userdata('admin')['id'],
'message' => $insertData['pesan'],
'date' => gmdate("Y-m-d H:i:s", time()+60*60*7),
'id_transaction' => $insertData['tid']
);
$this->db->insert('notifpembelian', $data);
$insert_id = $this->db->insert_id();
return $insert_id;
}
public function htmlshow(){
$data = $this->notShow();
$result['hasil'] = false; //or false
$html = '';
foreach ($data as $value) {
$this->updateStatusread($value['id']);
$html .= '<li><div class="col-md-9 col-sm-9 col-xs-9" onclick="location.href=\''.base_url('admin/pembelian/directnotif/'.$value['id']).'\'">';
$html .= '<div>'.$value['title'].'</div>';
$html .= '<p>'.$value['message'].'</p>';
$html .= '<p class="time" style="text-align: center;">'.$this->time2str($value['date']).'</p>';
$html .= '</div></li>';
$result['link'] = $value['link'];
$result['title'] = $value['title'];
$result['pesan'] = $value['message'];
$result['hasil'] = true;
}
$result['count'] = count($data);
$result['html'] = $html;
return $result;
}
public function htmlfshow(){
$data = $this->isShow();
$html = '';
foreach ($data as $value) {
$html .= '<li><div class="col-md-9 col-sm-9 col-xs-9" onclick="location.href=\''.base_url('admin/pembelian/directnotif/'.$value['id']).'\'">';
$html .= '<div>'.$value['title'].'</div>';
$html .= '<p>'.$value['message'].'</p>';
$html .= '<p class="time" style="text-align: center;">'.$this->time2str($value['date']).'</p>';
$html .= '</div></li>';
}
if(count($data) > 0){
$result['hasil'] = true;
$result['html'] = $html;
} else {
$result['hasil'] = false;
}
return $result;
}
public function notShow(){
$this->db->select('*');
$this->db->from('notifpembelian');
$this->db->join('notifpembelianread', 'notifpembelianread.notifpembelian_id = notifpembelian.id', 'left outer');
$this->db->where("notifpembelianread.user_id", $this->session->userdata('admin')['id']);
$this->db->where("notifpembelianread.read_satatus", '0');
$this->db->order_by('notifpembelian.date','desc');
$query = $this->db->get();
return $query->result_array();
}
public function isShow(){
$this->db->select('*');
$this->db->from('notifpembelian');
$this->db->join('notifpembelianread', 'notifpembelianread.notifpembelian_id = notifpembelian.id');
$this->db->where("notifpembelianread.user_id", $this->session->userdata('admin')['id']);
$this->db->where("notifpembelianread.read_satatus", '1');
$this->db->order_by('notifpembelian.date','desc');
$query = $this->db->get();
return $query->result_array();
}
public function isRead(){
$this->db->select('*');
$this->db->from('notifpembelian');
$this->db->join('notifpembelianread', 'notifpembelianread.notifpembelian_id = notifpembelian.id');
$this->db->where("notifpembelianread.user_id", $this->session->userdata('admin')['id']);
$this->db->where("notifpembelianread.read_satatus", '2');
$this->db->order_by('notifpembelian.date','desc');
$query = $this->db->get();
return $query->result_array();
}
public function time2str($ts) {
if(!ctype_digit($ts)) {
$ts = strtotime($ts);
}
$diff = time() - $ts;
if($diff == 0) {
return 'now';
} elseif($diff > 0) {
$day_diff = floor($diff / 86400);
if($day_diff == 0) {
if($diff < 60) return 'just now';
if($diff < 120) return '1 minute ago';
if($diff < 3600) return floor($diff / 60) . ' minutes ago';
if($diff < 7200) return '1 hour ago';
if($diff < 86400) return floor($diff / 3600) . ' hours ago';
}
if($day_diff == 1) { return 'Yesterday'; }
if($day_diff < 7) { return $day_diff . ' days ago'; }
if($day_diff < 31) { return ceil($day_diff / 7) . ' weeks ago'; }
if($day_diff < 60) { return 'last month'; }
return date('F Y', $ts);
} else {
$diff = abs($diff);
$day_diff = floor($diff / 86400);
if($day_diff == 0) {
if($diff < 120) { return 'in a minute'; }
if($diff < 3600) { return 'in ' . floor($diff / 60) . ' minutes'; }
if($diff < 7200) { return 'in an hour'; }
if($diff < 86400) { return 'in ' . floor($diff / 3600) . ' hours'; }
}
if($day_diff == 1) { return 'Tomorrow'; }
if($day_diff < 4) { return date('l', $ts); }
if($day_diff < 7 + (7 - date('w'))) { return 'next week'; }
if(ceil($day_diff / 7) < 4) { return 'in ' . ceil($day_diff / 7) . ' weeks'; }
if(date('n', $ts) == date('n') + 1) { return 'next month'; }
return date('F Y', $ts);
}
}
}