db_smartone = $this->load->database("onedev", true); } public function profile() { $prm = $this->sys_input; $search = $prm["search"]; $mouCompanyID = $prm["mouCompanyID"]; $sql_param = array($mouCompanyID, "%$search%"); $sql = "select count(distinct T_TestPanelID) total from t_testpanel join t_testpaneldetail on T_TestPanelID = T_TestPanelDetailT_TestPanelID and T_TestPanelIsActive = 'Y' and T_TestPanelDetailIsActive = 'Y' join t_test on T_TestPanelDetailT_TestID = T_TestID and T_TestIsActive = 'Y' join t_testprice on T_TestID = T_TestPriceT_TestID and T_TestIsPrice = 'Y' and T_TestPriceIsActive = 'Y' and T_TestPriceM_MouCompanyID = ? where T_TestPanelName like ? "; $query = $this->db_smartone->query($sql, $sql_param); $tot_count =0; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_testpanel count", $this->db_smartone); exit; } $sql = "select distinct T_TestPanelID from t_testpanel join t_testpaneldetail on T_TestPanelID = T_TestPanelDetailT_TestPanelID and T_TestPanelIsActive = 'Y' and T_TestPanelDetailIsActive = 'Y' join t_test on T_TestPanelDetailT_TestID = T_TestID and T_TestIsActive = 'Y' join t_testprice on T_TestID = T_TestPriceT_TestID and T_TestIsPrice = 'Y' and T_TestPriceIsActive = 'Y' and T_TestPriceM_MouCompanyID = ? where T_TestPanelName like ? limit 0,20"; $query = $this->db_smartone->query($sql,$sql_param); $xrows = $query->result_array(); $a_tpid = "-1"; foreach($xrows as $r) { $a_tpid .= "," . $r["T_TestPanelID"]; } $sql = "select distinct T_TestPanelID,T_TestPanelName, T_TestID,T_TestName, 'N' IsFromPanel, T_TestRequirement, t_testprice.* from t_testpanel join t_testpaneldetail on T_TestPanelID = T_TestPanelDetailT_TestPanelID and T_TestPanelIsActive = 'Y' and T_TestPanelDetailIsActive = 'Y' join t_test on T_TestPanelDetailT_TestID = T_TestID and T_TestIsActive = 'Y' join t_testprice on T_TestID = T_TestPriceT_TestID and T_TestIsPrice = 'Y' and T_TestPriceM_MouCompanyID = ? and T_TestPriceIsActive = 'Y' where T_TestPanelID in ( $a_tpid ) "; $query = $this->db_smartone->query($sql,array($mouCompanyID)); $xrows = $query->result_array(); $rows = array(); $prev_tpanel_id = 0; foreach($xrows as $r) { $tpanel_id = $r["T_TestPanelID"]; if ($tpanel_id != $prev_tpanel_id) { $rows[] = array( "T_TestPanelID" => $r["T_TestPanelID"], "T_TestPanelName" => $r["T_TestPanelName"], "test" => array() ); } $idx = count($rows) - 1; $rows[$idx]["test"][] = $r; $prev_tpanel_id = $tpanel_id; } $result = array("total" => $tot_count, "records" => $rows ); $this->sys_ok($result); exit; } public function panel() { $prm = $this->sys_input; $search = $prm["search"]; $mouCompanyID = $prm["mouCompanyID"]; $sql_param = array($mouCompanyID, "%$search%"); $sql = "select count(distinct T_TestPanelID) total from t_testpanel join t_testpaneldetail on T_TestPanelID = T_TestPanelDetailT_TestPanelID and T_TestPanelIsActive = 'Y' and T_TestPanelDetailIsActive = 'Y' join t_test on T_TestPanelDetailT_TestID = T_TestID and T_TestIsActive = 'Y' join t_testprice on T_TestID = T_TestPriceT_TestID and T_TestIsPrice = 'Y' and T_TestPriceIsActive = 'Y' and T_TestPriceM_MouCompanyID = ? where T_TestPanelName like ? "; $query = $this->db_smartone->query($sql, $sql_param); $tot_count =0; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_testpanel count", $this->db_smartone); exit; } $sql = "select distinct T_TestPanelID from t_testpanel join t_testpaneldetail on T_TestPanelID = T_TestPanelDetailT_TestPanelID and T_TestPanelIsActive = 'Y' and T_TestPanelDetailIsActive = 'Y' join t_test on T_TestPanelDetailT_TestID = T_TestID and T_TestIsActive = 'Y' join t_testprice on T_TestID = T_TestPriceT_TestID and T_TestIsPrice = 'Y' and T_TestPriceIsActive = 'Y' and T_TestPriceM_MouCompanyID = ? where T_TestPanelName like ? limit 0,20"; $query = $this->db_smartone->query($sql,$sql_param); $xrows = $query->result_array(); $a_tpid = "-1"; foreach($xrows as $r) { $a_tpid .= "," . $r["T_TestPanelID"]; } $sql = "select distinct T_TestPanelID,T_TestPanelName, T_TestID,T_TestName, 'Y' IsFromPanel,T_TestRequirement, t_testprice.* from t_testpanel join t_testpaneldetail on T_TestPanelID = T_TestPanelDetailT_TestPanelID and T_TestPanelIsActive = 'Y' and T_TestPanelDetailIsActive = 'Y' join t_test on T_TestPanelDetailT_TestID = T_TestID and T_TestIsActive = 'Y' join t_testprice on T_TestID = T_TestPriceT_TestID and T_TestIsPrice = 'Y' and T_TestPriceM_MouCompanyID = ? and T_TestPriceIsActive = 'Y' where T_TestPanelID in ( $a_tpid ) order by T_TestPanelID"; $query = $this->db_smartone->query($sql,array($mouCompanyID)); $xrows = $query->result_array(); $rows = array(); $prev_tpanel_id = 0; foreach($xrows as $r) { $tpanel_id = $r["T_TestPanelID"]; if ($tpanel_id != $prev_tpanel_id) { $rows[] = array( "T_TestPanelID" => $r["T_TestPanelID"], "T_TestPanelName" => $r["T_TestPanelName"], "test" => array() ); } $idx = count($rows) - 1; $rows[$idx]["test"][] = $r; $prev_tpanel_id = $tpanel_id; } $result = array("total" => $tot_count, "records" => $rows ); $this->sys_ok($result); exit; } public function search_old() { $prm = $this->sys_input; $search = $prm["search"]; $sql_param = array("%$search%"); $sql = "select count(distinct T_TestID) total from t_test where T_TestIsActive = 'Y' AND T_TestIsPrice = 'Y' AND T_TestName like ? "; $query = $this->db_smartone->query($sql, $sql_param); $tot_count =0; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_company count", $this->db_smartone); exit; } $sql = "select distinct T_TestID,T_TestName, 'N' IsFromPanel, T_TestRequirement from t_test where T_TestIsActive = 'Y' AND T_TestIsPrice = 'Y' AND T_TestName like ? limit 0,20 "; $query = $this->db_smartone->query($sql, $sql_param); $rows = $query->result_array(); $result = array("total" => $tot_count, "records" => $rows ); $this->sys_ok($result); exit; } public function search_v2() { $prm = $this->sys_input; $search = $prm["search"]; $mouCompanyID = $prm["mouCompanyID"]; $sql_param = array($mouCompanyID, "%$search%"); $query = $this->db_smartone->query("CALL sp_fo_px_count_v2(?, ?)", $sql_param); $this->clean_mysqli_connection($this->db_smartone->conn_id); $tot_count = 0; if ($query) { $tot_count = $query->result_array()[0]["data"]; } else { $this->sys_error_db("PX count", $this->db_smartone); exit; } if (isset($prm['order_id'])) $query = $this->db_smartone->query("CALL sp_fo_px_search_byorder_v2(?, ?)", [$prm['order_id'], $mouCompanyID]); else if ($search == "") $query = $this->db_smartone->query("CALL sp_fo_px_search_favorite_v2(?, ?)", $sql_param); else $query = $this->db_smartone->query("CALL sp_fo_px_search_v2(?, ?)", $sql_param); $this->clean_mysqli_connection($this->db_smartone->conn_id); // echo $this->db_smartone->last_query(); // $query = $this->db_smartone->query($sql); if ($query) { $rows = $query->result_array(); $id_to_remove = []; // var_dump($rows); foreach ($rows as $k => $v) { $rows[$k]['requirement'] = []; $x = $this->db_smartone->query("SELECT fn_fo_requirement_get('{$v['T_TestID']}') x") ->row(); if ($x->x != null) $rows[$k]['requirement'] = json_decode($x->x); $rows[$k]['nat_test'] = json_decode($v['nat_test']); $rows[$k]['child_test'] = json_decode($v['child_test']); // IF PROFILE if ($v['px_type'] == "PR" || $v['px_type'] == "PXR") { if ($v['T_TestID'] == null) { $id_to_remove[] = $k; continue; } else { foreach ($rows[$k]['child_test'] as $l => $w) { $rows[$k]['child_test'][$l]->requirement = []; $rows[$k]['child_test'][$l]->nat_test = json_decode($w->nat_test); $x = $this->db_smartone->query("SELECT fn_fo_requirement_get('{$w->T_TestID}') x") ->row(); if ($x->x != null) $rows[$k]['child_test'][$l]->requirement = json_decode($x->x); } } } } // REMOVE INDEXES foreach ($id_to_remove as $l => $w) { $x = $w - $l; array_splice($rows, $x, 1); } $result = array("total" => $tot_count, "records" => (array) $rows, "query" => $sqlx, "query2" => $sqly ); $this->sys_ok($result); exit; } } public function search() { $prm = $this->sys_input; $search = $prm["search"]; $mouCompanyID = $prm["mouCompanyID"]; $sql_param = array($mouCompanyID, "%$search%"); $query = $this->db_smartone->query("CALL sp_fo_px_count(?, ?)", $sql_param); $this->clean_mysqli_connection($this->db_smartone->conn_id); $tot_count = 0; if ($query) { $tot_count = $query->result_array()[0]["data"]; } else { $this->sys_error_db("PX count", $this->db_smartone); exit; } if (isset($prm['order_id'])) $query = $this->db_smartone->query("CALL sp_fo_px_search_byorder(?, ?)", [$prm['order_id'], $mouCompanyID]); else if ($search == "") $query = $this->db_smartone->query("CALL sp_fo_px_search_favorite(?, ?)", $sql_param); else $query = $this->db_smartone->query("CALL sp_fo_px_search(?, ?)", $sql_param); $this->clean_mysqli_connection($this->db_smartone->conn_id); // echo $this->db_smartone->last_query(); // $query = $this->db_smartone->query($sql); if ($query) { $rows = $query->result_array(); $id_to_remove = []; // var_dump($rows); foreach ($rows as $k => $v) { $rows[$k]['requirement'] = []; $x = $this->db_smartone->query("SELECT fn_fo_requirement_get('{$v['T_TestID']}') x") ->row(); if ($x->x != null) $rows[$k]['requirement'] = json_decode($x->x); $rows[$k]['nat_test'] = json_decode($v['nat_test']); $rows[$k]['child_test'] = json_decode($v['child_test']); // IF PROFILE if ($v['px_type'] == "PR" || $v['px_type'] == "PXR") { if ($v['T_TestID'] == null) { $id_to_remove[] = $k; continue; } else { foreach ($rows[$k]['child_test'] as $l => $w) { $rows[$k]['child_test'][$l]->requirement = []; $rows[$k]['child_test'][$l]->nat_test = json_decode($w->nat_test); $x = $this->db_smartone->query("SELECT fn_fo_requirement_get('{$w->T_TestID}') x") ->row(); if ($x->x != null) $rows[$k]['child_test'][$l]->requirement = json_decode($x->x); } } } } // REMOVE INDEXES foreach ($id_to_remove as $l => $w) { $x = $w - $l; array_splice($rows, $x, 1); } $result = array("total" => $tot_count, "records" => (array) $rows, "query" => $sqlx, "query2" => $sqly ); $this->sys_ok($result); exit; } } function get_price() { $prm = $this->sys_input; $r = []; $sql_param = array($prm['test_id'], date('Y-m-d'), $prm['cito'], $prm['mou_id']); $sql = "select fn_price(?, ?, ?, ?) as price"; $query = $this->db_smartone->query($sql, $sql_param); if ($query) { $r = $query->result_array()[0]; $r = json_decode($r['price']); $this->sys_ok($r); exit; } else { $this->sys_error_db("get price", $this->db_smartone); exit; } } }