db_onedev = $this->load->database("onedev", true); } public function save() { try { //# cek token valid if (! $this->isLogin) { $this->sys_error("Invalid Token"); exit; } //# ambil parameter input $xuserid = $this->sys_user['M_UserID']; $prm = $this->sys_input; $orderid = $prm['orderid']; $supplies = $prm['supplies']; $barcodes = $prm['barcode']; $dt_log = array('orderid'=>$orderid,'supplies'=>$supplies,'barcode'=>$barcode); $fologcode = 'FO.Verification.BarcodeSupplies'; $json_dt_log = json_encode($dt_log); $sql = "insert into one_log.log_supplies_barcode( Log_SuppliesBarcodeDate, Log_SuppliesBarcodeCode, Log_SuppliesBarcodeJson, Log_SuppliesBarcodeUserID) values( now(), ?, ?, ?)"; //echo $sql; $query = $this->db_onedev->query($sql, array( $fologcode, $json_dt_log, $xuserid ) ); if (!$query) { $this->sys_error_db("one_log.log_supplies_barcode insert"); exit; } //print_r($supplies); foreach($supplies as $k => $v){ if(intval($v['xid']) == 0 && $v['chex'] == true){ $sql = "insert into t_ordersupplies( T_OrderSuppliesT_OrderHeaderID, T_OrderSuppliesM_SuppliesID, T_OrderSuppliesQty, T_OrderSuppliesCreated, T_OrderSuppliesLastUpdated, T_OrderSuppliesUserID) values( ?, ?, ?, now(),now(),?)"; //echo $sql; $query = $this->db_onedev->query($sql, array( $orderid, $v['id'], $v['qty'], $xuserid ) ); if (!$query) { $this->sys_error_db("t_ordersupplies insert"); exit; } } if(intval($v['xid']) > 0 && $v['chex'] == true){ $sql = "update t_ordersupplies set T_OrderSuppliesQty = {$v['qty']}, T_OrderSuppliesLastUpdated = now(), T_OrderSuppliesUserID = {$xuserid} where T_OrderSuppliesID = ? "; //echo $sql; $query = $this->db_onedev->query($sql, array( $v['xid'] ) ); if (!$query) { $this->sys_error_db("t_ordersupplies update"); exit; } } if(intval($v['xid']) > 0 && $v['chex'] == false){ $sql = "update t_ordersupplies set T_OrderSuppliesIsActive = 'N' , T_OrderSuppliesLastUpdated = now(), T_OrderSuppliesUserID = $xuserid where T_OrderSuppliesID = ? "; //echo $sql; $query = $this->db_onedev->query($sql, array( $v['xid'] ) ); if (!$query) { $this->sys_error_db("t_ordersupplies update"); exit; } } } $sql = "UPDATE t_barcodelab SET T_BarcodeLabIsActive = 'N' WHERE T_BarcodeLabT_OrderHeaderID = {$orderid}"; $updatex = $this->db_onedev->query($sql); foreach($barcodes as $i => $barcode){ $children = $barcode['children']; foreach($children as $k => $v){ if(intval($v['xid']) == 0){ $sql = "insert into t_barcodelab( T_BarcodeLabT_OrderHeaderID, T_BarcodeLabBarcode, T_BarcodeLabT_SampleTypeID, T_BarcodeLabCreated, T_BarcodeLabLastUpdated, T_BarcodeLabUserID) values( ?, ?, ?, now(),now(),?)"; $query = $this->db_onedev->query($sql, array( $orderid, $v['barcodenumber'], $v['id'], $xuserid ) ); if (!$query) { $this->sys_error_db("t_barcodelab insert"); exit; } }else{ $sql = "UPDATE t_barcodelab SET T_BarcodeLabIsActive = 'Y' WHERE T_BarcodeLabID = {$v['xid']} "; $updatex = $this->db_onedev->query($sql); } } } $sql = "select M_SuppliesID as id, IFNULL(T_OrderSuppliesID,0) as xid, IF(ISNULL(T_OrderSuppliesID),'N',T_OrderSuppliesIsActive) as chex, IFNULL(T_OrderSuppliesQty,1) as qty, M_SuppliesName as name, IF(ISNULL(T_OrderSuppliesID),NOW(),T_OrderSuppliesLastUpdated) as lastupdated, IF(ISNULL(T_OrderSuppliesID),NOW(),T_OrderSuppliesLastUpdated) as tx_lastupdated from m_supplies left join t_ordersupplies ON T_OrderSuppliesT_OrderHeaderID = ? AND T_OrderSuppliesM_SuppliesID = M_SuppliesID WHERE M_SuppliesIsActive = 'Y'"; $sql_param = array($orderid); $query = $this->db_onedev->query($sql,$sql_param); if ($query) { $rows_supplies = $query->result_array(); foreach($rows_supplies as $k => $v){ if($v['chex'] == 'N') $rows_supplies[$k]['chex'] = false; else $rows_supplies[$k]['chex'] = true; } } else { $this->sys_error_db("t_ordersupplies select"); exit; } $query =" SELECT T_SampleTypeID as id, T_SampleTypeName as name, '' as children FROM t_orderheader JOIN t_orderdetail ON T_OrderDetailT_OrderHeaderID = T_OrderHeaderID JOIN t_test ON T_OrderDetailT_TestID = T_TestID JOIN t_sampletype ON T_TestT_SampleTypeID = T_SampleTypeID WHERE T_OrderHeaderID = {$orderid} GROUP BY T_SampleTypeID "; // echo $query ; $rows_barcode = $this->db_onedev->query($query)->result(); foreach($rows_barcode as $k => $v){ $query = "SELECT T_SampleTypeID as id, IFNULL(T_BarcodeLabID,0) as xid, IF(ISNULL(T_BarcodeLabID),'Y',T_BarcodeLabIsActive) as chex, T_TestName as testname, T_SampleTypeName as samplename, IF(ISNULL(T_BarcodeLabID),CONCAT(T_OrderHeaderLabNumber,'.',T_SampleTypeID,'.',1),T_BarcodeLabBarcode) as barcodenumber FROM t_orderdetail JOIN t_orderheader ON T_OrderHeaderID = T_OrderDetailT_OrderHeaderID JOIN t_test ON T_OrderDetailT_TestID = T_TestID JOIN t_sampletype ON T_TestT_SampleTypeID = T_SampleTypeID LEFT JOIN t_barcodelab ON T_BarcodeLabT_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_BarcodeLabT_SampleTypeID = T_TestT_SampleTypeID AND T_BarcodeLabIsActive = 'Y' WHERE T_OrderDetailT_OrderHeaderID = {$orderid} AND T_SampleTypeID = {$v->id} GROUP BY T_BarcodeLabID "; $v->children = $this->db_onedev->query($query)->result_array(); foreach($v->children as $ki => $vi){ if($vi['chex'] == 'N') $v->children[$ki]['chex'] = false; else $v->children[$ki]['chex'] = true; } } $result = array ("total" => count($rows), "records" => array('supplies'=>$rows_supplies,'barcode'=>$rows_barcode)); $this->sys_ok($result); } catch(Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } }