sys_debug(); try { if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } */ class Title extends MY_Controller { function index() { echo "Title Api"; } function search() { //$this->sys_debug(); try { //1. cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } //2. ambil parameter input $prm = $this->sys_input; $s_query = "%" . $prm["query"] . "%"; $s_query2 = "%" . $prm["query2"] . "%"; //2A. jumlah baris per page default 25 jika tidak di set $row_per_page = 25; if (isset($prm["row_per_page"])) $row_per_page = $prm["row_per_page"]; $page = 1; if (isset($prm["page"])) $page = $prm["page"]; $tot_count = 0; $sql_param = array($s_query,$s_query2); //3. hitung total rows $sql = "select count(*) as tot from m_title left join m_sex on M_TitleM_SexID = M_SexID where M_TitleName like ? and M_SexName like ? and M_TitleIsActive='Y'"; $query = $this->db->query($sql,$sql_param); if ($query) { $tot_count = $query->result_array()[0]["tot"]; } else { $this->sys_error_db("m_title count"); exit; } //4. cari records jika total count > 0 $rows = array(); if ($tot_count > 0) { //4A. start_limit set ke 0 jika negative atau > total count $start_limit = ($page - 1) * $row_per_page; if ($start_limit > $tot_count) { $start_limit = 0; } if ($start_limit < 0) { $start_limit = 0; } $sql = "select *, M_SexName from m_title left join m_sex on M_TitleM_SexID = M_SexID where M_TitleName like ? and M_SexName like ? and M_TitleIsActive='Y' limit $start_limit,$row_per_page"; $query = $this->db->query($sql,$sql_param); if ($query) { $rows = $query->result_array(); } else { $this->sys_error_db("m_title rows"); exit; } } $result = array ("total" => $tot_count, "records" => $rows); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function add() { //$this->sys_debug(); try { //1. cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } //1a. ambil userID dari token $tokenM_UserID = $this->sys_user["M_UserID"]; //2. ambil parameter input $prm = $this->sys_input; //3. validasi input jika di perlukan, contoh di sini cek M_TitleCode harus belum ada /* $sql = "select count(*) tot from m_title where M_TitleIsActive='Y' and M_TitleCode=?"; $query = $this->db->query($sql,array($prm["M_TitleCode"])); //cek jika query error kirim pesan agar tidak crash if ($query) { $tot_count = $query->result_array()[0]["tot"]; if ($tot_count > 0) { $message = "TitleCode : " . $prm["M_TitleCode"] . " already exists."; $this->sys_error($message); exit; } } else { $this->sys_error_db("m_title titleCode validation"); exit; } */ //4. insert statement menggunakan explicit field name di sebutkan // untuk menghindari kesalahan karena penambahan field baru $sql = "insert into m_title(M_TitleM_SexID, M_TitleName, M_TitleHISDefault, M_TitleUserID, M_TitleLastUpdate) values( ?, ?, ?, ?, now())"; //4a. Create statment $query = $this->db->query($sql, array($prm["M_TitleM_SexID"], $prm["M_TitleName"], $prm["M_TitleHISDefault"], $tokenM_UserID) ); if ($query) { echo json_encode(array( "status" => "OK", "affected_rows" => $this->db->affected_rows(), "inserted_id" => $this->db->insert_id(), "message" => "", "data" => array() )); } else { $this->sys_error_db("m_title insert"); exit; } } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function edit() { //$this->sys_debug(); try { //1. cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } //1a. ambil userID dari token $tokenM_UserID = $this->sys_user["M_UserID"]; //2. ambil parameter input $prm = $this->sys_input; $sql = "update m_title set M_TitleM_SexID = ? , M_TitleName = ?, M_TitleHISDefault = ?, M_TitleLastUpdate = now() , M_TitleUserID = ? where M_TitleID = ? "; $query = $this->db->query($sql, array( $prm["M_TitleM_SexID"], $prm["M_TitleName"], $prm["M_TitleHISDefault"], $tokenM_UserID, $prm["M_TitleID"] )); if ($query) { echo json_encode(array( "status" => "OK", "affected_rows" => $this->db->affected_rows(), "message" => "", "data" => array() )); } else { $this->sys_error_db("m_title update"); exit; } } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function delete() { //$this->sys_debug(); try { //1. cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } //1a. ambil userID dari token $tokenM_UserID = $this->sys_user["M_UserID"]; //2. ambil parameter input $prm = $this->sys_input; $sql = "update m_title set M_TitleIsActive = 'N', M_TitleLastUpdate = now(), M_TitleUserID = ? where M_TitleID = ? "; $query = $this->db->query($sql, array( $tokenM_UserID, $prm["M_TitleID"] )); if ($query) { echo json_encode(array( "status" => "OK", "affected_rows" => $this->db->affected_rows(), "message" => "", "data" => array() )); } else { $this->sys_error_db("m_title delete"); exit; } } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } } ?>