Use resume conclusion tables

This commit is contained in:
sas.fajri
2026-04-24 16:39:11 +07:00
parent a88a5c9892
commit 7e5958e2d6

View File

@@ -663,25 +663,95 @@ class Resume extends MY_Controller
$this->sys_ok($result);
exit;
}
function save()
{
if (!$this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$prm = $this->sys_input;
$act = $prm['data']['act'];
$data = $prm['data'];
$userid = $this->sys_user["M_UserID"];
if ($act == 'VAL') {
if (
$data['fitnessCategory'] == '' ||
intval($data['fitnessCategory']) == 0 ||
$data['fitnessCategory'] == null
) {
$this->sys_error("Pilih kategori fitness atau generate terlebih dahulu");
exit;
}
function save()
{
if (!$this->isLogin) {
$this->sys_error("Invalid Token");
exit;
}
$prm = $this->sys_input;
$data = isset($prm['data']) && is_array($prm['data']) ? $prm['data'] : $prm;
$header = isset($data['header']) && is_array($data['header']) ? $data['header'] : [];
$act = $data['act'] ?? ($header['act'] ?? 'NEW');
$userid = $this->sys_user["M_UserID"];
$fitnessCategoryData = $data['fitnessCategory'] ?? ($header['fitnessCategory'] ?? null);
$fitnessCategoryID = 0;
if (is_array($fitnessCategoryData)) {
$fitnessCategoryID = intval($fitnessCategoryData['Mcu_FitnessCategoryID'] ?? ($fitnessCategoryData['id'] ?? 0));
}
else {
$fitnessCategoryID = intval($fitnessCategoryData);
}
$conclusionRows = [];
if (isset($header['conclusions']) && is_array($header['conclusions'])) {
foreach ($header['conclusions'] as $conclusionRow) {
if (!is_array($conclusionRow)) {
continue;
}
$details = isset($conclusionRow['details']) && is_array($conclusionRow['details']) ? $conclusionRow['details'] : [];
$conclusionRows[] = [
'id' => intval($conclusionRow['id'] ?? 0),
'code' => strtoupper(trim($conclusionRow['code'] ?? '')),
'kesimpulan' => trim($details['kesimpulan'] ?? ''),
'rekomendasi' => trim($details['rekomendasi'] ?? ''),
'saran' => trim($details['saran'] ?? ''),
];
}
}
if (empty($conclusionRows)) {
$conclusionRows[] = [
'id' => 1,
'code' => 'ID',
'kesimpulan' => trim($header['kesimpulan'] ?? ''),
'rekomendasi' => trim($header['rekomendasi'] ?? ''),
'saran' => trim($header['saran'] ?? ''),
];
if (
trim($header['conclusion'] ?? '') !== '' ||
trim($header['recomendation'] ?? '') !== '' ||
trim($header['advice'] ?? '') !== ''
) {
$conclusionRows[] = [
'id' => 2,
'code' => 'EN',
'kesimpulan' => trim($header['conclusion'] ?? ''),
'rekomendasi' => trim($header['recomendation'] ?? ''),
'saran' => trim($header['advice'] ?? ''),
];
}
}
$defaultConclusion = [
'kesimpulan' => '',
'rekomendasi' => '',
'saran' => '',
];
$idConclusion = $defaultConclusion;
$engConclusion = $defaultConclusion;
foreach ($conclusionRows as $conclusionRow) {
if ($idConclusion === $defaultConclusion && ($conclusionRow['code'] === 'ID' || intval($conclusionRow['id']) === 1)) {
$idConclusion = $conclusionRow;
}
if ($engConclusion === $defaultConclusion && ($conclusionRow['code'] === 'EN' || intval($conclusionRow['id']) === 2)) {
$engConclusion = $conclusionRow;
}
}
if ($idConclusion === $defaultConclusion && !empty($conclusionRows)) {
$idConclusion = $conclusionRows[0];
}
if ($engConclusion === $defaultConclusion && count($conclusionRows) > 1) {
$engConclusion = $conclusionRows[1];
}
if ($act == 'VAL') {
if (
$fitnessCategoryID == 0
) {
$this->sys_error("Pilih kategori fitness atau generate terlebih dahulu");
exit;
}
$sql = "";
$query = $this->db_onedev->query($sql, [$data['orderID']]);
@@ -744,40 +814,25 @@ class Resume extends MY_Controller
VALUES(?,?,?,?,?,?,?,?,?)";
$query = $this->db_onedev->query($sql, [
$data['orderID'],
$status,
$val,
$dt,
$userid,
$data['header']['kesimpulan'],
$data['header']['rekomendasi'],
$data['header']['saran'],
$data['fitnessCategory'],
]);
if (!$query) {
$message = $this->db_onedev->error();
$message['qry'] = $this->db_onedev->last_query();
$this->sys_error($message);
$status,
$val,
$dt,
$userid,
$idConclusion['kesimpulan'],
$idConclusion['rekomendasi'],
$idConclusion['saran'],
$fitnessCategoryID,
]);
if (!$query) {
$message = $this->db_onedev->error();
$message['qry'] = $this->db_onedev->last_query();
$this->sys_error($message);
exit;
}
$resumeID = $this->db_onedev->insert_id();
$sql = "INSERT INTO mcu_resume_eng(
Mcu_ResumeEngMcu_ResumeID,
Mcu_ResumeEngAdvice,
Mcu_ResumeEngConlusion,
Mcu_ResumeEngRecomendation,
Mcu_ResumeEngCreated,
Mcu_ResumeEngCreatedUserID)
VALUES(?,?,?,?,NOW(),?)";
$query = $this->db_onedev->query($sql, [
$resumeID,
$data['header']['advice'],
$data['header']['conclusion'],
$data['header']['recomendation'],
$userid
]);
}
else {
}
else {
if ($act != 'VAL' && $act != 'UNVAL') {
$statusLog = "UPDATE";
}
@@ -816,64 +871,32 @@ class Resume extends MY_Controller
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'],
$data['fitnessCategory'],
$resumeID,
]);
if (!$query) {
$message = $this->db_onedev->error();
$status,
$val,
$dt,
$userid,
$idConclusion['kesimpulan'],
$idConclusion['rekomendasi'],
$idConclusion['saran'],
$fitnessCategoryID,
$resumeID,
]);
if (!$query) {
$message = $this->db_onedev->error();
$message['qry'] = $this->db_onedev->last_query();
$this->sys_error($message);
exit;
}
$sql = "SELECT * FROM mcu_resume_eng WHERE Mcu_ResumeEngMcu_ResumeID = ? AND Mcu_ResumeEngIsActive = 'Y'";
$query = $this->db_onedev->query($sql, [
$resumeID,
]);
$cekEng = $query->result_array();
if (empty($cekEng)) {
$sql = "INSERT INTO mcu_resume_eng(
Mcu_ResumeEngMcu_ResumeID,
Mcu_ResumeEngAdvice,
Mcu_ResumeEngConlusion,
Mcu_ResumeEngRecomendation,
Mcu_ResumeEngCreated,
Mcu_ResumeEngCreatedUserID)
VALUES(?,?,?,?,NOW(),?)";
$query = $this->db_onedev->query($sql, [
$resumeID,
$data['header']['advice'],
$data['header']['conclusion'],
$data['header']['recomendation'],
$userid
]);
}
else {
$sql = "UPDATE mcu_resume_eng
SET Mcu_ResumeEngAdvice = ?,
Mcu_ResumeEngConlusion = ?,
Mcu_ResumeEngRecomendation = ?
WHERE Mcu_ResumeEngMcu_ResumeID = ? AND Mcu_ResumeEngIsActive = 'Y'";
$query = $this->db_onedev->query($sql, [
$data['header']['advice'],
$data['header']['conclusion'],
$data['header']['recomendation'],
$resumeID,
]);
}
}
for ($i = 0; $i < count($data['detail']); $i++) {
$detail = $data['detail'][$i];
$result = $detail['result'];
if ($result == null) {
$result = '';
}
}
$this->syncResumeConclusions($resumeID, $conclusionRows, $userid);
$detailRows = isset($data['detail']) && is_array($data['detail']) ? $data['detail'] : [];
for ($i = 0; $i < count($detailRows); $i++) {
$detail = $detailRows[$i];
$result = $detail['result'];
if ($result == null) {
$result = '';
}
if ($detail['category'] == 'LAB') {
$sql = "SELECT Mcu_ResumeDetailsID
@@ -1047,9 +1070,77 @@ class Resume extends MY_Controller
$this->sys_error($message);
exit;
}
$this->sys_ok('ok');
}
function getlab($id, $isApi)
$this->sys_ok('ok');
}
private function syncResumeConclusions($resumeID, $conclusionRows, $userid)
{
foreach ($conclusionRows as $conclusionRow) {
$langID = intval($conclusionRow['id'] ?? 0);
if ($langID <= 0) {
continue;
}
$sql = "SELECT Mcu_ResumeConclusionID
FROM mcu_resume_conclusion
WHERE Mcu_ResumeConclusionMcu_ResumeID = ?
AND Mcu_ResumeConclusionM_LangID = ?
AND Mcu_ResumeConclusionIsActive = 'Y'
LIMIT 1";
$query = $this->db_onedev->query($sql, [$resumeID, $langID]);
if (!$query) {
$message = $this->db_onedev->error();
$message['qry'] = $this->db_onedev->last_query();
$this->sys_error($message);
exit;
}
$existingConclusion = $query->row_array();
if (empty($existingConclusion)) {
$sql = "INSERT INTO mcu_resume_conclusion(
Mcu_ResumeConclusionMcu_ResumeID,
Mcu_ResumeConclusionM_LangID,
Mcu_ResumeConclusionKesimpulan,
Mcu_ResumeConclusionRekomendasi,
Mcu_ResumeConclusionSaran,
Mcu_ResumeConclusionCreated,
Mcu_ResumeConclusionCreatedUserID)
VALUES(?,?,?,?,?,NOW(),?)";
$query = $this->db_onedev->query($sql, [
$resumeID,
$langID,
$conclusionRow['kesimpulan'],
$conclusionRow['rekomendasi'],
$conclusionRow['saran'],
$userid,
]);
}
else {
$sql = "UPDATE mcu_resume_conclusion
SET Mcu_ResumeConclusionKesimpulan = ?,
Mcu_ResumeConclusionRekomendasi = ?,
Mcu_ResumeConclusionSaran = ?,
Mcu_ResumeConclusionLastUpdated = NOW(),
Mcu_ResumeConclusionLastUpdatedUserID = ?
WHERE Mcu_ResumeConclusionID = ?";
$query = $this->db_onedev->query($sql, [
$conclusionRow['kesimpulan'],
$conclusionRow['rekomendasi'],
$conclusionRow['saran'],
$userid,
$existingConclusion['Mcu_ResumeConclusionID'],
]);
}
if (!$query) {
$message = $this->db_onedev->error();
$message['qry'] = $this->db_onedev->last_query();
$this->sys_error($message);
exit;
}
}
}
function getlab($id, $isApi)
{
$prm = $this->sys_input;