db->query($sql_get); if (!$qry) { $this->db->trans_rollback(); $this->sys_error_db("get ip regional failed", $this->db); exit; } $data = $qry->result_array(); return $data[0]['S_SystemIPAddressRegional']; } function updatestatus() { try { $getIPRegionalAddress = $this->getRegionalIPAddress(); $sql = "SELECT T_OrderID, T_OrderM_MouID, T_OrderM_CompanyID, T_OrderStatus, IFNULL(T_OrderUploadLogIsUploaded, 'N') AS T_OrderUploadLogIsUploaded, IFNULL(T_OrderUploadLogRetry, 0) AS T_OrderUploadLogRetry, IFNULL(T_OrderUploadLogType, 'RXT') AS T_OrderUploadLogType FROM one_rujukan_eksternal.t_order LEFT JOIN one_rujukan_eksternal.t_ordeuploadlog ON T_OrderID = T_OrderUploadLogOrderID AND (T_OrderUploadLogRetry < 5 OR T_OrderUploadLogRetry IS NULL) AND (T_OrderUploadLogType = 'RXT' OR T_OrderUploadLogType IS NULL) WHERE T_OrderStatus IN ('X', 'R', 'T') AND (T_OrderUploadLogIsUploaded = 'N' OR T_OrderUploadLogIsUploaded IS NULL) AND T_OrderIsActive = 'Y'"; $query = $this->db->query($sql, []); if (!$query) { $message = $this->db->error(); $this->sys_error($message); exit; } $result = $query->result_array(); // print_r($result); // exit; for ($i = 0; $i < count($result); $i++) { $sql = "SELECT T_OrderDetailSampleID AS id, T_OrderDetailSampleT_OrderID AS order_id, T_OrderDetailSampleStatus AS status, 'S' AS type FROM one_rujukan_eksternal.t_orderdetailsample WHERE T_OrderDetailSampleT_OrderID = ? AND T_OrderDetailSampleIsActive= 'Y' UNION SELECT T_OrderDetailBahanID AS id, T_OrderDetailBahanT_OrderID AS order_id, T_OrderDetailBahanStatus AS status, 'B' AS type FROM one_rujukan_eksternal.t_orderdetailbahan WHERE T_OrderDetailBahanT_OrderID = ? AND T_OrderDetailBahanIsActive = 'Y'"; $query = $this->db->query($sql, [$result[$i]['T_OrderID'], $result[$i]['T_OrderID']]); if (!$query) { $message = $this->db->error(); $this->sys_error($message); exit; } $result[$i]['sample'] = $query->result_array(); } // $z_param = gzcompress(json_encode($result)); // print_r(json_encode($result)); // exit; $resp = $this->post("http://$getIPRegionalAddress/one-api/one_rujukan_eksternal/Updatestatusreg/updatestatus", json_encode($result)); $response = json_decode($resp, true)['data'];; // $response = json_decode($resp); for ($i = 0; $i < count($response['success']); $i++) { $sql = "SELECT * FROM one_rujukan_eksternal.t_ordeuploadlog WHERE T_OrderUploadLogOrderID = ? AND T_OrderUploadLogType='RXT'"; $query = $this->db->query($sql, $response['success'][$i]); if (!$query) { $message = $this->db->error(); $this->sys_error($message); exit; } $rst = $query->result_array(); $data = ""; for ($k = 0; $k < count($result); $k++) { if ($result[$k]['T_OrderID'] == $response['success'][$i]) { $data = json_encode($result[$k]); } } if (count($rst) == 0) { $sql_success = "INSERT INTO one_rujukan_eksternal.t_ordeuploadlog (T_OrderUploadLogOrderID, T_OrderUploadLogJSON, T_OrderUploadLogType, T_OrderUploadLogIsUploaded, T_OrderUploadLogRetry) VALUES(?,?,?,?,?)"; $query_success = $this->db->query($sql_success, [$response['success'][$i], $data, 'RXT', 'Y', '1']); if (!$query_success) { $message = $this->db->error(); $this->sys_error($message); exit; } } else { $log = $rst[0]; $retry = intval($log['T_OrderUploadLogRetry']) + 1; $sql_success = "UPDATE one_rujukan_eksternal.t_ordeuploadlog SET T_OrderUploadLogIsUploaded = 'Y', T_OrderUploadLogRetry = ? WHERE T_OrderUploadLogOrderID = ? AND T_OrderUploadLogType='RXT'"; $query_success = $this->db->query($sql_success, [$retry, $response['success'][$i]]); if (!$query_success) { $message = $this->db->error(); $this->sys_error($message); exit; } } } for ($i = 0; $i < count($response['error']); $i++) { $sql = "SELECT * FROM one_rujukan_eksternal.t_ordeuploadlog WHERE T_OrderUploadLogOrderID = ? AND T_OrderUploadLogType='RXT'"; $query = $this->db->query($sql, $response['error'][$i]); if (!$query) { $message = $this->db->error(); $this->sys_error($message); exit; } $rst = $query->result_array(); $data = ""; for ($k = 0; $k < count($result); $k++) { if ($result[$k]['T_OrderID'] == $response['error'][$i]) { $data = json_encode($result[$k]); } } if (count($rst) == 0) { $sql_success = "INSERT INTO one_rujukan_eksternal.t_ordeuploadlog (T_OrderUploadLogOrderID, T_OrderUploadLogJSON, T_OrderUploadLogType, T_OrderUploadLogIsUploaded, T_OrderUploadLogRetry) VALUES(?,?,?,?,?)"; $query_success = $this->db->query($sql_success, [$response['error'][$i], $data, 'RXT', 'N', '1']); if (!$query_success) { $message = $this->db->error(); $this->sys_error($message); exit; } } else { $log = $rst[0]; $retry = intval($log['T_OrderUploadLogRetry']) + 1; $sql_success = "UPDATE one_rujukan_eksternal.t_ordeuploadlog SET T_OrderUploadLogIsUploaded = ?, T_OrderUploadLogRetry = ? WHERE T_OrderUploadLogOrderID = ? AND T_OrderUploadLogType='RXT'"; $query_success = $this->db->query($sql_success, ['N', $retry, $response['error'][$i]]); if (!$query_success) { $message = $this->db->error(); $this->sys_error($message); exit; } } } $this->sys_ok($response); } 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; } } function updatestatuspq() { try { $getIPRegionalAddress = $this->getRegionalIPAddress(); $sql = "SELECT IFNULL(T_OrderUploadLogIsUploaded, 'N') AS T_OrderUploadLogIsUploaded, IFNULL(T_OrderUploadLogRetry, 0) AS T_OrderUploadLogRetry, IFNULL(T_OrderUploadLogType, 'PQ') AS T_OrderUploadLogType, one_rujukan_eksternal.t_order.*, t_orderheader.*, t_orderdetail.* FROM t_orderheader JOIN one_rujukan_eksternal.t_order ON T_OrderHeaderID = T_OrderT_OrderHeaderID JOIN t_orderdetail ON T_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_OrderIsActive= 'Y' LEFT JOIN one_rujukan_eksternal.t_ordeuploadlog ON T_OrderID = T_OrderUploadLogOrderID AND (T_OrderUploadLogRetry < 5 OR T_OrderUploadLogRetry IS NULL) AND (T_OrderUploadLogType = 'PQ' OR T_OrderUploadLogType IS NULL) WHERE T_OrderHeaderIsActive = 'Y' AND (T_OrderUploadLogIsUploaded = 'N' OR T_OrderUploadLogIsUploaded IS NULL) "; $query = $this->db->query($sql, []); if (!$query) { $message = $this->db->error(); $this->sys_error($message); exit; } $result = $query->result_array(); $arrOrderID = []; $order = []; for ($i = 0; $i < count($result); $i++) { if (count($order) > 0) { if (!in_array($result[$i]['T_OrderHeaderID'], $arrOrderID)) { $arrOrderID[] = $result[$i]['T_OrderHeaderID']; $order[] = [ "orderID" => $result[$i]['T_OrderID'], "T_OrderHeaderID" => $result[$i]['T_OrderHeaderID'], "T_OrderHeaderDate" => $result[$i]['T_OrderHeaderDate'], "T_OrderHeaderLabNumber" => $result[$i]['T_OrderHeaderLabNumber'], "T_OrderHeaderLabNumberExt" => $result[$i]['T_OrderHeaderLabNumberExt'], "T_OrderHeaderQueue" => $result[$i]['T_OrderHeaderQueue'], "T_OrderHeaderM_PatientID" => $result[$i]['T_OrderHeaderM_PatientID'], "T_OrderHeaderM_CompanyID" => $result[$i]['T_OrderHeaderM_CompanyID'], "T_OrderHeaderM_MouID" => $result[$i]['T_OrderHeaderM_MouID'], "T_OrderHeaderM_PatientAge" => $result[$i]['T_OrderHeaderM_PatientAge'], "T_OrderHeaderSenderM_DoctorID" => $result[$i]['T_OrderHeaderSenderM_DoctorID'], "T_OrderHeaderSenderM_DoctorAddressID" => $result[$i]['T_OrderHeaderSenderM_DoctorAddressID'], "T_OrderHeaderPjM_DoctorID" => $result[$i]['T_OrderHeaderPjM_DoctorID'], "T_OrderHeaderM_LangID" => $result[$i]['T_OrderHeaderM_LangID'], "T_OrderHeaderLangIsSI" => $result[$i]['T_OrderHeaderLangIsSI'], "T_OrderHeaderIsCito" => $result[$i]['T_OrderHeaderIsCito'], "T_OrderHeaderNat_CitoID" => $result[$i]['T_OrderHeaderNat_CitoID'], "T_OrderHeaderDiagnose" => $result[$i]['T_OrderHeaderDiagnose'], "T_OrderHeaderDoctorNote" => $result[$i]['T_OrderHeaderDoctorNote'], "T_OrderHeaderVerificationNote" => $result[$i]['T_OrderHeaderVerificationNote'], "T_OrderHeaderVerificationNoteM_UserID" => $result[$i]['T_OrderHeaderVerificationNoteM_UserID'], "T_OrderHeaderFoNote" => $result[$i]['T_OrderHeaderFoNote'], "T_OrderHeaderSamplingNote" => $result[$i]['T_OrderHeaderSamplingNote'], "T_OrderHeaderResultNote" => $result[$i]['T_OrderHeaderResultNote'], "T_OrderHeaderFoNoteM_UserID" => $result[$i]['T_OrderHeaderFoNoteM_UserID'], "T_OrderHeaderSamplingNoteM_UserID" => $result[$i]['T_OrderHeaderSamplingNoteM_UserID'], "T_OrderHeaderResultNoteM_UserID" => $result[$i]['T_OrderHeaderResultNoteM_UserID'], "T_OrderHeaderReceivedSample" => $result[$i]['T_OrderHeaderReceivedSample'], "T_OrderHeaderSubTotal" => $result[$i]['T_OrderHeaderSubTotal'], "T_OrderHeaderRounding" => $result[$i]['T_OrderHeaderRounding'], "T_OrderHeaderTotal" => $result[$i]['T_OrderHeaderTotal'], "T_OrderHeaderCreated" => $result[$i]['T_OrderHeaderCreated'], "T_OrderHeaderLastUpdated" => $result[$i]['T_OrderHeaderLastUpdated'], "T_OrderHeaderUserID" => $result[$i]['T_OrderHeaderUserID'], "T_OrderHeaderIsActive" => $result[$i]['T_OrderHeaderIsActive'], "orderDetail" => [] ]; } for ($j = 0; $j < count($order); $j++) { if ($order[$j]['T_OrderHeaderID'] == $result[$i]['T_OrderDetailT_OrderHeaderID']) { $order[$j]['orderDetail'][] = [ "T_OrderDetailID" => $result[$i]['T_OrderDetailID'], "T_OrderDetailT_OrderHeaderID" => $result[$i]['T_OrderDetailT_OrderHeaderID'], "T_OrderDetailT_TestID" => $result[$i]['T_OrderDetailT_TestID'], "T_OrderDetailT_TestCode" => $result[$i]['T_OrderDetailT_TestCode'], "T_OrderDetailT_TestSasCode" => $result[$i]['T_OrderDetailT_TestSasCode'], "T_OrderDetailT_TestName" => $result[$i]['T_OrderDetailT_TestName'], "T_OrderDetailT_TestIsResult" => $result[$i]['T_OrderDetailT_TestIsResult'], "T_OrderDetailT_TestIsPanel" => $result[$i]['T_OrderDetailT_TestIsPanel'], "T_OrderDetailT_TestIsPanelChildren" => $result[$i]['T_OrderDetailT_TestIsPanelChildren'], "T_OrderDetailT_TestIsPanelChildrenPrintNota" => $result[$i]['T_OrderDetailT_TestIsPanelChildrenPrintNota'], "T_OrderDetailT_TestIsPrice" => $result[$i]['T_OrderDetailT_TestIsPrice'], "T_OrderDetailReq" => $result[$i]['T_OrderDetailReq'], "T_OrderDetailReqNote" => $result[$i]['T_OrderDetailReqNote'], "T_OrderDetailIsCito" => $result[$i]['T_OrderDetailIsCito'], "T_OrderDetailIsHidden" => $result[$i]['T_OrderDetailIsHidden'], "T_OrderDetailPrice" => $result[$i]['T_OrderDetailPrice'], "T_OrderDetailPriceForDisc" => $result[$i]['T_OrderDetailPriceForDisc'], "T_OrderDetailDisc" => $result[$i]['T_OrderDetailDisc'], "T_OrderDetailDiscAmount" => $result[$i]['T_OrderDetailDiscAmount'], "T_OrderDetailDiscTotal" => $result[$i]['T_OrderDetailDiscTotal'], "T_OrderDetailTotal" => $result[$i]['T_OrderDetailTotal'], "T_OrderDetailHasResult" => $result[$i]['T_OrderDetailHasResult'], "T_OrderDetailResult" => $result[$i]['T_OrderDetailResult'], "T_OrderDetailResultFlag" => $result[$i]['T_OrderDetailResultFlag'], "T_OrderDetailNote" => $result[$i]['T_OrderDetailNote'], "T_OrderDetailNat_UnitID" => $result[$i]['T_OrderDetailNat_UnitID'], "T_OrderDetailNat_UnitName" => $result[$i]['T_OrderDetailNat_UnitName'], "T_OrderDetailT_OrderPromiseID" => $result[$i]['T_OrderDetailT_OrderPromiseID'], "T_OrderDetailNat_InstrumentID" => $result[$i]['T_OrderDetailNat_InstrumentID'], "T_OrderDetailVerDeltaCheck" => $result[$i]['T_OrderDetailVerDeltaCheck'], "T_OrderDetailVerTrendAnalysis" => $result[$i]['T_OrderDetailVerTrendAnalysis'], "T_OrderDetailVerification" => $result[$i]['T_OrderDetailVerification'], "T_OrderDetailVerDate" => $result[$i]['T_OrderDetailVerDate'], "T_OrderDetailVerUserID" => $result[$i]['T_OrderDetailVerUserID'], "T_OrderDetailValMRState" => $result[$i]['T_OrderDetailValMRState'], "T_OrderDetailValidation" => $result[$i]['T_OrderDetailValidation'], "T_OrderDetailValDate" => $result[$i]['T_OrderDetailValDate'], "T_OrderDetailValUserID" => $result[$i]['T_OrderDetailValUserID'], "T_OrderDetailValidation1" => $result[$i]['T_OrderDetailValidation1'], "T_OrderDetailValidation1UserID" => $result[$i]['T_OrderDetailValidation1UserID'], "T_OrderDetailValidation1Time" => $result[$i]['T_OrderDetailValidation1Time'], "T_OrderDetailValidation2" => $result[$i]['T_OrderDetailValidation2'], "T_OrderDetailValidation2UserID" => $result[$i]['T_OrderDetailValidation2UserID'], "T_OrderDetailValidation2Time" => $result[$i]['T_OrderDetailValidation2Time'], "T_OrderDetailReqStatus" => $result[$i]['T_OrderDetailReqStatus'], "T_OrderDetailPrintCount" => $result[$i]['T_OrderDetailPrintCount'], "T_OrderDetailPrintBy" => $result[$i]['T_OrderDetailPrintBy'], "T_OrderDetailPrintTime" => $result[$i]['T_OrderDetailPrintTime'], "T_OrderDetailM_StatusDetailID" => $result[$i]['T_OrderDetailM_StatusDetailID'], "T_OrderDetailCreated" => $result[$i]['T_OrderDetailCreated'], "T_OrderDetailLastUpdated" => $result[$i]['T_OrderDetailLastUpdated'], "T_OrderDetailUserID" => $result[$i]['T_OrderDetailUserID'], "T_OrderDetailIsActive" => $result[$i]['T_OrderDetailIsActive'], "T_OrderDetailNat_NormalValueID" => $result[$i]['T_OrderDetailNat_NormalValueID'], "T_OrderDetailNormalValueNote" => $result[$i]['T_OrderDetailNormalValueNote'], "T_OrderDetailNormalValueDescription" => $result[$i]['T_OrderDetailNormalValueDescription'], "T_OrderDetailMinValue" => $result[$i]['T_OrderDetailMinValue'], "T_OrderDetailMaxValue" => $result[$i]['T_OrderDetailMaxValue'], "T_OrderDetailMinValueInclusive" => $result[$i]['T_OrderDetailMinValueInclusive'], "T_OrderDetailMaxValueInclusive" => $result[$i]['T_OrderDetailMaxValueInclusive'], "T_OrderDetailNat_MethodeID" => $result[$i]['T_OrderDetailNat_MethodeID'], "T_OrderdetailNat_MethodeName" => $result[$i]['T_OrderdetailNat_MethodeName'], "T_OrderDetailNat_NormalValueAnimalID" => $result[$i]['T_OrderDetailNat_NormalValueAnimalID'], "T_OrderDetailInternalNote" => $result[$i]['T_OrderDetailInternalNote'], ]; } } } else { $arrOrderID[] = $result[$i]['T_OrderHeaderID']; $order[] = [ "orderID" => $result[$i]['T_OrderID'], "T_OrderHeaderID" => $result[$i]['T_OrderHeaderID'], "T_OrderHeaderDate" => $result[$i]['T_OrderHeaderDate'], "T_OrderHeaderLabNumber" => $result[$i]['T_OrderHeaderLabNumber'], "T_OrderHeaderLabNumberExt" => $result[$i]['T_OrderHeaderLabNumberExt'], "T_OrderHeaderQueue" => $result[$i]['T_OrderHeaderQueue'], "T_OrderHeaderM_PatientID" => $result[$i]['T_OrderHeaderM_PatientID'], "T_OrderHeaderM_CompanyID" => $result[$i]['T_OrderHeaderM_CompanyID'], "T_OrderHeaderM_MouID" => $result[$i]['T_OrderHeaderM_MouID'], "T_OrderHeaderM_PatientAge" => $result[$i]['T_OrderHeaderM_PatientAge'], "T_OrderHeaderSenderM_DoctorID" => $result[$i]['T_OrderHeaderSenderM_DoctorID'], "T_OrderHeaderSenderM_DoctorAddressID" => $result[$i]['T_OrderHeaderSenderM_DoctorAddressID'], "T_OrderHeaderPjM_DoctorID" => $result[$i]['T_OrderHeaderPjM_DoctorID'], "T_OrderHeaderM_LangID" => $result[$i]['T_OrderHeaderM_LangID'], "T_OrderHeaderLangIsSI" => $result[$i]['T_OrderHeaderLangIsSI'], "T_OrderHeaderIsCito" => $result[$i]['T_OrderHeaderIsCito'], "T_OrderHeaderNat_CitoID" => $result[$i]['T_OrderHeaderNat_CitoID'], "T_OrderHeaderDiagnose" => $result[$i]['T_OrderHeaderDiagnose'], "T_OrderHeaderDoctorNote" => $result[$i]['T_OrderHeaderDoctorNote'], "T_OrderHeaderVerificationNote" => $result[$i]['T_OrderHeaderVerificationNote'], "T_OrderHeaderVerificationNoteM_UserID" => $result[$i]['T_OrderHeaderVerificationNoteM_UserID'], "T_OrderHeaderFoNote" => $result[$i]['T_OrderHeaderFoNote'], "T_OrderHeaderSamplingNote" => $result[$i]['T_OrderHeaderSamplingNote'], "T_OrderHeaderResultNote" => $result[$i]['T_OrderHeaderResultNote'], "T_OrderHeaderFoNoteM_UserID" => $result[$i]['T_OrderHeaderFoNoteM_UserID'], "T_OrderHeaderSamplingNoteM_UserID" => $result[$i]['T_OrderHeaderSamplingNoteM_UserID'], "T_OrderHeaderResultNoteM_UserID" => $result[$i]['T_OrderHeaderResultNoteM_UserID'], "T_OrderHeaderReceivedSample" => $result[$i]['T_OrderHeaderReceivedSample'], "T_OrderHeaderSubTotal" => $result[$i]['T_OrderHeaderSubTotal'], "T_OrderHeaderRounding" => $result[$i]['T_OrderHeaderRounding'], "T_OrderHeaderTotal" => $result[$i]['T_OrderHeaderTotal'], "T_OrderHeaderCreated" => $result[$i]['T_OrderHeaderCreated'], "T_OrderHeaderLastUpdated" => $result[$i]['T_OrderHeaderLastUpdated'], "T_OrderHeaderUserID" => $result[$i]['T_OrderHeaderUserID'], "T_OrderHeaderIsActive" => $result[$i]['T_OrderHeaderIsActive'], "orderDetail" => [[ "T_OrderDetailID" => $result[$i]['T_OrderDetailID'], "T_OrderDetailT_OrderHeaderID" => $result[$i]['T_OrderDetailT_OrderHeaderID'], "T_OrderDetailT_TestID" => $result[$i]['T_OrderDetailT_TestID'], "T_OrderDetailT_TestCode" => $result[$i]['T_OrderDetailT_TestCode'], "T_OrderDetailT_TestSasCode" => $result[$i]['T_OrderDetailT_TestSasCode'], "T_OrderDetailT_TestName" => $result[$i]['T_OrderDetailT_TestName'], "T_OrderDetailT_TestIsResult" => $result[$i]['T_OrderDetailT_TestIsResult'], "T_OrderDetailT_TestIsPanel" => $result[$i]['T_OrderDetailT_TestIsPanel'], "T_OrderDetailT_TestIsPanelChildren" => $result[$i]['T_OrderDetailT_TestIsPanelChildren'], "T_OrderDetailT_TestIsPanelChildrenPrintNota" => $result[$i]['T_OrderDetailT_TestIsPanelChildrenPrintNota'], "T_OrderDetailT_TestIsPrice" => $result[$i]['T_OrderDetailT_TestIsPrice'], "T_OrderDetailReq" => $result[$i]['T_OrderDetailReq'], "T_OrderDetailReqNote" => $result[$i]['T_OrderDetailReqNote'], "T_OrderDetailIsCito" => $result[$i]['T_OrderDetailIsCito'], "T_OrderDetailIsHidden" => $result[$i]['T_OrderDetailIsHidden'], "T_OrderDetailPrice" => $result[$i]['T_OrderDetailPrice'], "T_OrderDetailPriceForDisc" => $result[$i]['T_OrderDetailPriceForDisc'], "T_OrderDetailDisc" => $result[$i]['T_OrderDetailDisc'], "T_OrderDetailDiscAmount" => $result[$i]['T_OrderDetailDiscAmount'], "T_OrderDetailDiscTotal" => $result[$i]['T_OrderDetailDiscTotal'], "T_OrderDetailTotal" => $result[$i]['T_OrderDetailTotal'], "T_OrderDetailHasResult" => $result[$i]['T_OrderDetailHasResult'], "T_OrderDetailResult" => $result[$i]['T_OrderDetailResult'], "T_OrderDetailResultFlag" => $result[$i]['T_OrderDetailResultFlag'], "T_OrderDetailNote" => $result[$i]['T_OrderDetailNote'], "T_OrderDetailNat_UnitID" => $result[$i]['T_OrderDetailNat_UnitID'], "T_OrderDetailNat_UnitName" => $result[$i]['T_OrderDetailNat_UnitName'], "T_OrderDetailT_OrderPromiseID" => $result[$i]['T_OrderDetailT_OrderPromiseID'], "T_OrderDetailNat_InstrumentID" => $result[$i]['T_OrderDetailNat_InstrumentID'], "T_OrderDetailVerDeltaCheck" => $result[$i]['T_OrderDetailVerDeltaCheck'], "T_OrderDetailVerTrendAnalysis" => $result[$i]['T_OrderDetailVerTrendAnalysis'], "T_OrderDetailVerification" => $result[$i]['T_OrderDetailVerification'], "T_OrderDetailVerDate" => $result[$i]['T_OrderDetailVerDate'], "T_OrderDetailVerUserID" => $result[$i]['T_OrderDetailVerUserID'], "T_OrderDetailValMRState" => $result[$i]['T_OrderDetailValMRState'], "T_OrderDetailValidation" => $result[$i]['T_OrderDetailValidation'], "T_OrderDetailValDate" => $result[$i]['T_OrderDetailValDate'], "T_OrderDetailValUserID" => $result[$i]['T_OrderDetailValUserID'], "T_OrderDetailValidation1" => $result[$i]['T_OrderDetailValidation1'], "T_OrderDetailValidation1UserID" => $result[$i]['T_OrderDetailValidation1UserID'], "T_OrderDetailValidation1Time" => $result[$i]['T_OrderDetailValidation1Time'], "T_OrderDetailValidation2" => $result[$i]['T_OrderDetailValidation2'], "T_OrderDetailValidation2UserID" => $result[$i]['T_OrderDetailValidation2UserID'], "T_OrderDetailValidation2Time" => $result[$i]['T_OrderDetailValidation2Time'], "T_OrderDetailReqStatus" => $result[$i]['T_OrderDetailReqStatus'], "T_OrderDetailPrintCount" => $result[$i]['T_OrderDetailPrintCount'], "T_OrderDetailPrintBy" => $result[$i]['T_OrderDetailPrintBy'], "T_OrderDetailPrintTime" => $result[$i]['T_OrderDetailPrintTime'], "T_OrderDetailM_StatusDetailID" => $result[$i]['T_OrderDetailM_StatusDetailID'], "T_OrderDetailCreated" => $result[$i]['T_OrderDetailCreated'], "T_OrderDetailLastUpdated" => $result[$i]['T_OrderDetailLastUpdated'], "T_OrderDetailUserID" => $result[$i]['T_OrderDetailUserID'], "T_OrderDetailIsActive" => $result[$i]['T_OrderDetailIsActive'], "T_OrderDetailNat_NormalValueID" => $result[$i]['T_OrderDetailNat_NormalValueID'], "T_OrderDetailNormalValueNote" => $result[$i]['T_OrderDetailNormalValueNote'], "T_OrderDetailNormalValueDescription" => $result[$i]['T_OrderDetailNormalValueDescription'], "T_OrderDetailMinValue" => $result[$i]['T_OrderDetailMinValue'], "T_OrderDetailMaxValue" => $result[$i]['T_OrderDetailMaxValue'], "T_OrderDetailMinValueInclusive" => $result[$i]['T_OrderDetailMinValueInclusive'], "T_OrderDetailMaxValueInclusive" => $result[$i]['T_OrderDetailMaxValueInclusive'], "T_OrderDetailNat_MethodeID" => $result[$i]['T_OrderDetailNat_MethodeID'], "T_OrderdetailNat_MethodeName" => $result[$i]['T_OrderdetailNat_MethodeName'], "T_OrderDetailNat_NormalValueAnimalID" => $result[$i]['T_OrderDetailNat_NormalValueAnimalID'], "T_OrderDetailInternalNote" => $result[$i]['T_OrderDetailInternalNote'], ]] ]; } } for ($i = 0; $i < count($order); $i++) { $status = []; for ($j = 0; $j < count($order[$i]['orderDetail']); $j++) { $status[] = $order[$i]['orderDetail'][$j]['T_OrderDetailValidation']; } if (in_array('X', $status)) { $order[$i]['status'] = "Q"; } else { $order[$i]['status'] = "P"; } } $resp = $this->post("http://$getIPRegionalAddress/one-api/one_rujukan_eksternal/Updatestatusreg/updatestatuspq", json_encode($order)); $response = json_decode($resp, true)['data'];; // // $response = json_decode($resp); // print_r($order); // exit; for ($i = 0; $i < count($response['success']); $i++) { $sql = "SELECT * FROM one_rujukan_eksternal.t_ordeuploadlog WHERE T_OrderUploadLogOrderID = ? AND T_OrderUploadLogType='PQ'"; $query = $this->db->query($sql, $response['success'][$i]); if (!$query) { $message = $this->db->error(); $this->sys_error($message); exit; } $rst = $query->result_array(); $data = ""; for ($k = 0; $k < count($order); $k++) { if ($order[$k]['orderID'] == $response['success'][$i]) { $data = json_encode($order[$k]); } } if (count($rst) == 0) { $sql_success = "INSERT INTO one_rujukan_eksternal.t_ordeuploadlog (T_OrderUploadLogOrderID, T_OrderUploadLogJSON, T_OrderUploadLogType, T_OrderUploadLogIsUploaded, T_OrderUploadLogRetry) VALUES(?,?,?,?,?)"; $query_success = $this->db->query($sql_success, [$response['success'][$i], $data, 'PQ', 'Y', '1']); if (!$query_success) { $message = $this->db->error(); $this->sys_error($message); exit; } } else { $log = $rst[0]; $retry = intval($log['T_OrderUploadLogRetry']) + 1; $sql_success = "UPDATE one_rujukan_eksternal.t_ordeuploadlog SET T_OrderUploadLogIsUploaded = 'Y', T_OrderUploadLogRetry = ? WHERE T_OrderUploadLogOrderID = ? AND T_OrderUploadLogType='PQ'"; $query_success = $this->db->query($sql_success, [$retry, $response['success'][$i]]); if (!$query_success) { $message = $this->db->error(); $this->sys_error($message); exit; } } } for ($i = 0; $i < count($response['error']); $i++) { $sql = "SELECT * FROM one_rujukan_eksternal.t_ordeuploadlog WHERE T_OrderUploadLogOrderID = ? AND T_OrderUploadLogType='PQ'"; $query = $this->db->query($sql, $response['error'][$i]); if (!$query) { $message = $this->db->error(); $this->sys_error($message); exit; } $rst = $query->result_array(); $data = ""; for ($k = 0; $k < count($result); $k++) { if ($result[$k]['orderID'] == $response['error'][$i]) { $data = json_encode($result[$k]); } } if (count($rst) == 0) { $sql_success = "INSERT INTO one_rujukan_eksternal.t_ordeuploadlog (T_OrderUploadLogOrderID, T_OrderUploadLogJSON, T_OrderUploadLogType, T_OrderUploadLogIsUploaded, T_OrderUploadLogRetry) VALUES(?,?,?,?,?)"; $query_success = $this->db->query($sql_success, [$response['error'][$i], $data, 'PQ', 'N', '1']); if (!$query_success) { $message = $this->db->error(); $this->sys_error($message); exit; } } else { $log = $rst[0]; $retry = intval($log['T_OrderUploadLogRetry']) + 1; $sql_success = "UPDATE one_rujukan_eksternal.t_ordeuploadlog SET T_OrderUploadLogIsUploaded = ?, T_OrderUploadLogRetry = ? WHERE T_OrderUploadLogOrderID = ? AND T_OrderUploadLogType='PQ'"; $query_success = $this->db->query($sql_success, ['N', $retry, $response['error'][$i]]); if (!$query_success) { $message = $this->db->error(); $this->sys_error($message); exit; } } } $this->sys_ok($response); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function updateStatusPickup() { try { $getIPRegionalAddress = $this->getRegionalIPAddress(); $sql = "SELECT * FROM one_rujukan_eksternal.t_orderdelivery LEFT JOIN one_rujukan_eksternal.t_orderdeliveryuploadlog ON T_OrderDeliveryID = T_OrderDeliveryUploadLogT_OrderDeliveryID WHERE T_OrderDeliveryStatus = 'U' AND (T_OrderDeliveryUploadLogType = 'U' OR T_OrderDeliveryUploadLogType IS NULL) AND (T_OrderDeliveryUploadRetry < 5 OR T_OrderDeliveryUploadRetry IS NULL) AND ( T_OrderDeliveryUploadLogIsUploaded = 'N' OR T_OrderDeliveryUploadLogIsUploaded IS NULL) AND T_OrderDeliveryIsActive = 'Y'"; $query = $this->db->query($sql, []); if (!$query) { $message = $this->db->error(); $this->sys_error($message); exit; } $result = $query->result_array(); $dataSend = array(); for ($i = 0; $i < count($result); $i++) { $dataSend[] = $result[$i]['T_OrderDeliveryID']; } $resp = $this->post("http://$getIPRegionalAddress/one-api/one_rujukan_eksternal/Updatestatusreg/updatestatuspickup", json_encode(['data' => $dataSend])); $respData = json_decode($resp, true); for ($i = 0; $i < count($respData['success']); $i++) { $dataSuccess = array(); for ($j = 0; $j < count($result); $j++) { if ($result[$j]['T_OrderDeliveryID'] == $respData['success'][$i]) { $dataSuccess = $result[$i]; } } if ($dataSuccess['T_OrderDeliveryUploadLogID'] == NULL) { //insert $sql = "INSERT INTO one_rujukan_eksternal.t_orderdeliveryuploadlog( T_OrderDeliveryUploadLogT_OrderDeliveryID, T_OrderDeliveryUploadLogType, T_OrderDeliveryUploadLogIsUploaded, T_OrderDeliveryUploadRetry) VALUES(?,'U','Y',1)"; $query = $this->db->query($sql, [$dataSuccess['T_OrderDeliveryID']]); if (!$query) { $message = $this->db->error(); $this->sys_error($message); exit; } } else { $sql = "UPDATE one_rujukan_eksternal.t_orderdeliveryuploadlog SET T_OrderDeliveryUploadLogIsUploaded = 'Y', T_OrderDeliveryUploadRetry = ? WHERE T_OrderDeliveryUploadLogT_OrderDeliveryID = ?"; $query = $this->db->query($sql, [ intval($dataSuccess['T_OrderDeliveryUploadRetry']) + 1, $dataSuccess['T_OrderDeliveryID'] ]); if (!$query) { $message = $this->db->error(); $this->sys_error($message); exit; } } } for ($i = 0; $i < count($respData['error']); $i++) { $dataError = array(); for ($j = 0; $j < count($result); $j++) { if ($result[$i]['T_OrderDeliveryID'] == $respData['error'][$i]) { # code... $dataError = $result[$i]; } } if ($dataError['T_OrderDeliveryUploadLogID'] == NULL) { //insert $sql = "INSERT INTO one_rujukan_eksternal.t_orderdeliveryuploadlog( T_OrderDeliveryUploadLogT_OrderDeliveryID, T_OrderDeliveryUploadLogType, T_OrderDeliveryUploadLogIsUploaded, T_OrderDeliveryUploadRetry) VALUES(?,'U','N',1)"; $query = $this->db->query($sql, [$dataError['T_OrderDeliveryID']]); if (!$query) { $message = $this->db->error(); $this->sys_error($message); exit; } } else { $sql = "UPDATE one_rujukan_eksternal.t_orderdeliveryuploadlog SET T_OrderDeliveryUploadLogIsUploaded = 'N', T_OrderDeliveryUploadRetry = ? WHERE T_OrderDeliveryUploadLogT_OrderDeliveryID = ?"; $query = $this->db->query($sql, [ intval($dataError['T_OrderDeliveryUploadRetry']) + 1, $dataError['T_OrderDeliveryID'] ]); if (!$query) { $message = $this->db->error(); $this->sys_error($message); exit; } } } $this->sys_ok($respData); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } }