"success", 'message' => 'Berhasil singkron data!']; $adata = json_decode(stripslashes(html_entity_decode($_POST['subkeg'])), true); foreach ($adata as $_key1 => $subkeg) { fastInsert("dpa_dalev_sub", $subkeg); } $db->Query("UPDATE dpa_dalev_sub A,para90_opd B SET A.OPDID=B.OPDID WHERE A.K_OPD=B.K_OPD"); return $aret; } function ambil_dalev_subkeg($db = null) {//oke $aret = ['status' => "success", 'message' => 'Berhasil mendapatkan data!', 'action' => $_POST['action'], 'run' => $_POST['run'], 'data' => []]; $aopd = []; $twulan = 1;//todo: auto from config ! $tahun = Param::Get("tahun", 0); $kode_skpd = Param::Get("kode_skpd", ""); if ($kode_skpd <> "") { $db->Query("SELECT * FROM para90_opd WHERE K_OPD='".$kode_skpd."' LIMIT 1"); if ($db->Next()) $aopd = $db->AllRow(); } $data_subkeg = []; $tsql = (count($aopd)==0) ? "" : " AND OPDID='".$aopd['OPDID']."'"; $db->Query("SELECT * FROM (SELECT OPDID,SubID,K_Sub,RealK_TW1,RealK_TW2,RealK_TW3,RealK_TW4 FROM dpa_sub WHERE Tahun='".$tahun."'".$tsql.") S LEFT JOIN (SELECT OPDID,SubID,Satuan_Output Satuan,Real_TW1 RealF_TW1,Real_TW2 RealF_TW2,Real_TW3 RealF_TW3,Real_TW4 RealF_TW4 FROM dpa_sub_output WHERE Tahun='".$tahun."'".$tsql.") O ON (O.OPDID=S.OPDID AND O.SubID=S.SubID) LEFT JOIN (SELECT * FROM dpa_dalev_sub WHERE Tahun='".$tahun."'".$tsql.") D ON (D.OPDID=S.OPDID AND D.K_Sub=S.K_Sub) WHERE D.SIPD_OUTCOME IS NOT NULL ORDER BY S.K_Sub"); while ($db->Next()) { $_tri_kin = []; $_tri_keu = []; $_thn_kin = 0; $_thn_keu = 0; for ($_tri = 1; $_tri <= 4; $_tri++) { $_tri_kin['triwulan_kinerja_'.$_tri] = ($_tri <= $twulan) ? $db->Row("RealF_TW".$_tri) : ""; $_tri_keu['triwulan_keuangan_'.$_tri] = ($_tri <= $twulan) ? (float)$db->Row("RealK_TW".$_tri) : 0; $_thn_kin += ($_tri <= $twulan) ? (float)$db->Row("RealF_TW".$_tri) : 0; $_thn_keu += ($_tri <= $twulan) ? (float)$db->Row("RealK_TW".$_tri) : 0; } //komulatif / positif / negatif / rata-rata switch ($db->Row("Status", "komulatif")) { case "komulatif": break; case "rata-rata": $_thn_kin = $_thn_kin / $twulan; break; default: $_thn_kin = (float)$db->Row("RealK_TW".$twulan); } $data_subkeg[] = [ 'tahun' => $tahun, 'kodeskpd' => $db->Row("K_OPD"), 'kodebidang' => $db->Row("K_Bidu"), 'kodeprogram' => $db->Row("K_Prog"), 'kodekegiatan' => $db->Row("K_Keg"), 'kodesubkegiatan' => $db->Row("K_Sub"), 'satuan' => $db->Row("Satuan"), 'formula' => $db->Row("Status"), //#info-status-kinerja 'status' => $db->Row("Status"), //#info-status-kinerja 'status_rkpd' => $db->Row("Status"), //#info-status-kinerja //'status_renstra' => "komulatif", //#info-status-renstra //'target_realisasi_kinerja' => $targetRealisasiKinerjaData, //'target_realisasi_keuangan' => $targetRealisasiKeuanganData, 'triwulan_kinerja' => $_tri_kin, 'triwulan_keuangan' => $_tri_keu, 'realisasi_kinerja_tahunan' => $_thn_kin, 'realisasi_keuangan_tahunan' => $_thn_keu, 'idoutcome' => $db->Row("SIPD_OUTCOME"), 'idoutput' => $db->Row("SIPD_OUTPUT"), 'kodesubkegiatan_indikator' => $db->Row("SIPD_SUBKEG_INDI"), 'uraisubkegiatan_indikator' => "", ]; } if (!empty($data_subkeg)) { $aret['data'] = $data_subkeg; } return $aret; } /* DALEV PROGRAM */ function sinkron_dalev_prog($db = null) { $aret = ['status' => "success", 'message' => 'Berhasil singkron data!']; $adata = json_decode(stripslashes(html_entity_decode($_POST['prog'])), true); foreach ($adata as $_key1 => $prog) { fastInsert("dpa_dalev_prog", $prog); } $db->Query("UPDATE dpa_dalev_prog A,para90_opd B SET A.OPDID=B.OPDID WHERE A.K_OPD=B.K_OPD"); return $aret; } function ambil_dalev_prog($db = null) { $aret = ['status' => "success", 'message' => 'Berhasil mendapatkan data!', 'action' => $_POST['action'], 'run' => $_POST['run'], 'data' => []]; $aopd = []; while ($db->Next()) { /*$_tri_kin = []; $_tri_keu = []; $_thn_kin = 0; $_thn_keu = 0; for ($_tri = 1; $_tri <= 4; $_tri++) { $_tri_kin['triwulan_kinerja_'.$_tri] = ($_tri <= $twulan) ? $db->Row("RealF_TW".$_tri) : ""; $_tri_keu['triwulan_keuangan_'.$_tri] = ($_tri <= $twulan) ? (float)$db->Row("RealK_TW".$_tri) : 0; $_thn_kin += ($_tri <= $twulan) ? (float)$db->Row("RealF_TW".$_tri) : 0; $_thn_keu += ($_tri <= $twulan) ? (float)$db->Row("RealK_TW".$_tri) : 0; } //komulatif / positif / negatif / rata-rata switch ($db->Row("Status", "komulatif")) { case "komulatif": break; case "rata-rata": $_thn_kin = $_thn_kin / $twulan; break; default: $_thn_kin = (float)$db->Row("RealK_TW".$twulan); }*/ /* coding js const tahun = $('#modal-realisasi').data('current-tahun') || tahun_sekarang; const info = rowData; const tipeData = info.tipe_data || 'numeric'; const isNumeric = isNumericTipeData(tipeData); const triwulan = {}; for (let i = 1; i <= 4; i++) { if (tipeData === 'rasio') { // Rasio: dua input dengan separator ":" const valBawah = $(`#triwulan_${i}_bawah`).val(); const valAtas = $(`#triwulan_${i}_atas`).val(); // Hanya kirim jika user benar-benar mengisi (minimal salah satu ada nilai) // Jika salah satu kosong, gunakan '0' sebagai fallback // Jika keduanya kosong, tidak akan masuk ke sini (hasil: tidak kirim) if (valBawah || valAtas) { triwulan[`triwulan_${i}`] = `${valBawah || '0'}:${valAtas || '0'}`; } } else if (isNumeric) { // Numeric dan range: 1 input dengan format angka const rawVal = $(`#triwulan_${i}`).val(); // Hanya kirim jika user benar-benar mengisi if (rawVal !== null && rawVal !== '') { const val = unformatRupiahRealisasi(rawVal); triwulan[`triwulan_${i}`] = val; } } else { // enum_v2 dan lainnya const raw = $(`#triwulan_${i}`).val(); // Hanya kirim jika ada nilai if (raw !== null && raw !== undefined && raw !== '') { triwulan[`triwulan_${i}`] = raw.toString(); } } } let realisasiTahunan = ''; const selectedFormula = $('#info-status-kinerja').val() || (isNumeric ? 'komulatif' : 'positif'); if (isNumeric) { realisasiTahunan = calculateNumericRealisasiByFormula(selectedFormula, triwulan); } else { // non-numeric: set from last non-empty triwulan as string realisasiTahunan = getLastNonEmptyTriwulanString(); } const targetRealisasi = {}; years.forEach((year, idx) => { targetRealisasi[`target_${year}`] = $(`#target_${year}`).val(); const rVal = $(`#realisasi_${year}`).val(); if (tipeData === 'rasio') { // Untuk rasio: kirim sebagai string dengan format "pembilang:pembanding" // Jika kosong, kirim empty string (bukan '0:0') targetRealisasi[`realisasi_${year}`] = (rVal != null && rVal !== '') ? rVal.toString() : ''; } else if (isNumeric) { // Untuk numeric: jika kosong, kirim empty string (bukan 0) // Jika user benar-benar input 0, tetap kirim 0 (nilai valid) if (rVal == null || rVal === '') { targetRealisasi[`realisasi_${year}`] = ''; } else { const numVal = unformatRupiahRealisasi(rVal); targetRealisasi[`realisasi_${year}`] = numVal; } } else { targetRealisasi[`realisasi_${year}`] = rVal != null ? rVal.toString() : ''; } targetRealisasi[`target_${idx}`] = $(`#target_${year}`).val(); }); const statusRenstraSubmit = $('#info-status-renstra').val(), statusRkpdSubmit = statusRenstraSubmit === 'negatif' ? 'negatif' : $('#info-status-kinerja').val(); const payload = { tahun: tahun, kodeskpd: info.kodeskpd, kodebidang: info.kodebidang || '', kodeprogram: info.kodeprogram, idoutcome: info.idoutcome || info.id || '', kodeprogram_indikator: info.kodeindikator_program || '', uraiprogram_indikator: info.uraiindikator_program || '', formula: statusRkpdSubmit, status: statusRkpdSubmit, status_rkpd: statusRkpdSubmit, status_renstra: statusRenstraSubmit, baseline: $('#info-baseline').val(), satuan: $('#info-satuan').val(), tipe_data: info.tipe_data || 'numeric', target_realisasi: targetRealisasi, triwulan: triwulan, realisasi_tahunan: realisasiTahunan }; */ $data_prog[] = [ 'tahun' => $tahun, 'kodeskpd' => $db->Row("K_OPD"), 'kodebidang' => $db->Row("K_Bidu"), 'kodeprogram' => $db->Row("K_Prog"), 'idoutcome' => $db->Row("SIPD_OUTCOME"), 'formula' => $db->Row("Status"), //#info-status-kinerja 'status' => $db->Row("Status"), //#info-status-kinerja 'status_rkpd' => $db->Row("Status"), //#info-status-kinerja //'status_renstra' => "komulatif", //#info-status-renstra 'baseline' => $_tri_kin, //#info-baseline ? 'satuan' => $_tri_keu, //#info-satuan ? 'tipe_data' => $_thn_kin, // ? || 'numeric', 'target_realisasi' => 0, // ? 'triwulan' => 0, // ? 'realisasi_tahunan' => 0, // ? 'kodeprogram_indikator' => $db->Row("SIPD_PROG_INDI"), 'uraiprogram_indikator' => "", ]; } if (!empty($data_prog)) { $aret['data'] = $data_prog; } return $aret; } ?>