db_onedev = $this->load->database("onedev", true); } function update_position() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $id = $prm['id']; $req_id = $prm['req_id']; $cmd = $prm['cmd']; $sql_param = array( $id ,$req_id); $sql = "update nat_testrequirement set = 'N' where Nat_TestRequirementNat_TestID= ? and Nat_TestRequirementNat_RequirementID=?"; $query = $this->db_onedev->query($sql,$sql_param); if (! $query) { $this->sys_error_db( $this->db_onedev->last_query() ); exit; } $sql = "select * from nat_testrequirement where Nat_TestRequirementNat_TestID= ? and Nat_TestRequirementNat_RequirementID=?"; $query = $this->db_onedev->query($sql,$sql_param); if ($query) { $rows = $query->result_array(); } else { $this->sys_error_db("nat_test select by requirement"); exit; } $sql = "insert into nasional_log.log_requirement(Log_RequirementCode, Log_RequirementData, Log_RequirementUserID) values(?,?,?)"; $data = json_encode($rows); $userID = $this->sys_user["M_UserID"]; $sql_param = array("Requirement.Delete", $data , $userID); $query = $this->db_onedev->query($sql,$sql_param); if (! $query) { $this->sys_error_db( $this->db_onedev->last_query()); exit; } $result = array ("status" => "OK"); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function list_position(){ try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $id = $prm['id']; //all position $sql = "select distinct Nat_PositionID, Nat_PositionName, if(Nat_RequirementPositionID is null , 'N', 'Y') IsChecked from nat_position left join nat_requirementposition on Nat_PositionID = Nat_RequirementPositionNat_PositionID and Nat_PositionIsActive = 'Y' and Nat_RequirementPositionIsActive = 'Y' and Nat_RequirementPositionNat_RequirementID = ? order by Nat_PositionID"; $sql_param = array($id); $query = $this->db_onedev->query($sql,$sql_param); if ($query) { $rows = $query->result_array(); } else { $this->sys_error_db("nat_requirementposition select by requirement"); exit; } $result = array ("total" => count($rows), "records" => $rows); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } public function delete() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } //# ambil parameter input $prm = $this->sys_input; $sql = "update nat_requirement SET Nat_RequirementIsActive = 'N', Nat_RequirementLastUpdated = now() WHERE Nat_RequirementID = ? "; $query = $this->db_onedev->query($sql, array( $prm['id'] ) ); // echo $query; if (!$query) { $this->sys_error_db("nat_requirement delete"); exit; } $sql = "UPDATE nat_requirementposition SET Nat_RequirementPositionIsActive = 'N', Nat_RequirementPositionLastUpdated = now() WHERE Nat_RequirementPositionNat_RequirementID = ? "; $query = $this->db_onedev->query($sql, array( $prm['id'] ) ); // echo $query; if (!$query) { $this->sys_error_db("nat_requirementposition delete"); exit; } $sql = "UPDATE nat_testrequirement SET Nat_TestRequirementIsActive = 'N', Nat_TestRequirementLastUpdated = now() WHERE Nat_TestRequirementNat_RequirementID = ? "; $query = $this->db_onedev->query($sql, array( $prm['id'] ) ); // echo $query; if (!$query) { $this->sys_error_db("nat_testrequirement delete"); exit; } $result = array ("total" => 1, "records" => array("xid" => 0)); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function delete_test() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $id = $prm['id']; $req_id = $prm['req_id']; $sql_param = array( $id ,$req_id); $sql = "update nat_testrequirement set Nat_TestRequirementIsActive = 'N' where Nat_TestRequirementNat_TestID= ? and Nat_TestRequirementNat_RequirementID=?"; $query = $this->db_onedev->query($sql,$sql_param); if (! $query) { $this->sys_error_db( $this->db_onedev->last_query() ); exit; } $sql = "select * from nat_testrequirement where Nat_TestRequirementNat_TestID= ? and Nat_TestRequirementNat_RequirementID=?"; $query = $this->db_onedev->query($sql,$sql_param); if ($query) { $rows = $query->result_array(); } else { $this->sys_error_db("nat_test select by requirement"); exit; } $sql = "insert into nasional_log.log_requirement(Log_RequirementCode, Log_RequirementData, Log_RequirementUserID) values(?,?,?)"; $data = json_encode($rows); $userID = $this->sys_user["M_UserID"]; $sql_param = array("Requirement.Delete", $data , $userID); $query = $this->db_onedev->query($sql,$sql_param); if (! $query) { $this->sys_error_db( $this->db_onedev->last_query()); exit; } $result = array ("status" => "OK"); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function selected_test() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $id = $prm['id']; $sql_param = array( $id ); $sql = "select distinct Nat_TestRequirementNat_TestID Nat_TestID, Nat_TestName from nat_testrequirement join nat_test on Nat_TestID = Nat_TestRequirementNat_TestID where Nat_TestRequirementNat_RequirementID = ? and Nat_TestRequirementIsActive = 'Y'"; $query = $this->db_onedev->query($sql,$sql_param); if ($query) { $rows = $query->result_array(); } else { $this->sys_error_db( $this->db_onedev->last_query() ); exit; } $sql = "select Nat_RequirementID from nat_requirement where Nat_RequirementID = ? and Nat_RequirementIsAllTest='Y'"; $query = $this->db_onedev->query($sql,$sql_param); if ($query) { $xrows = $query->result_array(); if (count($x_rows) > 0 ) $rows[] = array("Nat_TestID" => 0 , "Nat_TestName" => "All Test"); } else { $this->sys_error_db("nat_test select by requirement"); exit; } $result = array ("total" => count($rows), "records" => $rows); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function list_test() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $qry = "%" . $prm['search'] . "%"; $sql_param = array( $qry, $qry ); $sql = " select 0 Nat_TestID, 'All Test' Nat_TestName where 'All Test' like ? union select Nat_TestID, Nat_TestName from nat_test where Nat_TestIsActive = 'Y' and Nat_TestIsResult = 'Y' and Nat_TestName like ? "; $query = $this->db_onedev->query($sql, $sql_param); if ($query) { $rows = $query->result_array(); } else { $this->sys_error_db("nat_test select by requirement"); exit; } $result = array ("total" => count($rows), "records" => $rows); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function add_position() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $positionid = $prm['positionid']; $requirementid = $prm['requirementid']; $sql_param = array( $positionid ,$requirementid); $sql = "INSERT INTO nat_requirementposition (Nat_RequirementPositionNat_PositionID, Nat_RequirementPositionNat_RequirementID, Nat_RequirementPositionCreated, Nat_RequirementPositionLastUpdated) VALUES (?, ?, now(), now())"; $query = $this->db_onedev->query($sql,$sql_param); if (! $query) { $this->sys_error_db( $this->db_onedev->last_query() ); exit; } $sql = "select * from nat_requirementposition where Nat_RequirementPositionNat_PositionID= ? and Nat_RequirementPositionNat_RequirementID=?"; $query = $this->db_onedev->query($sql,$sql_param); if ($query) { $rows = $query->result_array(); } else { $this->sys_error_db("nat_test select by requirement"); exit; } $sql = "insert into nasional_log.log_requirement(Log_RequirementCode, Log_RequirementData, Log_RequirementUserID) values(?,?,?)"; $data = json_encode($rows); $userID = $this->sys_user["M_UserID"]; $sql_param = array("Requirement.Add", $data , $userID); $query = $this->db_onedev->query($sql,$sql_param); if (! $query) { $this->sys_error_db( $this->db_onedev->last_query()); exit; } $result = array ("status" => "OK"); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function delete_position() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $positionid = $prm['positionid']; $requirementid = $prm['requirementid']; $sql_param = array( $positionid ,$requirementid); $sql = "update nat_requirementposition set Nat_RequirementPositionIsActive = 'N' where Nat_RequirementPositionNat_PositionID= ? and Nat_RequirementPositionNat_RequirementID=?"; $query = $this->db_onedev->query($sql,$sql_param); if (! $query) { $this->sys_error_db( $this->db_onedev->last_query() ); exit; } $sql = "select * from nat_requirementposition where Nat_RequirementPositionNat_PositionID= ? and Nat_RequirementPositionNat_RequirementID=?"; $query = $this->db_onedev->query($sql,$sql_param); if ($query) { $rows = $query->result_array(); } else { $this->sys_error_db("nat_test select by requirement"); exit; } $sql = "insert into nasional_log.log_requirement(Log_RequirementCode, Log_RequirementData, Log_RequirementUserID) values(?,?,?)"; $data = json_encode($rows); $userID = $this->sys_user["M_UserID"]; $sql_param = array("Requirement.Delete", $data , $userID); $query = $this->db_onedev->query($sql,$sql_param); if (! $query) { $this->sys_error_db( $this->db_onedev->last_query()); exit; } $result = array ("status" => "OK"); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } public function lookup() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $search = $prm['search']; $all = $prm['all']; $limit = ''; if($all == 'N'){ $limit = ' LIMIT 10'; } $sql = "select COUNT(*) as total from nat_requirement where Nat_RequirementIsActive = 'Y'"; $sql_param = array($search); $total = $this->db_onedev->query($sql,$sql_param)->row()->total; $sql = "SELECT * FROM (select Nat_RequirementID as id, Nat_RequirementName as name, Nat_RequirementIsAllTest, concat(Nat_RequirementName, if(Nat_RequirementIsAllTest='Y','[ All Test ]', '') ) description, 'xxx' as requirementpositions, 'xxx' as requirementtest from nat_requirement where Nat_RequirementIsActive = 'Y') a WHERE description LIKE CONCAT('%',?,'%') $limit"; $sql_param = array($search); $query = $this->db_onedev->query($sql,$sql_param); //echo $this->db_onedev->last_query(); if ($query) { $rows = $query->result_array(); } else { $this->sys_error_db("nat_requirement select"); exit; } $result = array ("total" => $total, "total_filter"=>count($rows),"records" => $rows); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } public function addnewrequirement() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } //# ambil parameter input $prm = $this->sys_input; $name_requirement = $prm['name']; $isalltest = $prm['isalltest']; $query = "SELECT COUNT(*) as exist FROM nat_requirement WHERE Nat_RequirementIsActive = 'Y' AND Nat_RequirementName = '{$name_requirement}'"; $exist_name = $this->db_onedev->query($query)->row()->exist; if($exist_name == 0){ $sql = "insert into nat_requirement( Nat_RequirementName, Nat_RequirementIsAllTest, Nat_RequirementLastUpdated ) values( ?, ?, now())"; $query = $this->db_onedev->query($sql, array( $name_requirement, $isalltest ) ); //echo $query; if (!$query) { $this->sys_error_db("nat_requirement insert"); exit; } $sql_param = $this->db_onedev->insert_id(); $sql = "select * from nat_requirement where Nat_RequirementID= ?"; $query = $this->db_onedev->query($sql,$sql_param); if ($query) { $rows = $query->result_array(); } else { $this->sys_error_db("nat_test select by requirement"); exit; } $sql = "insert into nasional_log.log_requirement(Log_RequirementCode, Log_RequirementData, Log_RequirementUserID) values(?,?,?)"; $data = json_encode($rows); $userID = $this->sys_user["M_UserID"]; $sql_param = array("Requirement.Add", $data , $userID); $query = $this->db_onedev->query($sql,$sql_param); if (! $query) { $this->sys_error_db( $this->db_onedev->last_query()); exit; } $result = array ("total" => 1, "records" => array("xid" => 0)); $this->sys_ok($result); }else{ $result = array ("total" => -1, "records" => 0); $this->sys_ok($result); } } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } public function editrequirement() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } //# ambil parameter input $prm = $this->sys_input; $id_requirement = $prm['id']; $name_requirement = $prm['name']; $isalltest = $prm['isalltest']; $query = "SELECT COUNT(*) as exist FROM nat_requirement WHERE Nat_RequirementIsActive = 'Y' AND Nat_RequirementName = '{$name_requirement}' AND Nat_RequirementID <> {$id_requirement}"; $exist_name = $this->db_onedev->query($query)->row()->exist; if($exist_name == 0){ $sql = "update nat_requirement SET Nat_RequirementName = ?, Nat_RequirementIsAllTest = ?, Nat_RequirementLastUpdated = now() where Nat_RequirementID = ? "; $query = $this->db_onedev->query($sql, array( $name_requirement, $isalltest, $id_requirement ) ); //echo $query; if (!$query) { $this->sys_error_db("nat_requirement update"); exit; } $sql_param = $prm['id']; $sql = "select * from nat_requirement where Nat_RequirementID= ?"; $query = $this->db_onedev->query($sql,$sql_param); if ($query) { $rows = $query->result_array(); } else { $this->sys_error_db("nat_test select by requirement"); exit; } $sql = "insert into nasional_log.log_requirement(Log_RequirementCode, Log_RequirementData, Log_RequirementUserID) values(?,?,?)"; $data = json_encode($rows); $userID = $this->sys_user["M_UserID"]; $sql_param = array("Requirement.Update", $data , $userID); $query = $this->db_onedev->query($sql,$sql_param); if (! $query) { $this->sys_error_db( $this->db_onedev->last_query()); exit; } $result = array ("total" => 1, "records" => array("xid" => $id_requirement)); $this->sys_ok($result); }else{ $result = array ("total" => -1, "records" => 0); $this->sys_ok($result); } } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } public function addnewrequirementposition() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } //# ambil parameter input $prm = $this->sys_input; $requirementid = $prm['requirementid']; $positionid = $prm['positionid']; $sql = "insert into nat_requirementposition( Nat_RequirementPositionNat_RequirementID, Nat_RequirementPositionNat_PositionID, Nat_RequirementPositionCreated, Nat_RequirementPositionLastUpdated ) values( ?,?,now(),now())"; $query = $this->db_onedev->query($sql, array( $requirementid, $positionid ) ); //echo $query; if (!$query) { $this->sys_error_db("nat_requirementposition insert"); exit; } $result = array ("total" => 1, "records" => array("xid" => 0)); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } public function addnewrequirementtest() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } //# ambil parameter input $prm = $this->sys_input; if($prm['xid'] == "0" || $prm['xid'] == 0){ $sql = "insert into nat_testrequirement( Nat_TestRequirementNat_RequirementID, Nat_TestRequirementNat_TestID, Nat_TestRequirementCreated, Nat_TestRequirementLastUpdated ) values( ?,?,now(),now())"; $query = $this->db_onedev->query($sql, array( $prm['requirementid'], $prm['testid'] ) ); if (!$query) { $this->sys_error_db("nat_testrequirement insert"); exit; } } else{ $sql = "update nat_testrequirement SET Nat_TestRequirementNat_TestID = ?, Nat_TestRequirementLastUpdated = now() WHERE Nat_TestRequirementID = ? "; $query = $this->db_onedev->query($sql, array( $prm['testid'], $prm['xid'] ) ); if (!$query) { $this->sys_error_db("nat_testrequirement update"); exit; } } $result = array ("total" => 1, "records" => array("xid" => 0)); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } public function deleterequirementtest() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } //# ambil parameter input $prm = $this->sys_input; $sql = "update nat_testrequirement SET Nat_TestRequirementIsActive = 'N', Nat_TestRequirementLastUpdate = now() WHERE Nat_TestRequirementID = ? "; $query = $this->db_onedev->query($sql, array( $prm['id'] ) ); // echo $query; if (!$query) { $this->sys_error_db("nat_testrequirement delete"); exit; } $result = array ("total" => 1, "records" => array("xid" => 0)); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } public function deleterequirementposition() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } //# ambil parameter input $prm = $this->sys_input; $sql = "update nat_requirementposition SET Nat_RequirementPositionIsActive = 'N', Nat_RequirementPositionLastUpdated = now() WHERE Nat_RequirementPositionID = ? "; $query = $this->db_onedev->query($sql, array( $prm['id'] ) ); // echo $query; if (!$query) { $this->sys_error_db("nat_requirementposition delete"); exit; } $result = array ("total" => 1, "records" => array("xid" => 0)); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } public function deleterequirement() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } //# ambil parameter input $prm = $this->sys_input; $sql = "update nat_requirement SET Nat_RequirementIsActive = 'N', Nat_RequirementLastUpdated = now() WHERE Nat_RequirementID = ? "; $query = $this->db_onedev->query($sql, array( $prm['id'] ) ); // echo $query; if (!$query) { $this->sys_error_db("nat_requirement delete"); exit; } $sql_param = $prm['id']; $sql = "select * from nat_requirement where Nat_RequirementID= ?"; $query = $this->db_onedev->query($sql,$sql_param); if ($query) { $rows = $query->result_array(); } else { $this->sys_error_db("nat_test select by requirement"); exit; } $sql = "insert into nasional_log.log_requirement(Log_RequirementCode, Log_RequirementData, Log_RequirementUserID) values(?,?,?)"; $data = json_encode($rows); $userID = $this->sys_user["M_UserID"]; $sql_param = array("Requirement.Delete", $data , $userID); $query = $this->db_onedev->query($sql,$sql_param); if (! $query) { $this->sys_error_db( $this->db_onedev->last_query()); exit; } $sql = "update nat_requirementposition SET Nat_RequirementPositionIsActive = 'N', Nat_RequirementPositionLastUpdated = now() WHERE Nat_RequirementPositionNat_RequirementID = ? "; $query = $this->db_onedev->query($sql, array( $prm['id'] ) ); // echo $query; if (!$query) { $this->sys_error_db("nat_requirementposition delete"); exit; } $sql = "update nat_testrequirement SET Nat_TestRequirementIsActive = 'N', Nat_TestRequirementLastUpdated = now() WHERE Nat_TestRequirementNat_RequirementID = ? "; $query = $this->db_onedev->query($sql, array( $prm['id'] ) ); // echo $query; if (!$query) { $this->sys_error_db("nat_testrequirement delete"); exit; } $result = array ("total" => 1, "records" => array("xid" => 0)); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } public function searchposition() { $prm = $this->sys_input; $requirementid = $prm['id']; $max_rst = 12; $tot_count =0; $q = [ 'search' => '%' ]; if ($prm['search'] != '') { $q['search'] = "%{$prm['search']}%"; } // QUERY TOTAL $sql = "SELECT count(*) as total FROM nat_position LEFT JOIN nat_requirementposition ON Nat_RequirementPositionNat_PositionID = Nat_PositionID AND Nat_RequirementPositionNat_RequirementID = ? AND Nat_RequirementPositionIsActive = 'Y' WHERE ISNULL(Nat_RequirementPositionID) AND Nat_PositionIsActive = 'Y' AND Nat_PositionName like ?"; $query = $this->db_onedev->query($sql,array($requirementid,$q['search'])); if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("nat_position count",$this->db_onedev); exit; } $sql = " SELECT Nat_PositionID as id, Nat_PositionName as name FROM nat_position LEFT JOIN nat_requirementposition ON Nat_RequirementPositionNat_PositionID = Nat_PositionID AND Nat_RequirementPositionNat_RequirementID = ? AND Nat_RequirementPositionIsActive = 'Y' WHERE ISNULL(Nat_RequirementPositionID) AND Nat_PositionIsActive = 'Y' AND Nat_PositionName like ? ORDER BY Nat_PositionCode ASC "; $query = $this->db_onedev->query($sql, array($requirementid,$q['search'])); if ($query) { $rows = $query->result_array(); //echo $this->db_onedev->last_query(); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("nat_position rows",$this->db_onedev); exit; } } function searchtest(){ if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $max_rst = 12; $tot_count =0; $q = [ 'search' => '%' ]; if ($prm['search'] != '') { $q['search'] = "%{$prm['search']}%"; } // QUERY TOTAL $sql = "SELECT count(*) as total FROM nat_test WHERE Nat_TestName like ? AND Nat_TestIsActive = 'Y'"; $query = $this->db->query($sql,$q['search']); //echo $query; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("nat_test count",$this->db); exit; } $sql = " SELECT * FROM nat_test WHERE Nat_TestName like ? AND Nat_TestIsActive = 'Y' ORDER BY Nat_TestName DESC "; $query = $this->db->query($sql, array($q['search'])); if ($query) { $rows = $query->result_array(); //echo $this->db->last_query(); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("nat_test rows",$this->db); exit; } } }