551 lines
25 KiB
PHP
551 lines
25 KiB
PHP
<?php
|
|
|
|
class Pramitalabku_report extends MY_Controller
|
|
{
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->url =
|
|
"https://mobile.pramita.co.id/one-api/tools/regonline/r_download/";
|
|
}
|
|
|
|
public function index()
|
|
{
|
|
$this->check();
|
|
}
|
|
function check($date = "")
|
|
{
|
|
if ($date == "") {
|
|
$date = date("Y-m-d");
|
|
}
|
|
$sql = "select T_OrderHeaderLabNumber,
|
|
T_OrderHeaderLabNumberExt, T_OrderHeaderID,
|
|
T_OnlineTxNumbering, T_OnlineTxBookingName
|
|
from t_onlineorder
|
|
join t_onlinetx on T_OnlineOrderT_OnlineTxID = T_OnlineTxID
|
|
and T_OnlineOrderIsActive = 'Y'
|
|
and T_OnlineTxIsActive = 'Y'
|
|
and T_OnlineOrderUploaded is not null
|
|
join t_orderheader
|
|
on T_OnlineOrderT_OrderHeaderID = T_OrderHeaderID
|
|
and date(T_OrderHeaderDate) = ?
|
|
";
|
|
$qry = $this->db->query($sql, [$date]);
|
|
if (!$qry) {
|
|
echo json_encode([
|
|
"status" => "ERR",
|
|
"message" => print_r($this->db->error(), true),
|
|
]);
|
|
exit();
|
|
}
|
|
$rows = $qry->result_array();
|
|
if (count($rows) == 0) {
|
|
echo $this->db->last_query();
|
|
echo "No record";
|
|
exit();
|
|
}
|
|
foreach ($rows as $idx => $r) {
|
|
$orderID = $r["T_OrderHeaderID"];
|
|
unset($rows[$idx]["T_OrderHeaderID"]);
|
|
$url = "<a href='/one-api/fix/pramitalabku_report/detail/$orderID'>Show Report </a>";
|
|
$rows[$idx]["Action"] = $url;
|
|
}
|
|
$this->print_table_style();
|
|
$this->print_table($rows, array_keys($rows[0]));
|
|
}
|
|
function show_error()
|
|
{
|
|
ini_set("display_errors", 1);
|
|
ini_set("display_startup_errors", 1);
|
|
error_reporting(E_ALL);
|
|
}
|
|
function detail($orderID)
|
|
{
|
|
$resp = $this->get_report($orderID);
|
|
$this->print_table_style();
|
|
foreach ($resp as $idx => $r) {
|
|
$url = $r["url"];
|
|
$action = substr($url, 0, 30) . "<br/>";
|
|
$action .= "<a href='$url'>View</a><br/>";
|
|
$action .= "<a href='/one-api/fix/pramitalabku_report/re_post/$orderID'>Post Ulang</a>";
|
|
$resp[$idx]["url"] = $action;
|
|
}
|
|
$this->print_table($resp, array_keys($resp[0]), "Report Lists");
|
|
}
|
|
function re_post($orderID)
|
|
{
|
|
$resp = $this->get_report($orderID);
|
|
$arr_reports = [];
|
|
foreach ($resp as $idx => $r) {
|
|
$rpt_url = "http://localhost/" . $r["url"];
|
|
$arr_reports[] = [
|
|
"name" => $r["Type"],
|
|
"branchCode" => $r["branchCode"],
|
|
"fname" => $r["fname"],
|
|
"content" => base64_encode(file_get_contents($rpt_url)),
|
|
];
|
|
}
|
|
$url = $this->url . "status";
|
|
$status = [];
|
|
$status[] = ["reports" => $arr_reports];
|
|
$param = ["status" => $status];
|
|
$z_param = gzdeflate(json_encode($param), 9);
|
|
$resp = $this->post($url, $z_param);
|
|
$this->print_table_style();
|
|
print_r($resp);
|
|
if ($resp["status"] == "OK") {
|
|
$arr = [];
|
|
$arr[] = ["message" => $resp["message"]];
|
|
$this->print_table($arr, array_keys($arr[0]), " Upload OK");
|
|
$reports = $status["report"];
|
|
$this->print_table(
|
|
$reports,
|
|
array_keys($reports[0]),
|
|
"Report file"
|
|
);
|
|
} else {
|
|
$arr = [];
|
|
$arr[] = ["message" => $resp["message"]];
|
|
$this->print_table($arr, array_keys($arr[0]), " Upload Error");
|
|
}
|
|
}
|
|
|
|
function get_report($orderID)
|
|
{
|
|
$sql = " SELECT
|
|
T_OrderHeaderID as order_id,
|
|
T_OrderHeaderLabNumberExt as order_noreg_ext,
|
|
T_OrderHeaderLabNumber as order_noreg,
|
|
CASE
|
|
WHEN Group_ResultID = 1 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
WHEN Group_ResultID = 2 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
WHEN Group_ResultID = 3 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
WHEN Group_ResultID = 4 THEN 'laporan_Rontgen'
|
|
WHEN Group_ResultID = 5 THEN 'laporan_BMD'
|
|
WHEN Group_ResultID = 6 THEN 'laporan_USG'
|
|
WHEN Group_ResultID = 7 THEN 'laporan_Elektromedik'
|
|
WHEN Group_ResultID = 8 THEN 'laporan_Pemeriksaan Fisik'
|
|
WHEN Group_ResultID = 9 THEN 'laporan_Tensi'
|
|
WHEN Group_ResultID = 10 THEN 'laporan_Tensi'
|
|
WHEN Group_ResultID = 11 THEN 'laporan_Manthoux Test'
|
|
WHEN Group_ResultID = 12 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
WHEN Group_ResultID = 13 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
WHEN Group_ResultID = 14 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_cytologi_email.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
END as url_rpt,
|
|
Group_ResultID,
|
|
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
|
|
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
|
|
'' as details,
|
|
'X' So_ResultEntrySo_TemplateOther
|
|
FROM
|
|
t_orderheader
|
|
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
|
|
T_OrderHeaderID = $orderID
|
|
AND Result_ProcessToOfficeStatus = 'S'
|
|
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
|
|
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
|
|
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
|
|
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
|
|
JOIN group_result ON Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N'
|
|
GROUP BY Result_ProcessToOfficeID
|
|
|
|
UNION
|
|
|
|
SELECT
|
|
T_OrderHeaderID as order_id,
|
|
T_OrderHeaderLabNumberExt as order_noreg_ext,
|
|
T_OrderHeaderLabNumber as order_noreg,
|
|
CASE
|
|
WHEN Group_ResultID = 1 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_email_eng.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
WHEN Group_ResultID = 2 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
WHEN Group_ResultID = 3 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
WHEN Group_ResultID = 4 THEN 'laporan_Rontgen'
|
|
WHEN Group_ResultID = 5 THEN 'laporan_BMD'
|
|
WHEN Group_ResultID = 6 THEN 'laporan_USG'
|
|
WHEN Group_ResultID = 7 THEN 'laporan_Elektromedik'
|
|
WHEN Group_ResultID = 8 THEN 'laporan_Pemeriksaan Fisik'
|
|
WHEN Group_ResultID = 9 THEN 'laporan_Tensi'
|
|
WHEN Group_ResultID = 10 THEN 'laporan_Tensi'
|
|
WHEN Group_ResultID = 11 THEN 'laporan_Manthoux Test'
|
|
WHEN Group_ResultID = 12 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
WHEN Group_ResultID = 13 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
WHEN Group_ResultID = 14 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_cytologi_email.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
END as url_rpt,
|
|
Group_ResultID,
|
|
CONCAT(if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName),'_',M_LangCode) as type_result,
|
|
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
|
|
'' as details,
|
|
'X' So_ResultEntrySo_TemplateOther
|
|
FROM t_orderheader
|
|
JOIN t_orderheaderaddon ON T_OrderHeaderID = $orderID and
|
|
T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID
|
|
JOIN m_lang ON T_OrderHeaderAddOnSecondM_LangID = M_LangID
|
|
JOIN result_processtooffice ON Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
|
|
Result_ProcessToOfficeStatus = 'S'
|
|
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
|
|
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
|
|
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
|
|
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
|
|
JOIN group_result ON Result_ProcessToOfficeGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N'
|
|
AND Group_ResultID = 1
|
|
GROUP BY Result_ProcessToOfficeID
|
|
|
|
UNION
|
|
|
|
SELECT T_OrderHeaderID as order_id,
|
|
T_OrderHeaderLabNumberExt as order_noreg_ext,
|
|
T_OrderHeaderLabNumber as order_noreg,
|
|
CASE
|
|
WHEN Group_ResultID = 1 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
WHEN Group_ResultID = 2 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
WHEN Group_ResultID = 3 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
WHEN Group_ResultID = 4 THEN T_EmailNonLabUrl
|
|
WHEN Group_ResultID = 5 THEN T_EmailNonLabUrl
|
|
WHEN Group_ResultID = 6 THEN T_EmailNonLabUrl
|
|
WHEN Group_ResultID = 7 THEN T_EmailNonLabUrl
|
|
WHEN Group_ResultID = 8 THEN T_EmailNonLabUrl
|
|
WHEN Group_ResultID = 9 THEN T_EmailNonLabUrl
|
|
WHEN Group_ResultID = 10 THEN T_EmailNonLabUrl
|
|
WHEN Group_ResultID = 11 THEN T_EmailNonLabUrl
|
|
WHEN Group_ResultID = 12 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
WHEN Group_ResultID = 13 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
WHEN Group_ResultID = 14 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_cytologi_email.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
END as url_rpt,
|
|
Group_ResultID,
|
|
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
|
|
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
|
|
'' as details,
|
|
'X' So_ResultEntrySo_TemplateOther
|
|
FROM t_orderheader
|
|
JOIN result_processtooffice ON T_OrderHeaderID = $orderID and
|
|
Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
|
|
Result_ProcessToOfficeStatus = 'S'
|
|
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
|
|
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
|
|
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
|
|
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
|
|
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y' AND Group_ResultFlagPerTest = 'N'
|
|
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = 0 AND
|
|
T_EmailNonLabType = Group_ResultName
|
|
JOIN m_emailconfig ON M_EmailConfigIsActive = 'Y'
|
|
GROUP BY T_EmailNonLabID
|
|
|
|
UNION
|
|
|
|
SELECT T_OrderHeaderID as order_id,
|
|
T_OrderHeaderLabNumberExt as order_noreg_ext,
|
|
T_OrderHeaderLabNumber as order_noreg,
|
|
CASE
|
|
WHEN Group_ResultID = 1 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
WHEN Group_ResultID = 2 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_papsmear_email.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
WHEN Group_ResultID = 3 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_fna_email.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
WHEN Group_ResultID = 12 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_lcprep_email.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
WHEN Group_ResultID = 13 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_test_mikro_email.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
WHEN Group_ResultID = 14 THEN CONCAT('/birt/frameset?__report=report/one/lab/rpt_hasil_cytologi_email.rptdesign&__format=pdf&username=','admin','&PID=',T_OrderHeaderID,'&ts=',UNIX_TIMESTAMP())
|
|
ELSE
|
|
T_EmailNonLabUrl
|
|
END as url_rpt,
|
|
Group_ResultID,
|
|
if(Group_ResultFlagPerTest = 'Y',T_TestName,Group_ResultName) as type_result,
|
|
DATE_FORMAT(T_OrderHeaderDate,'%d-%m-%Y') as order_date,
|
|
'' as details,
|
|
So_ResultEntrySo_TemplateOther
|
|
FROM t_orderheader
|
|
JOIN result_processtooffice ON T_OrderHeaderID = $orderID AND
|
|
Result_ProcessToOfficeT_OrderHeaderID = T_OrderHeaderID AND
|
|
Result_ProcessToOfficeStatus = 'S'
|
|
JOIN t_orderdelivery ON Result_ProcessToOfficeT_OrderDeliveryID = T_OrderDeliveryID AND T_OrderDeliveryIsActive = 'Y'
|
|
JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID AND T_OrderDetailIsActive = 'Y'
|
|
JOIN t_test ON T_OrderDetailT_TestID = T_TestID
|
|
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID
|
|
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'Y' AND Group_ResultFlagPerTest = 'Y'
|
|
JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y'
|
|
JOIN t_email_nonlab ON T_EmailNonLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_EmailNonLabResultEntryID = So_ResultEntryID AND
|
|
T_EmailNonLabResultEntryID <> 0
|
|
GROUP BY T_EmailNonLabID";
|
|
$query = $this->db->query($sql);
|
|
if (!$query) {
|
|
echo "<pre>";
|
|
echo "Err : " . $this->db->error()["message"] . "\n";
|
|
echo $this->db->last_query();
|
|
echo "</pre>";
|
|
exit();
|
|
}
|
|
$rows = $query->result_array();
|
|
$arr_grouping = [];
|
|
if ($rows) {
|
|
$exist_lab = "N";
|
|
foreach ($rows as $kx => $vx) {
|
|
if ($vx["type_result"] == "LAB") {
|
|
$exist_lab = "Y";
|
|
}
|
|
}
|
|
|
|
foreach ($rows as $k => $v) {
|
|
if (
|
|
$v["So_ResultEntrySo_TemplateOther"] == "UMUM" ||
|
|
$v["So_ResultEntrySo_TemplateOther"] == "UMUM_KONSUL"
|
|
) {
|
|
$x_url = $rows[$k]["url_rpt"];
|
|
$ex_url = explode("|^|", $x_url);
|
|
//print_r($ex_url);
|
|
$rows[$k]["type_result"] = "Riwayat";
|
|
$rows[$k]["url_rpt"] = $ex_url[0];
|
|
$new_group = $rows[$k];
|
|
$new_group["type_result"] = "Fisik";
|
|
$new_group["url_rpt"] = isset($ex_url[1])
|
|
? $ex_url[1]
|
|
: $ex_url[0];
|
|
array_push($rows, $new_group);
|
|
}
|
|
|
|
if (
|
|
$v["Group_ResultID"] == "13" ||
|
|
$v["Group_ResultID"] == 13
|
|
) {
|
|
$sql = "SELECT T_OrderDetailResult as result
|
|
FROM t_orderdetail
|
|
JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsResult = 'Y'
|
|
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_OrderDetailT_TestID AND Group_ResultDetailIsActive = 'Y'
|
|
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N' AND
|
|
Group_ResultName = 'Mikro'
|
|
WHERE T_OrderDetailT_OrderHeaderID = {$v["order_id"]} AND T_OrderDetailIsActive = 'Y' LIMIT 1";
|
|
$xresult = $this->db_onedev->query($sql)->row()->result;
|
|
if ($xresult != "Terlampir") {
|
|
$rows[$k]["url_rpt"] =
|
|
"/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=" .
|
|
$v["staff_name"] .
|
|
"&PID=" .
|
|
$v["order_id"] .
|
|
"&ts=" .
|
|
strtotime("now");
|
|
}
|
|
|
|
if ($xresult == "Terlampir" && $exist_lab == "N") {
|
|
$rows[$k]["type_result"] = "Lampiran Mikro";
|
|
$new_group = $rows[$k];
|
|
$new_group["type_result"] = "Mikro";
|
|
$new_group["url_rpt"] =
|
|
"/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=" .
|
|
$v["staff_name"] .
|
|
"&PID=" .
|
|
$v["order_id"] .
|
|
"&ts=" .
|
|
strtotime("now");
|
|
array_push($rows, $new_group);
|
|
}
|
|
}
|
|
}
|
|
|
|
foreach ($rows as $ki => $vi) {
|
|
$idx = $this->getgroup_idx($arr_grouping, $vi["order_id"]);
|
|
if ($idx == -1) {
|
|
$xnew = $vi;
|
|
$xnew["details"] = [
|
|
[
|
|
"type_result" => $vi["type_result"],
|
|
"url" => $vi["url_rpt"],
|
|
],
|
|
];
|
|
array_push($arr_grouping, $xnew);
|
|
} else {
|
|
$e_old = $arr_grouping[$idx]["details"];
|
|
array_push($e_old, [
|
|
"type_result" => $vi["type_result"],
|
|
"url" => $vi["url_rpt"],
|
|
]);
|
|
$arr_grouping[$idx]["details"] = $e_old;
|
|
}
|
|
}
|
|
}
|
|
$result = [];
|
|
/*
|
|
$fname =
|
|
$r["T_OnlineTxOrgID"] .
|
|
"_" .
|
|
$r["T_OnlineOrderT_OrderID"] .
|
|
"_" .
|
|
$xr["Group_ResultName"] .
|
|
"_" .
|
|
$r["T_OrderHeaderLabNumberExt"] .
|
|
".pdf";
|
|
$arr_reports[] = [
|
|
"name" => $xr["Group_ResultName"],
|
|
"branchCode" => $branchCode,
|
|
"fname" => $fname,
|
|
"content" => base64_encode(file_get_contents($rpt_url)),
|
|
];
|
|
*/
|
|
$sql = "select T_OnlineTxOrgID, T_OnlineOrderT_OrderID,
|
|
T_OrderHeaderLabNumberExt
|
|
from t_orderheader
|
|
join t_onlineorder on T_OrderHeaderID = ?
|
|
and T_OnlineOrderT_OrderHeaderID = T_OrderHeaderID
|
|
join t_onlinetx on T_OnlineOrderT_OnlineTxID = T_OnlineTxID";
|
|
$qry = $this->db->query($sql, [$orderID]);
|
|
if (!$qry) {
|
|
echo "ERR Get Online Tx : " .
|
|
$this->db->error()["message"] .
|
|
"\n" .
|
|
$this->db->last_query();
|
|
exit();
|
|
}
|
|
$rows = $qry->result_array();
|
|
if (count($rows) == 0) {
|
|
echo "Err No Online Tx";
|
|
exit();
|
|
}
|
|
$r = $rows[0];
|
|
$T_OnlineTxOrgID = $r["T_OnlineTxOrgID"];
|
|
$T_OnlineOrderT_OrderID = $r["T_OnlineOrderT_OrderID"];
|
|
$T_OrderHeaderLabNumberExt = $r["T_OrderHeaderLabNumberExt"];
|
|
|
|
$sql =
|
|
"select M_BranchCode from m_branch where M_BranchIsDefault = 'Y'";
|
|
$qry = $this->db->query($sql);
|
|
if (!$qry) {
|
|
echo "ERR Get Branch Code : " .
|
|
$this->db->error()["message"] .
|
|
"\n" .
|
|
$this->db->last_query();
|
|
exit();
|
|
}
|
|
$rows = $qry->result_array();
|
|
if (count($rows) == 0) {
|
|
echo "Err No Default Branch";
|
|
exit();
|
|
}
|
|
$branchCode = $rows[0]["M_BranchCode"];
|
|
|
|
foreach ($arr_grouping as $r) {
|
|
$arr = [];
|
|
$arr["Noreg"] = $r["order_noreg"];
|
|
$arr["T_OrderHeaderID"] = $r["order_id"];
|
|
if (isset($r["details"]) && count($r["details"]) > 0) {
|
|
foreach ($r["details"] as $rd) {
|
|
$fname =
|
|
$T_OnlineTxOrgID .
|
|
"_" .
|
|
$T_OnlineOrderT_OrderID .
|
|
"_" .
|
|
$rd["type_result"] .
|
|
"_" .
|
|
$T_OrderHeaderLabNumberExt .
|
|
".pdf";
|
|
$arr["Type"] = $rd["type_result"];
|
|
$arr["url"] = $rd["url"];
|
|
$arr["branchCode"] = $branchCode;
|
|
$arr["fname"] = $fname;
|
|
$result[] = $arr;
|
|
}
|
|
} else {
|
|
$fname =
|
|
$T_OnlineTxOrgID .
|
|
"_" .
|
|
$T_OnlineOrderT_OrderID .
|
|
"_" .
|
|
$r["type_result"] .
|
|
"_" .
|
|
$T_OrderHeaderLabNumberExt .
|
|
".pdf";
|
|
|
|
$arr["Type"] = $r["type_result"];
|
|
$arr["url"] = $r["url_rpt"];
|
|
$arr["branchCode"] = $branchCode;
|
|
$arr["fname"] = $fname;
|
|
$result[] = $arr;
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
function getgroup_idx($groups, $orderid)
|
|
{
|
|
$idx = -1;
|
|
foreach ($groups as $k => $v) {
|
|
if ($v["order_id"] == $orderid) {
|
|
$idx = $k;
|
|
}
|
|
}
|
|
return $idx;
|
|
}
|
|
|
|
public function print_table_style()
|
|
{
|
|
echo "
|
|
<style>
|
|
th, td {
|
|
padding: 15px;
|
|
text-align: left;
|
|
}
|
|
tr:nth-child(even) {background-color: #f2f2f2;}
|
|
table {
|
|
border: solid 1px ;
|
|
min-width:600px;
|
|
}
|
|
</style>
|
|
";
|
|
}
|
|
public function print_table($rows, $keys, $title = false)
|
|
{
|
|
echo "<table>";
|
|
if ($title) {
|
|
$col_span = count($keys);
|
|
echo "<tr>";
|
|
echo "<th colspan=$col_span>$title</th>";
|
|
echo "</tr>";
|
|
}
|
|
echo "<tr>";
|
|
foreach ($keys as $k) {
|
|
echo "<td>$k</td>";
|
|
}
|
|
echo "</tr>\n";
|
|
foreach ($rows as $r) {
|
|
echo "<tr>";
|
|
foreach ($keys as $k) {
|
|
echo "<td>" . $r[$k] . "</td>";
|
|
}
|
|
echo "</tr>";
|
|
}
|
|
echo "</table>";
|
|
}
|
|
|
|
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, 5);
|
|
curl_setopt($ch, CURLOPT_TIMEOUT, 120);
|
|
curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
|
"Content-Type: application/json",
|
|
"Content-Length: " . strlen($data),
|
|
]);
|
|
$z_result = curl_exec($ch);
|
|
if (curl_errno($ch) > 0) {
|
|
return [
|
|
"status" => "ERR",
|
|
"message" => curl_error($ch),
|
|
];
|
|
}
|
|
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
|
if ($httpCode != 200) {
|
|
return [
|
|
"status" => "ERR",
|
|
"message" => "Http Response : $httpCode | $z_result",
|
|
];
|
|
}
|
|
|
|
$result = gzinflate($z_result);
|
|
$j_result = json_decode($result, true);
|
|
if (!$j_result) {
|
|
return [
|
|
"status" => "ERR",
|
|
"message" => "JSON invalid: $z_result",
|
|
];
|
|
}
|
|
return $j_result;
|
|
}
|
|
}
|