431 lines
17 KiB
PHP
431 lines
17 KiB
PHP
<?php
|
|
class Requestupload extends MY_Controller
|
|
{
|
|
var $db_onedev;
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->db_onedev = $this->load->database("onedev", true);
|
|
|
|
|
|
}
|
|
|
|
public function index()
|
|
{
|
|
echo "request upload";
|
|
}
|
|
|
|
|
|
|
|
public function search()
|
|
{
|
|
try {
|
|
# cek token valid
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
|
|
$prm = $this->sys_input;
|
|
|
|
$search = $prm["search"];
|
|
// if (isset($prm['search'])) {
|
|
// $search = trim($prm["search"]);
|
|
// if ($search != "") {
|
|
// $search = '%' . $prm['search'] . '%';
|
|
// }else{
|
|
// $search = '%%';
|
|
// }
|
|
// }
|
|
|
|
|
|
$where = "";
|
|
|
|
$startdate = $prm['startdate'];
|
|
$enddate = $prm['enddate'];
|
|
|
|
// $str_search_T_OrderHeaderDate = "";
|
|
// $str_search_M_PatientName = "";
|
|
// $str_search_T_OrderHeaderLabNumber = "";
|
|
// $str_search_T_OrderHeaderLabNumberExt = "";
|
|
|
|
$filter_date = " DATE(T_OrderHeaderDate) BETWEEN '{$startdate}' AND '{$enddate}'";
|
|
if($startdate != '' && $enddate !=''){
|
|
$where = "$filter_date ";
|
|
// $str_search_T_OrderHeaderDate = " AND $filter_date";
|
|
}
|
|
|
|
if($search != ''){
|
|
$where .= " AND ( M_PatientName LIKE '%{$search}%' OR T_OrderHeaderLabNumber LIKE '%{$search}%' OR T_OrderHeaderLabNumberExt LIKE '%{$search}%' ) ";
|
|
// $str_search_M_PatientName = "AND M_PatientName LIKE '%{$search}%' ";
|
|
// $str_search_T_OrderHeaderLabNumber = "OR T_OrderHeaderLabNumber LIKE '%{$search}%' ";
|
|
// $str_search_T_OrderHeaderLabNumberExt = "OR T_OrderHeaderLabNumberExt LIKE '%{$search}%' ";
|
|
}
|
|
|
|
|
|
$sortBy = $prm['sortBy'];
|
|
// $sortStatus = $prm['sortStatus'];
|
|
$q_sort = '';
|
|
$limit = '';
|
|
if($sortBy){
|
|
$q_sort = "ORDER BY ".$sortBy;
|
|
}
|
|
if($all == 'N'){
|
|
$limit = ' LIMIT 10';
|
|
}
|
|
$number_limit = 20;
|
|
// $number_offset = ($prm['current_page'] - 1) * $number_limit ;
|
|
|
|
$number_offset = 0;
|
|
if($prm['current_page'] > 0) {
|
|
$number_offset = ($prm['current_page'] - 1) * $number_limit;
|
|
}
|
|
|
|
$sql_filter = "select count(*) as total
|
|
from (
|
|
select
|
|
T_OrderHeaderLabNumber as no_reg,
|
|
concat(M_TitleName, ' ',
|
|
ifnull(M_PatientPrefix,' '),
|
|
M_PatientName,
|
|
ifnull(M_PatientSuffix,'')
|
|
)
|
|
as nama_pasien,
|
|
M_CompanyName as nama_company,
|
|
M_MouName as nama_mou,
|
|
T_OrderHeaderTotal as total,
|
|
if(Mitra_UploadIsUploaded is NULL,'N',Mitra_UploadIsUploaded) as RequestIsUploaded
|
|
from t_orderheader
|
|
join one_mitra.t_order
|
|
ON T_OrderT_OrderHeaderID = T_OrderHeaderID
|
|
AND T_OrderIsActive = 'Y'
|
|
AND T_OrderHeaderIsActive = 'Y'
|
|
left join mitra_upload
|
|
ON T_OrderHeaderID = Mitra_UploadT_OrderHeaderID
|
|
AND Mitra_UploadIsActive = 'Y'
|
|
AND Mitra_UploadIsUploaded = 'N'
|
|
join m_company
|
|
ON M_CompanyID = T_OrderHeaderM_CompanyID
|
|
join m_mou
|
|
ON T_OrderM_MouID = M_MouID
|
|
AND M_MouIsActive = 'Y'
|
|
AND M_MouIsBill = 'Y'
|
|
join m_patient
|
|
ON T_OrderHeaderM_PatientID = M_PatientID
|
|
join m_title
|
|
on M_PatientM_TitleID = M_TitleID
|
|
JOIN result_processtooffice
|
|
ON T_OrderHeaderID = Result_ProcessToOfficeT_OrderHeaderID
|
|
AND Result_ProcessToOfficeIsActive = 'Y'
|
|
where $where
|
|
group by T_OrderHeaderID
|
|
UNION
|
|
select
|
|
T_OrderHeaderLabNumber as no_reg,
|
|
concat(M_TitleName, ' ',
|
|
ifnull(M_PatientPrefix,' '),
|
|
M_PatientName,
|
|
ifnull(M_PatientSuffix,'')
|
|
)
|
|
as nama_pasien,
|
|
M_CompanyName as nama_company,
|
|
M_MouName as nama_mou,
|
|
T_OrderHeaderTotal as total,
|
|
if(Mitra_UploadIsUploaded is NULL,'N',Mitra_UploadIsUploaded) as RequestIsUploaded
|
|
from t_orderheader
|
|
join one_mitra.t_order
|
|
ON T_OrderT_OrderHeaderID = T_OrderHeaderID
|
|
AND T_OrderIsActive = 'Y'
|
|
AND T_OrderHeaderIsActive = 'Y'
|
|
left join mitra_upload
|
|
ON T_OrderHeaderID = Mitra_UploadT_OrderHeaderID
|
|
AND Mitra_UploadIsActive = 'Y'
|
|
AND Mitra_UploadIsUploaded = 'N'
|
|
join m_company
|
|
ON M_CompanyID = T_OrderHeaderM_CompanyID
|
|
join m_mou
|
|
ON T_OrderM_MouID = M_MouID
|
|
AND M_MouIsActive = 'Y'
|
|
join m_patient
|
|
ON T_OrderHeaderM_PatientID = M_PatientID
|
|
join m_title
|
|
on M_PatientM_TitleID = M_TitleID
|
|
JOIN result_processtooffice
|
|
ON T_OrderHeaderID = Result_ProcessToOfficeT_OrderHeaderID
|
|
AND Result_ProcessToOfficeIsActive = 'Y'
|
|
join f_payment
|
|
ON t_orderheader.T_OrderHeaderID = F_PaymentT_OrderHeaderID
|
|
AND F_PaymentIsActive = 'Y'
|
|
join f_payment_orderheader
|
|
ON F_PaymentID = F_Payment_OrderHeaderF_PaymentID
|
|
AND F_Payment_OrderHeaderIsLunas = 'Y'
|
|
where $where
|
|
group by T_OrderHeaderID
|
|
) x";
|
|
// $sql_param = array($search);
|
|
// $total = $this->db_onedev->query($sql,$sql_param)->row()->total;
|
|
|
|
$query_filter = $this->db_onedev->query($sql_filter);
|
|
$tot_count = 0;
|
|
$tot_page = 0;
|
|
if ($query_filter) {
|
|
$tot_count = $query_filter->result_array()[0]["total"];
|
|
$tot_page = ceil($tot_count/$number_limit);
|
|
} else {
|
|
$this->db_onedev->trans_rollback();
|
|
$this->sys_error_db("mitra_upload count", $this->db);
|
|
exit;
|
|
}
|
|
|
|
|
|
$sql_data = "
|
|
select
|
|
ifnull(Mitra_UploadIsUploaded,'x') as Mitra_UploadIsUploaded,
|
|
if(Mitra_UploadLastUpdated is null,'', DATE_FORMAT(Mitra_UploadLastUpdated,'%d-%m-%Y %H:%i'))
|
|
as Mitra_UploadLastUpdated,
|
|
T_OrderHeaderID,
|
|
T_OrderID,
|
|
T_OrderHeaderLabNumber as no_reg,
|
|
concat(M_TitleName, ' ',
|
|
ifnull(M_PatientPrefix,' '),
|
|
M_PatientName,
|
|
ifnull(M_PatientSuffix,'')
|
|
)
|
|
as nama_pasien,
|
|
M_CompanyName as nama_company,
|
|
M_MouName as nama_mou,
|
|
T_OrderHeaderTotal as total,
|
|
'' as test
|
|
from t_orderheader
|
|
join one_mitra.t_order
|
|
ON T_OrderT_OrderHeaderID = T_OrderHeaderID
|
|
AND T_OrderIsActive = 'Y'
|
|
AND T_OrderHeaderIsActive = 'Y'
|
|
left join mitra_upload
|
|
ON T_OrderHeaderID = Mitra_UploadT_OrderHeaderID
|
|
AND Mitra_UploadIsActive = 'Y'
|
|
AND Mitra_UploadIsUploaded = 'N'
|
|
join m_company
|
|
ON M_CompanyID = T_OrderHeaderM_CompanyID
|
|
join m_mou
|
|
ON T_OrderM_MouID = M_MouID
|
|
AND M_MouIsActive = 'Y'
|
|
AND M_MouIsBill = 'Y'
|
|
join m_patient
|
|
ON T_OrderHeaderM_PatientID = M_PatientID
|
|
join m_title
|
|
on M_PatientM_TitleID = M_TitleID
|
|
JOIN result_processtooffice
|
|
ON T_OrderHeaderID = Result_ProcessToOfficeT_OrderHeaderID
|
|
AND Result_ProcessToOfficeIsActive = 'Y'
|
|
where $where
|
|
group by T_OrderHeaderID
|
|
UNION
|
|
select
|
|
ifnull(Mitra_UploadIsUploaded,'x') as Mitra_UploadIsUploaded,
|
|
if(Mitra_UploadLastUpdated is null,'', DATE_FORMAT(Mitra_UploadLastUpdated,'%d-%m-%Y %H:%i'))
|
|
as Mitra_UploadLastUpdated,
|
|
T_OrderHeaderID,
|
|
T_OrderID,
|
|
T_OrderHeaderLabNumber as no_reg,
|
|
concat(M_TitleName, ' ',
|
|
ifnull(M_PatientPrefix,' '),
|
|
M_PatientName,
|
|
ifnull(M_PatientSuffix,'')
|
|
)
|
|
as nama_pasien,
|
|
M_CompanyName as nama_company,
|
|
M_MouName as nama_mou,
|
|
T_OrderHeaderTotal as total,
|
|
'' as test
|
|
from t_orderheader
|
|
join one_mitra.t_order
|
|
ON T_OrderT_OrderHeaderID = T_OrderHeaderID
|
|
AND T_OrderIsActive = 'Y'
|
|
AND T_OrderHeaderIsActive = 'Y'
|
|
left join mitra_upload
|
|
ON T_OrderHeaderID = Mitra_UploadT_OrderHeaderID
|
|
AND Mitra_UploadIsActive = 'Y'
|
|
AND Mitra_UploadIsUploaded = 'N'
|
|
join m_company
|
|
ON M_CompanyID = T_OrderHeaderM_CompanyID
|
|
join m_mou
|
|
ON T_OrderM_MouID = M_MouID
|
|
AND M_MouIsActive = 'Y'
|
|
join m_patient
|
|
ON T_OrderHeaderM_PatientID = M_PatientID
|
|
join m_title
|
|
on M_PatientM_TitleID = M_TitleID
|
|
JOIN result_processtooffice
|
|
ON T_OrderHeaderID = Result_ProcessToOfficeT_OrderHeaderID
|
|
AND Result_ProcessToOfficeIsActive = 'Y'
|
|
join f_payment
|
|
ON t_orderheader.T_OrderHeaderID = F_PaymentT_OrderHeaderID
|
|
AND F_PaymentIsActive = 'Y'
|
|
join f_payment_orderheader
|
|
ON F_PaymentID = F_Payment_OrderHeaderF_PaymentID
|
|
AND F_Payment_OrderHeaderIsLunas = 'Y'
|
|
where $where
|
|
group by T_OrderHeaderID
|
|
limit $number_limit offset $number_offset";
|
|
|
|
// $sql_param = array($search);
|
|
$query_data = $this->db_onedev->query($sql_data);
|
|
//echo $this->db_onedev->last_query();
|
|
|
|
if ($query_data) {
|
|
$rows = $query_data->result_array();
|
|
if(count($rows) > 0){
|
|
$sql_dt = "";
|
|
foreach($rows as $k => $v){
|
|
$order_id = $v['T_OrderHeaderID'];
|
|
$dt_test = [];
|
|
$sql_dt = "SELECT T_OrderDetailT_TestName as x_test
|
|
from t_orderdetail
|
|
join t_test
|
|
ON T_OrderDetailT_TestID = T_TestID
|
|
AND T_TestIsActive = 'Y'
|
|
WHERE
|
|
T_OrderDetailT_OrderHeaderID = $order_id
|
|
AND T_OrderDetailIsActive = 'Y'
|
|
AND T_OrderDetailT_TestIsPrice = 'Y'
|
|
";
|
|
|
|
// echo $sql_dt;
|
|
$xdt_test = $this->db_onedev->query($sql_dt);
|
|
// print_r($xdt_test);
|
|
if(!$xdt_test){
|
|
$this->db_onedev->trans_rollback();
|
|
$this->sys_error_db("order detail");
|
|
exit;
|
|
}else{
|
|
$testArr = $xdt_test->result_array();
|
|
$rows[$k]['test'] = $testArr;
|
|
$xno = ($k + 1) + $number_offset;
|
|
$rows[$k]['rownumber'] = $xno;
|
|
}
|
|
|
|
}
|
|
}
|
|
} else {
|
|
$this->db_onedev->trans_rollback();
|
|
$this->sys_error_db("mitra_upload select");
|
|
exit;
|
|
}
|
|
|
|
$result = array(
|
|
"total" => $tot_page,
|
|
"total_all" => $tot_count,
|
|
"total_filter" => count($rows),
|
|
"records" => $rows,
|
|
"sql" => $this->db_onedev->last_query(),
|
|
"sql_data" => ($sql_data)
|
|
);
|
|
// $result = array ("total" => $tot_page, "total_filter"=>count($rows),"records" => $rows, 'sql'=> $this->db_onedev->last_query());
|
|
$this->sys_ok($result);
|
|
} catch(Exception $exc) {
|
|
$message = $exc->getMessage();
|
|
$this->sys_error($message);
|
|
}
|
|
}
|
|
|
|
|
|
public function change_reupload()
|
|
{
|
|
try {
|
|
# cek token valid
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
|
|
$prm = $this->sys_input;
|
|
$userID = $this->sys_user['M_UserID'];
|
|
$Mitra_UploadT_OrderHeaderID = $prm['Mitra_UploadT_OrderHeaderID'];
|
|
$Mitra_UploadT_OrderID = $prm['Mitra_UploadT_OrderID'];
|
|
|
|
// echo $Mitra_UploadT_OrderHeaderID;
|
|
// echo $Mitra_UploadT_OrderID;
|
|
|
|
$sql_update = "UPDATE mitra_upload
|
|
SET Mitra_UploadIsUploaded = 'N'
|
|
WHERE Mitra_UploadT_OrderHeaderID = ?
|
|
AND Mitra_UploadT_OrderID = ?";
|
|
|
|
$qry = $this->db_onedev->query($sql_update,[
|
|
$Mitra_UploadT_OrderHeaderID,
|
|
$Mitra_UploadT_OrderID
|
|
]);
|
|
|
|
if(!$qry){
|
|
$this->db_onedev->trans_rollback();
|
|
$this->sys_error_db("update Mitra_UploadIsUploaded to N failed");
|
|
exit;
|
|
}
|
|
|
|
|
|
$result = array(
|
|
"total" => 1 ,
|
|
"records" => $prm
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
} catch(Exception $exc) {
|
|
$message = $exc->getMessage();
|
|
$this->sys_error($message);
|
|
}
|
|
}
|
|
|
|
public function process_request_upload()
|
|
{
|
|
try {
|
|
# cek token valid
|
|
if (! $this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
|
|
$prm = $this->sys_input;
|
|
$userID = $this->sys_user['M_UserID'];
|
|
$Mitra_UploadT_OrderHeaderID = $prm['Mitra_UploadT_OrderHeaderID'];
|
|
$Mitra_UploadT_OrderID = $prm['Mitra_UploadT_OrderID'];
|
|
|
|
// echo $Mitra_UploadT_OrderHeaderID;
|
|
// echo $Mitra_UploadT_OrderID;
|
|
|
|
$sql_insert = "INSERT INTO mitra_upload(
|
|
Mitra_UploadT_OrderHeaderID,
|
|
Mitra_UploadT_OrderID,
|
|
Mitra_UploadUserID
|
|
) values (
|
|
?,
|
|
?,
|
|
?
|
|
)";
|
|
|
|
$qry = $this->db_onedev->query($sql_insert,[
|
|
$Mitra_UploadT_OrderHeaderID,
|
|
$Mitra_UploadT_OrderID,
|
|
$userID
|
|
]);
|
|
|
|
if(!$qry){
|
|
$this->db_onedev->trans_rollback();
|
|
$this->sys_error_db("insert request upload failed");
|
|
exit;
|
|
}
|
|
|
|
|
|
$result = array(
|
|
"total" => 1 ,
|
|
"records" => $prm
|
|
);
|
|
$this->sys_ok($result);
|
|
exit;
|
|
} catch(Exception $exc) {
|
|
$message = $exc->getMessage();
|
|
$this->sys_error($message);
|
|
}
|
|
}
|
|
}
|
|
?>
|