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