Files
BE_IBL/application/controllers/aoh/Databranch.php
2026-04-15 15:23:57 +07:00

163 lines
5.8 KiB
PHP

<?php
class Databranch extends MY_Controller
{
var $db_onedev;
public function index()
{
echo "DATA BRANCH API";
}
public function __construct()
{
parent::__construct();
$this->db_onedev = $this->load->database("onedev", true);
}
public function request_hold($mouid, $billid)
{
// Kirim request hold ke regional
// select data dari f_bill_issue
// join f_bill, m_mou, m_company, m_branch (M_BranchIsActive = 'Y' & M_BranchIsDefault = 'Y')
// pastikan M_MouIsActive = 'H'
// Data yang dibutuhkan M_BranchID, M_BranchCode, M_BranchName,F_BillNo, M_MouID, M_MouName, M_MouNumber, M_CompanyID, M_CompanyNumber, M_MouLastUpdated (untuk info tanggal terholdnya)
$sql = "";
$qry = $this->onedev->query($sql, array());
$rows = array();
if($qry) {
$rows = $qry->result_array();
$param = json_encode($rows);
// insert data ke tabel log_aoh
$sql_insert = "";
//get data dari tabel conf_systems S_SystemIPAddressRegional untuk mendapatkan ip regional
$regional_ip_address = "";
$url = "http://$regional_ip_address/one-api/aoh/receive_request_hold";
$result = $this->post($url,$param);
echo "to $url \nresponse : $result\n";
$result = json_decode($result,true);
if ($result["status"] == "OK" ) {
// update log_aoh field Log_AohStatus menjadi S
return true;
} else {
// update log_aoh field Log_AohStatus menjadi E
print_r($result);
}
}else {
print_r($this->db_onedev->error());
}
}
public function receive_excute_hold()
{
// Update data hold dari regional
$prm = $this->sys_input;
// parameter array mou_id
foreach($prm as $p ) {
// Update data m_mou field M_MouIsActive menjadi H
$sql = "";
$qry = $this->db_onedev->query($sql);
}
// return array mou_id beserta statusnya
}
public function request_unhold($mouid,$billid)
{
// Kirim request unhold ke regional
// select data dari f_bill_issue
// jika F_BillIssueIsAllMou = 'Y' join f_bill_mou untuk mendapatkan mouid , jika F_BillIssueIsAllMou = 'N' langsung ambil dari F_BillIssueM_MouID
// join f_bill, m_mou, m_company
// Data yang dibutuhkan F_BillNo, M_MouID, M_MouName, M_MouNumber, M_CompanyID, M_CompanyNumber
// pastikan F_BillIsLunas = 'Y'
$sql = "";
$qry = $this->onedev->query($sql, array());
$rows = array();
if($qry) {
$rows = $qry->result_array();
//get data dari tabel conf_systems S_SystemIPAddressRegional untuk mendapatkan ip regional
$regional_ip_address = "";
$param = json_encode($rows);
$url = "http://$regional_ip_address/one-api/aoh/receive_request_unhold";
$result = $this->post($url,$param);
echo "to $url \nresponse : $result\n";
$result = json_decode($result,true);
if ($result["status"] == "OK" ) {
return true;
} else {
print_r($result);
}
}else {
print_r($this->db_onedev->error());
}
}
public function receive_chek_agrement_status()
{
// select data dari f_bill_issue
// jika F_BillIssueIsAllMou = 'Y' join f_bill_mou untuk mendapatkan mouid , jika F_BillIssueIsAllMou = 'N' langsung ambil dari F_BillIssueM_MouID
// join f_bill, m_mou, m_company
// cek apakah agreement tersebut masih ada tagihan jatuh tempo & belum lunas
// jika F_BillIssueExtendDay = 0 maka F_BillDueDate + 7 & F_BillIsLunas = 'N'
// jika F_BillIssueExtendDay <> 0 maka F_BillDueDate + F_BillIssueExtendDay & F_BillIsLunas = 'N'
$sql = "";
$qry = $this->onedev->query($sql);
$rows = array();
if($qry) {
$rows = $qry->result_array();
if (count($rows) > 0) {
// jika ada tagihan belum tuntas maka status Tidak OK
}else{
// jika tidak ada tagihan yang pending maka status OK
}
}else {
print_r($this->db_onedev->error());
}
}
public function receive_excute_unhold()
{
// Update data unhold dari regional
$prm = $this->sys_input;
// parameter array mou_id
foreach($prm as $p ) {
// Update data tabel m_mou field M_MouIsActive menjadi Y
$sql = "";
$qry = $this->db_onedev->query($sql);
}
// return array mou_id beserta statusnya
}
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_VERBOSE, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data))
);
$result = curl_exec($ch);
//echo "RST : $result ";
return $result;
}
}