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

144 lines
4.9 KiB
PHP

<?php
class Api_piutang_nas extends MY_Controller
{
public function __construct()
{
parent::__construct();
}
public function sales_bill($sdate, $edate)
{
$sdate = "$sdate 00:00:00";
$edate = "$edate 23:59:59";
$sql = "SELECT
M_BranchCode ,
M_BranchName,
F_BillDueDateDay,
F_BillDueDate ,
F_BillNo,
F_BillCreated,
T_OrderHeaderID as orderid ,
T_OrderHeaderDate as tglOrder,
M_MouID,
M_CompanyID,
fn_get_name( T_OrderHeaderM_PatientID ) AS M_PatientName,
T_OrderHeaderLabNumber as Nolab,
T_OrderHeaderLabNumberExt as NolabEx,
M_CompanyNatCode as NasCode,
M_CompanyName as Pelanggan,
M_MouName as Mou,
T_OrderHeaderTotal AS Sales,
MAX(F_PaymentDate) AS F_PaymentDate,
MAX(F_PaymentNumber) AS F_PaymentNumber,
SUM(IFNULL(F_PaymentTotal, 0)) AS TotalBayar
FROM f_bill
JOIN f_bill_detail ON F_BillDetailF_BillID = F_BillID and F_BillDetailIsActive = 'Y'
JOIN t_orderheader ON F_BillDetailT_OrderHeaderID = T_OrderHeaderID
JOIN m_company
ON T_OrderHeaderM_CompanyID = M_CompanyID
AND M_CompanyIsActive = 'Y'
LEFT JOIN f_payment
ON F_PaymentT_OrderHeaderID = T_OrderHeaderID
AND F_PaymentIsActive = 'Y'
JOIN m_mou
ON T_OrderHeaderM_MouID = M_MouID
JOIN m_branch ON M_BranchIsDefault = 'Y'
WHERE T_OrderHeaderIsActive = 'Y' and F_BillIsActive = 'Y'
AND T_OrderHeaderDate BETWEEN ? AND ?
AND M_CompanyNatCode is not null
GROUP BY
T_OrderHeaderID ,F_PaymentID
order by T_OrderHeaderID ";
$qry = $this->db->query($sql, [$sdate, $edate]);
if (!$qry) {
echo json_encode(["status" => "ERR", "message" => $this->db->error()]);
exit;
}
$rows = $qry->result_array();
$data = json_encode($rows);
$svc_bill = "http://192.168.250.30/one-api/tools/r_api_piutang_nas/sales_bill";
$zdata = gzcompress($data);
$resp = $this->post($svc_bill, $zdata);
print_r($resp);
}
public function sales($sdate, $edate)
{
$sdate = "$sdate 00:00:00";
$edate = "$edate 23:59:59";
$sql = "SELECT
M_BranchCode ,
M_BranchName,
T_OrderHeaderID as orderid ,
T_OrderHeaderDate as tglOrder,
M_MouID,
M_CompanyID,
fn_get_name( T_OrderHeaderM_PatientID ) AS M_PatientName,
T_OrderHeaderLabNumber as Nolab,
T_OrderHeaderLabNumberExt as NolabEx,
M_CompanyNatCode as NasCode,
M_CompanyName as Pelanggan,
M_MouName as Mou,
T_OrderHeaderTotal AS Sales,
MAX(F_PaymentDate) AS F_PaymentDate,
MAX(F_PaymentNumber) AS F_PaymentNumber,
SUM(IFNULL(F_PaymentTotal, 0)) AS TotalBayar
FROM t_orderheader
JOIN m_company
ON T_OrderHeaderM_CompanyID = M_CompanyID
AND M_CompanyIsActive = 'Y'
LEFT JOIN f_payment
ON F_PaymentT_OrderHeaderID = T_OrderHeaderID
AND F_PaymentIsActive = 'Y'
JOIN m_mou
ON T_OrderHeaderM_MouID = M_MouID
JOIN m_branch ON M_BranchIsDefault = 'Y'
WHERE T_OrderHeaderIsActive = 'Y'
AND T_OrderHeaderDate BETWEEN ? AND ?
AND M_CompanyNatCode is not null
GROUP BY
T_OrderHeaderID
order by T_OrderHeaderID";
$qry = $this->db->query($sql, [$sdate, $edate]);
if (!$qry) {
echo json_encode(["status" => "ERR", "message" => $this->db->error()]);
exit;
}
$rows = $qry->result_array();
$data = json_encode($rows);
$svc_bill = "http://192.168.250.30/one-api/tools/r_api_piutang_nas/sales";
echo "svc : $svc_bill\n";
$zdata = gzcompress($data);
$resp = $this->post($svc_bill, $zdata);
print_r($resp);
}
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;
}
}