/** Controller **/ public function fetch_department() { if (!$this->isLogin() || !in_array($this->me["position"], PERMISSION_GROUP3)) { return $this->getResponse([ "draw" => 1, "recordsTotal" => 0, "recordsFiltered" => 0, "data" => [] ]); } $order = []; $orders = $this->request->getVar("order"); if ($orders != null) { $columns = $this->request->getVar("columns"); foreach ($orders as $value) { $id = $value["column"]; $field = $columns[$id]["data"]; $val = ($value["dir"] == "asc") ? true : false; $order[$field] = $val; } } $result = $this->departmentModel->getDepartmentByName($this->getParammeter(), $order); return $this->getResponse([ "draw" => intval($this->request->getVar("draw")), "recordsTotal" => $result['total'], "recordsFiltered" => count($result['result']), "data" => $result['result'] ]); } /** Model **/ public function getDepartmentByName($input, $order) { try { $builder = $this->builder(); $builder->select('id, name, short_name, note'); $total = $builder->countAllResults(false); if(isset($input['name'])) { $builder->like('name', $input['name'], 'both'); } if(isset($input['shortname'])) { $builder->like('short_name', $input['shortname'], 'both'); } $builder->where('del_flag', 0); foreach ($order as $key => $value) { if (isset($order[$key])) { $builder->orderBy($key,($value)?'ASC':'DESC'); } } $result = $builder->get(); return ["result" => $result->getResultArray(), "total" => $total]; }catch(DatabaseException $db_e) { log_message('error', '[ERROR] --> Use function: {function}. {exception} '."\n".'[MYSQL] "{query}"', ['exception' => $db_e,'function' => __FUNCTION__,'query' => $this->db->getLastQuery()]); return []; } }