421 lines
14 KiB
PHP
421 lines
14 KiB
PHP
<?php
|
|
class Sindhu extends MY_Controller
|
|
{
|
|
function __construct()
|
|
{
|
|
parent::__construct();
|
|
}
|
|
|
|
function index()
|
|
{
|
|
echo "Api: Training Playground";
|
|
}
|
|
|
|
function control_byname()
|
|
{
|
|
$param = $this->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);
|
|
}
|
|
}
|
|
?>
|