sys_input; // $page = 0; $page = $param['page']; // check input parameter // mandatory $control = trim($param['control']); $control = "%" . $control . "%"; // tidak mandatory $instrument = ""; if (isset($param['instrument'])) { $instrument = trim($param["instrument"]); if ($instrument != "") { $instrument = '%' . $param['instrument'] . '%'; } } $test = ""; if (isset($param['test'])) { $test = trim($param["test"]); if ($test != "") { $test = '%' . $param['test'] . '%'; } } // hitung start_offset $ROW_PER_PAGE = 10; $start_offset = 0; if (isset($param["page"])) { if (is_numeric($param["page"]) && $param['page'] > 0) { $start_offset = ($page - 1) * $ROW_PER_PAGE; } } // query if($instrument == "" && $test == ""){ $sql = "select distinct Nat_QcControlID, Nat_QcControlName, Nat_QcControlLotNumber, Nat_QcControlExpired, Nat_QcLevelID, Nat_QcLevelName from nat_qc_control join nat_qc_level ON Nat_QcControlNat_QcLevelID = Nat_QcLevelID AND Nat_QcControlIsActive = 'Y' AND Nat_QcLevelIsActive = 'Y' AND Nat_QcControlName like ? limit 10 offset ?"; $qry = $this->db->query($sql, [$control, $start_offset]); $last_query = $this->db->last_query(); $sql_total_filter = "select count(distinct Nat_QcControlID, Nat_QcControlName, Nat_QcControlLotNumber, Nat_QcControlExpired, Nat_QcLevelID, Nat_QcLevelName) as total_filter from nat_qc_control join nat_qc_level ON Nat_QcControlNat_QcLevelID = Nat_QcLevelID AND Nat_QcControlIsActive = 'Y' AND Nat_QcLevelIsActive = 'Y' AND Nat_QcControlName like ?"; $qry_total_filter = $this->db->query($sql_total_filter, [$control]); $last_query_total_filter = $this->db->last_query(); } else if($instrument !== "" && $test == ""){ // instrument terisi dan tes kosong $sql = "select distinct Nat_QcControlID, Nat_QcControlName, Nat_QcControlLotNumber, Nat_QcControlExpired, Nat_QcLevelID, Nat_QcLevelName from nat_qc_control join nat_qc_level ON Nat_QcControlNat_QcLevelID = Nat_QcLevelID AND Nat_QcControlIsActive = 'Y' AND Nat_QcLevelIsActive = 'Y' AND Nat_QcControlName like ? join nat_qc ON Nat_QcControlID = Nat_QcNat_QcControlID AND Nat_QcIsActive = 'Y' join nat_instrument ON Nat_QcNat_InstrumentID = Nat_InstrumentID AND Nat_InstrumentIsActive = 'Y' AND Nat_InstrumentName like ? limit 10 offset ?"; $qry = $this->db->query($sql, [$control, $instrument, $start_offset]); $last_query = $this->db->last_query(); $sql_total_filter = "select count(distinct Nat_QcControlID, Nat_QcControlName, Nat_QcControlLotNumber, Nat_QcControlExpired, Nat_QcLevelID, Nat_QcLevelName) as total_filter from nat_qc_control join nat_qc_level ON Nat_QcControlNat_QcLevelID = Nat_QcLevelID AND Nat_QcControlIsActive = 'Y' AND Nat_QcLevelIsActive = 'Y' AND Nat_QcControlName like ? join nat_qc ON Nat_QcControlID = Nat_QcNat_QcControlID AND Nat_QcIsActive = 'Y' join nat_instrument ON Nat_QcNat_InstrumentID = Nat_InstrumentID AND Nat_InstrumentIsActive = 'Y' AND Nat_InstrumentName like ?"; $qry_total_filter = $this->db->query($sql_total_filter, [$control, $instrument]); $last_query_total_filter = $this->db->last_query(); } else if($instrument == "" && $test !== ""){ // instrument kosong dan tes terisi $sql = "select distinct Nat_QcControlID, Nat_QcControlName, Nat_QcControlLotNumber, Nat_QcControlExpired, Nat_QcLevelID, Nat_QcLevelName from nat_qc_control join nat_qc_level ON Nat_QcControlNat_QcLevelID = Nat_QcLevelID AND Nat_QcControlIsActive = 'Y' AND Nat_QcLevelIsActive = 'Y' AND Nat_QcControlName like ? join nat_qc ON Nat_QcControlID = Nat_QcNat_QcControlID AND Nat_QcIsActive = 'Y' join nat_test ON Nat_QcNat_TestID = Nat_TestID AND Nat_TestIsActive = 'Y' AND Nat_TestName like ? limit 10 offset ?"; $qry = $this->db->query($sql, [$control, $test, $start_offset]); $last_query = $this->db->last_query(); $sql_total_filter = "select count(distinct Nat_QcControlID, Nat_QcControlName, Nat_QcControlLotNumber, Nat_QcControlExpired, Nat_QcLevelID, Nat_QcLevelName) as total_filter from nat_qc_control join nat_qc_level ON Nat_QcControlNat_QcLevelID = Nat_QcLevelID AND Nat_QcControlIsActive = 'Y' AND Nat_QcLevelIsActive = 'Y' AND Nat_QcControlName like ? join nat_qc ON Nat_QcControlID = Nat_QcNat_QcControlID AND Nat_QcIsActive = 'Y' join nat_test ON Nat_QcNat_TestID = Nat_TestID AND Nat_TestIsActive = 'Y' AND Nat_TestName like ?"; $qry_total_filter = $this->db->query($sql_total_filter, [$control, $test]); $last_query_total_filter = $this->db->last_query(); } else{ // instrument dan test terisi $sql = "select distinct Nat_QcControlID, Nat_QcControlName, Nat_QcControlLotNumber, Nat_QcControlExpired, Nat_QcLevelID, Nat_QcLevelName from nat_qc_control join nat_qc_level ON Nat_QcControlNat_QcLevelID = Nat_QcLevelID AND Nat_QcControlIsActive = 'Y' AND Nat_QcLevelIsActive = 'Y' AND Nat_QcControlName like ? join nat_qc ON Nat_QcControlID = Nat_QcNat_QcControlID AND Nat_QcIsActive = 'Y' join nat_instrument ON Nat_QcNat_InstrumentID = Nat_InstrumentID AND Nat_InstrumentIsActive = 'Y' AND Nat_InstrumentName like ? join nat_test ON Nat_QcNat_TestID = Nat_TestID AND Nat_TestIsActive = 'Y' AND Nat_TestName like ? limit 10 offset ?"; $qry = $this->db->query($sql, [$control, $instrument, $test, $start_offset]); $last_query = $this->db->last_query(); $sql_total_filter = "select count(distinct Nat_QcControlID, Nat_QcControlName, Nat_QcControlLotNumber, Nat_QcControlExpired, Nat_QcLevelID, Nat_QcLevelName) as total_filter from nat_qc_control join nat_qc_level ON Nat_QcControlNat_QcLevelID = Nat_QcLevelID AND Nat_QcControlIsActive = 'Y' AND Nat_QcLevelIsActive = 'Y' AND Nat_QcControlName like ? join nat_qc ON Nat_QcControlID = Nat_QcNat_QcControlID AND Nat_QcIsActive = 'Y' join nat_instrument ON Nat_QcNat_InstrumentID = Nat_InstrumentID AND Nat_InstrumentIsActive = 'Y' AND Nat_InstrumentName like ? join nat_test ON Nat_QcNat_TestID = Nat_TestID AND Nat_TestIsActive = 'Y' AND Nat_TestName like ?"; $qry_total_filter = $this->db->query($sql_total_filter, [$control, $instrument, $test]); $last_query_total_filter = $this->db->last_query(); } if (!$qry) { echo json_encode([ "status" => "ERR", "message" => $this->db->error()["message"], "sql" => $last_query ]); exit; } if (!$qry_total_filter) { echo json_encode([ "status" => "ERR", "message" => $this->db->error()["message"], "sql" => $last_query_total_filter ]); exit; } $rows = $qry->result_array(); $rows_total_filter = $qry_total_filter->result_array(); $total = ceil($rows_total_filter[0]["total_filter"] / $ROW_PER_PAGE); echo json_encode([ "status" => "OK", // "rows" => $rows, "records" => $rows, "total_filter" => $rows_total_filter[0]["total_filter"], "total" => $total, "sql" => $this->db->last_query() ]); } function control_byid() { $param = $this->sys_input; $page = $param['page']; // check input parameter // mandatory $id = 0; if (isset($param['id'])) { if(is_numeric($param['id'])){ $id = $param['id']; } } // hitung start_offset $ROW_PER_PAGE = 10; $start_offset = 0; if (isset($param["page"])) { if (is_numeric($param["page"]) && $param['page'] > 0) { $start_offset = ($page - 1) * $ROW_PER_PAGE; } } $sql = "select distinct Nat_QcControlID, Nat_QcControlName, Nat_QcControlLotNumber, Nat_QcControlExpired, Nat_QcLevelID, Nat_QcLevelName, Nat_InstrumentID, Nat_InstrumentName, Nat_TestID, Nat_TestName from nat_qc_control join nat_qc_level ON Nat_QcControlNat_QcLevelID = Nat_QcLevelID AND Nat_QcControlIsActive = 'Y' AND Nat_QcLevelIsActive = 'Y' join nat_qc ON Nat_QcControlID = Nat_QcNat_QcControlID AND Nat_QcIsActive = 'Y' join nat_instrument ON Nat_QcNat_InstrumentID = Nat_InstrumentID AND Nat_InstrumentIsActive = 'Y' AND Nat_InstrumentID = ? join nat_test ON Nat_QcNat_TestID = Nat_TestID AND Nat_TestIsActive = 'Y' limit 10 offset ?"; $qry = $this->db->query($sql, [$id, $start_offset]); $last_query = $this->db->last_query(); $sql_total_filter = "select count(distinct Nat_QcControlID, Nat_QcControlName, Nat_QcControlLotNumber, Nat_QcControlExpired, Nat_QcLevelID, Nat_QcLevelName, Nat_InstrumentID, Nat_InstrumentName, Nat_TestID, Nat_TestName) as total_filter from nat_qc_control join nat_qc_level ON Nat_QcControlNat_QcLevelID = Nat_QcLevelID AND Nat_QcControlIsActive = 'Y' AND Nat_QcLevelIsActive = 'Y' join nat_qc ON Nat_QcControlID = Nat_QcNat_QcControlID AND Nat_QcIsActive = 'Y' join nat_instrument ON Nat_QcNat_InstrumentID = Nat_InstrumentID AND Nat_InstrumentIsActive = 'Y' AND Nat_InstrumentID = ? join nat_test ON Nat_QcNat_TestID = Nat_TestID AND Nat_TestIsActive = 'Y'"; $qry_total_filter = $this->db->query($sql_total_filter, [$id]); $last_query_total_filter = $this->db->last_query(); if (!$qry) { echo json_encode([ "status" => "ERR", "message" => $this->db->error()["message"], "sql" => $last_query ]); exit; } if (!$qry_total_filter) { echo json_encode([ "status" => "ERR", "message" => $this->db->error()["message"], "sql" => $last_query_total_filter ]); exit; } $rows = $qry->result_array(); $rows_total_filter = $qry_total_filter->result_array(); $total = ceil($rows_total_filter[0]["total_filter"] / $ROW_PER_PAGE); echo json_encode([ "status" => "OK", // "rows" => $rows, "records" => $rows, "total_filter" => $rows_total_filter[0]["total_filter"], "total" => $total, "sql" => $this->db->last_query() ]); } function post_coba_birt_request() { file_put_contents("/xtmp/sindhulog",print_r($_POST,true)."\n",FILE_APPEND); file_put_contents("/xtmp/sindhulog",print_r($_GET,true)."\n",FILE_APPEND); file_put_contents("/xtmp/sindhulog",print_r($_REQUEST,true)."\n",FILE_APPEND); // $orderID = $_SERVER['HTTP_ORDERID']; // $orderID = $_REQUEST['orderID']; $orderID = isset($_REQUEST['orderID']) ? $_REQUEST['orderID'] : 'Order ID not available'; $sql = "select T_OrderHeaderID from t_orderheader WHERE T_OrderHeaderID = ? limit 0, 1"; $qry = $this->db->query($sql, [$orderID]); $data = $qry->result_array(); if(!$qry){ echo json_encode([ "status" => "ERR", "message" => $this->db->error()["message"], ]); exit; } echo json_encode($data); } } ?>