Files
BE_IBL/application/controllers/one-bb/Bloodrelease.php
2026-04-15 15:23:57 +07:00

165 lines
6.3 KiB
PHP

<?php
class Bloodrelease extends MY_Controller
{
var $db;
function __construct()
{
parent::__construct();
}
function index()
{
echo "API RELEASE DARAH";
// $cek = $this->db->query("select database() as current_db")->result();
// print_r($cek);
}
function search()
{
try {
if (! $this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$prm = $this->sys_input;
$search = "%%";
if (isset($prm["search"])) {
$search = trim($prm["search"]);
if ($search != "") {
$search = "%" . $prm["search"] . "%";
} else {
$search = "%%";
}
}
$start_date = date("Y-m-d");
if (isset($prm['start_date'])) {
$start_date = $prm["start_date"];
}
$end_date = date("Y-m-d");
if (isset($prm['end_date'])) {
$end_date = $prm["end_date"];
}
$sortBy = $prm["sortBy"];
$sortStatus = $prm["sortStatus"];
if($sortBy){
$q_sort = "ORDER BY ".$sortBy." ".$sortStatus;
}
$number_offset = 0;
$number_limit = 10;
if($prm["current_page"] > 0) {
$number_offset = ($prm["current_page"] - 1) * $number_limit;
}
$sql_filter = "SELECT COUNT(*) as total
FROM one_bb.td_orderrelease
JOIN one_bb.td_order ON Td_OrderReleaseTd_OrderID = Td_OrderID
AND Td_OrderIsActive = 'Y'
JOIN one_bb.td_donor ON Td_OrderTd_DonorID = Td_DonorID
AND Td_DonorIsActive = 'Y'
JOIN one_bb.td_orderbag ON Td_OrderReleaseTd_OrderBagID = Td_OrderBagID
AND Td_OrderBagIsActive = 'Y'
JOIN one_bb.td_bloodtype ON Td_DonorTd_BloodTypeID = Td_BloodTypeID
AND Td_BloodTypeIsActive = 'Y'
JOIN one_bb.td_orderaftap ON Td_OrderID = Td_OrderAftapTd_OrderID
AND Td_OrderAftapIsActive = 'Y'
JOIN one_bb.td_bloodcategory ON Td_OrderAftapTd_BloodCategoryID = Td_BloodCategoryID
AND Td_BloodCategoryIsActive = 'Y'
LEFT JOIN one_bb.m_almari ON Td_OrderReleaseM_AlmariID = M_AlmariID
AND M_AlmariIsActive = 'Y'
JOIN one_bb.td_orderimltd ON Td_OrderID = Td_OrderImltdTd_OrderID
AND Td_OrderImltdIsActive = 'Y'
WHERE Td_OrderReleaseIsActive = 'Y' AND
(DATE(Td_OrderDate) BETWEEN ? AND ?)
AND (Td_OrderBagNumber LIKE ?)";
$qry_filter = $this->db->query($sql_filter, array(
$start_date,
$end_date,
$search
));
// $last_query = $this->db->last_query();
// print_r($last_query);
$tot_count = 0;
$tot_page = 0;
if ($qry_filter) {
$tot_count = $qry_filter->result_array()[0]["total"];
$tot_page = ceil($tot_count/$number_limit);
} else {
$this->sys_error_db("release count error", $this->db);
exit;
}
$sql = "SELECT Td_OrderReleaseID,
Td_OrderReleaseTd_OrderID,
DATE_FORMAT(Td_OrderDate, '%d-%m-%Y') as donor_created,
Td_DonorName,
Td_OrderReleaseVolume,
IF(Td_OrderReleaseExpired = '0000-00-00', ' ',Td_OrderReleaseExpired) as expired,
Td_OrderReleaseM_AlmariID,
Td_OrderReleaseTd_OrderBagID,
Td_OrderBagNumber,
Td_BloodTypeCode,
Td_OrderAftapCheckBag,
Td_BloodCategoryCode,
M_AlmariName,
Td_OrderImltdResult,
Td_OrderImltdNatResult
FROM one_bb.td_orderrelease
JOIN one_bb.td_order ON Td_OrderReleaseTd_OrderID = Td_OrderID
AND Td_OrderIsActive = 'Y'
JOIN one_bb.td_donor ON Td_OrderTd_DonorID = Td_DonorID
AND Td_DonorIsActive = 'Y'
JOIN one_bb.td_orderbag ON Td_OrderReleaseTd_OrderBagID = Td_OrderBagID
AND Td_OrderBagIsActive = 'Y'
JOIN one_bb.td_bloodtype ON Td_DonorTd_BloodTypeID = Td_BloodTypeID
AND Td_BloodTypeIsActive = 'Y'
JOIN one_bb.td_orderaftap ON Td_OrderID = Td_OrderAftapTd_OrderID
AND Td_OrderAftapIsActive = 'Y'
JOIN one_bb.td_bloodcategory ON Td_OrderAftapTd_BloodCategoryID = Td_BloodCategoryID
AND Td_BloodCategoryIsActive = 'Y'
LEFT JOIN one_bb.m_almari ON Td_OrderReleaseM_AlmariID = M_AlmariID
AND M_AlmariIsActive = 'Y'
JOIN one_bb.td_orderimltd ON Td_OrderID = Td_OrderImltdTd_OrderID
AND Td_OrderImltdIsActive = 'Y'
WHERE Td_OrderReleaseIsActive = 'Y' AND
(DATE(Td_OrderDate) BETWEEN ? AND ?) AND (Td_OrderBagNumber LIKE ?)
$q_sort LIMIT ? OFFSET ?";
$qry = $this->db->query($sql, array(
$start_date,
$end_date,
$search,
$number_limit,
$number_offset
));
// $last_query = $this->db->last_query();
// print_r($last_query);
if ($qry) {
$rows = $qry->result_array();
} else {
$this->sys_error_db("select release error", $this->db);
exit;
}
foreach ($rows as $idx => $r) {
$check_bag = $r['Td_OrderAftapCheckBag'];
$json_checkbag = json_decode($check_bag, true);
$str_check_bag = implode(', ',$json_checkbag);
$rows[$idx]['Td_OrderAftapCheckBag'] = $str_check_bag;
}
$result = array(
"total" => $tot_page,
"total_filter" => $tot_count,
"records" => $rows
);
$this->sys_ok($result);
exit;
} catch (Exception $exc) {
$message = $exc->getMessage();
$this->sys_error($message);
}
}
}
?>