486 lines
17 KiB
PHP
486 lines
17 KiB
PHP
<?php
|
|
class Membergateway extends MY_Controller
|
|
{
|
|
var $db_onedev;
|
|
var $db;
|
|
var $load;
|
|
var $sspricemou;
|
|
var $hostname;
|
|
|
|
public function index()
|
|
{
|
|
echo "BRANCH MEMBER";
|
|
}
|
|
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
// $this->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}");
|
|
}
|
|
}
|