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

70 lines
2.4 KiB
PHP

<?php
//ini_set('display_errors', '1');
//ini_set('display_startup_errors', '1');
//error_reporting(E_ALL);
//url
// http://riau.aplikasi.web.id/birt/frameset?__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=adhi&PID=32626&tm=1591680178071
class Reportdownload extends MY_Controller
{
function __construct() {
parent::__construct();
}
function index() {
//__report=report/one/lab/rpt_test_email.rptdesign&__format=pdf&username=adhi&PID=32626&tm=1591680178071
$gets = $this->input->get();
$order_header_id = $gets["PID"];
$report = $gets["__report"];
$report_name = $this->create_report_name($order_header_id,$report);
$this->dl_report($gets,$report_name);
}
function create_report_name($id,$rpt) {
$sql = "select T_OrderHeaderLabNumberExt, fn_get_name(T_OrderHeaderM_PatientID) name
from t_orderheader where T_OrderHeaderID = ? ";
$query = $this->db->query($sql,array($id));
$nolab = "unknown-$id";
$name = "unknown";
if ($query) {
$rows = $query->result_array();
if (count($rows) > 0 ) {
$name = str_replace(" ", "_", $rows[0]["name"]);
$nolab = $rows[0]["T_OrderHeaderLabNumberExt"];
}
}
$pos = strpos($rpt, "rpt_");
$rptname = "DEFAULT";
if ($pos > 0 ) {
$epos = strpos($rpt,"_email");
if ($epos > 0 && $epos > $pos ) {
$rptname = substr($rpt, $pos + 4 , $epos - $pos - 4 );
$rptname = strtoupper($rptname);
}
}
switch($rptname) {
case "TEST" :
$rptname = "LAB";
break;
}
return $rptname . "-" . $nolab . "-" . $name . ".pdf";
}
function dl_report($prm, $name) {
$url = "http://localhost/birt/frameset?" ;
$qry = "";
foreach($prm as $k => $v) {
if ($qry != "" ) $qry .= "&";
$qry .= $k . "=" . urlencode($v);
}
$url .= $qry ;
$data = file_get_contents($url);
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $name);
header('Content-Transfer-Encoding: binary');
header('Connection: Keep-Alive');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
//header('Content-Length: ' . $size);
echo $data;
}
}