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; } }