Batch 6a: application controllers base
This commit is contained in:
336
application/controllers/one-bb/Bloodquarantine.php
Normal file
336
application/controllers/one-bb/Bloodquarantine.php
Normal file
@@ -0,0 +1,336 @@
|
||||
<?php
|
||||
class Bloodquarantine extends MY_Controller
|
||||
{
|
||||
var $db;
|
||||
function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
function index()
|
||||
{
|
||||
echo "API KARANTINA 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_orderquarantine
|
||||
JOIN one_bb.td_order ON Td_OrderQuarantineTd_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_OrderQuarantineTd_OrderBagID = Td_OrderBagID
|
||||
AND Td_OrderBagIsActive = 'Y'
|
||||
JOIN one_bb.td_bloodtype as adonor ON Td_DonorTd_BloodTypeID = adonor.Td_BloodTypeID
|
||||
AND adonor.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_OrderQuarantineTd_BloodCategoryID = Td_BloodCategoryID
|
||||
AND Td_BloodCategoryIsActive = 'Y'
|
||||
LEFT JOIN one_bb.m_almari ON Td_OrderQuarantineM_AlmariID = M_AlmariID
|
||||
AND M_AlmariIsActive = 'Y'
|
||||
JOIN one_bb.td_orderscreening ON Td_OrderID = Td_OrderScreeningTd_OrderID
|
||||
AND Td_OrderScreeningIsActive = 'Y'
|
||||
LEFT JOIN one_bb.td_bloodtype as ascreening ON Td_OrderScreeningTd_BloodTypeID = ascreening.Td_BloodTypeID
|
||||
AND ascreening.Td_BloodTypeIsActive = 'Y'
|
||||
LEFT JOIN one_bb.td_bloodrhesus as bscreening ON Td_OrderScreeningTd_BloodRhesusID = bscreening.Td_BloodRhesusID
|
||||
AND bscreening.Td_BloodRhesusIsActive = 'Y'
|
||||
JOIN one_bb.td_orderimltd ON Td_OrderID = Td_OrderImltdTd_OrderID
|
||||
AND Td_OrderImltdIsActive = 'Y'
|
||||
JOIN one_bb.td_bloodtype as cimltd ON Td_OrderImltdTd_BloodTypeID = cimltd.Td_BloodTypeID
|
||||
AND cimltd.Td_BloodTypeIsActive = 'Y'
|
||||
JOIN one_bb.td_bloodrhesus as eimltd ON Td_OrderImltdTd_BloodRhesusID = eimltd.Td_BloodRhesusID
|
||||
AND eimltd.Td_BloodRhesusIsActive = 'Y'
|
||||
WHERE Td_OrderQuarantineIsActive = '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_qry = $this->db->last_query();
|
||||
// print_r($last_qry);
|
||||
|
||||
$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("karantina darah count", $this->db);
|
||||
exit;
|
||||
}
|
||||
|
||||
$sql_data = "SELECT Td_OrderQuarantineID,
|
||||
Td_OrderID,
|
||||
DATE_FORMAT(Td_OrderDate, '%d-%m-%Y') as order_date,
|
||||
ascreening.Td_BloodTypeCode as bloodtypecode_screening,
|
||||
bscreening.Td_BloodRhesusCode as bloodrhesus_screening,
|
||||
cimltd.Td_BloodTypeCode as bloodtypecode_imltd,
|
||||
eimltd.Td_BloodRhesusCode as bloodrhesus_imltd,
|
||||
Td_OrderImltdHBsAg,
|
||||
Td_OrderImltdAntiHCV,
|
||||
Td_OrderImltdAntiHIV,
|
||||
Td_OrderImltdSifilis,
|
||||
Td_OrderImltdScreeningAntibody,
|
||||
Td_OrderImltdNatHBsAg,
|
||||
Td_OrderImltdNatAntiHCV,
|
||||
Td_OrderImltdNatAntiHIV,
|
||||
Td_DonorName,
|
||||
Td_OrderBagNumber,
|
||||
Td_BloodCategoryID,
|
||||
adonor.Td_BloodTypeCode as bloodtype_code,
|
||||
Td_OrderAftapCheckBag as check_bag,
|
||||
Td_BloodCategoryCode,
|
||||
M_AlmariName,
|
||||
M_AlmariID,
|
||||
Td_OrderImltdResult,
|
||||
Td_OrderImltdNatResult,
|
||||
Td_OrderQuarantineVolume,
|
||||
Td_OrderBagID,
|
||||
Td_OrderQuarantineNote,
|
||||
Td_OrderQuarantineIsQuarantine as is_quarantine,
|
||||
DATE_FORMAT(Td_OrderQuarantineQuarantineDate, '%d-%m-%Y') as quarantine_date
|
||||
FROM one_bb.td_orderquarantine
|
||||
JOIN one_bb.td_order ON Td_OrderQuarantineTd_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_OrderQuarantineTd_OrderBagID = Td_OrderBagID
|
||||
AND Td_OrderBagIsActive = 'Y'
|
||||
JOIN one_bb.td_bloodtype as adonor ON Td_DonorTd_BloodTypeID = adonor.Td_BloodTypeID
|
||||
AND adonor.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_OrderQuarantineTd_BloodCategoryID = Td_BloodCategoryID
|
||||
AND Td_BloodCategoryIsActive = 'Y'
|
||||
LEFT JOIN one_bb.m_almari ON Td_OrderQuarantineM_AlmariID = M_AlmariID
|
||||
AND M_AlmariIsActive = 'Y'
|
||||
JOIN one_bb.td_orderscreening ON Td_OrderID = Td_OrderScreeningTd_OrderID
|
||||
AND Td_OrderScreeningIsActive = 'Y'
|
||||
LEFT JOIN one_bb.td_bloodtype as ascreening ON Td_OrderScreeningTd_BloodTypeID = ascreening.Td_BloodTypeID
|
||||
AND ascreening.Td_BloodTypeIsActive = 'Y'
|
||||
LEFT JOIN one_bb.td_bloodrhesus as bscreening ON Td_OrderScreeningTd_BloodRhesusID = bscreening.Td_BloodRhesusID
|
||||
AND bscreening.Td_BloodRhesusIsActive = 'Y'
|
||||
JOIN one_bb.td_orderimltd ON Td_OrderID = Td_OrderImltdTd_OrderID
|
||||
AND Td_OrderImltdIsActive = 'Y'
|
||||
JOIN one_bb.td_bloodtype as cimltd ON Td_OrderImltdTd_BloodTypeID = cimltd.Td_BloodTypeID
|
||||
AND cimltd.Td_BloodTypeIsActive = 'Y'
|
||||
JOIN one_bb.td_bloodrhesus as eimltd ON Td_OrderImltdTd_BloodRhesusID = eimltd.Td_BloodRhesusID
|
||||
AND eimltd.Td_BloodRhesusIsActive = 'Y'
|
||||
WHERE Td_OrderQuarantineIsActive = 'Y' AND
|
||||
(DATE(Td_OrderDate) BETWEEN ? AND ?) AND (Td_OrderBagNumber LIKE ?)
|
||||
$q_sort LIMIT ? OFFSET ?";
|
||||
$qry_data = $this->db->query($sql_data, array($start_date, $end_date, $search, $number_limit, $number_offset));
|
||||
// $last_qry = $this->db->last_query();
|
||||
// print_r($last_qry);
|
||||
if ($qry_data) {
|
||||
$rows = $qry_data->result_array();
|
||||
} else {
|
||||
$this->sys_error_db("karantina darah select", $this->db);
|
||||
exit;
|
||||
}
|
||||
|
||||
foreach ($rows as $idx => $r) {
|
||||
$check_bag = $r['check_bag'];
|
||||
$json_checkbag = json_decode($check_bag, true);
|
||||
$str_check_bag = implode(', ',$json_checkbag);
|
||||
$rows[$idx]['check_bag'] = $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);
|
||||
}
|
||||
}
|
||||
|
||||
function get_almari()
|
||||
{
|
||||
try {
|
||||
if (!$this->isLogin) {
|
||||
$this->sys_error("Invalid Token");
|
||||
exit;
|
||||
}
|
||||
$prm = $this->sys_input;
|
||||
$sql = "SELECT M_AlmariID as almariId,
|
||||
M_AlmariCode as almaricode,
|
||||
M_AlmariName as almariname
|
||||
FROM one_bb.m_almari
|
||||
WHERE M_AlmariIsActive = 'Y'";
|
||||
$qry = $this->db->query($sql);
|
||||
$last_qry = $this->db->last_query();
|
||||
// echo $last_qry;
|
||||
if (!$qry) {
|
||||
$this->db->trans_rollback();
|
||||
$error = array(
|
||||
"message" => $this->db->error()["message"],
|
||||
"sql" => $last_qry
|
||||
);
|
||||
$this->sys_error_db($error, $this->db);
|
||||
exit;
|
||||
}
|
||||
$rows = $qry->result_array();
|
||||
$result = array(
|
||||
"records" => $rows
|
||||
);
|
||||
$this->sys_ok($result);
|
||||
exit;
|
||||
|
||||
} catch (Exception $exc) {
|
||||
$message = $exc->getMessage();
|
||||
$this->sys_error($message);
|
||||
}
|
||||
}
|
||||
|
||||
function release()
|
||||
{
|
||||
try {
|
||||
if (!$this->isLogin) {
|
||||
$this->sys_error("Invalid Token");
|
||||
exit;
|
||||
}
|
||||
$this->db->trans_begin();
|
||||
$prm = $this->sys_input;
|
||||
$userid = $this->sys_user['M_UserID'];
|
||||
|
||||
$orderId = "";
|
||||
if (isset($prm['orderId'])) {
|
||||
$orderId = trim($prm["orderId"]);
|
||||
}
|
||||
$bloodcategoryId = "";
|
||||
if (isset($prm['bloodcategoryId'])) {
|
||||
$bloodcategoryId = trim($prm["bloodcategoryId"]);
|
||||
}
|
||||
$volume = "";
|
||||
if (isset($prm['volume'])) {
|
||||
$volume = trim($prm["volume"]);
|
||||
}
|
||||
$orderbagId = "";
|
||||
if (isset($prm['orderbagId'])) {
|
||||
$orderbagId = trim($prm["orderbagId"]);
|
||||
}
|
||||
$almariId = "";
|
||||
if (isset($prm['almariId'])) {
|
||||
if (is_numeric($prm["almariId"])) {
|
||||
$almariId = trim($prm["almariId"]);
|
||||
}
|
||||
}
|
||||
$quarantineId = "";
|
||||
if (isset($prm['quarantineId'])) {
|
||||
if (is_numeric($prm["quarantineId"])) {
|
||||
$quarantineId = trim($prm["quarantineId"]);
|
||||
}
|
||||
}
|
||||
|
||||
$sql = "UPDATE one_bb.td_orderquarantine SET
|
||||
Td_OrderQuarantineM_AlmariID = ?,
|
||||
Td_OrderQuarantineIsQuarantine = 'Y',
|
||||
Td_OrderQuarantineStatus = 'R',
|
||||
Td_OrderQuarantineUserID = ?,
|
||||
Td_OrderQuarantineLastUpdated = NOW()
|
||||
WHERE Td_OrderQuarantineID = ?";
|
||||
$qry = $this->db->query($sql, array($almariId, $userid, $quarantineId));
|
||||
// $last_qry = $this->db->last_query();
|
||||
// print_r($last_qry);
|
||||
if (!$qry) {
|
||||
$this->db->trans_rollback();
|
||||
$this->sys_error_db("karantina update error", $this->db);
|
||||
exit;
|
||||
}
|
||||
|
||||
$sql_insert = "INSERT INTO one_bb.td_orderrelease(
|
||||
Td_OrderReleaseTd_OrderID,
|
||||
Td_OrderReleaseTd_BloodCategoryID,
|
||||
Td_OrderReleaseVolume,
|
||||
Td_OrderReleaseTd_OrderBagID,
|
||||
Td_OrderReleaseM_AlmariID,
|
||||
Td_OrderReleaseIsActive,
|
||||
Td_OrderReleaseUserID,
|
||||
Td_OrderReleaseCreated,
|
||||
Td_OrderReleaseLastUpdated) VALUES(?,?,?,?,?,'Y',?,NOW(),NOW())";
|
||||
$qry_insert = $this->db->query($sql_insert, array(
|
||||
$orderId,
|
||||
$bloodcategoryId,
|
||||
$volume,
|
||||
$orderbagId,
|
||||
$almariId,
|
||||
$userid
|
||||
));
|
||||
// $last_qry = $this->db->last_query();
|
||||
// print_r($last_qry);
|
||||
if (!$qry_insert) {
|
||||
$this->db->trans_rollback();
|
||||
$this->sys_error_db("insert release error", $this->db);
|
||||
exit;
|
||||
}
|
||||
|
||||
$sql_order = "UPDATE one_bb.td_order SET
|
||||
Td_OrderStatus = 'R',
|
||||
Td_OrderIsRelease = 'Y',
|
||||
Td_OrderReleaseDate = NOW(),
|
||||
Td_OrderReleaseUserID = ?
|
||||
WHERE Td_OrderID = ?";
|
||||
$qry_order = $this->db->query($sql_order, array($userid, $orderId));
|
||||
if (!$qry_order) {
|
||||
$this->db->trans_rollback();
|
||||
$this->sys_error_db("update order error", $this->db);
|
||||
exit;
|
||||
}
|
||||
|
||||
$this->db->trans_commit();
|
||||
$result = array(
|
||||
"total" => 1,
|
||||
"affected_rows" => $this->db->affected_rows()
|
||||
);
|
||||
$this->sys_ok($result);
|
||||
|
||||
} catch (Exception $exc) {
|
||||
$message = $exc->getMessage();
|
||||
$this->sys_error($message);
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user