db_inventory = $this->load->database("inventory", true); } function index() { echo "Masterdata test reagen"; $cek = $this->db_inventory->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 = "%%"; } } $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 item JOIN itemgroup ON ItemItemGroupID = ItemGroupID AND ItemGroupIsActive = 'Y' WHERE ItemGroupIsReagen = 'Y' AND ItemIsActive = 'Y' GROUP BY ItemID AND (ItemSKU like ? OR ItemName like ?)"; $qry_filter = $this->db_inventory->query($sql_filter, array($search, $search)); // $last_query = $this->db_inventory->last_query(); // echo ($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->db_inventory->trans_rollback(); $this->sys_error_db("reagen count error", $this->db_inventory); exit; } $sql = "SELECT ItemID as id, ItemSKU, ItemName, IFNULL(ReagenUseQty, 0) as ReagenUseQty, IFNULL(ReagenUseItemUnitID, 0) as ReagenUseItemUnitID FROM item JOIN itemgroup ON ItemItemGroupID = ItemGroupID AND ItemGroupIsActive = 'Y' LEFT JOIN reagenuse ON ItemID = ReagenUseItemID AND ReagenUseIsActive = 'Y' WHERE ItemGroupIsReagen = 'Y' AND ItemIsActive = 'Y' AND (ItemSKU like ? OR ItemName like ?) GROUP BY ItemID $q_sort LIMIT ? OFFSET ?"; $qry = $this->db_inventory->query($sql, array($search, $search, $number_limit, $number_offset)); // $last_qry = $this->db_inventory->last_query(); // print_r($last_qry); if ($sql) { $rows = $qry->result_array(); } else { $this->sys_error_db("reagen select error", $this->db_inventory); exit; } $result = array( "total" => $tot_page, "total_filter" => $tot_count, "records" => $rows ); $this->sys_ok($result); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function get_itemunit() { try { if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $id = "id"; if (isset($prm['id'])) { $id = trim($prm["id"]); } $sql = "SELECT ItemUnitMapID as id, ItemUnitMapItemID as itemid, ItemUnitMapItemUnitID as itemunitid, ItemUnitName, IFNULL(ReagenUseQty, 0) as ReagenUseQty FROM itemunitmap JOIN item ON ItemUnitMapItemID = ItemID AND ItemIsActive = 'Y' JOIN itemunit ON ItemUnitMapItemUnitID = ItemUnitID AND ItemUnitIsActive = 'Y' LEFT JOIN reagenuse ON ItemID = ReagenUseItemID AND ReagenUseIsActive = 'Y' WHERE ItemUnitMapIsActive = 'Y'AND ItemID = ?"; $qry = $this->db_inventory->query($sql, array($id)); $last_qry = $this->db_inventory->last_query(); if (!$qry) { $this->db_inventory->trans_rollback(); $error = array( "message" => $this->db_inventory->error()["message"], "sql" => $last_qry ); $this->sys_error_db($error, $this->db_inventory); 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 get_nattest() { try { if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $sql = "SELECT Nat_TestID as id, Nat_TestCode, Nat_TestName FROM one_aditya.nat_test WHERE Nat_TestIsResult = 'Y' AND Nat_TestIsActive = 'Y'"; $qry = $this->db_inventory->query($sql); $last_qry = $this->db_inventory->last_query(); if (!$qry) { $this->db_inventory->trans_rollback(); $error = array( "message" => $this->db_inventory->error()["message"], "sql" => $last_qry ); $this->sys_error_db($error, $this->db_inventory); 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 addReagendetail() { try { if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $this->db_inventory->trans_begin(); $prm = $this->sys_input; $userid = $this->sys_user['M_UserID']; $itemid = ""; if (isset($prm['itemid'])) { $itemid = trim($prm["itemid"]); } $itemunitid = ""; if (isset($prm['itemunitid'])) { $itemunitid = trim($prm["itemunitid"]); } $nattestid = ""; if (isset($prm['nattestid'])) { $nattestid = trim($prm["nattestid"]); } $qty = ""; if (isset($prm['qty'])) { $qty = trim($prm["qty"]); } $qty_test = ""; if (isset($prm['qty_test'])) { $qty_test = trim($prm["qty_test"]); } $grouptestid = 0; if (isset($prm['grouptestid'])) { $grouptestid = trim($prm["grouptestid"]); } $sql_select = "SELECT ReagenUseID, ReagenUseItemID, ReagenUseItemUnitID, ReagenUseQty FROM reagenuse WHERE ReagenUseItemID = ? AND ReagenUseItemUnitID = ?"; $qry_select = $this->db_inventory->query($sql_select, array($itemid, $itemunitid)); if ($qry_select) { $rows = $qry_select->result_array(); } else { $this->sys_error_db("select reagenuse error", $this->db_inventory); exit; } // print_r($rows); if (count($rows) > 0) { // print_r($rows); $reagenuseid = $rows[0]["ReagenUseID"]; $sql_update = "UPDATE reagenuse SET ReagenUseQty = ?, ReagenUseIsActive = 'Y', ReagenUseUserID = ?, ReagenUseLastUpdated = NOW() WHERE ReagenUseID = ?"; $qry_update = $this->db_inventory->query($sql_update, array( $qty, $userid, $reagenuseid )); if (!$qry_update) { $this->sys_error_db("update reagen error", $this->db_inventory); exit; } } else { $sql_reagen = "INSERT INTO reagenuse( ReagenUseItemID, ReagenUseItemUnitID, ReagenUseQty, ReagenUseIsActive, ReagenUseUserID, ReagenUseCreated, ReagenUseLastUpdated) VALUES(?,?,?,'Y',?,NOW(),NOW())"; $qry_reagen = $this->db_inventory->query($sql_reagen, array( $itemid, $itemunitid, $qty, $userid )); if ($qry_reagen) { $reagenuseid = $this->db_inventory->insert_id(); } else { $this->db_inventory->trans_rollback(); $this->sys_error_db("insert reagenuse error", $this->db_inventory); exit; } } $sql_cari = "SELECT ReagenUseDetailID, ReagenUseDetailReagenUseID FROM reagenusedetail WHERE ReagenUseDetailReagenUseID = ? AND ReagenUseDetailNat_testID = ? "; $qry_cari = $this->db_inventory->query($sql_cari, array($reagenuseid, $nattestid)); if ($qry_cari) { $row = $qry_cari->result_array(); } else { $this->sys_error_db("select reagenusedetail error", $this->db_inventory); exit; } if (count($row) > 0) { // print_r($row); $reagenusedetailid = $row[0]["ReagenUseDetailID"]; $sql_edit = "UPDATE reagenusedetail SET ReagenUseDetailNat_testID = ?, ReagenUseDetailGroupTestID = ?, ReagenUseDetailAmount = ?, ReagenUseDetailIsActive = 'Y', ReagenUseDetailLastUpdated = NOW(), ReagenUseDetailUserID = ? WHERE ReagenUseDetailID = ?"; $qry_edit = $this->db_inventory->query($sql_edit, array( $nattestid, $grouptestid, $qty_test, $userid, $reagenusedetailid )); if (!$qry_edit) { $this->sys_error_db("update reagenusedetail error", $this->db_inventory); exit; } } else { $sql_detail = "INSERT INTO reagenusedetail( ReagenUseDetailReagenUseID, ReagenUseDetailNat_testID, ReagenUseDetailGroupTestID, ReagenUseDetailAmount, ReagenUseDetailIsActive, ReagenUseDetailCreated, ReagenUseDetailLastUpdated, ReagenUseDetailUserID) VALUES(?, ?, ?, ?, 'Y', NOW(), NOW(), ?)"; $qry_reagen = $this->db_inventory->query($sql_detail, array( $reagenuseid, $nattestid, $grouptestid, $qty_test, $userid )); if(!$qry_reagen) { $this->db_inventory->trans_rollback(); $this->sys_error_db("insert reagenusedetail error", $this->db_inventory); exit; } } $this->db_inventory->trans_commit(); $result = array( "affected_rows" => $this->db_inventory->affected_rows(), "inserted_id" => $this->db_inventory->insert_id() ); $this->sys_ok($result); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function searchtest() { try { if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $id_item = "id_item"; if (isset($prm['id_item'])) { $id_item = trim($prm["id_item"]); } $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 reagenusedetail JOIN reagenuse ON ReagenUseDetailReagenUseID = ReagenUseID AND ReagenUseIsActive = 'Y' JOIN item ON ReagenUseItemID = ItemID AND ItemIsActive = 'Y' JOIN itemunit ON ReagenUseItemUnitID = ItemUnitID AND ItemUnitIsActive = 'Y' JOIN one_aditya.nat_test ON ReagenUseDetailNat_testID = Nat_TestID AND Nat_TestIsActive = 'Y' WHERE ReagenUseDetailIsActive = 'Y' AND ItemID = ?"; $qry_filter = $this->db_inventory->query($sql_filter, array($id_item)); $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("reagenusedetail count error", $this->db_inventory); exit; } $sql = "SELECT ReagenUseDetailID as id, ReagenUseDetailReagenUseID as reagen_id, ReagenUseQty as qty, ItemName as item_name, ItemUnitName as itemunit_name, ReagenUseDetailNat_testID as nattest_id, Nat_TestName as nattest_name, ReagenUseDetailAmount as amount FROM reagenusedetail JOIN reagenuse ON ReagenUseDetailReagenUseID = ReagenUseID AND ReagenUseIsActive = 'Y' JOIN item ON ReagenUseItemID = ItemID AND ItemIsActive = 'Y' JOIN itemunit ON ReagenUseItemUnitID = ItemUnitID AND ItemUnitIsActive = 'Y' JOIN one_aditya.nat_test ON ReagenUseDetailNat_testID = Nat_TestID AND Nat_TestIsActive = 'Y' WHERE ReagenUseDetailIsActive = 'Y' AND ItemID = ? LIMIT ? OFFSET ?"; $qry = $this->db_inventory->query($sql, array($id_item, $number_limit, $number_offset)); if($qry){ $rows = $qry->result_array(); }else{ $this->sys_error_db("reagenusedetail select error", $this->db_inventory); exit; } $result = array( "total_page" => $tot_page, "total_filter" => $tot_count, "records" => $rows ); $this->sys_ok($result); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } } ?>