786 lines
27 KiB
PHP
786 lines
27 KiB
PHP
<?php
|
|
class ReceiverOrder extends MY_Controller
|
|
{
|
|
var $db;
|
|
function __construct()
|
|
{
|
|
parent::__construct();
|
|
}
|
|
function index()
|
|
{
|
|
echo "Api: Receiver Order DEVKEDUNGDORO";
|
|
}
|
|
|
|
public function getRegionalIPAddress()
|
|
{
|
|
$sql_get = "SELECT S_SystemIPAddressRegional
|
|
FROM conf_systems
|
|
WHERE S_SystemsIsActive = 'Y'";
|
|
|
|
$qry = $this->db->query($sql_get);
|
|
if (!$qry) {
|
|
$this->db->trans_rollback();
|
|
$this->sys_error_db("get ip regional failed", $this->db);
|
|
exit;
|
|
}
|
|
|
|
$data = $qry->result_array();
|
|
return $data[0]['S_SystemIPAddressRegional'];
|
|
}
|
|
|
|
function getBranch()
|
|
{
|
|
try {
|
|
$sql = "SELECT M_BranchID, M_BranchCode FROM m_branch
|
|
WHERE M_BranchIsDefault = 'Y' AND M_BranchIsActive = 'Y'";
|
|
$qry = $this->db->query($sql, array());
|
|
if (!$qry) {
|
|
$$response = [
|
|
'status' => false,
|
|
"message" => $this->db->error()["message"],
|
|
"msg" => "error get branch data ",
|
|
'query' => $this->db->last_query()
|
|
];
|
|
return $response;
|
|
}
|
|
$result = $qry->row_array();
|
|
return [
|
|
'status' => true,
|
|
'branchId' => $result['M_BranchID'],
|
|
'branchCode' => $result['M_BranchCode']
|
|
];
|
|
} catch (Exception $exc) {
|
|
$message = $exc->getMessage();
|
|
return [
|
|
'status' => false,
|
|
'message' => $message
|
|
];
|
|
}
|
|
}
|
|
|
|
public function post($url, $data)
|
|
{
|
|
$ch = curl_init($url);
|
|
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
|
|
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
|
|
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
|
|
curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
|
"Content-Type: application/text",
|
|
"Content-Length: " . strlen($data),
|
|
]);
|
|
$result = curl_exec($ch);
|
|
if (curl_error($ch) != "") {
|
|
echo json_encode([
|
|
"status" => "ERR",
|
|
"message" => "Http Error : " . curl_error($ch),
|
|
]);
|
|
curl_close($ch);
|
|
exit();
|
|
}
|
|
curl_close($ch);
|
|
return $result;
|
|
}
|
|
|
|
function escape_arr($arr)
|
|
{
|
|
$result = [];
|
|
foreach ($arr as $v) {
|
|
// $result[] = $this->db->escape($v);
|
|
$result[] = str_replace("'", "''", $v);
|
|
}
|
|
return $result;
|
|
}
|
|
// 1. t_orderdelivery
|
|
function insert_t_orderdelivery($table, $arr_t_orderdelivery)
|
|
{
|
|
$sqlQuery = "";
|
|
|
|
// for ($i = 0; $i < count($arr_t_orderdelivery); $i++) {
|
|
|
|
$key = implode(',', array_keys($arr_t_orderdelivery));
|
|
|
|
$value = "'" . implode("','", $this->escape_arr(array_values($arr_t_orderdelivery))) . "'";
|
|
|
|
$sqlQuery = "INSERT INTO one_rujukan_eksternal.$table ($key) VALUES ($value);";
|
|
$qry = $this->db->query($sqlQuery);
|
|
if (!$qry) {
|
|
$this->db->trans_rollback();
|
|
return [
|
|
"status" => 'ERR',
|
|
"message" => $this->db->last_query() . $this->sys_error_db(
|
|
[
|
|
"insert one_rujukan_eksternal.$table | func insert_t_orderdelivery " .
|
|
$this->db->error()["message"], "debug" => $this->db->last_query()
|
|
]
|
|
)
|
|
];
|
|
}
|
|
// }
|
|
|
|
return [
|
|
"status" => "OK",
|
|
"message" => "insert one_rujukan_eksternal.$table | func insert_t_orderdelivery "
|
|
];
|
|
}
|
|
|
|
// 2. t_orderdetaildelivery
|
|
function insert_t_orderdetaildelivery($table, $arr_t_orderdetaildelivery)
|
|
{
|
|
$sqlQuery = "";
|
|
|
|
// for ($i = 0; $i < count($arr_t_orderdetaildelivery); $i++) {
|
|
|
|
$key = implode(',', array_keys($arr_t_orderdetaildelivery));
|
|
// $value = "'" . implode("','", array_values($arr_t_orderdetaildelivery)) . "'";
|
|
$value = "'" . implode("','", $this->escape_arr(array_values($arr_t_orderdetaildelivery))) . "'";
|
|
|
|
$sqlQuery = "INSERT INTO one_rujukan_eksternal.$table ($key) VALUES ($value);";
|
|
$qry = $this->db->query($sqlQuery);
|
|
if (!$qry) {
|
|
$this->db->trans_rollback();
|
|
return [
|
|
"status" => 'ERR',
|
|
"message" => $this->db->last_query() . $this->sys_error_db(
|
|
[
|
|
"insert one_rujukan_eksternal.$table | func insert_t_orderdetaildelivery " .
|
|
$this->db->error()["message"], "debug" => $this->db->last_query()
|
|
]
|
|
)
|
|
];
|
|
}
|
|
// }
|
|
|
|
return [
|
|
"status" => "OK",
|
|
"message" => "insert one_rujukan_eksternal.$table | func insert_t_orderdetaildelivery "
|
|
];
|
|
}
|
|
|
|
// 3. t_order
|
|
function insert_t_order($table, $arr_t_order)
|
|
{
|
|
$sqlQuery = "";
|
|
|
|
// for ($i = 0; $i < count($arr_t_order); $i++) {
|
|
|
|
$key = implode(',', array_keys($arr_t_order));
|
|
// $value = "'" . implode("','", array_values($arr_t_order)) . "'";
|
|
$value = "'" . implode("','", $this->escape_arr(array_values($arr_t_order))) . "'";
|
|
|
|
$sqlQuery = "INSERT INTO one_rujukan_eksternal.$table ($key) VALUES ($value);";
|
|
$qry = $this->db->query($sqlQuery);
|
|
if (!$qry) {
|
|
$this->db->trans_rollback();
|
|
return [
|
|
"status" => 'ERR',
|
|
"message" => $this->db->last_query() . $this->sys_error_db(
|
|
[
|
|
"insert one_rujukan_eksternal.$table | func insert_t_order " .
|
|
$this->db->error()["message"], "debug" => $this->db->last_query()
|
|
]
|
|
)
|
|
];
|
|
}
|
|
// }
|
|
|
|
return [
|
|
"status" => "OK",
|
|
"message" => "insert one_rujukan_eksternal.$table | func insert_t_order "
|
|
];
|
|
}
|
|
|
|
// 4. t_orderdetail
|
|
function insert_t_orderdetail($table, $arr_t_orderdetail)
|
|
{
|
|
$sqlQuery = "";
|
|
|
|
// for ($i = 0; $i < count($arr_t_order); $i++) {
|
|
|
|
$key = implode(',', array_keys($arr_t_orderdetail));
|
|
// $value = "'" . implode("','", array_values($arr_t_orderdetail)) . "'";
|
|
$value = "'" . implode("','", $this->escape_arr(array_values($arr_t_orderdetail))) . "'";
|
|
|
|
$sqlQuery = "INSERT INTO one_rujukan_eksternal.$table ($key) VALUES ($value);";
|
|
$qry = $this->db->query($sqlQuery);
|
|
if (!$qry) {
|
|
$this->db->trans_rollback();
|
|
return [
|
|
"status" => 'ERR',
|
|
"message" => $this->db->last_query() . $this->sys_error_db(
|
|
[
|
|
"insert one_rujukan_eksternal.$table | func insert_t_orderdetail " .
|
|
$this->db->error()["message"], "debug" => $this->db->last_query()
|
|
]
|
|
)
|
|
];
|
|
}
|
|
// }
|
|
|
|
return [
|
|
"status" => "OK",
|
|
"message" => "insert one_rujukan_eksternal.$table | func insert_t_orderdetail "
|
|
];
|
|
}
|
|
|
|
// 5. t_orderdetailbahan
|
|
function insert_t_orderdetailbahan($table, $arr_t_orderdetailbahan)
|
|
{
|
|
$sqlQuery = "";
|
|
|
|
// for ($i = 0; $i < count($arr_t_order); $i++) {
|
|
|
|
$key = implode(',', array_keys($arr_t_orderdetailbahan));
|
|
//$value = "'" . implode("','", array_values($arr_t_orderdetailbahan)) . "'";
|
|
$value = "'" . implode("','", $this->escape_arr(array_values($arr_t_orderdetailbahan))) . "'";
|
|
|
|
$sqlQuery = "INSERT INTO one_rujukan_eksternal.$table ($key) VALUES ($value);";
|
|
$qry = $this->db->query($sqlQuery);
|
|
if (!$qry) {
|
|
$this->db->trans_rollback();
|
|
return [
|
|
"status" => 'ERR',
|
|
"message" => $this->db->last_query() . $this->sys_error_db(
|
|
[
|
|
"insert one_rujukan_eksternal.$table | func insert_t_orderdetailbahan " .
|
|
$this->db->error()["message"], "debug" => $this->db->last_query()
|
|
]
|
|
)
|
|
];
|
|
}
|
|
// }
|
|
|
|
return [
|
|
"status" => "OK",
|
|
"message" => "insert one_rujukan_eksternal.$table | func insert_t_orderdetailbahan "
|
|
];
|
|
}
|
|
|
|
// 6. t_orderdetailsample
|
|
function insert_t_orderdetailsample($table, $arr_t_orderdetailsample)
|
|
{
|
|
$sqlQuery = "";
|
|
|
|
// for ($i = 0; $i < count($arr_t_order); $i++) {
|
|
|
|
$key = implode(',', array_keys($arr_t_orderdetailsample));
|
|
// $value = "'" . implode("','", array_values($arr_t_orderdetailsample)) . "'";
|
|
$value = "'" . implode("','", $this->escape_arr(array_values($arr_t_orderdetailsample))) . "'";
|
|
|
|
$sqlQuery = "INSERT INTO one_rujukan_eksternal.$table ($key) VALUES ($value);";
|
|
$qry = $this->db->query($sqlQuery);
|
|
if (!$qry) {
|
|
$err = [
|
|
"status" => 'ERR',
|
|
"message" => $this->db->last_query() . $this->sys_error_db(
|
|
[
|
|
"insert one_rujukan_eksternal.$table | func insert_t_orderdetailsample " .
|
|
$this->db->error()["message"], "debug" => $this->db->last_query()
|
|
]
|
|
)
|
|
];
|
|
$this->db->trans_rollback();
|
|
return $err;
|
|
}
|
|
// }
|
|
|
|
return [
|
|
"status" => "OK",
|
|
"message" => "insert one_rujukan_eksternal.$table | func insert_t_orderdetailsample "
|
|
];
|
|
}
|
|
|
|
// 7. m_patient
|
|
function insert_m_patient($table, $arr_m_patient)
|
|
{
|
|
$sqlQuery = "";
|
|
|
|
// for ($i = 0; $i < count($arr_t_order); $i++) {
|
|
|
|
$key = implode(',', array_keys($arr_m_patient));
|
|
// $value = "'" . implode("','", array_values($arr_m_patient)) . "'";
|
|
$value = "'" . implode("','", $this->escape_arr(array_values($arr_m_patient))) . "'";
|
|
|
|
$sqlQuery = "INSERT INTO one_rujukan_eksternal.$table ($key) VALUES ($value);";
|
|
$qry = $this->db->query($sqlQuery);
|
|
if (!$qry) {
|
|
$this->db->trans_rollback();
|
|
return [
|
|
"status" => 'ERR',
|
|
"message" => $this->db->last_query() . $this->sys_error_db(
|
|
[
|
|
"insert one_rujukan_eksternal.$table | func insert_m_patient " .
|
|
$this->db->error()["message"], "debug" => $this->db->last_query()
|
|
]
|
|
)
|
|
];
|
|
}
|
|
// }
|
|
|
|
return [
|
|
"status" => "OK",
|
|
"message" => "insert one_rujukan_eksternal.$table | func insert_m_patient "
|
|
];
|
|
}
|
|
// 8. t_delivery type
|
|
function insert_deliveryType($table, $arr_deliverytype)
|
|
{
|
|
$sqlQuery = "";
|
|
|
|
// for ($i = 0; $i < count($arr_t_order); $i++) {
|
|
|
|
$key = implode(',', array_keys($arr_deliverytype));
|
|
// $value = "'" . implode("','", array_values($arr_deliverytype)) . "'";
|
|
$value = "'" . implode("','", $this->escape_arr(array_values($arr_deliverytype))) . "'";
|
|
|
|
$sqlQuery = "INSERT INTO one_rujukan_eksternal.$table ($key) VALUES ($value);";
|
|
$qry = $this->db->query($sqlQuery);
|
|
if (!$qry) {
|
|
$err =
|
|
[
|
|
"status" => 'ERR',
|
|
"message" => $this->db->last_query() . $this->sys_error_db(
|
|
[
|
|
"insert one_rujukan_eksternal.$table | func insert_deliverytype " .
|
|
$this->db->error()["message"], "debug" => $this->db->last_query()
|
|
]
|
|
)
|
|
];
|
|
$this->db->trans_rollback();
|
|
return $err;
|
|
}
|
|
// }
|
|
|
|
return [
|
|
"status" => "OK",
|
|
"message" => "insert one_rujukan_eksternal.$table | func insert_deliverytype "
|
|
];
|
|
}
|
|
// 9. t_delivery type
|
|
function update_deliveryType($table, $arr_deliverytype)
|
|
{
|
|
$sqlQuery = "";
|
|
$id = $arr_deliverytype["T_DeliveryTypeID"];
|
|
|
|
// for ($i = 0; $i < count($arr_t_order); $i++) {
|
|
|
|
$key = implode(',', array_keys($arr_deliverytype));
|
|
$value = "'" . implode("','", array_values($arr_deliverytype)) . "'";
|
|
$arrKey = array_keys($arr_deliverytype);
|
|
$arrValue = array_values($arr_deliverytype);
|
|
$set = array();
|
|
for ($i = 0; $i < count($arrValue); $i++) {
|
|
if ($arrKey[$i] != "T_DeliveryTypeID") {
|
|
$ky = $arrKey[$i];
|
|
$val = $arrValue[$i];
|
|
$set[] = "$ky = '$val'";
|
|
}
|
|
}
|
|
$change = implode(',', $set);
|
|
$sqlQuery = "UPDATE one_rujukan_eksternal.$table SET $change WHERE T_DeliveryTypeID = $id;";
|
|
$qry = $this->db->query($sqlQuery);
|
|
if (!$qry) {
|
|
$err =
|
|
[
|
|
|
|
"status" => 'ERR',
|
|
"message" => $this->db->last_query() . $this->sys_error_db(
|
|
[
|
|
"update one_rujukan_eksternal.$table | func update_deliverytype " .
|
|
$this->db->error()["message"], "debug" => $this->db->last_query()
|
|
]
|
|
)
|
|
];
|
|
$this->db->trans_rollback();
|
|
return $err;
|
|
}
|
|
// }
|
|
|
|
return [
|
|
"status" => "OK",
|
|
"message" => "update one_rujukan_eksternal.$table | func update_deliverytype "
|
|
];
|
|
}
|
|
|
|
function downloadOrder($debug = "")
|
|
{
|
|
try {
|
|
$prm = $this->sys_input;
|
|
$getBranch = $this->getBranch();
|
|
if ($getBranch['status'] = false) {
|
|
$this->sys_error($getBranch['message']);
|
|
exit;
|
|
}
|
|
$limit = 20;
|
|
if (isset($prm['limit'])) {
|
|
$limit = trim($prm['limit']);
|
|
}
|
|
// $branchId = $prm['branchId'];
|
|
// $branchCode = $prm['branchCode'];
|
|
$branchId = $getBranch['branchId'];
|
|
$branchCode = $getBranch['branchCode'];
|
|
$data = array(
|
|
'branchId' => $branchId,
|
|
'branchCode' => $branchCode,
|
|
'limit' => $limit
|
|
);
|
|
// print_r($data);
|
|
// exit;
|
|
|
|
$getIPRegionalAddress = $this->getRegionalIPAddress();
|
|
// $resp = $this->post("http://$getIPRegionalAddress/one-api/app_doctor/DownloadOrderPatient/downloadSaran", json_encode($data));
|
|
|
|
$resp = $this->post("http://$getIPRegionalAddress/one-api/one_rujukan_eksternal/DownloadOrder/reg_download/", json_encode($data));
|
|
|
|
// KLU SUDAH FIX PAKE GZUNCOMPRESS
|
|
// $respUnc = gzuncompress($resp);
|
|
$respUnc = gzuncompress($resp);
|
|
$response = json_decode($resp, true);
|
|
// $response = json_decode($respUnc, true);
|
|
|
|
$dataOrder = $response['data'];
|
|
// $dataOrder = $response->data;
|
|
|
|
|
|
|
|
|
|
if ($response["status"] != 'OK') {
|
|
// if ($response->status != 'OK') {
|
|
$this->sys_error($response);
|
|
exit;
|
|
}
|
|
|
|
$this->db->trans_begin();
|
|
if (count($dataOrder) > 0) {
|
|
// print_r($dataOrder[0]['t_orderdelivery'][0]);
|
|
// exit;
|
|
|
|
// 1. t_orderdelivery
|
|
if (count($dataOrder[0]['t_orderdelivery']) > 0) {
|
|
for ($i = 0; $i < count($dataOrder[0]['t_orderdelivery']); $i++) {
|
|
$id = $dataOrder[0]['t_orderdelivery'][$i]['T_OrderDeliveryID'];
|
|
$sqlCek = "SELECT EXISTS(SELECT T_OrderDeliveryID
|
|
FROM one_rujukan_eksternal.t_orderdelivery
|
|
WHERE T_OrderDeliveryID = $id ) as result";
|
|
|
|
$qryCek = $this->db->query($sqlCek);
|
|
if (!$qryCek) {
|
|
$this->db->trans_rollback();
|
|
$this->sys_error(
|
|
$this->sys_error_db(
|
|
[
|
|
"select one_rujukan_eksternal.t_orderdelivery | func insert_t_orderdelivery " .
|
|
$this->db->error()["message"], "debug" => $this->db->last_query()
|
|
]
|
|
)
|
|
);
|
|
exit;
|
|
}
|
|
$rows_cek = $qryCek->row_array();
|
|
// klu sudah ada data dicontinue
|
|
if (intval($rows_cek['result']) == 1) {
|
|
continue;
|
|
}
|
|
|
|
$insert_t_orderdelivery = $this->insert_t_orderdelivery('t_orderdelivery', $dataOrder[0]['t_orderdelivery'][$i]);
|
|
// print_r($insert_t_orderdelivery);
|
|
if ($insert_t_orderdelivery['status'] != 'OK') {
|
|
$this->sys_error($insert_t_orderdelivery['message']);
|
|
exit;
|
|
}
|
|
}
|
|
}
|
|
|
|
// 2. t_orderdetaildelivery
|
|
if (count($dataOrder[0]['t_orderdetaildelivery']) > 0) {
|
|
for ($i = 0; $i < count($dataOrder[0]['t_orderdetaildelivery']); $i++) {
|
|
$id = $dataOrder[0]['t_orderdetaildelivery'][$i]['T_OrderDetailDeliveryID'];
|
|
// $id = $dataOrder[0]['t_orderdetaildelivery'][$i]['T_OrderDetailDeliveryT_OrderDeliveryID'];
|
|
$sqlCek = "SELECT EXISTS(SELECT T_OrderDetailDeliveryID
|
|
FROM one_rujukan_eksternal.t_orderdetaildelivery
|
|
WHERE T_OrderDetailDeliveryID = $id ) as result";
|
|
|
|
$qryCek = $this->db->query($sqlCek);
|
|
if (!$qryCek) {
|
|
$this->db->trans_rollback();
|
|
$this->sys_error(
|
|
$this->sys_error_db(
|
|
[
|
|
"select one_rujukan_eksternal.t_orderdetaildelivery | func insert_t_orderdetaildelivery " .
|
|
$this->db->error()["message"], "debug" => $this->db->last_query()
|
|
]
|
|
)
|
|
);
|
|
exit;
|
|
}
|
|
$rows_cek = $qryCek->row_array();
|
|
// klu sudah ada data dicontinue
|
|
if (intval($rows_cek['result']) == 1) {
|
|
continue;
|
|
}
|
|
|
|
$insert_t_orderdetaildelivery = $this->insert_t_orderdetaildelivery('t_orderdetaildelivery', $dataOrder[0]['t_orderdetaildelivery'][$i]);
|
|
// print_r($insert_t_orderdetaildelivery);
|
|
if ($insert_t_orderdetaildelivery['status'] != 'OK') {
|
|
$this->sys_error($insert_t_orderdetaildelivery['message']);
|
|
exit;
|
|
}
|
|
}
|
|
}
|
|
|
|
// 3. t_order
|
|
if (count($dataOrder[0]['t_order']) > 0) {
|
|
for ($i = 0; $i < count($dataOrder[0]['t_order']); $i++) {
|
|
$id = $dataOrder[0]['t_order'][$i]['T_OrderID'];
|
|
$sqlCek = "SELECT EXISTS(SELECT T_OrderID
|
|
FROM one_rujukan_eksternal.t_order
|
|
WHERE T_OrderID = $id ) as result";
|
|
|
|
$qryCek = $this->db->query($sqlCek);
|
|
if (!$qryCek) {
|
|
$this->db->trans_rollback();
|
|
$this->sys_error(
|
|
$this->sys_error_db(
|
|
[
|
|
"select one_rujukan_eksternal.t_order | func insert_t_order " .
|
|
$this->db->error()["message"], "debug" => $this->db->last_query()
|
|
]
|
|
)
|
|
);
|
|
exit;
|
|
}
|
|
$rows_cek = $qryCek->row_array();
|
|
// klu sudah ada data dicontinue
|
|
if (intval($rows_cek['result']) == 1) {
|
|
continue;
|
|
}
|
|
|
|
$insert_t_order = $this->insert_t_order('t_order', $dataOrder[0]['t_order'][$i]);
|
|
// print_r($insert_t_order);
|
|
if ($insert_t_order['status'] != 'OK') {
|
|
$this->sys_error($insert_t_order['message']);
|
|
exit;
|
|
}
|
|
}
|
|
}
|
|
|
|
// 4. t_orderdetail
|
|
if (count($dataOrder[0]['t_orderdetail']) > 0) {
|
|
for ($i = 0; $i < count($dataOrder[0]['t_orderdetail']); $i++) {
|
|
$id = $dataOrder[0]['t_orderdetail'][$i]['T_OrderDetailID'];
|
|
// $id = $dataOrder[0]['t_orderdetail'][$i]['T_OrderDetailOrderID'];
|
|
$sqlCek = "SELECT EXISTS(SELECT T_OrderDetailOrderID
|
|
FROM one_rujukan_eksternal.t_orderdetail
|
|
WHERE T_OrderDetailID = $id ) as result";
|
|
|
|
$qryCek = $this->db->query($sqlCek);
|
|
if (!$qryCek) {
|
|
$this->db->trans_rollback();
|
|
$this->sys_error(
|
|
$this->sys_error_db(
|
|
[
|
|
"select one_rujukan_eksternal.t_orderdetail | func insert_t_orderdetail " .
|
|
$this->db->error()["message"], "debug" => $this->db->last_query()
|
|
]
|
|
)
|
|
);
|
|
exit;
|
|
}
|
|
$rows_cek = $qryCek->row_array();
|
|
// klu sudah ada data dicontinue
|
|
if (intval($rows_cek['result']) == 1) {
|
|
continue;
|
|
}
|
|
|
|
$insert_t_orderdetail = $this->insert_t_orderdetail('t_orderdetail', $dataOrder[0]['t_orderdetail'][$i]);
|
|
// print_r($insert_t_orderdetail);
|
|
if ($insert_t_orderdetail['status'] != 'OK') {
|
|
$this->sys_error($insert_t_orderdetail['message']);
|
|
exit;
|
|
}
|
|
}
|
|
}
|
|
|
|
// 5. t_orderdetailbahan
|
|
if (count($dataOrder[0]['t_orderdetailbahan']) > 0) {
|
|
for ($i = 0; $i < count($dataOrder[0]['t_orderdetailbahan']); $i++) {
|
|
// $id = $dataOrder[0]['t_orderdetailbahan'][$i]['T_OrderDetailBahanT_OrderID'];
|
|
$id = $dataOrder[0]['t_orderdetailbahan'][$i]['T_OrderDetailBahanID'];
|
|
$sqlCek = "SELECT EXISTS(SELECT T_OrderDetailBahanT_OrderID
|
|
FROM one_rujukan_eksternal.t_orderdetailbahan
|
|
WHERE T_OrderDetailBahanID = $id ) as result";
|
|
|
|
$qryCek = $this->db->query($sqlCek);
|
|
if (!$qryCek) {
|
|
$this->db->trans_rollback();
|
|
$this->sys_error(
|
|
$this->sys_error_db(
|
|
[
|
|
"select one_rujukan_eksternal.t_orderdetailbahan | func insert_t_orderdetailbahan " .
|
|
$this->db->error()["message"], "debug" => $this->db->last_query()
|
|
]
|
|
)
|
|
);
|
|
exit;
|
|
}
|
|
$rows_cek = $qryCek->row_array();
|
|
// klu sudah ada data dicontinue
|
|
if (intval($rows_cek['result']) == 1) {
|
|
continue;
|
|
}
|
|
|
|
$insert_t_orderdetailbahan = $this->insert_t_orderdetailbahan('t_orderdetailbahan', $dataOrder[0]['t_orderdetailbahan'][$i]);
|
|
// print_r($insert_t_orderdetailbahan);
|
|
if ($insert_t_orderdetailbahan['status'] != 'OK') {
|
|
$this->sys_error($insert_t_orderdetailbahan['message']);
|
|
exit;
|
|
}
|
|
}
|
|
}
|
|
|
|
// 6. t_orderdetailsample
|
|
if (count($dataOrder[0]['t_orderdetailsample']) > 0) {
|
|
for ($i = 0; $i < count($dataOrder[0]['t_orderdetailsample']); $i++) {
|
|
// $id = $dataOrder[0]['t_orderdetailsample'][$i]['T_OrderDetailSampleT_OrderID'];
|
|
$id = $dataOrder[0]['t_orderdetailsample'][$i]['T_OrderDetailSampleID'];
|
|
$sqlCek = "SELECT EXISTS(SELECT T_OrderDetailSampleT_OrderID
|
|
FROM one_rujukan_eksternal.t_orderdetailsample
|
|
WHERE T_OrderDetailSampleID = $id ) as result";
|
|
|
|
$qryCek = $this->db->query($sqlCek);
|
|
if (!$qryCek) {
|
|
$this->db->trans_rollback();
|
|
$this->sys_error(
|
|
$this->sys_error_db(
|
|
[
|
|
"select one_rujukan_eksternal.t_orderdetailsample | func insert_t_orderdetailsample " .
|
|
$this->db->error()["message"], "debug" => $this->db->last_query()
|
|
]
|
|
)
|
|
);
|
|
exit;
|
|
}
|
|
$rows_cek = $qryCek->row_array();
|
|
// klu sudah ada data dicontinue
|
|
if (intval($rows_cek['result']) == 1) {
|
|
continue;
|
|
}
|
|
|
|
$insert_t_orderdetailsample = $this->insert_t_orderdetailsample('t_orderdetailsample', $dataOrder[0]['t_orderdetailsample'][$i]);
|
|
// print_r($insert_t_orderdetailsample);
|
|
if ($insert_t_orderdetailsample['status'] != 'OK') {
|
|
$this->sys_error($insert_t_orderdetailsample['message']);
|
|
exit;
|
|
}
|
|
}
|
|
}
|
|
|
|
// 7. m_patient
|
|
if (count($dataOrder[0]['m_patient']) > 0) {
|
|
for ($i = 0; $i < count($dataOrder[0]['m_patient']); $i++) {
|
|
$id = $dataOrder[0]['m_patient'][$i]['M_PatientID'];
|
|
$sqlCek = "SELECT EXISTS(SELECT M_PatientID
|
|
FROM one_rujukan_eksternal.m_patient
|
|
WHERE M_PatientID = $id ) as result";
|
|
|
|
$qryCek = $this->db->query($sqlCek);
|
|
if (!$qryCek) {
|
|
$this->db->trans_rollback();
|
|
$this->sys_error(
|
|
$this->sys_error_db(
|
|
[
|
|
"select one_rujukan_eksternal.m_patient | func insert_m_patient " .
|
|
$this->db->error()["message"], "debug" => $this->db->last_query()
|
|
]
|
|
)
|
|
);
|
|
exit;
|
|
}
|
|
$rows_cek = $qryCek->row_array();
|
|
// klu sudah ada data dicontinue
|
|
if (intval($rows_cek['result']) == 1) {
|
|
continue;
|
|
}
|
|
|
|
$insert_m_patient = $this->insert_m_patient('m_patient', $dataOrder[0]['m_patient'][$i]);
|
|
// print_r($insert_m_patient);
|
|
if ($insert_m_patient['status'] != 'OK') {
|
|
$this->sys_error($insert_m_patient['message']);
|
|
exit;
|
|
}
|
|
}
|
|
}
|
|
// o. t_deliverytype
|
|
if (count($dataOrder[0]['t_deliverytype']) > 0) {
|
|
for ($i = 0; $i < count($dataOrder[0]['t_deliverytype']); $i++) {
|
|
$id = $dataOrder[0]['t_deliverytype'][$i]['T_DeliveryTypeID'];
|
|
$sqlCek = "SELECT EXISTS(SELECT T_DeliveryTypeID
|
|
FROM one_rujukan_eksternal.t_deliverytype
|
|
WHERE T_DeliveryTypeID = $id ) as result";
|
|
|
|
$qryCek = $this->db->query($sqlCek);
|
|
if (!$qryCek) {
|
|
$this->db->trans_rollback();
|
|
$this->sys_error(
|
|
$this->sys_error_db(
|
|
[
|
|
"select one_rujukan_eksternal.t_deliverytype | func insert_t_deliverytype " .
|
|
$this->db->error()["message"], "debug" => $this->db->last_query()
|
|
]
|
|
)
|
|
);
|
|
exit;
|
|
}
|
|
$rows_cek = $qryCek->row_array();
|
|
// klu sudah ada data diupdate
|
|
if (intval($rows_cek['result']) == 1) {
|
|
$update_deliverytype = $this->update_deliveryType('t_deliverytype', $dataOrder[0]['t_deliverytype'][$i]);
|
|
if ($update_deliverytype['status'] != 'OK') {
|
|
$this->sys_error($update_deliverytype['message']);
|
|
exit;
|
|
}
|
|
} else {
|
|
$insert_deliverytype = $this->insert_deliveryType('t_deliverytype', $dataOrder[0]['t_deliverytype'][$i]);
|
|
// print_r($insert_m_patient);
|
|
if ($insert_deliverytype['status'] != 'OK') {
|
|
$this->sys_error($insert_deliverytype['message']);
|
|
exit;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// $this->db->trans_commit();s
|
|
|
|
$paramLog = array(
|
|
"branchId" => $branchId,
|
|
"data" => $dataOrder
|
|
);
|
|
|
|
// print_r(json_encode($paramLog));
|
|
// exit;
|
|
|
|
$z_param = gzcompress(json_encode($paramLog));
|
|
// $respLog = $this->post("http://$getIPRegionalAddress/one-api/one_rujukan_eksternal/DownloadOrder/reg_update_is_download", $z_param);
|
|
|
|
$respLog = $this->post("http://$getIPRegionalAddress/one-api/one_rujukan_eksternal/DownloadOrder/reg_update_is_download", $z_param);
|
|
|
|
$respLog = (array) json_decode($respLog);
|
|
// print_r($respLog);
|
|
// exit;
|
|
|
|
if ($respLog['status'] != 'OK') {
|
|
$this->sys_error($respLog);
|
|
} else {
|
|
$this->sys_ok($respLog);
|
|
$this->db->trans_commit();
|
|
}
|
|
} catch (Exception $exc) {
|
|
$message = $exc->getMessage();
|
|
$this->sys_error($message);
|
|
}
|
|
}
|
|
}
|