hostname = 'devbandungraya.aplikasi.web.id'; $this->hostname = 'bankpoint.jala.my.id'; // $this->load->library("SsPriceMou"); } function reply($resp) { echo json_encode($resp); } function reply_gz($resp, $debug = "") { if ($debug != "") { echo json_encode($resp); } else { echo gzcompress(json_encode($resp)); } } function get_param() { $body = file_get_contents("php://input"); return json_decode($body, true); } function get_param_z() { $body_z = file_get_contents("php://input"); $body = gzuncompress($body_z); return json_decode($body, true); } 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 getMember($api = "N") { $sql = "SELECT member.*, (SELECT Status_GatewayLastMemberUploaded FROM one_pointreward.status_gateway WHERE Status_GatewayID = 1) as statusLastUploaded FROM one_pointreward.member WHERE MemberIsActive = 'Y' AND MemberNIK <> '' AND (MemberLastUpdated > (SELECT Status_GatewayLastMemberUploaded FROM one_pointreward.status_gateway WHERE Status_GatewayID = 1))"; $qry = $this->db->query($sql, []); if (!$qry) { $this->sys_error_db("Error get member"); exit; } $data = $qry->result_array(); // $this->reply_gz($data); if ($api == "Y") { $this->sys_ok($data); # code... } return $data; } function getMemberV2($api = "N") { $sql = "SELECT member.*, (SELECT Status_GatewayLastMemberUploaded FROM one_pointreward.status_gateway WHERE Status_GatewayID = 1) as statusLastUploaded FROM one_pointreward.member WHERE MemberIsActive = 'Y' AND MemberNIK <> '' AND (MemberLastUpdated > (SELECT Status_GatewayLastMemberUploaded FROM one_pointreward.status_gateway WHERE Status_GatewayID = 1))"; $qry = $this->db->query($sql, []); if (!$qry) { $this->sys_error_db("Error get member"); exit; } $data = $qry->result_array(); // $this->reply_gz($data); $this->sys_ok($data); } function upload() { $url_nat = "http://" . $this->hostname . "/one-api/tools/member/Natmembergateway/"; $member = $this->getMember(); $prm = array( "status" => 'OK', "data" => $member, ); $prm_json = gzcompress(json_encode($prm)); // echo "JSON PRM \n"; // print_r($prm_json); // echo " \n"; // print_r($url_nat . "generate"); // echo " \n"; if (count($member) > 0) { # code... $resp = $this->post($url_nat . "generate", $prm_json); // echo "JSON resp \n"; // print_r($resp); $retVal = json_decode(gzuncompress($resp), true); // print_r($retVal); if ($retVal['status'] == 'OK') { $this->updateStatusUpload($retVal['data']); $this->sys_ok("Success"); } else { $this->sys_error($retVal); }; } else { $this->sys_ok("Tidak ada data update"); } } function uploadV2() { $prm = $this->sys_input; $url_nat = "http://" . $this->hostname . "/one-api/tools/member/Natmembergateway/"; $debug = $prm['debug']; $prm = array( "data" => $prm['data'], 'debug' => $debug ); // print_r($prm); // echo json_encode(array( // 'status' => 'OK', // "data" => $prm['data'], // "prm" => $prm, // 'debug' => $debug, // 'post' => $_POST, // "coba" => "coba", // )); // exit; $prm_json = gzcompress(json_encode($prm)); // echo "JSON PRM \n"; // print_r($prm_json); // echo " \n"; // print_r($url_nat . "generate"); // echo " \n"; # code... $resp = $this->post($url_nat . "generateV2", $prm_json); // echo "JSON resp \n"; // print_r($resp); $retVal = array(); if ($debug == 'Y') { $retVal = json_decode($resp, true); } else { $retVal = json_decode(gzuncompress($resp), true); } // print_r($retVal); if ($retVal['status'] == 'OK') { $this->updateStatusUpload($retVal['data']); $this->sys_ok($retVal); } else { $this->sys_error($retVal); }; } function updateStatusUpload($data) { for ($i = 0; $i < count($data); $i++) { $member = $data[$i]; $sql = "UPDATE one_pointreward.member SET MemberIsUpload = 'Y', MemberUploadDate = NOW() WHERE MemberID = ?"; $qry = $this->db->query($sql, [$member['MemberID']]); if (!$qry) { $this->sys_error_db("Error update status tabel member"); exit; } } $sql = "UPDATE one_pointreward.status_gateway SET Status_GatewayLastMemberUploaded = NOW() WHERE Status_GatewayID = 1"; $qry = $this->db->query($sql, []); if (!$qry) { $this->sys_error_db("Error update status gateway"); exit; } } function updateStatusUploadMember($data) { $member = $data; $sql = "UPDATE one_pointreward.member SET MemberIsUpload = 'Y', MemberUploadDate = NOW() WHERE MemberID = ?"; $qry = $this->db->query($sql, [$member['MemberID']]); if (!$qry) { $this->sys_error_db("Error update status tabel member"); exit; } $sql = "UPDATE one_pointreward.status_gateway SET Status_GatewayLastMemberUploaded = NOW() WHERE Status_GatewayID = 1"; $qry = $this->db->query($sql, []); if (!$qry) { $this->sys_error_db("Error update status gateway"); exit; } } function updateStatusUploadGateway($date) { $sql = "UPDATE one_pointreward.status_gateway SET Status_GatewayLastMemberUploaded = ? WHERE Status_GatewayID = 1"; $qry = $this->db->query($sql, []); if (!$qry) { $this->sys_error_db("Error update status gateway"); exit; } $this->sys_ok("Berhasil update last status upload gateway"); } function download() { $url_nat = "http://" . $this->hostname . "/one-api/tools/member/Natmembergateway/"; $sql = "SELECT Status_GatewayLastMemberDownloaded FROM one_pointreward.status_gateway WHERE Status_GatewayID = 1"; $qry = $this->db->query($sql, []); if (!$qry) { $this->sys_error_db("Error update status gateway"); exit; } $lastDownloaded = $qry->row_array()['Status_GatewayLastMemberDownloaded']; // print_r($lastDownloaded); // echo " \n"; $prm = array( "lastDownload" => $lastDownloaded ); $resp = $this->post($url_nat . "getmember", json_encode($prm)); $retVal = json_decode(gzuncompress($resp), true); // print_r($retVal); // echo " \n"; if ($retVal['status'] == 'OK') { if (count($retVal['data']) > 0) { $this->generate($retVal['data']); $this->sys_ok("success"); } else { $this->sys_ok("Tidak ada data download"); } } else { $this->sys_error($retVal); } } function downloadV2() { $url_nat = "http://" . $this->hostname . "/one-api/tools/member/Natmembergateway/"; $sql = "SELECT Status_GatewayLastMemberDownloaded FROM one_pointreward.status_gateway WHERE Status_GatewayID = 1"; $qry = $this->db->query($sql, []); if (!$qry) { $this->sys_error_db("Error update status gateway"); exit; } $lastDownloaded = $qry->row_array()['Status_GatewayLastMemberDownloaded']; // print_r($lastDownloaded); // echo " \n"; $prm = array( "lastDownload" => $lastDownloaded ); $resp = $this->post($url_nat . "getmember", json_encode($prm)); $retVal = json_decode(gzuncompress($resp), true); // print_r($retVal); // echo " \n"; if ($retVal['status'] == 'OK') { if (count($retVal['data']) > 0) { // $this->generate($retVal['data']); $this->sys_ok($retVal['data']); } else { $this->sys_ok([]); } } else { $this->sys_error($retVal); } } function generate($data) { for ($i = 0; $i < count($data); $i++) { $dataInsert = $data[$i]; $sql = "INSERT INTO one_pointreward.member_national( MemberID, MemberNumber, MemberM_BrachCode, MemberM_PatientID, MemberNIK, MemberHp, MemberTransactionType, MemberType, MemberStartDate, MemberEndDate, MemberDateCountVisit, MemberDateCountPoint, MemberIsUpload, MemberUploadDate, MemberNote, MemberApprovedStaffName, MemberApprovedDate, MemberIsActive, MemberUserID, MemberCreated, MemberLastUpdated) VALUES( '{$dataInsert['MemberID']}', '{$dataInsert['MemberNumber']}', '{$dataInsert['MemberM_BrachCode']}', '{$dataInsert['MemberM_PatientID']}', '{$dataInsert['MemberNIK']}', '{$dataInsert['MemberHp']}', '{$dataInsert['MemberTransactionType']}', '{$dataInsert['MemberType']}', '{$dataInsert['MemberStartDate']}', '{$dataInsert['MemberEndDate']}', '{$dataInsert['MemberDateCountVisit']}', '{$dataInsert['MemberDateCountPoint']}', '{$dataInsert['MemberIsUpload']}', '{$dataInsert['MemberUploadDate']}', '{$dataInsert['MemberNote']}', '{$dataInsert['MemberApprovedStaffName']}', '{$dataInsert['MemberApprovedDate']}', '{$dataInsert['MemberIsActive']}', '{$dataInsert['MemberUserID']}', '{$dataInsert['MemberCreated']}', '{$dataInsert['MemberLastUpdated']}') ON DUPLICATE KEY UPDATE MemberNIK = '{$dataInsert['MemberNIK']}', MemberTransactionType = '{$dataInsert['MemberTransactionType']}', MemberStartDate = '{$dataInsert['MemberStartDate']}', MemberEndDate= '{$dataInsert['MemberEndDate']}', MemberDateCountVisit = '{$dataInsert['MemberDateCountVisit']}', MemberDateCountPoint = '{$dataInsert['MemberDateCountPoint']}', MemberIsActive = '{$dataInsert['MemberIsActive']}'"; $qry = $this->db->query($sql, []); if (!$qry) { $this->sys_error_db("Error insert member nasional"); exit; } } $sql = "UPDATE one_pointreward.status_gateway SET Status_GatewayLastMemberDownloaded = NOW() WHERE Status_GatewayID = 1"; $qry = $this->db->query($sql, []); if (!$qry) { $this->sys_error_db("Error update status gateway"); exit; } return $data; } function generateV2() { $prm = $this->get_param(); $dataInsert = $prm['data']; $sql = "INSERT INTO one_pointreward.member_national( MemberID, MemberNumber, MemberM_BrachCode, MemberM_BrachName, MemberM_PatientID, MemberName, MemberNIK, MemberHp, MemberTransactionType, MemberType, MemberStartDate, MemberEndDate, MemberDateCountVisit, MemberDateCountPoint, MemberIsUpload, MemberUploadDate, MemberNote, MemberApprovedStaffName, MemberApprovedDate, MemberIsActive, MemberUserID, MemberCreated, MemberLastUpdated) VALUES( '{$dataInsert['MemberID']}', '{$dataInsert['MemberNumber']}', '{$dataInsert['MemberM_BrachCode']}', '{$dataInsert['MemberM_BrachName']}', '{$dataInsert['MemberM_PatientID']}', '{$dataInsert['MemberName']}', '{$dataInsert['MemberNIK']}', '{$dataInsert['MemberHp']}', '{$dataInsert['MemberTransactionType']}', '{$dataInsert['MemberType']}', '{$dataInsert['MemberStartDate']}', '{$dataInsert['MemberEndDate']}', '{$dataInsert['MemberDateCountVisit']}', '{$dataInsert['MemberDateCountPoint']}', '{$dataInsert['MemberIsUpload']}', '{$dataInsert['MemberUploadDate']}', '{$dataInsert['MemberNote']}', '{$dataInsert['MemberApprovedStaffName']}', '{$dataInsert['MemberApprovedDate']}', '{$dataInsert['MemberIsActive']}', '{$dataInsert['MemberUserID']}', '{$dataInsert['MemberCreated']}', '{$dataInsert['MemberLastUpdated']}') ON DUPLICATE KEY UPDATE MemberName = '{$dataInsert['MemberName']}', MemberNIK = '{$dataInsert['MemberNIK']}', MemberHp = '{$dataInsert['MemberHp']}', MemberType = '{$dataInsert['MemberType']}', MemberM_BrachName = '{$dataInsert['MemberM_BrachName']}', MemberTransactionType = '{$dataInsert['MemberTransactionType']}', MemberStartDate = '{$dataInsert['MemberStartDate']}', MemberEndDate= '{$dataInsert['MemberEndDate']}', MemberDateCountVisit = '{$dataInsert['MemberDateCountVisit']}', MemberDateCountPoint = '{$dataInsert['MemberDateCountPoint']}', MemberIsActive = '{$dataInsert['MemberIsActive']}'"; $qry = $this->db->query($sql, []); if (!$qry) { $this->sys_error_db("Error insert member nasional"); exit; } $this->sys_ok('Success ' . $dataInsert['MemberNumber']); } public function updateLastMemberDownloaded($date) { $formattedDate = str_replace('%20', ' ', $date); $sql = "UPDATE one_pointreward.status_gateway SET Status_GatewayLastMemberDownloaded = ? WHERE Status_GatewayID = 1"; $qry = $this->db->query($sql, [$formattedDate]); echo $formattedDate; echo $this->db->last_query(); if (!$qry) { $this->sys_error_db("Error update status gateway"); exit; } $this->sys_ok("Success update last member downloaded {$formattedDate}"); } }