From 7834c044aded4f947d215ce108fff8ce692ba275 Mon Sep 17 00:00:00 2001 From: Hanan Askarim Date: Thu, 21 May 2026 15:08:41 +0700 Subject: [PATCH] tambah save glukosa --- .../Additional.php | 596 ++++++++++-------- 1 file changed, 347 insertions(+), 249 deletions(-) diff --git a/application/controllers/mockup/cpone-so-template-additional-be-v5/Additional.php b/application/controllers/mockup/cpone-so-template-additional-be-v5/Additional.php index 44a4461..4bb22a8 100644 --- a/application/controllers/mockup/cpone-so-template-additional-be-v5/Additional.php +++ b/application/controllers/mockup/cpone-so-template-additional-be-v5/Additional.php @@ -176,8 +176,8 @@ T_OrderHeaderIsActive as isactive, } // echo $this->db_onedev->last_query(); $rows = $query->result_array(); - if(count($rows) > 0){ - foreach($rows as $key => $row){ + if (count($rows) > 0) { + foreach ($rows as $key => $row) { $row['glucoses'] = null; $sql = "SELECT GROUP_CONCAT( DISTINCT CONCAT(IFNULL(OrderGlucoseID,0),'^',Nat_TestID,'^',Nat_TestName,'^',IFNULL(OrderGlucoseResult,'')) SEPARATOR '*') as glucoses FROM t_orderdetail @@ -189,12 +189,11 @@ T_OrderHeaderIsActive as isactive, GROUP BY T_OrderDetailT_OrderHeaderID"; $query = $this->db_onedev->query($sql, [$row['orderID']]); //echo $this->db_onedev->last_query(); - if($query){ + if ($query) { $rst_glucose = $query->row_array(); $row['glucoses'] = $rst_glucose['glucoses']; } $rows[$key] = $row; - } } $result = [ @@ -202,7 +201,6 @@ T_OrderHeaderIsActive as isactive, "records" => $rows ]; $this->sys_ok($result); - } function searchxxx() @@ -343,7 +341,6 @@ GROUP_CONCAT(CONCAT(OrderGlucoseID,'^',Nat_TestID,'^',Nat_TestName,'^',OrderGluc "records" => $query->result_array() ]; $this->sys_ok($result); - } function getdetail() { @@ -659,62 +656,62 @@ FROM function save() { try { - if (!$this->isLogin) { - $this->sys_error("Invalid Token"); - exit; - } - $prm = $this->sys_input; - $userid = $this->sys_user["M_UserID"]; - $messages_log = []; + if (!$this->isLogin) { + $this->sys_error("Invalid Token"); + exit; + } + $prm = $this->sys_input; + $userid = $this->sys_user["M_UserID"]; + $messages_log = []; - if($prm['glucoses'] && count($prm['glucoses'])){ - foreach ($prm['glucoses'] as $k_gluc => $v_gluc) { - $sampletypeid = $this->db_onedev->query("SELECT Nat_TestNat_SampleTypeID + if ($prm['glucoses'] && count($prm['glucoses'])) { + foreach ($prm['glucoses'] as $k_gluc => $v_gluc) { + $sampletypeid = $this->db_onedev->query("SELECT Nat_TestNat_SampleTypeID FROM nat_test WHERE Nat_TestID = '{$v_gluc[1]}'")->row(); - $sql_gluc = "SELECT + $sql_gluc = "SELECT COUNT(T_OrderSampleID) AS total FROM t_ordersample WHERE T_OrderSampleT_OrderHeaderID = ? AND T_OrderSampleT_SampleTypeID = ? AND T_OrderSampleReceive = 'Y' AND T_OrderSampleReceiveDate IS NOT NULL"; - $query_gluc = $this->db_onedev->query($sql_gluc, [$prm['orderID'],$sampletypeid->Nat_TestNat_SampleTypeID]); - if (!$query_gluc) { - $message = $this->db_onedev->error(); - $message['qry'] = $this->db_onedev->last_query(); - $this->sys_error($message); - exit; - } - $sample_gluc = $query_gluc->row_array()['total']; + $query_gluc = $this->db_onedev->query($sql_gluc, [$prm['orderID'], $sampletypeid->Nat_TestNat_SampleTypeID]); + if (!$query_gluc) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + } + $sample_gluc = $query_gluc->row_array()['total']; - $sql_order_gluc = "SELECT + $sql_order_gluc = "SELECT COUNT(T_OrderDetailID) AS total FROM t_orderdetail JOIN t_test ON T_OrderDetailT_OrderHeaderID = {$prm['orderID']} AND T_OrderDetailT_TestID = T_TestID AND T_OrderDetailIsActive = 'Y' JOIN nat_test ON T_TestNat_TestID = {$v_gluc[1]}"; - $query_order_gluc = $this->db_onedev->query($sql_order_gluc); - if (!$query_order_gluc) { - $message = $this->db_onedev->error(); - $message['qry'] = $this->db_onedev->last_query(); - $this->sys_error($message); - exit; - } - $order_gluc = $query_order_gluc->row_array()['total']; + $query_order_gluc = $this->db_onedev->query($sql_order_gluc); + if (!$query_order_gluc) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + } + $order_gluc = $query_order_gluc->row_array()['total']; - if($sample_gluc > 0 && $order_gluc > 0){ + if ($sample_gluc > 0 && $order_gluc > 0) { - $sql = $this->db_onedev->query("SELECT * FROM order_glucose WHERE OrderGlucoseID = {$v_gluc[0]}"); - $x_data_before = $sql->result_array(); - $x_data_before = json_encode($x_data_before); + $sql = $this->db_onedev->query("SELECT * FROM order_glucose WHERE OrderGlucoseID = {$v_gluc[0]}"); + $x_data_before = $sql->result_array(); + $x_data_before = json_encode($x_data_before); - $sql = "UPDATE order_glucose SET OrderGlucoseIsActive = 'N', OrderGlucoseDeleted = NOW(), OrderGlucoseDeletedUserID = '{$userid}' + $sql = "UPDATE order_glucose SET OrderGlucoseIsActive = 'N', OrderGlucoseDeleted = NOW(), OrderGlucoseDeletedUserID = '{$userid}' WHERE OrderGlucoseID = {$v_gluc[0]}"; - $this->db_onedev->query($sql); - $sql = "INSERT INTO order_glucose ( + $this->db_onedev->query($sql); + $sql = "INSERT INTO order_glucose ( OrderGlucoseT_OrderHeaderID, OrderGlucoseNat_TestID, OrderGlucoseResult, @@ -728,9 +725,9 @@ FROM NOW(), {$userid} )"; - $this->db_onedev->query($sql); - $last_id_glucose = $this->db_onedev->insert_id(); - $sql = "UPDATE t_orderdetail + $this->db_onedev->query($sql); + $last_id_glucose = $this->db_onedev->insert_id(); + $sql = "UPDATE t_orderdetail JOIN t_test ON T_OrderDetailT_OrderHeaderID = {$prm['orderID']} AND T_OrderDetailT_TestID = T_TestID AND T_OrderDetailIsActive = 'Y' @@ -741,15 +738,15 @@ FROM T_OrderDetailLastUpdatedUserID = {$userid}, T_OrderDetailLastUpdated = NOW() "; - - $this->db_onedev->query($sql); - // INSERT LOG - $sql = $this->db_onedev->query("SELECT * FROM order_glucose WHERE OrderGlucoseID = {$last_id_glucose}"); - $x_data_after = $sql->result_array(); - $x_data_after = json_encode($x_data_after); + $this->db_onedev->query($sql); - $sqllog = "INSERT INTO additionalfisik_log( + // INSERT LOG + $sql = $this->db_onedev->query("SELECT * FROM order_glucose WHERE OrderGlucoseID = {$last_id_glucose}"); + $x_data_after = $sql->result_array(); + $x_data_after = json_encode($x_data_after); + + $sqllog = "INSERT INTO additionalfisik_log( AdditionalFisikLogType, AdditionalFisikLogT_OrderHeaderID, AdditionalFisikLogJSONBefore, @@ -757,55 +754,48 @@ FROM AdditionalFisikLogCreated, AdditionalFisikLogUserID) VALUES ('GLUCOSE','{$prm['orderID']}','{$x_data_before}','{$x_data_after}',now(),'{$userid}')"; - $querylog = $this->db_onedev->query($sqllog); + $querylog = $this->db_onedev->query($sqllog); + } } - - - - - } - - - } - $sql_bbtb = "SELECT + $sql_bbtb = "SELECT COUNT(T_SamplingSoID) AS total FROM t_samplingso WHERE T_SamplingSoT_OrderHeaderID = ? AND T_SamplingSoT_TestID = '3450' AND T_SamplingSoFlag = 'D' AND T_SamplingSoDoneDate IS NOT NULL"; - $query_bbtb = $this->db_onedev->query($sql_bbtb, [$prm['orderID']]); - if (!$query_bbtb) { - $message = $this->db_onedev->error(); - $message['qry'] = $this->db_onedev->last_query(); - $this->sys_error($message); - exit; - } - $sample_bbtb = $query_bbtb->row_array()['total']; + $query_bbtb = $this->db_onedev->query($sql_bbtb, [$prm['orderID']]); + if (!$query_bbtb) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + } + $sample_bbtb = $query_bbtb->row_array()['total']; - $sql_order_bbtb = "SELECT + $sql_order_bbtb = "SELECT COUNT(T_OrderDetailID) AS total FROM t_orderdetail WHERE T_OrderDetailT_OrderHeaderID = ? AND T_OrderDetailT_TestID = '3450' AND T_OrderDetailIsActive = 'Y'"; - $query_order_bbtb = $this->db_onedev->query($sql_order_bbtb, [$prm['orderID']]); - if (!$query_order_bbtb) { - $message = $this->db_onedev->error(); - $message['qry'] = $this->db_onedev->last_query(); - $this->sys_error($message); - exit; - } - $order_bbtb = $query_order_bbtb->row_array()['total']; + $query_order_bbtb = $this->db_onedev->query($sql_order_bbtb, [$prm['orderID']]); + if (!$query_order_bbtb) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + } + $order_bbtb = $query_order_bbtb->row_array()['total']; - if ($sample_bbtb > 0 && $order_bbtb > 0){ - if ($prm['T_SamplingAdditionalFisikBBTBID'] == 0) { + if ($sample_bbtb > 0 && $order_bbtb > 0) { + if ($prm['T_SamplingAdditionalFisikBBTBID'] == 0) { - - $sql = "INSERT INTO t_samplingso_additional_fisik_bbtb + + $sql = "INSERT INTO t_samplingso_additional_fisik_bbtb (T_SamplingAdditionalFisikBBTBT_OrderHeaderID, T_SamplingAdditionalFisikBBTBValueBB, T_SamplingAdditionalFisikBBTBValueTB, @@ -822,21 +812,21 @@ FROM '{$prm['T_SamplingAdditionalFisikBBTBBodyFat']}', now(), '{$userid}')"; - $query = $this->db_onedev->query($sql); - if (!$query) { - $message = $this->db_onedev->error(); - $message['qry'] = $this->db_onedev->last_query(); - $this->sys_error($message); - exit; - } - $T_SamplingAdditionalFisikBBTBID = $this->db_onedev->insert_id(); + $query = $this->db_onedev->query($sql); + if (!$query) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + } + $T_SamplingAdditionalFisikBBTBID = $this->db_onedev->insert_id(); - // INSERT LOG - $sql = $this->db_onedev->query("SELECT * FROM t_samplingso_additional_fisik_bbtb WHERE T_SamplingAdditionalFisikBBTBID = {$T_SamplingAdditionalFisikBBTBID} AND T_SamplingAdditionalFisikBBTBIsActive = 'Y'"); - $x_data_after = $sql->result_array(); - $x_data_after = json_encode($x_data_after); + // INSERT LOG + $sql = $this->db_onedev->query("SELECT * FROM t_samplingso_additional_fisik_bbtb WHERE T_SamplingAdditionalFisikBBTBID = {$T_SamplingAdditionalFisikBBTBID} AND T_SamplingAdditionalFisikBBTBIsActive = 'Y'"); + $x_data_after = $sql->result_array(); + $x_data_after = json_encode($x_data_after); - $sqllog = "INSERT INTO additionalfisik_log( + $sqllog = "INSERT INTO additionalfisik_log( AdditionalFisikLogType, AdditionalFisikLogT_OrderHeaderID, AdditionalFisikLogJSONBefore, @@ -844,13 +834,12 @@ FROM AdditionalFisikLogCreated, AdditionalFisikLogUserID) VALUES ('BBTB','{$prm['orderID']}','','{$x_data_after}',now(),'{$userid}')"; - $querylog = $this->db_onedev->query($sqllog); - - } else{ - $sql = $this->db_onedev->query("SELECT * FROM t_samplingso_additional_fisik_bbtb WHERE T_SamplingAdditionalFisikBBTBID = {$prm['T_SamplingAdditionalFisikBBTBID']} AND T_SamplingAdditionalFisikBBTBIsActive = 'Y'"); - $x_data_before = $sql->result_array(); - $x_data_before = json_encode($x_data_before); - $sql = "UPDATE t_samplingso_additional_fisik_bbtb + $querylog = $this->db_onedev->query($sqllog); + } else { + $sql = $this->db_onedev->query("SELECT * FROM t_samplingso_additional_fisik_bbtb WHERE T_SamplingAdditionalFisikBBTBID = {$prm['T_SamplingAdditionalFisikBBTBID']} AND T_SamplingAdditionalFisikBBTBIsActive = 'Y'"); + $x_data_before = $sql->result_array(); + $x_data_before = json_encode($x_data_before); + $sql = "UPDATE t_samplingso_additional_fisik_bbtb SET T_SamplingAdditionalFisikBBTBValueBB = '{$prm['T_SamplingAdditionalFisikBBTBValueBB']}', T_SamplingAdditionalFisikBBTBValueTB = '{$prm['T_SamplingAdditionalFisikBBTBValueTB']}', T_SamplingAdditionalFisikBBTBValueClassification = '{$prm['T_SamplingAdditionalFisikBBTBValueClassification']}', @@ -859,19 +848,19 @@ FROM T_SamplingAdditionalFisikBBTBLastUpdated = now(), T_SamplingAdditionalFisikBBTBLastUpdatedUserID = '{$userid}' WHERE T_SamplingAdditionalFisikBBTBID = '{$prm['T_SamplingAdditionalFisikBBTBID']}'"; - $query = $this->db_onedev->query($sql); - if (!$query) { - $message = $this->db_onedev->error(); - $message['qry'] = $this->db_onedev->last_query(); - $this->sys_error($message); - exit; - } - // INSERT LOG - $sql = $this->db_onedev->query("SELECT * FROM t_samplingso_additional_fisik_bbtb WHERE T_SamplingAdditionalFisikBBTBID = {$prm['T_SamplingAdditionalFisikBBTBID']} AND T_SamplingAdditionalFisikBBTBIsActive = 'Y'"); - $x_data_after = $sql->result_array(); - $x_data_after = json_encode($x_data_after); + $query = $this->db_onedev->query($sql); + if (!$query) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + } + // INSERT LOG + $sql = $this->db_onedev->query("SELECT * FROM t_samplingso_additional_fisik_bbtb WHERE T_SamplingAdditionalFisikBBTBID = {$prm['T_SamplingAdditionalFisikBBTBID']} AND T_SamplingAdditionalFisikBBTBIsActive = 'Y'"); + $x_data_after = $sql->result_array(); + $x_data_after = json_encode($x_data_after); - $sqllog = "INSERT INTO additionalfisik_log( + $sqllog = "INSERT INTO additionalfisik_log( AdditionalFisikLogType, AdditionalFisikLogT_OrderHeaderID, AdditionalFisikLogJSONBefore, @@ -879,47 +868,47 @@ FROM AdditionalFisikLogCreated, AdditionalFisikLogUserID) VALUES ('BBTB','{$prm['orderID']}','{$x_data_before}','{$x_data_after}',now(),'{$userid}')"; - $querylog = $this->db_onedev->query($sqllog); + $querylog = $this->db_onedev->query($sqllog); + } } - } - - $sql_bw = "SELECT + + $sql_bw = "SELECT COUNT(T_SamplingSoID) AS total FROM t_samplingso WHERE T_SamplingSoT_OrderHeaderID = ? AND T_SamplingSoT_TestID = '2573' AND T_SamplingSoFlag = 'D' AND T_SamplingSoDoneDate IS NOT NULL"; - $query_bw = $this->db_onedev->query($sql_bw, [$prm['orderID']]); - if (!$query_bw) { - $message = $this->db_onedev->error(); - $message['qry'] = $this->db_onedev->last_query(); - $this->sys_error($message); - exit; - } - $sample_bw = $query_bw->row_array()['total']; + $query_bw = $this->db_onedev->query($sql_bw, [$prm['orderID']]); + if (!$query_bw) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + } + $sample_bw = $query_bw->row_array()['total']; - $sql_order_bw = "SELECT + $sql_order_bw = "SELECT COUNT(T_OrderDetailID) AS total FROM t_orderdetail WHERE T_OrderDetailT_OrderHeaderID = ? AND T_OrderDetailT_TestID = '2573' AND T_OrderDetailIsActive = 'Y'"; - $query_order_bw = $this->db_onedev->query($sql_order_bw, [$prm['orderID']]); - if (!$query_order_bw) { - $message = $this->db_onedev->error(); - $message['qry'] = $this->db_onedev->last_query(); - $this->sys_error($message); - exit; - } - $order_bw = $query_order_bw->row_array()['total']; + $query_order_bw = $this->db_onedev->query($sql_order_bw, [$prm['orderID']]); + if (!$query_order_bw) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + } + $order_bw = $query_order_bw->row_array()['total']; - if ($sample_bw > 0 && $order_bw > 0){ - if ($prm['T_SamplingAdditionalFisikBWID'] == 0) { + if ($sample_bw > 0 && $order_bw > 0) { + if ($prm['T_SamplingAdditionalFisikBWID'] == 0) { - $sql = "INSERT INTO t_samplingso_additional_fisik_bw + $sql = "INSERT INTO t_samplingso_additional_fisik_bw (T_SamplingAdditionalFisikBWT_OrderHeaderID, T_SamplingAdditionalFisikBWPWValue, T_SamplingAdditionalFisikBWPWVAngka, @@ -932,21 +921,21 @@ FROM '{$prm['T_SamplingAdditionalFisikBWPWKeterangan']}', now(), '{$userid}')"; - $query = $this->db_onedev->query($sql); - if (!$query) { - $message = $this->db_onedev->error(); - $message['qry'] = $this->db_onedev->last_query(); - $this->sys_error($message); - exit; - } - $T_SamplingAdditionalFisikBWID = $this->db_onedev->insert_id(); + $query = $this->db_onedev->query($sql); + if (!$query) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + } + $T_SamplingAdditionalFisikBWID = $this->db_onedev->insert_id(); - // INSERT LOG - $sql = $this->db_onedev->query("SELECT * FROM t_samplingso_additional_fisik_bw WHERE T_SamplingAdditionalFisikBWID = {$T_SamplingAdditionalFisikBWID}"); - $x_data_after = $sql->result_array(); - $x_data_after = json_encode($x_data_after); + // INSERT LOG + $sql = $this->db_onedev->query("SELECT * FROM t_samplingso_additional_fisik_bw WHERE T_SamplingAdditionalFisikBWID = {$T_SamplingAdditionalFisikBWID}"); + $x_data_after = $sql->result_array(); + $x_data_after = json_encode($x_data_after); - $sqllog = "INSERT INTO additionalfisik_log( + $sqllog = "INSERT INTO additionalfisik_log( AdditionalFisikLogType, AdditionalFisikLogT_OrderHeaderID, AdditionalFisikLogJSONBefore, @@ -954,33 +943,32 @@ FROM AdditionalFisikLogCreated, AdditionalFisikLogUserID) VALUES ('BW','{$prm['orderID']}','','{$x_data_after}',now(),'{$userid}')"; - $querylog = $this->db_onedev->query($sqllog); + $querylog = $this->db_onedev->query($sqllog); + } else { + $sql = $this->db_onedev->query("SELECT * FROM t_samplingso_additional_fisik_bw WHERE T_SamplingAdditionalFisikBWID = {$prm['T_SamplingAdditionalFisikBWID']}"); + $x_data_before = $sql->result_array(); + $x_data_before = json_encode($x_data_before); - } else{ - $sql = $this->db_onedev->query("SELECT * FROM t_samplingso_additional_fisik_bw WHERE T_SamplingAdditionalFisikBWID = {$prm['T_SamplingAdditionalFisikBWID']}"); - $x_data_before = $sql->result_array(); - $x_data_before = json_encode($x_data_before); - - $sql = "UPDATE t_samplingso_additional_fisik_bw + $sql = "UPDATE t_samplingso_additional_fisik_bw SET T_SamplingAdditionalFisikBWPWValue = '{$prm['T_SamplingAdditionalFisikBWPWValue']}', T_SamplingAdditionalFisikBWPWVAngka = '{$prm['T_SamplingAdditionalFisikBWPWVAngka']}', T_SamplingAdditionalFisikBWPWKeterangan = '{$prm['T_SamplingAdditionalFisikBWPWKeterangan']}', T_SamplingAdditionalFisikBWLastUpdated = now(), T_SamplingAdditionalFisikBWLastUpdatedUserID = '{$userid}' WHERE T_SamplingAdditionalFisikBWID = '{$prm['T_SamplingAdditionalFisikBWID']}'"; - $query = $this->db_onedev->query($sql); - if (!$query) { - $message = $this->db_onedev->error(); - $message['qry'] = $this->db_onedev->last_query(); - $this->sys_error($message); - exit; - } - // INSERT LOG - $sql = $this->db_onedev->query("SELECT * FROM t_samplingso_additional_fisik_bw WHERE T_SamplingAdditionalFisikBWID = {$prm['T_SamplingAdditionalFisikBWID']}"); - $x_data_after = $sql->result_array(); - $x_data_after = json_encode($x_data_after); + $query = $this->db_onedev->query($sql); + if (!$query) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + } + // INSERT LOG + $sql = $this->db_onedev->query("SELECT * FROM t_samplingso_additional_fisik_bw WHERE T_SamplingAdditionalFisikBWID = {$prm['T_SamplingAdditionalFisikBWID']}"); + $x_data_after = $sql->result_array(); + $x_data_after = json_encode($x_data_after); - $sqllog = "INSERT INTO additionalfisik_log( + $sqllog = "INSERT INTO additionalfisik_log( AdditionalFisikLogType, AdditionalFisikLogT_OrderHeaderID, AdditionalFisikLogJSONBefore, @@ -988,46 +976,46 @@ FROM AdditionalFisikLogCreated, AdditionalFisikLogUserID) VALUES ('BW','{$prm['orderID']}','{$x_data_before}','{$x_data_after}',now(),'{$userid}')"; - $querylog = $this->db_onedev->query($sqllog); + $querylog = $this->db_onedev->query($sqllog); + } } - } - - - $sql_visus = "SELECT + + + $sql_visus = "SELECT COUNT(T_SamplingSoID) AS total FROM t_samplingso WHERE T_SamplingSoT_OrderHeaderID = ? AND T_SamplingSoT_TestID = '2571' AND T_SamplingSoFlag = 'D' AND T_SamplingSoDoneDate IS NOT NULL"; - $query_visus = $this->db_onedev->query($sql_visus, [$prm['orderID']]); - if (!$query_visus) { - $message = $this->db_onedev->error(); - $message['qry'] = $this->db_onedev->last_query(); - $this->sys_error($message); - exit; - } - $sample_visus = $query_visus->row_array()['total']; + $query_visus = $this->db_onedev->query($sql_visus, [$prm['orderID']]); + if (!$query_visus) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + } + $sample_visus = $query_visus->row_array()['total']; - $sql_order_visus = "SELECT + $sql_order_visus = "SELECT COUNT(T_OrderDetailID) AS total FROM t_orderdetail WHERE T_OrderDetailT_OrderHeaderID = ? AND T_OrderDetailT_TestID = '2571' AND T_OrderDetailIsActive = 'Y'"; - $query_order_visus = $this->db_onedev->query($sql_order_visus, [$prm['orderID']]); - if (!$query_order_visus) { - $message = $this->db_onedev->error(); - $message['qry'] = $this->db_onedev->last_query(); - $this->sys_error($message); - exit; - } - $order_visus = $query_order_visus->row_array()['total']; + $query_order_visus = $this->db_onedev->query($sql_order_visus, [$prm['orderID']]); + if (!$query_order_visus) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + } + $order_visus = $query_order_visus->row_array()['total']; - if ($sample_visus > 0 && $order_visus > 0){ - if ($prm['T_SamplingAdditionalFisikVisusID'] == 0) { - $sql = "INSERT INTO t_samplingso_additional_fisik_visus + if ($sample_visus > 0 && $order_visus > 0) { + if ($prm['T_SamplingAdditionalFisikVisusID'] == 0) { + $sql = "INSERT INTO t_samplingso_additional_fisik_visus (T_SamplingAdditionalFisikVisusT_OrderHeaderID, T_SamplingAdditionalFisikVisusTKODV, T_SamplingAdditionalFisikVisusTKOSV, @@ -1060,20 +1048,20 @@ FROM '{$prm['T_SamplingAdditionalFisikVisusKiriKesimpulan']}', now(), '{$userid}')"; - $query = $this->db_onedev->query($sql); - if (!$query) { - $message = $this->db_onedev->error(); - $message['qry'] = $this->db_onedev->last_query(); - $this->sys_error($message); - exit; - } - $T_SamplingAdditionalFisikVisusID = $this->db_onedev->insert_id(); - // INSERT LOG - $sql = $this->db_onedev->query("SELECT * FROM t_samplingso_additional_fisik_visus WHERE T_SamplingAdditionalFisikVisusID = {$T_SamplingAdditionalFisikVisusID} AND T_SamplingAdditionalFisikVisusIsActive = 'Y'"); - $x_data_after = $sql->result_array(); - $x_data_after = json_encode($x_data_after); + $query = $this->db_onedev->query($sql); + if (!$query) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + } + $T_SamplingAdditionalFisikVisusID = $this->db_onedev->insert_id(); + // INSERT LOG + $sql = $this->db_onedev->query("SELECT * FROM t_samplingso_additional_fisik_visus WHERE T_SamplingAdditionalFisikVisusID = {$T_SamplingAdditionalFisikVisusID} AND T_SamplingAdditionalFisikVisusIsActive = 'Y'"); + $x_data_after = $sql->result_array(); + $x_data_after = json_encode($x_data_after); - $sqllog = "INSERT INTO additionalfisik_log( + $sqllog = "INSERT INTO additionalfisik_log( AdditionalFisikLogType, AdditionalFisikLogT_OrderHeaderID, AdditionalFisikLogJSONBefore, @@ -1081,12 +1069,12 @@ FROM AdditionalFisikLogCreated, AdditionalFisikLogUserID) VALUES ('VISUS','{$prm['orderID']}','','{$x_data_after}',now(),'{$userid}')"; - $querylog = $this->db_onedev->query($sqllog); - } else{ - $sql = $this->db_onedev->query("SELECT * FROM t_samplingso_additional_fisik_visus WHERE T_SamplingAdditionalFisikVisusID = {$prm['T_SamplingAdditionalFisikVisusID']} AND T_SamplingAdditionalFisikVisusIsActive = 'Y'"); - $x_data_before = $sql->result_array(); - $x_data_before = json_encode($x_data_before); - $sql = "UPDATE t_samplingso_additional_fisik_visus + $querylog = $this->db_onedev->query($sqllog); + } else { + $sql = $this->db_onedev->query("SELECT * FROM t_samplingso_additional_fisik_visus WHERE T_SamplingAdditionalFisikVisusID = {$prm['T_SamplingAdditionalFisikVisusID']} AND T_SamplingAdditionalFisikVisusIsActive = 'Y'"); + $x_data_before = $sql->result_array(); + $x_data_before = json_encode($x_data_before); + $sql = "UPDATE t_samplingso_additional_fisik_visus SET T_SamplingAdditionalFisikVisusTKODV = '{$prm['T_SamplingAdditionalFisikVisusTKODV']}', T_SamplingAdditionalFisikVisusTKOSV = '{$prm['T_SamplingAdditionalFisikVisusTKOSV']}', T_SamplingAdditionalFisikVisusDKODV = '{$prm['T_SamplingAdditionalFisikVisusDKODV']}', @@ -1103,20 +1091,20 @@ FROM T_SamplingAdditionalFisikVisusLastUpdated = now(), T_SamplingAdditionalFisikVisusLastUpdatedUserID = '{$userid}' WHERE T_SamplingAdditionalFisikVisusID = '{$prm['T_SamplingAdditionalFisikVisusID']}'"; - // echo $sql; - $query = $this->db_onedev->query($sql); - if (!$query) { - $message = $this->db_onedev->error(); - $message['qry'] = $this->db_onedev->last_query(); - $this->sys_error($message); - exit; - } - // INSERT LOG - $sql = $this->db_onedev->query("SELECT * FROM t_samplingso_additional_fisik_visus WHERE T_SamplingAdditionalFisikVisusID = {$prm['T_SamplingAdditionalFisikVisusID']} AND T_SamplingAdditionalFisikVisusIsActive = 'Y'"); - $x_data_after = $sql->result_array(); - $x_data_after = json_encode($x_data_after); + // echo $sql; + $query = $this->db_onedev->query($sql); + if (!$query) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + } + // INSERT LOG + $sql = $this->db_onedev->query("SELECT * FROM t_samplingso_additional_fisik_visus WHERE T_SamplingAdditionalFisikVisusID = {$prm['T_SamplingAdditionalFisikVisusID']} AND T_SamplingAdditionalFisikVisusIsActive = 'Y'"); + $x_data_after = $sql->result_array(); + $x_data_after = json_encode($x_data_after); - $sqllog = "INSERT INTO additionalfisik_log( + $sqllog = "INSERT INTO additionalfisik_log( AdditionalFisikLogType, AdditionalFisikLogT_OrderHeaderID, AdditionalFisikLogJSONBefore, @@ -1124,36 +1112,146 @@ FROM AdditionalFisikLogCreated, AdditionalFisikLogUserID) VALUES ('VISUS','{$prm['orderID']}','{$x_data_before}','{$x_data_after}',now(),'{$userid}')"; - $querylog = $this->db_onedev->query($sqllog); - } - } - - if($sample_bbtb == 0 && $order_bbtb > 0) { - $messages_log[] = "BB TB"; - } - if($sample_bw == 0 && $order_bw > 0) { - $messages_log[] = "Buta Warna "; - } - if($sample_gluc == 0 && $order_gluc > 0) { - $messages_log[] = "Gula darah"; - } - if($sample_visus == 0 && $order_visus > 0) { - $messages_log[] = "Visus"; + $querylog = $this->db_onedev->query($sqllog); + } } - if(count($messages_log) > 0) { + if ($sample_bbtb == 0 && $order_bbtb > 0) { + $messages_log[] = "BB TB"; + } + if ($sample_bw == 0 && $order_bw > 0) { + $messages_log[] = "Buta Warna "; + } + if ($sample_gluc == 0 && $order_gluc > 0) { + $messages_log[] = "Gula darah"; + } + if ($sample_visus == 0 && $order_visus > 0) { + $messages_log[] = "Visus"; + } + + if (count($messages_log) > 0) { $message .= implode(" , ", $messages_log); $result = array("message" => "Belum sampling " . $message); - }else{ + } else { $result = array("message" => "Data berhasil disimpan"); } - + $this->sys_ok($result); - - } catch (Exception $exc) { - $message = $exc->getMessage(); - $this->sys_error($message); + } catch (Exception $exc) { + $message = $exc->getMessage(); + $this->sys_error($message); + } } + function saveGlucosa() + { + try { + if (!$this->isLogin) { + $this->sys_error("Invalid Token"); + exit; + } + $prm = $this->sys_input; + $userid = $this->sys_user["M_UserID"]; + + if ($prm['glucoses'] && count($prm['glucoses'])) { + foreach ($prm['glucoses'] as $k_gluc => $v_gluc) { + $sampletypeid = $this->db_onedev->query("SELECT Nat_TestNat_SampleTypeID + FROM nat_test WHERE Nat_TestID = '{$v_gluc[1]}'")->row(); + + $sql_gluc = "SELECT + COUNT(T_OrderSampleID) AS total + FROM t_ordersample + WHERE T_OrderSampleT_OrderHeaderID = ? + AND T_OrderSampleT_SampleTypeID = ? + AND T_OrderSampleReceive = 'Y' + AND T_OrderSampleReceiveDate IS NOT NULL"; + $query_gluc = $this->db_onedev->query($sql_gluc, [$prm['orderID'], $sampletypeid->Nat_TestNat_SampleTypeID]); + if (!$query_gluc) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + } + $sample_gluc = $query_gluc->row_array()['total']; + + $sql_order_gluc = "SELECT + COUNT(T_OrderDetailID) AS total + FROM t_orderdetail + JOIN t_test ON T_OrderDetailT_OrderHeaderID = {$prm['orderID']} AND + T_OrderDetailT_TestID = T_TestID AND + T_OrderDetailIsActive = 'Y' + JOIN nat_test ON T_TestNat_TestID = {$v_gluc[1]}"; + $query_order_gluc = $this->db_onedev->query($sql_order_gluc); + if (!$query_order_gluc) { + $message = $this->db_onedev->error(); + $message['qry'] = $this->db_onedev->last_query(); + $this->sys_error($message); + exit; + } + $order_gluc = $query_order_gluc->row_array()['total']; + + if ($sample_gluc > 0 && $order_gluc > 0) { + $sql = $this->db_onedev->query("SELECT * FROM order_glucose WHERE OrderGlucoseID = {$v_gluc[0]}"); + $x_data_before = $sql->result_array(); + $x_data_before = json_encode($x_data_before); + + $sql = "UPDATE order_glucose SET OrderGlucoseIsActive = 'N', OrderGlucoseDeleted = NOW(), OrderGlucoseDeletedUserID = '{$userid}' + WHERE + OrderGlucoseID = {$v_gluc[0]}"; + $this->db_onedev->query($sql); + $sql = "INSERT INTO order_glucose ( + OrderGlucoseT_OrderHeaderID, + OrderGlucoseNat_TestID, + OrderGlucoseResult, + OrderGlucoseCreated, + OrderGlucoseCreatedUserID + ) + VALUES( + {$prm['orderID']}, + {$v_gluc[1]}, + '{$v_gluc[3]}', + NOW(), + {$userid} + )"; + $this->db_onedev->query($sql); + $last_id_glucose = $this->db_onedev->insert_id(); + $sql = "UPDATE t_orderdetail + JOIN t_test ON T_OrderDetailT_OrderHeaderID = {$prm['orderID']} AND + T_OrderDetailT_TestID = T_TestID AND + T_OrderDetailIsActive = 'Y' + JOIN nat_test ON T_TestNat_TestID = {$v_gluc[1]} + SET T_OrderDetailResult = '{$v_gluc[3]}', + T_OrderDetailNormalValueNote = '< 100', + T_OrderDetailNormalValueDescription = '< 100', + T_OrderDetailLastUpdatedUserID = {$userid}, + T_OrderDetailLastUpdated = NOW() + "; + + $this->db_onedev->query($sql); + + // INSERT LOG + $sql = $this->db_onedev->query("SELECT * FROM order_glucose WHERE OrderGlucoseID = {$last_id_glucose}"); + $x_data_after = $sql->result_array(); + $x_data_after = json_encode($x_data_after); + + $sqllog = "INSERT INTO additionalfisik_log( + AdditionalFisikLogType, + AdditionalFisikLogT_OrderHeaderID, + AdditionalFisikLogJSONBefore, + AdditionalFisikLogJSONAfter, + AdditionalFisikLogCreated, + AdditionalFisikLogUserID) + VALUES ('GLUCOSE','{$prm['orderID']}','{$x_data_before}','{$x_data_after}',now(),'{$userid}')"; + $querylog = $this->db_onedev->query($sqllog); + } + } + } + + $result = array("message" => "Data glukosa berhasil disimpan"); + $this->sys_ok($result); + } catch (Exception $exc) { + $message = $exc->getMessage(); + $this->sys_error($message); + } } function getlab($id, $isApi) {