Update MCU sync, dummy generator, and kelainan trigger

This commit is contained in:
sas.fajri
2026-05-06 22:01:57 +07:00
parent 3d50bcf7f1
commit 3cde1b3cdb
6 changed files with 575 additions and 98 deletions

View File

@@ -54,6 +54,80 @@ class Resumeindividucponev7 extends MY_Controller
Published_McuDasboardLastUpdatedUserID = VALUES(Published_McuDasboardLastUpdatedUserID)";
$this->db_onedev->query($sql, array($orderID, $userID, $userID));
}
private function ensure_publish_dashboard_file($orderID, $userID)
{
$orderID = intval($orderID);
$userID = intval($userID);
if ($orderID <= 0) {
return;
}
// Ensure published row exists for this order.
$sql = "INSERT INTO published_mcu_dashboard (
Published_McuDasboardT_OrderHeaderID,
Published_McuDasboardStatus,
Published_McuDasboardIsActive,
Published_McuDasboardCreated,
Published_McuDasboardCreatedUserID,
Published_McuDasboardLastUpdated,
Published_McuDasboardLastUpdatedUserID
)
VALUES (?, 'N', 'Y', NOW(), ?, NOW(), ?)
ON DUPLICATE KEY UPDATE
Published_McuDasboardIsActive = 'Y',
Published_McuDasboardLastUpdated = NOW(),
Published_McuDasboardLastUpdatedUserID = VALUES(Published_McuDasboardLastUpdatedUserID)";
$this->db_onedev->query($sql, array($orderID, $userID, $userID));
$sql = "SELECT Published_McuDasboardID
FROM published_mcu_dashboard
WHERE Published_McuDasboardT_OrderHeaderID = ?
AND Published_McuDasboardIsActive = 'Y'
ORDER BY Published_McuDasboardID DESC
LIMIT 1";
$qry = $this->db_onedev->query($sql, array($orderID));
if (!$qry || $qry->num_rows() === 0) {
return;
}
$publishedID = intval($qry->row()->Published_McuDasboardID);
if ($publishedID <= 0) {
return;
}
// Mark as processing before file generation.
$this->db_onedev->query(
"UPDATE published_mcu_dashboard
SET Published_McuDasboardStatus = 'P',
Published_McuDasboardLastUpdated = NOW(),
Published_McuDasboardLastUpdatedUserID = ?
WHERE Published_McuDasboardID = ?",
array($userID, $publishedID)
);
$rtn = $this->mcudashboard->generate_dashboard_files(0, $publishedID);
$isOk = false;
if (is_array($rtn) && isset($rtn[0]) && $rtn[0] === true && isset($rtn[1]) && is_array($rtn[1])) {
foreach ($rtn[1] as $item) {
if (isset($item['status']) && strtoupper($item['status']) === 'OK') {
$isOk = true;
break;
}
}
}
$this->db_onedev->query(
"UPDATE published_mcu_dashboard
SET Published_McuDasboardStatus = ?,
Published_McuDasboardLastUpdated = NOW(),
Published_McuDasboardLastUpdatedUserID = ?
WHERE Published_McuDasboardID = ?",
array($isOk ? 'Y' : 'N', $userID, $publishedID)
);
// Keep cpone_dashboard mirror in sync if SP is available.
$this->db_onedev->query("CALL cpone.sp_sync_published_mcu_dashboard_by_orderheaderid(?)", array($orderID));
}
public function getsetup()
{
try {
@@ -744,20 +818,29 @@ class Resumeindividucponev7 extends MY_Controller
}
}
$status = 'NEW';
$status = 'NEW';
$statusLog = $act;
$val = 'N';
$dt = '0000-00-00 00:00:00';
$verification = 'N';
$verificationUserID = 0;
$verificationDateTime = null;
$statusBefore = 'NEW';
if ($act == 'VAL') {
$status = 'VAL';
$val = 'Y';
$dt = date("Y-m-d h:i:s");
} else if ($act == 'UNVAL') {
$val = 'N';
$status = 'NEW';
$dt = date("Y-m-d h:i:s");
}
$dt = date("Y-m-d H:i:s");
$verification = 'Y';
$verificationUserID = $userid;
$verificationDateTime = $dt;
} else if ($act == 'UNVAL') {
$val = 'N';
$status = 'NEW';
$dt = date("Y-m-d H:i:s");
$verification = 'N';
$verificationUserID = 0;
$verificationDateTime = null;
}
$jsonBefore = "";
$jsonAfter = "";
//insert mcu_resume
@@ -782,23 +865,29 @@ class Resumeindividucponev7 extends MY_Controller
$sql = "INSERT INTO mcu_resume
(Mcu_ResumeT_OrderHeaderID,
Mcu_ResumeStatus,
Mcu_ResumeValidation,
Mcu_ResumeValidationDateTime,
Mcu_ResumeValidationUserID,
Mcu_ResumeKesimpulan,
Mcu_ResumeRekomendasi,
Mcu_ResumeSaran,
Mcu_ResumeMcu_FitnessCategoryID)
VALUES(?,?,?,?,?,?,?,?,?)";
$query = $this->db_onedev->query($sql, [
$data['orderID'],
$status,
$val,
$dt,
$userid,
$data['header']['kesimpulan'],
$data['header']['rekomendasi'],
$data['header']['saran'],
Mcu_ResumeValidation,
Mcu_ResumeValidationDateTime,
Mcu_ResumeValidationUserID,
Mcu_ResumeVerification,
Mcu_ResumeVerificationDateTime,
Mcu_ResumeVerificationUserID,
Mcu_ResumeKesimpulan,
Mcu_ResumeRekomendasi,
Mcu_ResumeSaran,
Mcu_ResumeMcu_FitnessCategoryID)
VALUES(?,?,?,?,?,?,?,?,?,?,?,?)";
$query = $this->db_onedev->query($sql, [
$data['orderID'],
$status,
$val,
$dt,
$userid,
$verification,
$verificationDateTime,
$verificationUserID,
$data['header']['kesimpulan'],
$data['header']['rekomendasi'],
$data['header']['saran'],
$data['fitnessCategory'],
]);
if (!$query) {
@@ -853,23 +942,29 @@ class Resumeindividucponev7 extends MY_Controller
$detail = $query->result_array();
$jsonBefore['detail'] = $detail;
$sql = "UPDATE mcu_resume
SET Mcu_ResumeStatus = ?,
Mcu_ResumeValidation = ?,
Mcu_ResumeValidationDateTime = ?,
Mcu_ResumeValidationUserID = ?,
Mcu_ResumeKesimpulan = ?,
Mcu_ResumeRekomendasi = ?,
Mcu_ResumeSaran = ?,
SET Mcu_ResumeStatus = ?,
Mcu_ResumeValidation = ?,
Mcu_ResumeValidationDateTime = ?,
Mcu_ResumeValidationUserID = ?,
Mcu_ResumeVerification = ?,
Mcu_ResumeVerificationDateTime = ?,
Mcu_ResumeVerificationUserID = ?,
Mcu_ResumeKesimpulan = ?,
Mcu_ResumeRekomendasi = ?,
Mcu_ResumeSaran = ?,
Mcu_ResumeMcu_FitnessCategoryID = ?
WHERE Mcu_ResumeID = ?";
$query = $this->db_onedev->query($sql, [
$status,
$val,
$dt,
$userid,
$data['header']['kesimpulan'],
$data['header']['rekomendasi'],
$data['header']['saran'],
$status,
$val,
$dt,
$userid,
$verification,
$verificationDateTime,
$verificationUserID,
$data['header']['kesimpulan'],
$data['header']['rekomendasi'],
$data['header']['saran'],
$data['fitnessCategory'],
$resumeID,
]);
@@ -1091,9 +1186,12 @@ class Resumeindividucponev7 extends MY_Controller
exit;
}
$this->upsert_published_dashboard_on_new_to_val($data['orderID'], $statusBefore, $status, $userid);
if ($status === 'VAL' && $val === 'Y') {
$this->ensure_publish_dashboard_file($data['orderID'], $userid);
}
$this->sync_resume_status_dashboard($resumeID);
$this->sys_ok('ok');
}
}
function getlab($id, $isApi)
{
$prm = $this->sys_input;