"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 = ['OPDID' => 0]; $tahun = Param::Get("tahun", 0); $twulan = Param::Get("triwulan", 1); $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 = " WHERE Tahun='".$tahun."' AND OPDID='".$aopd['OPDID']."'"; $db->Query("SELECT * FROM (SELECT OPDID,SubID,K_Sub,RealK_TW1,RealK_TW2,RealK_TW3,RealK_TW4 FROM dpa_sub ".$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 ".$tsql.") O ON (O.OPDID=S.OPDID AND O.SubID=S.SubID) LEFT JOIN (SELECT * FROM dpa_dalev_sub ".$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) ? (int)$db->Row("RealF_TW".$_tri) : ""; $_tri_keu['triwulan_keuangan_'.$_tri] = ($_tri <= $twulan) ? (float)$db->Row("RealK_TW".$_tri) : 0; $_thn_kin += ($_tri <= $twulan) ? (int)$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("RealF_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 = ['OPDID' => "0"]; $tahun = Param::Get("tahun", 0); $twulan = Param::Get("triwulan", 1); $daftar_skpd = json_decode(stripslashes(Param::Get("daftar_skpd", "[]")), true); if (count($daftar_skpd) > 0) { $db->Query("SELECT GROUP_CONCAT(OPDID) OPDID FROM para90_opd WHERE K_OPD IN ('".join("','", $daftar_skpd)."')"); if ($db->Next()) $aopd = $db->AllRow(); } $data_prog = []; $tsql = " AND OPDID IN (".$aopd['OPDID'].")"; $db->Query("SELECT P.*,D.*,IFNULL(RPI.Indi_Status,'') Status_Renstra FROM (SELECT TipeDataID,Status_Indi Status_Renja,Real_TW1,Real_TW2,Real_TW3,Real_TW4,SIPD_PROG_INDI FROM dpa_prog_indi WHERE Tahun='".$tahun."'".$tsql.") P LEFT JOIN (SELECT * FROM dpa_dalev_prog WHERE Tahun='".$tahun."'".$tsql.") D ON (D.SIPD_PROG_INDI=P.SIPD_PROG_INDI) LEFT JOIN renstra_prog_indi RPI ON (RPI.SIPD_UNIK=P.SIPD_PROG_INDI) WHERE D.SIPD_PROG_INDI IS NOT NULL ORDER BY D.K_Prog"); while ($db->Next()) { $atriw = []; //for ($_tri = 1; $_tri <= 4; $_tri++) { $atriw['triwulan_1'] = $db->Row("Real_TW1"); //} $real_thn = $db->Row("Real_TW1");//todo: hitung utk tw berikutnya $tipe_data = ($db->Row("TipeDataID")==0 ? "numeric" : ($db->Row("TipeDataID")==2 ? "rasio" : "enumv2")); $atahun = [0 => 2025, 1 => 2026, 2 => 2027, 3 => 2028, 4 => 2029, 5 => 2030]; //todo: bisa automatis $atarget = []; foreach ($atahun as $idx => $thn) { $atarget['target_'.$idx] = $db->Row("Target_".$idx); $atarget['target_'.$thn] = $db->Row("Target_".$idx); $atarget['realisasi_'.$thn] = ($thn == 2026 ? $real_thn : ""); } $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' => ($db->Row("Status_Renstra")=="negatif" ? "negatif" : $db->Row("Status")), //#info-status-renstra 'baseline' => $db->Row("Baseline"), 'satuan' => $db->Row("Satuan"), 'tipe_data' => $tipe_data, 'target_realisasi' => $atarget, 'triwulan' => $atriw, 'realisasi_tahunan' => $real_thn, 'kodeprogram_indikator' => $db->Row("SIPD_PROG_INDI"), 'uraiprogram_indikator' => $db->Row("Indikator"), ]; } if (!empty($data_prog)) { $aret['data'] = $data_prog; } return $aret; } /* DALEV FAKTOR PENDUKUNG */ /*function sinkron_dalev_dukung($db = null) {//not yet $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_dukung($db = null) { $aret = ['status' => "success", 'message' => 'Berhasil mendapatkan data!', 'action' => $_POST['action'], 'run' => $_POST['run'], 'data' => []]; $aopd = ['OPDID' => "0"]; $tahun = Param::Get("tahun", 0); $daftar_skpd = json_decode(stripslashes(Param::Get("daftar_skpd", "[]")), true); if (count($daftar_skpd) > 0) { $db->Query("SELECT GROUP_CONCAT(OPDID) OPDID FROM para90_opd WHERE K_OPD IN ('".join("','", $daftar_skpd)."')"); if ($db->Next()) $aopd = $db->AllRow(); } $data_dukung = []; $tsql = " AND OPDID IN (".$aopd['OPDID'].")"; $db->Query("SELECT * FROM dpa_dalev_renja WHERE Tahun='".$tahun."'".$tsql); while ($db->Next()) { $afaktor = []; for ($_tri = 1; $_tri <= 4; $_tri++) { $afaktor[$_tri] = [ 'faktor_pendorong' => $db->Row("Pendorong_TW".$_tri), 'faktor_penghambat' => $db->Row("Penghambat_TW".$_tri), 'tindaklanjut' => $db->Row("Lanjut_TW".$_tri), 'tindaklanjut_rkpd' => $db->Row("Lanjut_RKPD_TW".$_tri), ]; } $data_dukung[] = [ 'tahun' => $tahun, 'kodeskpd' => $db->Row("K_OPD"),//jika rkpd tidak ada isi 'kodeprogram' => "", 'id_topik_psn' => 0, 'faktor' => $afaktor, ]; } if (!empty($data_dukung)) { $aret['data'] = $data_dukung; } return $aret; } ?>