db->query($sql_get); if (!$qry) { $this->sys_error_db("get ip regional failed", $this->db); $this->db->trans_rollback(); exit; } $data = $qry->result_array(); return $data[0]['S_SystemIPAddressRegional']; } function updatestatus() { try { $prm = $this->sys_input; $limit = 10; if (isset($prm['limit'])) { $limit = $prm['limit']; } $getIPRegionalAddress = $this->getRegionalIPAddress(); // T_OrderFutureOrderID, // T_OrderOderHeaderID, // FutureMapT_OrderHeaderID $sql = "SELECT GROUP_CONCAT(T_OrderID) AS ID FROM one_mitra.t_order JOIN future_map ON T_OrderFutureOrderID = FutureMapFutureOrderID AND FutureMapIsActive = 'Y' WHERE T_OrderOderHeader IS NULL AND T_OrderIsActive = 'Y' LIMIT ?"; $qry = $this->db->query($sql, [$limit]); if (!$qry) { $this->db->trans_rollback(); $this->sys_error_db("", $this->db->error()); exit; } $statusOrder = $qry->result_array(); // T_OrderFutureOrderID, // FutureQrCodeConfirmIsStatus $sql = "SELECT GROUP_CONCAT(T_OrderID) AS ID FROM one_mitra.t_order JOIN future_qrcode_confirm ON T_OrderFutureOrderID = FutureQrCodeConfirmFutureOrderID AND FutureQrCodeConfirmIsActive = 'Y' AND FutureQrCodeConfirmIsStatus IN ('S','R') WHERE T_OrderIsActive = 'Y' AND T_OrderWAStatus = 'N' LIMIT ?"; $qry = $this->db->query($sql, [$limit]); if (!$qry) { $this->db->trans_rollback(); $this->sys_error_db("", $this->db->error()); exit; } $statusWa = $qry->result_array(); if (count($statusWa) > 0) { $statusWa = explode(',', $statusWa[0]['ID']); } else { $statusWa = []; } if (count($statusOrder) > 0) { $statusOrder = explode(',', $statusOrder[0]['ID']); } else { $statusOrder = []; } $data = [ "order" => $statusOrder, "wa" => $statusWa, ]; $z_param = gzcompress(json_encode($data)); $resp = $this->post("http://$getIPRegionalAddress/one-api/one_mitra/Updatestatusreg/updatestatusorder", $z_param); $resultUnc = gzuncompress($resp); $result = json_decode($resultUnc, true); // $this->sys_ok($result); // exit; $successOrder = $result['order']['success']; $successWa = $result['wa']['success']; for ($i = 0; $i < count($successOrder); $i++) { $sql = "UPDATE one_mitra.t_order SET T_OrderOderHeader = 'Y' WHERE T_OrderID = ? AND T_OrderIsActive = 'Y'"; $qry = $this->db->query($sql, [$successOrder[$i]]); if (!$qry) { $this->sys_error_db($this->db->error()); exit; } } for ($i = 0; $i < count($successWa); $i++) { $sql = "UPDATE one_mitra.t_order SET T_OrderWAStatus = 'Y' WHERE T_OrderID = ? AND T_OrderIsActive = 'Y'"; $qry = $this->db->query($sql, [$successWa[$i]]); if (!$qry) { $this->sys_error_db($this->db->error()); exit; } } $this->sys_ok($result); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } public function post($url, $data) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "Content-Type: application/text", "Content-Length: " . strlen($data), ]); $result = curl_exec($ch); if (curl_error($ch) != "") { echo json_encode([ "status" => "ERR", "message" => "Http Error : " . curl_error($ch), ]); curl_close($ch); exit(); } curl_close($ch); return $result; } function convertobjtoarr($data) { if (is_object($data)) { $data = get_object_vars($data); } if (is_array($data)) { return array_map(__FUNCTION__, $data); } else { return $data; } } }