var $table = 'account';
var $column_order = array(null, 'nama_akun','no_akun','sub_no_akun', 'status_akun', 'level_akun', 'nama_user', 'saldo_awal', 'created_at', 'users.nama_user');
var $column_search = array('nama_akun','no_akun','sub_no_akun', 'status_akun', 'level_akun', 'nama_user', 'saldo_awal', 'created_at', 'users.nama_user'); //field yang diizin untuk pencarian
var $order = array('no_akun' => 'asc'); // default order
// Datatable
private function _get_datatables_query()
{
$this->db->from($this->table);
$this->db->join('users', 'account.created_by = users.id', 'left');
$i = 0;
foreach ($this->column_search as $item) // looping awal
{
if($_POST['search']['value']) // jika datatable mengirimkan pencarian dengan metode POST
{
if($i===0) // looping awal
{
$this->db->group_start();
$this->db->like($item, $_POST['search']['value']);
}
else
{
$this->db->or_like($item, $_POST['search']['value']);
}
if(count($this->column_search) - 1 == $i)
$this->db->group_end();
}
$i++;
}
if(isset($_POST['order']))
{
$this->db->order_by($this->column_order[$_POST['order']['0']['column']], $_POST['order']['0']['dir']);
}
else if(isset($this->order))
{
$order = $this->order;
$this->db->order_by(key($order), $order[key($order)]);
}
// $this->db->select('account.*, users.id as idUser, users.nama_user');
// $this->db->from('account');
// $this->db->join('users', 'account.created_by = users.id', 'left');
// // $this->db->join('users', 'users.id = account.created_by', 'left');
// return $this->db->get()->result();
}
function get_datatables()
{
$this->_get_datatables_query();
if($_POST['length'] != -1)
$this->db->limit($_POST['length'], $_POST['start']);
$query = $this->db->get();
return $query->result();
}
function count_filtered()
{
$this->_get_datatables_query();
$query = $this->db->get();
return $query->num_rows();
}
public function count_all()
{
$this->db->from($this->table);
return $this->db->count_all_results();
}
$list = $this->MasterModel->get_datatables();
$data = array();
$no = $_POST['start'];
foreach ($list as $ls) {
$row[] = $ls->no_akun.'.'.$ls->sub_no_akun;
$row[] = $ls->nama_akun;
$row[] = $ls->level_akun;
$row[] = $ls->status_akun;
$row[] = number_format($ls->saldo_awal);
$row[] = date('d-m-Y', strtotime($ls->created_at));
$row[] = $ls->nama_user;
$row[] = '<button class="btn btn-default btn-sm edit-data" data-no-akun="'.$ls->no_akun.'" data-sub-no-akun="'.$ls->sub_no_akun.'" data-nama="'.$ls->nama_akun.'" data-level="'.$ls->level_akun.'" data-status="'.$ls->status_akun.'"><span class="fa fa-pencil"></span></button>
<button data-akun="'.$ls->no_akun.'" data-sub="'.$ls->sub_no_akun.'" data-nama="'.$ls->nama_akun.'" class="btn btn-danger delete-data btn-sm"><span class="fa fa-times"></span></button>';
$data[] = $row;
}
$output = array(
"draw" => $_POST['draw'],
"recordsTotal" => $this->MasterModel->count_all(),
"recordsFiltered" => $this->MasterModel->count_filtered(),
"data" => $data
);
echo json_encode($output);
function show_akun() {
$('#table-akun').dataTable({
"processing": true,
"serverSide": true,
"order": [],
"ajax": {
"url": "<?= base_url('Master_Account/get_account')?>",
"type": "POST"
},
"columnDefs": [
{
"targets": [ 0 ],
"orderable": false,
},
],
});
}