<?php
class M_pelanggan extends CI_Model{

	function get_grafik_pelanggan(){
		$query=$this->db->query("SELECT DATE_FORMAT(plg_register,'%M') AS bulan,COUNT(plg_id) AS total FROM tbl_pelanggan WHERE YEAR(plg_register)=YEAR(CURDATE()) GROUP BY MONTH(plg_register)");

		if($query->num_rows() > 0){
            foreach($query->result() as $data){
                $hasil[] = $data;
            }
            return $hasil;
        }
	}
	
	function getGeoPelanggan($notelp){
	    return $this->db->select('lat,lng')->where("plg_notelp", $notelp)->get("tbl_pelanggan");
	}
	

	function get_all_pelanggan(){
		$hsl=$this->db->query("select * from tbl_pelanggan order by plg_id desc");
		return $hsl;
	}
	function cek_pelanggan($u){
		$hsl=$this->db->query("select * from tbl_pelanggan where plg_notelp='$u'");
		return $hsl;
	}
	function cek_pelangganPelajar($u){
		$hsl=$this->db->query("select * from tbl_pelanggan where plg_notelp='$u' AND member = 2 and stat=0;");
		return $hsl;
	}
	function cek_pelangganMember($u){
		$hsl=$this->db->query("select * from tbl_pelanggan where plg_notelp='$u' AND member <>'0'  and stat='1';");
		return $hsl;
	}
	function cek_pelanggan_google($email){
		$hsl=$this->db->query("select * from tbl_pelanggan where plg_email='$email'");
		return $hsl;
	}
	
	
	function upd_pelanggan($u,$type,$p,$alamat,$lat,$lng){
		$hsl=$this->db->query("update tbl_pelanggan set plg_order='$type',plg_nama='$p',plg_alamat='$alamat',lat='$lat',lng='$lng' where plg_notelp='$u'");
		return $hsl;
	}
	function upd_pelangganMember($u,$toko,$type,$lat,$lng){
		$hsl=$this->db->query("update tbl_member set plg_order='$type',kdtoko='$toko', lat='$lat',lng='$lng' where plg_notelp='$u'");
		return $hsl;
	}
	
	function upd_pelanggan_google($type,$nama,$email,$lat,$lng){
		$hsl=$this->db->query("update tbl_pelanggan set plg_order='$type',plg_nama='$nama',lat='$lat',lng='$lng' where plg_email='$email'");
		return $hsl;
	}
	
	function upd_pelanggann($u,$toko,$type,$lat,$lng){
		$hsl=$this->db->query("update tbl_pelanggan set plg_order='$type',kdtoko='$toko', lat='$lat',lng='$lng' where plg_notelp='$u'");
		return $hsl;
	}
	
	function simpan_pelanggan_dengan_gambar($nama,$alamat,$jenkel,$kontak,$email,$facebook,$instagram,$line,$whatapp,$path,$pass,$gambar){
		$hsl=$this->db->query("INSERT ignore INTO tbl_pelanggan(plg_nama,plg_alamat,plg_jenkel,plg_notelp,plg_email,plg_facebook,plg_instagram,plg_line,plg_whatapp,plg_path,plg_photo,plg_password) VALUES ('$nama','$alamat','$jenkel','$kontak','$email','$facebook','$instagram','$line','$whatapp','$path','$gambar',md5('$pass'))");
		return $hsl;
	}
	function simpan_pelanggan_tanpa_gambar($nama,$alamat,$jenkel,$kontak,$email,$facebook,$instagram,$line,$whatapp,$path,$pass){
		$hsl=$this->db->query("INSERT ignore INTO tbl_pelanggan(plg_nama,plg_alamat,plg_jenkel,plg_notelp,plg_email,plg_facebook,plg_instagram,plg_line,plg_whatapp,plg_path,plg_password) VALUES ('$nama','$alamat','$jenkel','$kontak','$email','$facebook','$instagram','$line','$whatapp','$path',md5('$pass'))");
		return $hsl;
	}
	function hapus_pelanggan($kode){
		$hsl=$this->db->query("delete from tbl_pelanggan where plg_id='$kode'");
		return $hsl;
	}

	function get_all_pelanggan_terbaru(){
		$hsl=$this->db->query("select * from tbl_pelanggan order by plg_id desc");
		return $hsl;
	}
	public function get_detail_plg($nim) {
		$hsl = $this->db->query("SELECT * FROM tbl_pelanggan  WHERE plg_notelp='$idbarang'");
		if ($hsl->num_rows() > 0) {
			foreach ($hsl->result() as $data) {
				$hasil = array(
					'nama' => $data->plg_nama,
					'alamat' => $data->plg_alamat,
					'lat' => $data->lat,
					'lng' => $data->lng,
				);
			}
		}
		return $hasil;
	}
	
    public function get_pelanggan_server_side($page = 1, $limit = 10, $search = null, $order_col = 'plg_id', $order_dir = 'DESC')
    {
        $total_all = $this->db->count_all('tbl_pelanggan');
        $this->_apply_pelanggan_filters($search);
        $total_filtered = $this->db->count_all_results('tbl_pelanggan'); 

        $this->_apply_pelanggan_filters($search);
        
        $this->db->select('*'); 
        
        if(empty($order_col)) $order_col = 'plg_id';
        if(empty($order_dir)) $order_dir = 'DESC';
        $this->db->order_by($order_col, $order_dir);

        $offset = ($page - 1) * $limit;
        $this->db->limit($limit, $offset);
        
        $data = $this->db->get('tbl_pelanggan')->result_array();
    
        return array(
            'recordsTotal'    => $total_all,
            'recordsFiltered' => $total_filtered,
            'data'            => $data,
            'per_page'        => $limit,
        );
    }
    
    private function _apply_pelanggan_filters($search)
    {
        if ($search) {
            $s = $this->db->escape_like_str($search);
            $where_clause = "(plg_nama LIKE '%$s%' OR plg_alamat LIKE '%$s%' OR plg_email LIKE '%$s%' OR plg_notelp LIKE '%$s%')";
            $this->db->where($where_clause, NULL, FALSE);
        }
    }

}