Files
BE_IBL/application/controllers/mockup/mitra/Requestupload.php
2026-04-15 15:24:12 +07:00

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);
}
}
}
?>