Files
2026-06-07 14:39:54 +07:00

119 lines
6.7 KiB
PHP

<?php
/*******************************************************************
Module : /apps/php/api/renja.php
Desc. : PHP - Fungsi RENJA
Created By : Siau Pheng ([email protected]).
Created Date : January 31st, 2026.
(c) 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func.sippd.php");
use siaupheng\fonia3\Web\Param;
function ambil_renja($db = null) {
$aret = ['status' => "success", 'message' => 'Berhasil mendapatkan data!', 'action' => $_POST['action'], 'run' => $_POST['run'], 'data' => []];
$tahun = Param::Get("tahun_anggaran", 0);
$id_skpd = Param::Get("id_skpd", 0);
$id_sub_skpd = fastQueryArray("SELECT OPDID FROM para90_opd WHERE SIPD_OPD='".$id_skpd."'", 0);
//$where = ' AND set_kab_kota=1';
//para90_submap -> i_submap : sementara
$master_bidang_urusan = [];
$db->Query("SELECT DISTINCT K_Bidu,N_Bidu FROM i_submap WHERE Tahun='".$tahun."'");
while ($db->Next()) {
$master_bidang_urusan[$db->Row("K_Bidu")] = $db->AllRow();
}
$data_sub_giat = [];
// kode_skpd, nama_skpd, pagu_keg, kode_bl
$db->Query("SELECT *,CONCAT(B.id_skpd,'.',B.id_sub_skpd,'.',C.id_program,'.',C.id_giat,'.',C.id_sub_giat) kode_sbl FROM (SELECT RK_PROGID,RK_KEGID,OPDID,ProgID,SubID,553 id_lokasi,Waktu1 waktu_awal,Waktu2 waktu_akhir,Pagu_Ini pagu,Pagu_Dpn pagu_n_depan,Txt_Indi,Satuan_Indi,Target_Indi FROM renja_sub WHERE Tahun='".$tahun."' AND OPDID IN (".implode(",",$id_sub_skpd).")) A LEFT JOIN (SELECT OPDID,K_Bidu1,K_OPD kode_skpd_asli,N_OPD nama_sub_skpd,SIPD_OPD id_skpd,SIPD_Unit id_sub_skpd FROM para90_opd WHERE OPDID IN(".implode(",",$id_sub_skpd).")) B ON (A.OPDID=B.OPDID) LEFT JOIN (SELECT ProgID,SubID,Lama_ProgID,Lama_SubID,UrusanID id_urusan,BUID id_bidang_urusan,ProgID id_program,KegID id_giat,SubID id_sub_giat,K_Urusan kode_urusan,K_Bidu kode_bidang_urusan,K_Prog kode_program,K_Keg kode_giat,K_Sub kode_sub_giat,N_Urusan nama_urusan,N_Bidu nama_bidang_urusan,N_Prog nama_program,CONCAT(K_Keg,' ',N_Keg) nama_giat,CONCAT(K_Sub,' ',N_Sub) nama_sub_giat FROM i_submap WHERE Tahun='".$tahun."') C ON (A.ProgID=C.Lama_ProgID AND A.SubID=C.Lama_SubID) WHERE C.ProgID IS NOT NULL ORDER BY C.kode_sub_giat");
while ($db->Next()) {
$data_sub_giat[] = $db->AllRow();
}
foreach ($data_sub_giat as $k => $sub) {
$sub['kode_sub_skpd'] = $sub['kode_skpd_asli'];
$data_sub_giat[$k]['kode_sub_skpd'] = $sub['kode_skpd_asli'];
if ($sub['kode_bidang_urusan'] == 'X.XX') {
$urusan_utama = $sub['K_Bidu1'];
if (!empty($master_bidang_urusan[$urusan_utama])) {
$data_sub_giat[$k]['kode_bidang_urusan'] = $master_bidang_urusan[$urusan_utama]['K_Bidu'];
$data_sub_giat[$k]['nama_bidang_urusan'] = $master_bidang_urusan[$urusan_utama]['N_Bidu'];
}
}
/*if (!empty($sub['kode_sbl_lama'])) {
$data_sub_giat[$k]['sub_keg_lama'] = array();
$kode_sbl_lama = explode('|', $sub['kode_sbl_lama']);
foreach ($kode_sbl_lama as $kd_lama) {
$data_lama = $wpdb->get_row($wpdb->prepare("
SELECT
sk.*
FROM data_sub_keg_bl_lokal sk
WHERE kode_sbl=%s
AND sk.tahun_anggaran=%d
", $kd_lama, $tahun_anggaran), ARRAY_A);
if ($data_lama['kode_bidang_urusan'] == 'X.XX') {
$urusan_utama_lama = explode('.', $data_lama['kode_sub_skpd']);
$urusan_utama_lama = $urusan_utama_lama[0] . '.' . $urusan_utama_lama[1];
if (!empty($master_bidang_urusan[$urusan_utama_lama])) {
$data_lama['kode_bidang_urusan'] = $master_bidang_urusan[$urusan_utama_lama]['kode_bidang_urusan'];
$data_lama['nama_bidang_urusan'] = $master_bidang_urusan[$urusan_utama_lama]['nama_bidang_urusan'];
}
}
$data_sub_giat[$k]['sub_keg_lama'][] = $data_lama;
}
}*/
$data_sub_giat[$k]['sumber_dana'] = [];
$data_sub_giat[$k]['lokasi'] = [];
$data_sub_giat[$k]['indikator'] = [];
$data_sub_giat[$k]['indikator_kegiatan'] = [];
$data_sub_giat[$k]['indikator_program'] = [];
$data_sub_giat[$k]['indikator_hasil'] = [];
$db->Query("SELECT * FROM (SELECT * FROM renja_keg WHERE Tahun='".$tahun."' AND RK_KEGID='".$sub['RK_KEGID']."') A LEFT JOIN renstra_output B ON (B.RA_OUTPUTID=A.RA_OUTPUTID)");
if ($db->Next()) {
//data_keg_indikator_hasil_lokal
$data_sub_giat[$k]['indikator_hasil'][] = ['hasilteks' => $db->Row("Txt_Output"), 'satuanhasil' => $db->Row("Hasil_Satuan","%"), 'targethasil' => $db->Row("Hasil_Target",100), 'targethasilteks' => $db->Row("Hasil_Target",100)." ".$db->Row("Hasil_Satuan","%")];
//data_output_giat_sub_keg_lokal
$data_sub_giat[$k]['indikator_kegiatan'][] = ['outputteks' => $db->Row("Keluar_Txt"), 'satuanoutput' => $db->Row("Keluar_Satuan"), 'targetoutput' => $db->Row("Keluar_Target"), 'targetoutputteks' => $db->Row("Keluar_Target")." ".$db->Row("Keluar_Satuan")];
$data_sub_giat[$k]['sasaran'] = $db->Row("Sasaran");
}
//data_capaian_prog_sub_keg_lokal
//todo: pastikan T --> sesuai periode rpjmd
$indikator_program = [];
$db->Query("SELECT Txt_Indi capaianteks,Indi_Satuan satuancapaian,Indi_T2 targetcapaian,CONCAT(Indi_T2,' ',Indi_Satuan) targetcapaianteks FROM renstra_prog_indi WHERE RD_OUTCOMEID IN (SELECT RD_OUTCOMEID FROM renja_prog WHERE RK_PROGID='".$sub['RK_PROGID']."')");
while ($db->Next()) {
$data_sub_giat[$k]['indikator_program'][] = $db->AllRow();
}
//data_dana_sub_keg_lokal
$data_sumber_dana = ['kodedana' => "1.1", 'iddana' => 2, 'pagudana' => $sub['pagu']];
$data_sub_giat[$k]['sumber_dana'][] = $data_sumber_dana;
//data_lokasi_sub_keg_lokal
$data_lokasi = ['idcamat' => 0, 'idkabkota' => 553];
$data_sub_giat[$k]['lokasi'][] = $data_lokasi;
//data_sub_keg_indikator_lokal
$data_sub_keg_indikator = ['outputteks' => $sub['Txt_Indi'], 'targetoutput' => $sub['Target_Indi'], 'satuanoutput' => $sub['Satuan_Indi']];
$data_sub_giat[$k]['indikator'][] = $data_sub_keg_indikator;
unset ($data_sub_giat[$k]['Txt_Indi'], $data_sub_giat[$k]['Satuan_Indi'], $data_sub_giat[$k]['Target_Indi']);
}
if (!empty($data_sub_giat)) {
$aret['data'] = $data_sub_giat;
}
return $aret;
}
?>