db_onedev = $this->load->database("onedev", true); } function fixcheck($labnumber) { $sql = "SELECT * FROM `t_orderheader` WHERE `T_OrderHeaderLabNumber` = '{$labnumber}' LIMIT 1"; $qry = $this->db_onedev->query($sql ); if (!$qry) { print_r($this->db->error()); exit; } $orderid = $qry->row()->T_OrderHeaderID; //echo $orderid; $sql = " SELECT T_OrderDetailT_TestID AS T_TestID, T_OrderDetailT_TestIsResult as is_result, T_OrderDetailT_TestIsPrice as is_price, COUNT(T_OrderDetailT_TestID) AS total_records, Group_ResultFlagNonLab as is_nonlab FROM t_orderdetail LEFT JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_OrderDetailT_TestID AND Group_ResultDetailIsActive = 'Y' LEFT JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID WHERE T_OrderDetailT_OrderHeaderID = ? AND T_OrderDetailIsActive = 'Y' GROUP BY T_OrderDetailT_TestID HAVING total_records > 1 "; $qry = $this->db_onedev->query($sql, array($orderid) ); //echo $this->db_onedev->last_query(); if (!$qry) { print_r($this->db->error()); exit; } $rows = $qry->result_array(); $deleted_id = []; foreach ($rows as $key => $value) { if($value['is_price'] == 'Y' && $value['is_result'] == 'N'){ $sql = "SELECT * FROM t_orderdetail WHERE T_OrderDetailT_OrderHeaderID = ? AND T_OrderDetailT_TestID = ? AND T_OrderDetailIsActive = 'Y' ORDER BY T_OrderDetailID DESC "; $qry = $this->db_onedev->query($sql, array($orderid,$value['T_TestID']) ); $id_null_result_price = $qry->result_array(); if(count($id_null_result_price) > 0){ $del_ids_price = intval($value['total_records']) - 1; foreach($id_null_result_price as $knrp => $null_rstp){ if($knrp+1 <= $del_ids_price) $deleted_id[] = $null_rstp['T_OrderDetailID']; } } }else{ if($value['is_nonlab'] == 'N'){ $sql = "SELECT * FROM t_orderdetail WHERE T_OrderDetailT_OrderHeaderID = ? AND T_OrderDetailT_TestID = ? AND T_OrderDetailIsActive = 'Y' AND T_OrderDetailResult IS NULL"; $qry = $this->db_onedev->query($sql, array($orderid,$value['T_TestID']) ); $id_null_result = $qry->result_array(); if(count($id_null_result) > 0){ $del_ids = intval($value['total_records']) - 1; foreach($id_null_result as $knr => $null_rst){ if($knr+1 <= $del_ids) $deleted_id[] = $null_rst['T_OrderDetailID']; } }else{ $sql = "SELECT * FROM t_orderdetail WHERE T_OrderDetailT_OrderHeaderID = ? AND T_OrderDetailT_TestID = ? AND T_OrderDetailIsActive = 'Y' AND T_OrderDetailVerification <> 'Y'"; $qry = $this->db_onedev->query($sql, array($orderid,$value['T_TestID']) ); $id_ver_result = $qry->result_array(); if(count($id_ver_result) > 0){ $del_ids_ver = intval($value['total_records']) - 1; foreach($id_ver_result as $knr_ver => $rst_ver){ if($knr_ver+1 <= $del_ids_ver) $deleted_id[] = $rst_ver['T_OrderDetailID']; } }else{ $sql = "SELECT * FROM t_orderdetail WHERE T_OrderDetailT_OrderHeaderID = ? AND T_OrderDetailT_TestID = ? AND T_OrderDetailIsActive = 'Y' AND T_OrderDetailValidation <> 'Y'"; $qry = $this->db_onedev->query($sql, array($orderid,$value['T_TestID']) ); $id_val_result = $qry->result_array(); if(count($id_val_result) > 0){ $del_ids_val = intval($value['total_records']) - 1; foreach($id_val_result as $knr_val => $rst_val){ if($knr_val+1 <= $del_ids_val) $deleted_id[] = $rst_val['T_OrderDetailID']; } } } } }else{ $sql = "SELECT * FROM t_orderdetail LEFT JOIN so_resultentry ON So_ResultEntryT_OrderDetailID = T_OrderDetailID AND So_ResultEntryIsActive = 'Y' WHERE T_OrderDetailT_OrderHeaderID = ? AND T_OrderDetailT_TestID = ? AND T_OrderDetailIsActive = 'Y' AND So_ResultEntryID IS NULL"; $qry = $this->db_onedev->query($sql, array($orderid,$value['T_TestID']) ); $id_null_result_non = $qry->result_array(); //echo $this->db_onedev->last_query(); if(count($id_null_result_non) > 0){ $non_del_ids = intval($value['total_records']) - 1; foreach($id_null_result_non as $knr_non => $null_rst_non){ if($knr_non+1 <= $non_del_ids) $deleted_id[] = $null_rst_non['T_OrderDetailID']; } } } } } if(count($deleted_id) > 0){ $string_join = join(", ",$deleted_id); $query_update_exist = "UPDATE `t_orderdetail` SET `T_OrderDetailIsActive` = 'N', T_OrderDetailUserID = '555', T_OrderDetailLastUpdated = NOW() WHERE `T_OrderDetailT_OrderHeaderID` = {$orderid} AND `T_OrderDetailIsActive` = 'Y' AND `T_OrderDetailID` IN ($string_join); "; $qry = $this->db_onedev->query($query_update_exist); echo $this->db_onedev->last_query(); //echo json_encode(join(", ",$deleted_id)); } else echo "Tidak ada yang dihapus"; } }