164 lines
7.4 KiB
PHP
164 lines
7.4 KiB
PHP
<?php
|
|
class Doubletestorder extends MY_Controller
|
|
{
|
|
var $db_onedev;
|
|
public function index()
|
|
{
|
|
|
|
}
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->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";
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|