first commit

This commit is contained in:
2026-06-07 14:39:54 +07:00
commit 74f29bf756
104 changed files with 26026 additions and 0 deletions
+286
View File
@@ -0,0 +1,286 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/sim/bangda_renstra.php
Desc. : PHP - Simulasi Program Renstra ke Bangda Kemendagri
Created By : Siau Pheng ([email protected]).
Created Date : October 28th, 2011.
Last Modified : March 30th, 2022.
(c) 2011 - 2022, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func.sippd.php");
use siaupheng\fonia4\DB\MySQL;
use siaupheng\fonia4\DB\SQL;
use siaupheng\fonia4\Web\Param;
use siaupheng\fonia4\Web\Table;
use siaupheng\fonia4\Web\Form;
function Ren_Tambah_Program($id_rpjmd=0, $id_opd=0) {//oke
global $db;
$ahasil = [];
$ainfo = [];
$db->Query("SELECT O.K_OPD FROM (SELECT * FROM para90_opd WHERE OPDID='".$id_opd."' LIMIT 1) O");
if ($db->Next()) $ainfo = $db->AllRow();
$db->Query("SELECT P.K_Program FROM (SELECT OPDID,CONCAT('&program[]=',GROUP_CONCAT(CONCAT(LEFT(K_Prog,4),'___',K_Prog) ORDER BY K_Prog SEPARATOR '&program[]=')) K_Program FROM renstra_prog WHERE RPJMDID='".$id_rpjmd."' AND OPDID='".$id_opd."') P");
while ($db->Next()) {
$ahasil[] = "\$.ajax({url:BASE_URL+'/?m='+nama_paket+'&f=save_program',type:'post',data:'kodeskpddikirim=".$ainfo['K_OPD'].$db->Row("K_Program")."'});<br>";
}
return $ahasil;
}
function Ren_Tambah_Program_Indi($id_rpjmd=0, $id_opd=0) {//oke
global $db;
$ahasil = [];
$ainfo = [];
$db->Query("SELECT O.K_OPD FROM (SELECT * FROM para90_opd WHERE OPDID='".$id_opd."' LIMIT 1) O");
if ($db->Next()) $ainfo = $db->AllRow();
$db->Query("SELECT I.*,T.K_Prog,T.K_Bidu,S.K_Satuan FROM (SELECT * FROM renstra_prog_indi WHERE RPJMDID='".$id_rpjmd."' AND OPDID='".$id_opd."') I LEFT JOIN (SELECT ProgID,K_Prog,LEFT(K_Prog,4) K_Bidu FROM renstra_prog WHERE RPJMDID='".$id_rpjmd."' AND OPDID='".$id_opd."') T ON (T.ProgID=I.ProgID) LEFT JOIN para_satuan S ON (S.SatuanID=I.SatuanID) ORDER BY T.K_Prog");
while ($db->Next()) {
$ahasil[] = "\$.ajax({url:BASE_URL+'/?m='+nama_paket+'&f=tambah_program_indikator',type:'post',data:'kodeprogramindikator=".$db->Row("No_Indi")."&uraiprogram_indikator=".$db->Row("Txt_Indi")."&tbl-master-indikator_length=10&satuan=".$db->Row("K_Satuan")."&status=".strtolower($db->Row("Indi_Status"))."&volume_awal=".$db->Row("Indi_T1")."&volume[2021]=".$db->Row("Indi_T2")."&volume[2022]=".$db->Row("Indi_T3")."&volume[2023]=".$db->Row("Indi_T4")."&volume[2024]=".$db->Row("Indi_T5")."&kodeprogram=".$db->Row("K_Prog")."&kodeskpd=".$ainfo['K_OPD']."&kodebidang=".$db->Row("K_Bidu")."&kodeindikator_master=&kodeindikator_transaksi=&kodeprogramindikator_target='});<br>";
}
return $ahasil;
}
function Ren_Tambah_Kegiatan($id_rpjmd=0, $id_opd=0, $id_prog=0) {//oke
global $db;
$ahasil = [];
$ainfo = [];
$db->Query("SELECT O.K_OPD FROM (SELECT * FROM para90_opd WHERE OPDID='".$id_opd."' LIMIT 1) O");
if ($db->Next()) $ainfo = $db->AllRow();
$tsql = ($id_prog == 0) ? "" : " AND ProgID='".$id_prog."'";
$db->Query("SELECT K.K_Kegiatan,P.* FROM (SELECT ProgID,CONCAT('&Kegiatan[]=',GROUP_CONCAT(K_Keg ORDER BY K_Keg SEPARATOR '&Kegiatan[]=')) K_Kegiatan FROM renstra_keg WHERE RPJMDID='".$id_rpjmd."' AND OPDID='".$id_opd."'".$tsql." GROUP BY ProgID) K LEFT JOIN (SELECT ProgID,K_Prog,LEFT(K_Prog,4) K_Bidu FROM renstra_prog WHERE RPJMDID='".$id_rpjmd."' AND OPDID='".$id_opd."'".$tsql.") P ON (P.ProgID=K.ProgID) ORDER BY P.K_Prog");
while ($db->Next()) {
$ahasil[] = "\$.ajax({url:BASE_URL+'/?m='+nama_paket+'&f=save_kegiatan',type:'post',data:'kodeskpddikirim=".$ainfo['K_OPD']."&kodeprogramdikirim=".$db->Row("K_Prog")."&bid=".$db->Row("K_Bidu").$db->Row("K_Kegiatan")."'});<br>";
}
return $ahasil;
}
function Ren_Tambah_Kegiatan_Indi($id_rpjmd=0, $id_opd=0, $id_prog=0) {//oke
global $db;
$ahasil = [];
$ainfo = [];
$db->Query("SELECT O.K_OPD FROM (SELECT * FROM para90_opd WHERE OPDID='".$id_opd."' LIMIT 1) O");
if ($db->Next()) $ainfo = $db->AllRow();
$tsql = ($id_prog == 0) ? "" : " AND ProgID='".$id_prog."'";
$db->Query("SELECT I.*,T.K_Keg,P.K_Prog,P.K_Bidu,S.K_Satuan FROM (SELECT * FROM renstra_keg_indi WHERE RPJMDID='".$id_rpjmd."' AND OPDID='".$id_opd."'".$tsql.") I LEFT JOIN (SELECT ProgID,KegID,K_Keg FROM renstra_keg WHERE RPJMDID='".$id_rpjmd."' AND OPDID='".$id_opd."'".$tsql.") T ON (T.ProgID=I.ProgID AND T.KegID=I.KegID) LEFT JOIN (SELECT ProgID,K_Prog,LEFT(K_Prog,4) K_Bidu FROM renstra_prog WHERE RPJMDID='".$id_rpjmd."' AND OPDID='".$id_opd."'".$tsql.") P ON (P.ProgID=T.ProgID) LEFT JOIN para_satuan S ON (S.SatuanID=I.SatuanID) ORDER BY T.K_Keg");
while ($db->Next()) {
$ahasil[] = "\$.ajax({url:BASE_URL+'/?m='+nama_paket+'&f=simpan_indikator',type:'post',data:'kodeskpd=".$ainfo['K_OPD']."&kodeprogram=".$db->Row("K_Prog")."&kodekegiatan=".$db->Row("K_Keg")."&kodebidang=".$db->Row("K_Bidu")."&urai_indikator[0]=".$db->Row("Txt_Indi")."&urai_satuan[0]=".$db->Row("K_Satuan")."&status_indikator[0]=".strtolower($db->Row("Indi_Status"))."&volume_awal=".$db->Row("Indi_T1")."&volume[0][]=".$db->Row("Indi_T2")."&volume[0][]=".$db->Row("Indi_T3")."&volume[0][]=".$db->Row("Indi_T4")."&volume[0][]=".$db->Row("Indi_T5")."&uang_awal=0&uang[0][]=0&uang[0][]=0&uang[0][]=0&uang[0][]=0&tbl-master-indikator_length=10&kodesubkegiatan=&kodeunit=&kodeindikator_master=&kodeindikator_transaksi='});<br>";
}
return $ahasil;
}
function Ren_Tambah_SubKeg($id_rpjmd=0, $id_opd=0, $id_prog=0, $id_keg=0) {//oke
global $db;
$ahasil = [];
$ainfo = [];
$db->Query("SELECT O.K_OPD FROM (SELECT * FROM para90_opd WHERE OPDID='".$id_opd."' LIMIT 1) O");
if ($db->Next()) $ainfo = $db->AllRow();
$tsql1 = ($id_prog == 0) ? "" : " AND ProgID='".$id_prog."'";
$tsql2 = $tsql1;
$tsql2 .= ($id_keg == 0) ? "" : " AND KegID='".$id_keg."'";
$db->Query("SELECT P.K_Prog,P.K_Bidu,A.K_Keg,K.K_SubKeg FROM (SELECT ProgID,KegID,CONCAT('&subkegiatan[]=',GROUP_CONCAT(K_Sub ORDER BY K_Sub SEPARATOR '&subkegiatan[]=')) K_SubKeg FROM renstra_sub WHERE RPJMDID='".$id_rpjmd."' AND OPDID='".$id_opd."'".$tsql2." GROUP BY ProgID,KegID) K LEFT JOIN (SELECT ProgID,K_Prog,LEFT(K_Prog,4) K_Bidu FROM renstra_prog WHERE RPJMDID='".$id_rpjmd."' AND OPDID='".$id_opd."'".$tsql1.") P ON (P.ProgID=K.ProgID) LEFT JOIN (SELECT ProgID,KegID,K_Keg FROM renstra_keg WHERE OPDID='".$id_opd."'".$tsql2.") A ON (A.ProgID=K.ProgID AND A.KegID=K.KegID) ORDER BY A.K_Keg");
while ($db->Next()) {
$ahasil[] = "\$.ajax({url:BASE_URL+'/?m='+nama_paket+'&f=save_subkegiatan',type:'post',data:'kodeskpd=".$ainfo['K_OPD']."&kodeprogram=".$db->Row("K_Prog")."&kodebidang=".$db->Row("K_Bidu")."&kodekegiatan=".$db->Row("K_Keg").$db->Row("K_SubKeg")."'});<br>";
}
return $ahasil;
}
function Ren_Tambah_SubKeg_Indi($id_rpjmd=0, $id_opd=0, $id_prog=0, $id_keg=0) {//oke
global $db;
$ahasil = [];
$ainfo = [];
$db->Query("SELECT O.K_OPD,P.K_Prog,P.K_Bidu,K.K_Keg FROM (SELECT * FROM para90_opd WHERE OPDID='".$id_opd."' LIMIT 1) O LEFT JOIN (SELECT OPDID,K_Prog,LEFT(K_Prog,4) K_Bidu FROM renstra_prog WHERE RPJMDID='".$id_rpjmd."' AND OPDID='".$id_opd."' AND ProgID='".$id_prog."' LIMIT 1) P ON (P.OPDID=O.OPDID) LEFT JOIN (SELECT OPDID,K_Keg FROM renstra_keg WHERE OPDID='".$id_opd."' AND ProgID='".$id_prog."' AND KegID='".$id_keg."' LIMIT 1) K ON (K.OPDID=O.OPDID)");
if ($db->Next()) $ainfo = $db->AllRow();
$db->Query("SELECT I.*,T.K_Sub,S.K_Satuan FROM (SELECT * FROM renstra_sub_indi WHERE OPDID='".$id_opd."' AND ProgID='".$id_prog."' AND KegID='".$id_keg."' AND SIPD_RENSTRA>0) I LEFT JOIN (SELECT * FROM renstra_sub WHERE OPDID='".$id_opd."' AND ProgID='".$id_prog."' AND KegID='".$id_keg."') T ON (T.SubID=I.SubID) LEFT JOIN para_satuan S ON (S.SatuanID=I.SatuanID)");
while ($db->Next()) {
$ahasil[] = "\$.ajax({url:BASE_URL+'/?m='+nama_paket+'&f=ubah_subkegiatan_indikator',type:'post',data:'kodeskpd=".$ainfo['K_OPD']."&kodeprogram=".$ainfo['K_Prog']."&kodekegiatan=".$ainfo['K_Keg']."&kodesubkegiatan=".$db->Row("K_Sub")."&kodebidang=".$ainfo['K_Bidu']."&subkeg=".$db->Row("K_Sub")."&urai_indikator=".$db->Row("Txt_Indi")."&lokasi=61.02&urai_satuan[0]=".$db->Row("K_Satuan")."&status_indikator=".strtolower($db->Row("Indi_Status"))."&volume_awal=".$db->Row("Indi_T1")."&uang_awal=".rupiah2($db->Row("Pagu_T1"))."&volume[]=".$db->Row("Indi_T2")."&uang[]=".rupiah2($db->Row("Pagu_T2"))."&volume[]=".$db->Row("Indi_T3")."&uang[]=".rupiah2($db->Row("Pagu_T3"))."&volume[]=".$db->Row("Indi_T4")."&uang[]=".rupiah2($db->Row("Pagu_T4"))."&volume[]=".$db->Row("Indi_T5")."&uang[]=".rupiah2($db->Row("Pagu_T5"))."&kodesubkegiatan_indikator=".$db->Row("SIPD_RENSTRA")."&kodesubkegiatan_indikator_target=&kodeindikator_master=&kodeunit='});<br>";
}
return $ahasil;
}
/************************** RESPON HERE ***************************/
$db = $db ?? new MySQL();
$ajson = [];
$data = Param::Get("data");
$mode = Param::Get("mode");
$id_rpjmd = $_SESSION['__WEB_APP']['RENC_RPJMDID'];
$id_opd = Param::Get("OPDID", 0);
$id_prog = Param::Get("ProgID", 0);
$id_keg = Param::Get("KegID", 0);
if ( in_array($data, ["tabel-opd","tabel-prog","tabel-keg","tabel-sub"]) ) {//oke
$qsql = "RPJMDID='".$id_rpjmd."'";
$msql = "Aktif=1";
if ( $data == "tabel-prog" ) {
$qsql .= " AND OPDID='".$id_opd."'";
} else if ( $data == "tabel-keg" ) {
$qsql .= " AND OPDID='".$id_opd."' AND ProgID='".$id_prog."'";
} else if ( $data == "tabel-sub" ) {
$qsql .= " AND OPDID='".$id_opd."' AND KegID='".$id_keg."'";
}
}
if ( $data == "tabel-opd" ) {//oke
$obj = new Table($db);
$obj->set_query("SELECT M.OPDID OPDID2,M.K_OPD,M.N_OPD,IFNULL(B.ITEM_PROG,0) ITEM_PROG FROM vi_para90_opd M LEFT JOIN (SELECT OPDID,COUNT(*) ITEM_PROG FROM renstra_prog WHERE ".$qsql." GROUP BY OPDID) B ON (B.OPDID=M.OPDID) WHERE ".$msql);
$obj->add_field("OPDID2", "OPD", "hid");
$obj->add_field("K_OPD", "Kode", "c");
$obj->add_field("N_OPD", "Nama Perangkat Daerah", "awr");
$obj->add_field("ITEM_PROG", "Prog", "c");
$obj->set_field_order("K_OPD", "A");
$obj->add_row_btn("send", "+ Prog", "BangdaRenstraJS.kode_tambah_prog");
$obj->add_row_btn("document", "+ Indi Prog", "BangdaRenstraJS.kode_tambah_prog_indi");
$obj->add_row_btn("select", "Program", "BangdaRenstraJS.opd_select");
$obj->set_func_navi("BangdaRenstraJS.data_query('tabel-opd')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divOPD");
} else if ( $data == "tabel-prog" ) {//oke
$obj = new Table($db);
$obj->set_query("SELECT P.*,A.N_Prog,A.Nama_Prog,IFNULL(B.ITEM_KEG,0) ITEM_KEG FROM (SELECT * FROM renstra_prog WHERE ".$qsql.") P LEFT JOIN vi_para90_prog A ON (P.ProgID=A.ProgID) LEFT JOIN (SELECT ProgID,COUNT(*) ITEM_KEG FROM renstra_keg WHERE ".$qsql." GROUP BY ProgID) B ON (B.ProgID=P.ProgID)");
$obj->add_field("ProgID", "ID", "hid");
$obj->add_field("Nama_Prog", "Nama_Program", "hid");
$obj->add_field("K_Prog", "Kode", "c");
$obj->add_field("N_Prog", "Nama Program", "awr");
$obj->add_field("ITEM_KEG", "Keg", "c");
$obj->set_field_order("K_Prog", "A");
$obj->add_row_btn("send", "+ Keg", "BangdaRenstraJS.kode_tambah_keg");
$obj->add_row_btn("document", "+ Indi Keg", "BangdaRenstraJS.kode_tambah_keg_indi");
$obj->add_row_btn("select", "Kegiatan", "BangdaRenstraJS.prog_select");
$obj->set_func_navi("BangdaRenstraJS.data_query('tabel-prog')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divPROG");
} else if ( $data == "tabel-keg" ) {//oke
$obj = new Table($db);
$obj->set_query("SELECT P.*,A.N_Keg,A.Nama_Keg,IFNULL(K.ITEM_SUB,0) ITEM_SUB FROM (SELECT * FROM renstra_keg WHERE ".$qsql.") P LEFT JOIN vi_para90_keg A ON (P.KegID=A.KegID) LEFT JOIN (SELECT KegID,COUNT(*) ITEM_SUB FROM renstra_sub WHERE ".$qsql." GROUP BY KegID) K ON (K.KegID=P.KegID)");
$obj->add_field("KegID", "ID", "hid");
$obj->add_field("Nama_Keg", "Nama_Keg", "hid");
$obj->add_field("K_Keg", "Kode", "c");
$obj->add_field("N_Keg", "Nama Kegiatan", "awr");
$obj->add_field("ITEM_SUB", "Sub", "c");
$obj->set_field_order("K_Keg", "A");
$obj->add_row_btn("send", "+ Sub", "BangdaRenstraJS.kode_tambah_sub");
$obj->add_row_btn("point", "= Indi Map", "BangdaRenstraJS.html_show");
$obj->add_row_btn("select", "= Indi Sub", "BangdaRenstraJS.kode_tambah_sub_indi");
$obj->set_func_navi("BangdaRenstraJS.data_query('tabel-keg')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEG");
} else if ( $data == "kode-tambah-prog" ) {//oke
$ajson = Ren_Tambah_Program($id_rpjmd, $id_opd);
} else if ( $data == "kode-tambah-prog-indi" ) {//oke
$ajson = Ren_Tambah_Program_Indi($id_rpjmd, $id_opd);
} else if ( $data == "kode-tambah-keg" ) {//oke
$ajson = Ren_Tambah_Kegiatan($id_rpjmd, $id_opd, $id_prog);
} else if ( $data == "kode-tambah-keg-indi" ) {//oke
$ajson = Ren_Tambah_Kegiatan_Indi($id_rpjmd, $id_opd, $id_prog);
} else if ( $data == "kode-tambah-sub" ) {//oke
$ajson = Ren_Tambah_SubKeg($id_rpjmd, $id_opd, $id_prog, $id_keg);
} else if ( $data == "kode-tambah-sub-indi" ) {//oke
$ajson = Ren_Tambah_SubKeg_Indi($id_rpjmd, $id_opd, $id_prog, $id_keg);
} else if ( $data == "simpan-html" ) {
$ajson['result'] = 0;
$thtml = stripslashes(Param::Get("Kode_HTML", ""));
$dom = new DOMDocument();
@$dom->loadHTML($thtml);
$db->Query("UPDATE renstra_sub_indi SET SIPD_RENSTRA=0 WHERE RPJMDID='".$id_rpjmd."' AND OPDID='".$id_opd."' AND KegID='".$id_keg."'");
$atr = $dom->getElementsByTagName("tr");
foreach ($atr as $tr) {
if ($tr->hasAttributes()) {
if (false === strpos($tr->attributes['id']->value, "record_")) continue;
$_id = 0; $_ksub = "";
foreach ($tr->attributes as $a) {
if ($a->nodeName == "data-tt-id") $_id = intval($a->nodeValue);
if ($a->nodeName == "data-tt-parent-id") $_ksub = $a->nodeValue;
}
if ($_id > 0 && $_ksub <> "") {
$_oke = false; $asub = [];
$db->Query("SELECT * FROM renstra_sub WHERE RPJMDID='".$id_rpjmd."' AND OPDID='".$id_opd."' AND KegID='".$id_keg."' AND K_Sub='".$_ksub."'");
if ($db->Next()) {
$asub = $db->AllRow(); $_oke = true;
}
if ($_oke) {
$db->Query("UPDATE renstra_sub_indi SET SIPD_RENSTRA='".$_id."' WHERE RPJMDID='".$id_rpjmd."' AND OPDID='".$id_opd."' AND ProgID='".$asub['ProgID']."' AND KegID='".$asub['KegID']."' AND SubID='".$asub['SubID']."'");
}
}
}
}
$ajson['result'] = 1;
} else if ( $data == "default") {//oke
echo '
<div class="fade-in">
<div class="card"><div class="card-header custom-style container-fluid"><div class="row"><div class="col-md-10">Push Program Renstra ke SIPD Bangda Kemendagri</div><div class="col-md-2">
<div class="dropdown">
<button class="btn btn-secondary shadow-none dropdown-toggle" type="button" id="dropdownMenuButton" data-coreui-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Opsi / OPD</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="#" id="opsiProg">+ Program</a>
<a class="dropdown-item" href="#" id="opsiProgIndi">+ Indi Program</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#" id="opsiKeg">+ Kegiatan</a>
<a class="dropdown-item" href="#" id="opsiKegIndi">+ Indi Kegiatan</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#" id="opsiSub">+ Sub Kegiatan</a>
</div>
</div>
</div></div></div>
<div class="card-body">
<div class="form-row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_OPD" placeholder="Nama Perangkat Daerah" type="text" readonly>
<input id="OPDID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butOPD"><span><i class="c-icon cui-swap-horizontal"></span></i>OPD</button>
</div>
</div>
</div>
<div class="form-row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_PROG" placeholder="Nama Program Renstra" type="text" readonly>
<input id="ProgID" type="hidden" value="0">
<input id="KegID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butPROG"><span><i class="c-icon cui-swap-horizontal"></span></i>Program</button>
</div>
</div>
</div>
<div id="divOPD">&nbsp;</div>
<div id="divPROG">&nbsp;</div>
<div id="divKEG">&nbsp;</div>
</div></div>
</div>';
exit;
}
send_json($ajson, true);
?>