Files
BE_CPONE/application/controllers/tools/regonline/Upload_price.php
2026-04-27 10:26:26 +07:00

229 lines
7.5 KiB
PHP

<?php
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);
class Upload_price extends MY_Controller
{
function __construct()
{
parent::__construct();
$this->debug = false;
}
function now()
{
return Date("Y-m-d H:i:s");
}
public function index()
{
//branch
$sql = "select * from m_branch where M_BranchIsActive='Y' and M_BranchIsDefault='Y'";
$qry = $this->db->query($sql);
if (!$qry) {
echo "{$this->now()} ERR : {$this->db->error()['message']}\n";
exit;
}
$rows = $qry->result_array();
if (count($rows) == 0) {
echo "{$this->now()} ERR : No Default Branch\n";
exit;
}
$branchID = $rows[0]["M_BranchID"];
$branchName = $rows[0]["M_BranchName"];
//Online Released MOU
$sql = "select * from m_mou where
M_MouIsReleased='Y' and
M_MouIsOnline='Y'
order by M_MouID desc";
$qry = $this->db->query($sql);
if (!$qry) {
echo "{$this->now()} ERR : {$this->db->error()['message']}\n";
exit;
}
$rows = $qry->result_array();
if (count($rows) == 0) {
echo "{$this->now()} ERR : Online Released MOU not found\n";
exit;
}
$mou = $rows[0];
$mouID = $mou["M_MouID"];
//SsPrice MOU
$sql = "select * from ss_price_mou where Ss_PriceMouM_MouID = ?";
$qry = $this->db->query($sql, array($mou["M_MouID"]));
if (!$qry) {
echo "{$this->now()} ERR : {$this->db->error()['message']}\n";
exit;
}
$rows = $qry->result_array();
if (count($rows) == 0) {
echo "{$this->now()} ERR : Ss Price MOU not found\n";
exit;
}
$ss_price_mou = $rows;
//Working
$sql = "select $branchID M_RegPacketWorkM_BranchID,
m_reg_packetwork.*, T_PacketName
from m_reg_packetwork
join t_packet on M_RegPacketWorkT_PacketID = T_PacketID
where M_RegPacketWorkIsActive = 'Y'
and M_RegPacketWorkM_MouID=?";
$qry = $this->db->query($sql, array($mouID));
if (!$qry) {
echo "{$this->now()} ERR : {$this->db->error()['message']}\n";
exit;
}
$rows = $qry->result_array();
$arr_working = array();
foreach ($rows as $r) {
$arr_working[$r["T_PacketName"]] = true;
}
$sql = "select $branchID M_RegPacketWorkM_BranchID,
m_reg_packetwork.*
from m_reg_packetwork
join t_packet on M_RegPacketWorkT_PacketID = T_PacketID
and M_RegPacketWorkM_MouID=?";
$qry = $this->db->query($sql, array($mouID));
if (!$qry) {
echo "{$this->now()} ERR : {$this->db->error()['message']}\n";
exit;
}
$reg_working = $qry->result_array();
//Sale
$sql = "select $branchID M_RegPacketSaleM_BranchID,
m_reg_packetsale.* , T_PacketName
from m_reg_packetsale
join t_packet on M_RegPacketSaleT_PacketID = T_PacketID
where M_RegPacketSaleIsActive = 'Y'
and M_RegPacketSaleM_MouID=?";
$qry = $this->db->query($sql, array($mouID));
if (!$qry) {
echo "{$this->now()} ERR : {$this->db->error()['message']}\n";
exit;
}
$rows = $qry->result_array();
$arr_sell = array();
foreach ($rows as $r) {
$arr_sell[$r["T_PacketName"]] = true;
}
$sql = "select $branchID M_RegPacketSaleM_BranchID,
m_reg_packetsale.*
from m_reg_packetsale
join t_packet on M_RegPacketSaleT_PacketID = T_PacketID
and M_RegPacketSaleM_MouID=?";
$qry = $this->db->query($sql, array($mouID));
if (!$qry) {
echo "{$this->now()} ERR : {$this->db->error()['message']}\n";
exit;
}
$reg_sell = $qry->result_array();
$s_packet = "-1";
foreach ($ss_price_mou as $idx => $r) {
$ss_price_mou[$idx]["Ss_PriceMouM_BranchID"] = $branchID;
$is_sell = "N";
$is_work = "N";
$packetName = $r["T_TestName"];
$packetID = $r["packet_id"];
if ($packetID > 0) {
if (isset($arr_working[$packetName])) $is_work = "Y";
if (isset($arr_sell[$packetName])) $is_sell = "Y";
}
$ss_price_mou[$idx]["Ss_PriceMouIsSell"] = $is_sell;
$ss_price_mou[$idx]["Ss_PriceMouIsWork"] = $is_work;
$s_packet .= "," . $packetID;
}
// echo "Packet Di di $branchName:\n";
// foreach ($ss_price_mou as $r) {
// if ($r["is_packet"] == "Y") {
// echo $r["T_TestName"];
// echo " , packet : : " . $r["packet_id"] . " , ";
// echo " [ Cito : " . $r["T_PriceIsCito"] . "] : ";
// echo " IsSell = " . $r["Ss_PriceMouIsSell"];
// echo " , IsWork = " . $r["Ss_PriceMouIsWork"] . " \n";
// }
// }
// packet
$sql = "select $branchID T_PacketM_BranchID, t_packet.*
from t_packet where T_PacketID in ( $s_packet) ";
$qry = $this->db->query($sql);
if (!$qry) {
echo "{$this->now()} ERR Packet : {$this->db->error()['message']}\n";
exit;
}
$packets = $qry->result_array();
$sql = "select $branchID T_PacketDetailM_BranchID, t_packetdetail.*
from t_packetdetail
where T_PacketDetailT_PacketID in ( $s_packet) and T_PacketDetailIsActive = 'Y'";
$qry = $this->db->query($sql);
if (!$qry) {
echo "{$this->now()} ERR Packet : {$this->db->error()['message']}\n";
exit;
}
$packet_details = $qry->result_array();
$data = array(
"ss_price_mou" => $ss_price_mou,
"packet" => $packets,
"working" => $reg_working,
"sell" => $reg_sell,
"detail" => $packet_details
);
$md5 = md5(json_encode($data));
$param = array("md5" => $md5, "data" => $data);
$z_param = gzdeflate(json_encode($param), 9);
$url = "https://regonline.pramita.co.id/one-api/tools/regonline/r_price";
$resp = $this->post($url, $z_param);
print_r($resp);
}
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, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 120);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/octet-stream',
'Content-Length: ' . strlen($data)
));
$result = curl_exec($ch);
if (curl_errno($ch) > 0) {
return array(
"status" => "ERR",
"message" => curl_error($ch)
);
}
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($httpCode != 200) {
return array(
"status" => "ERR",
"message" => "Http Response : $httpCode"
);
}
$j_result = json_decode($result, true);
if (!$j_result) {
return array(
"status" => "ERR",
"message" => "JSON invalid: $result"
);
}
return $j_result;
}
}