218 lines
8.5 KiB
Plaintext
218 lines
8.5 KiB
Plaintext
<?php
|
|
class Receive_result extends MY_Controller
|
|
{
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->db_onedev = $this->load->database("onedev", true);
|
|
$this->db_log = $this->load->database("cpone_log", true);
|
|
$this->load->helper(array('form', 'url'));
|
|
|
|
}
|
|
|
|
function getInput()
|
|
{
|
|
$data = file_get_contents("php://input");
|
|
$this->sys_input = json_decode($data, true);
|
|
}
|
|
|
|
function index()
|
|
{
|
|
$this->getInput();
|
|
$data = $this->sys_input["data"];
|
|
$user_id = 555;
|
|
|
|
|
|
$md5 = $this->sys_input["md5"];
|
|
$l_md5 = md5(json_encode($data));
|
|
if ($md5 != $l_md5) {
|
|
echo json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Md5 $md5 <> $l_md5",
|
|
]);
|
|
exit();
|
|
}
|
|
|
|
$order_id = $data["order_id"];
|
|
$lab_number = $data["lab_number"];
|
|
$results = $data["results"];
|
|
|
|
|
|
|
|
if($lab_number == null)
|
|
{
|
|
echo json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Lab number tidak ditemukan",
|
|
]);
|
|
exit;
|
|
}else{
|
|
$sql = "INSERT INTO log_receive_result(
|
|
Log_ReceiveResultT_OrderHeaderID,
|
|
Log_ReceiveResultT_OrderHeaderLabNumber,
|
|
Log_ReceiveResultData,
|
|
Log_ReceiveResultCreated
|
|
) VALUES (?, ?, ?, NOW())";
|
|
$query = $this->db_log->query($sql, [$order_id, $lab_number, json_encode($results)]);
|
|
if (!$query)
|
|
{
|
|
echo json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Gagal menyimpan log",
|
|
"query" => $this->db_log->last_query()
|
|
]);
|
|
exit;
|
|
}
|
|
|
|
$log_id = $this->db_log->insert_id();
|
|
}
|
|
|
|
$this->db_onedev->trans_begin();
|
|
if(count($results) > 0)
|
|
{
|
|
$arr_result = [];
|
|
foreach($results as $result)
|
|
{
|
|
$temp_r = $result;
|
|
$temp_r['N_OrderDetailID'] = $result['T_OrderDetailT_OrderDetailOldID'];
|
|
unset($temp_r['T_OrderDetailT_OrderDetailOldID']);
|
|
$temp_r['L_OrderDetailID'] = $result['T_OrderDetailID'];
|
|
unset($temp_r['T_OrderDetailID']);
|
|
unset($temp_r['T_OrderDetailT_OrderPromiseID']);
|
|
unset($temp_r['T_OrderDetailDetailDeleted']);
|
|
unset($temp_r['T_OrderDetailDetailDeletedUserID']);
|
|
unset($temp_r['T_OrderDetailNat_InstrumentID']);
|
|
unset($temp_r['T_OrderDetailT_OrderDetailOrderID']);
|
|
|
|
$arr_result[] = $temp_r;
|
|
}
|
|
|
|
foreach($arr_result as $result)
|
|
{
|
|
$sql = "SELECT * FROM result_t_orderdetail WHERE N_OrderDetailID = ?";
|
|
$query = $this->db_onedev->query($sql, [$result['N_OrderDetailID']]);
|
|
$check_exist = $query->result_array();
|
|
if(count($check_exist) > 0)
|
|
{
|
|
$query = $this->db_onedev->where('N_OrderDetailID', $result['N_OrderDetailID'])->update('result_t_orderdetail', $result);
|
|
if(!$query)
|
|
{
|
|
$this->db_onedev->trans_rollback();
|
|
$this->insert_error('Receive_result:updatetemp', $this->db_onedev->last_query(), json_encode($result), "Gagal menyimpan data hasil pemeriksaan");
|
|
echo json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Gagal update data hasil pemeriksaan",
|
|
"query" => $this->db_onedev->last_query()
|
|
]);
|
|
exit;
|
|
}
|
|
}else{
|
|
$query = $this->db_onedev->insert('result_t_orderdetail', $result);
|
|
if(!$query)
|
|
{
|
|
$this->db_onedev->trans_rollback();
|
|
$this->insert_error('Receive_result:inserttemp', $this->db_onedev->last_query(), json_encode($result), "Gagal menyimpan data hasil pemeriksaan");
|
|
echo json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Gagal menyimpan data hasil pemeriksaan",
|
|
"query" => $this->db_onedev->last_query()
|
|
]);
|
|
exit;
|
|
}
|
|
}
|
|
|
|
$sql = "UPDATE t_orderdetail SET
|
|
T_OrderDetailResult = ?,
|
|
T_OrderDetailResultFlag = ?,
|
|
T_OrderDetailNote = ?,
|
|
T_OrderDetailNat_UnitID = ?,
|
|
T_OrderDetailNat_UnitName = ?,
|
|
T_OrderDetailVerification = ?,
|
|
T_OrderDetailVerDate = ?,
|
|
T_OrderDetailVerUserID = 555,
|
|
T_OrderDetailValidation = ?,
|
|
T_OrderDetailValDate = ?,
|
|
T_OrderDetailValUserID = 555,
|
|
T_OrderDetailLastUpdated = NOW(),
|
|
T_OrderDetailNat_NormalValueID = ?,
|
|
T_OrderDetailNormalValueNote = ?,
|
|
T_OrderDetailNormalValueDescription = ?,
|
|
T_OrderDetailMinValue = ?,
|
|
T_OrderDetailMaxValue = ?,
|
|
T_OrderDetailMinValueInclusive = ?,
|
|
T_OrderDetailMaxValueInclusive = ?,
|
|
T_OrderDetailNat_MethodeID = ?,
|
|
T_OrderdetailNat_MethodeName = ?,
|
|
T_OrderDetailFlagResult = ?
|
|
WHERE T_OrderDetailID = ?";
|
|
$query = $this->db_onedev->query($sql, [
|
|
$result['T_OrderDetailResult'],
|
|
$result['T_OrderDetailResultFlag'],
|
|
$result['T_OrderDetailNote'],
|
|
$result['T_OrderDetailNat_UnitID'],
|
|
$result['T_OrderDetailNat_UnitName'],
|
|
$result['T_OrderDetailVerification'],
|
|
$result['T_OrderDetailVerDate'],
|
|
$result['T_OrderDetailValidation'],
|
|
$result['T_OrderDetailValDate'],
|
|
$result['T_OrderDetailNat_NormalValueID'],
|
|
$result['T_OrderDetailNormalValueNote'],
|
|
$result['T_OrderDetailNormalValueDescription'],
|
|
$result['T_OrderDetailMinValue'],
|
|
$result['T_OrderDetailMaxValue'],
|
|
$result['T_OrderDetailMinValueInclusive'],
|
|
$result['T_OrderDetailMaxValueInclusive'],
|
|
$result['T_OrderDetailNat_MethodeID'],
|
|
$result['T_OrderdetailNat_MethodeName'],
|
|
$result['T_OrderDetailFlagResult'],
|
|
$result['N_OrderDetailID']
|
|
]);
|
|
if(!$query)
|
|
{
|
|
$this->db_onedev->trans_rollback();
|
|
$this->insert_error('Receive_result:updateorderdetail', $this->db_onedev->last_query(), json_encode($result), "Gagal update data order detail");
|
|
echo json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Gagal update data order detail ".$result['T_OrderDetailT_TestName']." : ".$result['T_OrderDetailT_TestCode'],
|
|
"query" => $this->db_onedev->last_query()
|
|
]);
|
|
exit;
|
|
}
|
|
}
|
|
}else{
|
|
echo json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Tidak ada data hasil pemeriksaan",
|
|
]);
|
|
exit;
|
|
}
|
|
$this->db_onedev->trans_commit();
|
|
|
|
echo json_encode([
|
|
"status" => "OK",
|
|
"result" => [
|
|
"lab_number" => $lab_number
|
|
]
|
|
]);
|
|
exit;
|
|
}
|
|
|
|
function insert_error($fn,$query,$data,$message)
|
|
{
|
|
$sql = "INSERT INTO log_error_upload(
|
|
Log_ErrorUploadFn,
|
|
Log_ErrorUploadQuery,
|
|
Log_ErrorUploadData,
|
|
Log_ErrorUploadMessage,
|
|
Log_ErrorUploadCreated
|
|
) VALUES (?,?,?,?,NOW())";
|
|
$query = $this->db_log->query($sql, [$fn,$query,$data,$message]);
|
|
if(!$query)
|
|
{
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
}
|