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; } // 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("','", 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)) . "'"; $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)) . "'"; $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)) . "'"; $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)) . "'"; $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)) . "'"; $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)) . "'"; $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)) . "'"; $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); } } }