937 lines
53 KiB
PHP
937 lines
53 KiB
PHP
<?php
|
|
class Updatestatus extends MY_Controller
|
|
{
|
|
var $db;
|
|
function __construct()
|
|
{
|
|
parent::__construct();
|
|
}
|
|
function index()
|
|
{
|
|
echo "Api: UPDATE STATUS X/R";
|
|
}
|
|
public function getRegionalIPAddress()
|
|
{
|
|
$sql_get = "SELECT S_SystemIPAddressRegional
|
|
FROM conf_systems
|
|
WHERE S_SystemsIsActive = 'Y'";
|
|
|
|
$qry = $this->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 getBranch()
|
|
{
|
|
try {
|
|
$sql = "SELECT M_BranchID, M_BranchCode FROM m_branch
|
|
WHERE M_BranchIsDefault = 'Y' AND M_BranchIsActive = 'Y'";
|
|
$qry = $this->db->query($sql, array());
|
|
if (!$qry) {
|
|
$response = [
|
|
'status' => false,
|
|
"message" => $this->db->error()["message"],
|
|
"msg" => "error get branch data ",
|
|
'query' => $this->db->last_query()
|
|
];
|
|
return $response;
|
|
}
|
|
$result = $qry->row_array();
|
|
return [
|
|
'status' => true,
|
|
'branchId' => $result['M_BranchID'],
|
|
'branchCode' => $result['M_BranchCode']
|
|
];
|
|
} catch (Exception $exc) {
|
|
$message = $exc->getMessage();
|
|
return [
|
|
'status' => false,
|
|
'message' => $message
|
|
];
|
|
}
|
|
}
|
|
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
|
|
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)
|
|
WHERE
|
|
T_OrderDeliveryStatus = 'U'
|
|
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);
|
|
}
|
|
}
|
|
|
|
function updateReason()
|
|
{
|
|
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
|
|
AND (T_OrderDeliveryUploadLogType = 'R' OR T_OrderDeliveryUploadLogType IS NULL)
|
|
AND (T_OrderDeliveryUploadRetry < 5 OR T_OrderDeliveryUploadRetry IS NULL)
|
|
AND ( T_OrderDeliveryUploadLogIsUploaded = 'N' OR T_OrderDeliveryUploadLogIsUploaded IS NULL)
|
|
WHERE
|
|
T_OrderDeliveryIsActive = 'Y'
|
|
AND (T_OrderDeliveryReason IS NOT NULL OR T_OrderDeliveryReason <> '')";
|
|
$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[] = [
|
|
"id" => $result[$i]['T_OrderDeliveryID'],
|
|
"reason" => $result[$i]['T_OrderDeliveryReason']
|
|
];
|
|
}
|
|
$resp = $this->post("http://$getIPRegionalAddress/one-api/one_rujukan_eksternal/Updatestatusreg/updatereason", json_encode(['data' => $dataSend]));
|
|
$respData = json_decode($resp, true);
|
|
// print_r($respData);
|
|
// exit;
|
|
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]['id']) {
|
|
|
|
$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(?,'R','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(?,'R','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);
|
|
}
|
|
}
|
|
function updatebranch()
|
|
{
|
|
try {
|
|
$success = array();
|
|
$error = [];
|
|
$errorMsg = [];
|
|
$getIPRegionalAddress = $this->getRegionalIPAddress();
|
|
$branch = $this->getBranch();
|
|
$branchID = $branch['branchId'];
|
|
$prm = [
|
|
"branchID" => $branchID
|
|
];
|
|
$resp = $this->post("http://$getIPRegionalAddress/one-api/one_rujukan_eksternal/Updatestatusreg/updatebranch", json_encode($prm));
|
|
$respData = json_decode($resp, true);
|
|
// print_r($respData);
|
|
// exit;
|
|
for ($i = 0; $i < count($respData); $i++) {
|
|
// n kan data
|
|
$sql = "UPDATE one_rujukan_eksternal.t_orderdelivery
|
|
SET T_OrderDeliveryIsActive = 'N'
|
|
WHERE T_OrderDeliveryID = ?";
|
|
$query = $this->db->query($sql, [
|
|
$respData[$i]['deliveryID']
|
|
]);
|
|
if (!$query) {
|
|
$message = $this->db->error();
|
|
// $this->sys_error($message);
|
|
$error[] = $respData[$i]['deliveryID'];
|
|
$errorMsg[] = $message;
|
|
// exit;
|
|
}
|
|
$success[] = $respData[$i]['deliveryID'];
|
|
$sql = "UPDATE one_rujukan_eksternal.t_orderdetaildelivery
|
|
SET T_OrderDetailDeliveryIsActive = 'N'
|
|
WHERE T_OrderDetailDeliveryT_OrderDeliveryID = ?";
|
|
$query = $this->db->query($sql, [
|
|
$respData[$i]['deliveryID']
|
|
]);
|
|
if (!$query) {
|
|
$message = $this->db->error();
|
|
// $this->sys_error($message);
|
|
$error[] = $respData[$i]['deliveryID'];
|
|
$errorMsg[] = $message;
|
|
// exit;
|
|
}
|
|
$success[] = $respData[$i]['deliveryID'];
|
|
|
|
//get data order
|
|
$sql = "UPDATE one_rujukan_eksternal.t_orderdetaildelivery
|
|
SET T_OrderDetailDeliveryIsActive = 'N'
|
|
WHERE T_OrderDetailDeliveryT_OrderDeliveryID = ?";
|
|
$query = $this->db->query(
|
|
$sql,
|
|
[
|
|
$respData[$i]['deliveryID']
|
|
]
|
|
);
|
|
if (!$query) {
|
|
$message = $this->db->error();
|
|
// $this->sys_error($message);
|
|
$error[] = $respData[$i]['deliveryID'];
|
|
$errorMsg[] = $message;
|
|
// exit;
|
|
}
|
|
}
|
|
$prmStatus = [
|
|
"branchID" => $branchID,
|
|
"data" => [
|
|
"success" => $success
|
|
]
|
|
];
|
|
$resp2 = $this->post("http://$getIPRegionalAddress/one-api/one_rujukan_eksternal/Updatestatusreg/updatebranchdownload", json_encode($prmStatus));
|
|
$respData2 = json_decode($resp2, true);
|
|
$response = [
|
|
"update_lokal" => [
|
|
"success" => $success,
|
|
"error" => $error,
|
|
"errorMsg" => $errorMsg,
|
|
],
|
|
"data_update_lokal" => $respData,
|
|
"data_update_regional" => $respData2,
|
|
|
|
];
|
|
$this->sys_ok($response);
|
|
} catch (Exception $exc) {
|
|
$message = $exc->getMessage();
|
|
$this->sys_error($message);
|
|
}
|
|
}
|
|
}
|