commit pertama

This commit is contained in:
2026-01-30 13:07:53 +07:00
commit 48199537d4
303 changed files with 136097 additions and 0 deletions
+183
View File
@@ -0,0 +1,183 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/forum/ba_kec.php
Desc. : PHP - Cetak Berita Acara / Kecamatan
Created By : Siau Pheng ([email protected]).
Created Date : March 21st, 2014.
Last Modified : June 6th, 2024.
(c) 2014 - 2024, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
ini_set("pcre.backtrack_limit", 100000000);
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/report.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Form;
function centang($urut=0, $nilai=0) {
return (($urut==$nilai && $nilai>0) ? "X" : "&nbsp;");
}
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$tahun = Param::Get("Tahun", $_SESSION['__WEB_APP']['RENC_THN']);
$id_kec = Param::Get("KecID", 0);
$id_forum = Param::Get("ForumID", 0);
$id_opd = Param::Get("OPDID", 0);
$id_status = Param::Get("StatusID", 0);
if ( $data == "pdf" || $data == "print") {
$nama_kec = "Semua Kecamatan";
if ($id_kec > 0) {
$db->Query("SELECT N_Lokasi FROM para_lokasi WHERE LokasiID='".$id_kec."' LIMIT 1");
if ($db->Next()) $nama_kec = $db->Row("N_Lokasi");
}
$cat_status = '<br><br><table class="ttd-ba-status"><tbody><tr><td class="judul" colspan="2">Keterangan :</td></tr>';
$db->Query("SELECT * FROM para_status WHERE Aktif=1 ORDER BY K_Status");
while ($db->Next()) {
$cat_status .= sprintf('<tr><td style="width:20px;">%s.</td><td>%s</td></tr>', $db->Row("K_Status"), $db->Row("N_Status"));
}
$cat_status .= '</tbody></table>';
$tsql = " Tahun='".$tahun."' AND ((JU<3 AND Prio>0) OR (JU=3))";
$tsql .= ($id_kec==0) ? "" : " AND KecID='".$id_kec."'";
$tsql .= ($id_forum==0) ? "" : " AND OPDID IN (SELECT OPDID FROM para90_opd WHERE Aktif=1 AND ForumID='".$id_forum."')";
$tsql .= ($id_opd==0) ? "" : " AND OPDID='".$id_opd."'";
$tsql .= ($id_status==0) ? "" : " AND StatusID='".$id_status."'";
// proses rekap database
Report_Empty("mus_opd");
$db->Query("INSERT INTO rep_mus_opd SELECT T.Tahun,T.KecID,T.OPDID,T.KelID,SUM(T.Rupiah2),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.KecID,T.OPDID");
$db->Query("SELECT T.*,K.K_Lokasi K_Kec,K.N_Lokasi N_Kec,D.N_Lokasi N_Desa,CONCAT(IF(T.JU=3,'KEC',K.K_Lokasi),'.',T.Kode) Kode_Usul,CONCAT(T.Volume2,' ',S.N_Satuan) Vol_Satuan,O.S_OPD,O.K_OPD,O.N_OPD,F.ForumID ForumID2,F.N_Forum,RO.* FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T LEFT JOIN para_lokasi K ON (K.LokasiID=T.KecID AND K.Level=1) LEFT JOIN para_lokasi D ON (D.LokasiID=T.KelID AND D.Level=2) LEFT JOIN para_satuan S ON (S.SatuanID=T.SatuanID2) LEFT JOIN para90_opd O ON (O.OPDID=T.OPDID) LEFT JOIN para_forum F ON (F.ForumID=O.ForumID) LEFT JOIN rep_mus_opd RO ON (T.KecID=RO.KecID AND T.OPDID=RO.OPDID AND T.Tahun=RO.Tahun AND RO.UserID='".user_id()."' AND RO.Unix='".user_unix()."') ORDER BY K.K_Lokasi,O.ForumID,O.K_OPD,T.JU DESC,T.Kode");
}
if ( $data == "pdf" ) {
$html = '<p class="judul">Berita Acara Kesepakatan<br>Forum Perangkat Daerah / Lintas Perangkat Daerah<br>Kabupaten Sambas Tahun '.($tahun-1).'</p>';
$footer = '<htmlpagefooter name="RepFoot%s"><table class="footer"><tr><td width="33%%">eForum - Kabupaten Sambas</td><td width="34%%" class="c">%s</td><td width="33%%" class="r i">{DATE d-m-Y H:i} / Halaman : {PAGENO} dari {nbpg}</td></tr></table></htmlpagefooter>';
$_setfoot = '<sethtmlpagefooter name="RepFoot%s" show-this-page="1" value="on" />';
$t_head = '<div><table class="garis" autosize="1"><thead><tr><th style="width:8%;">Kode</th><th style="width:4%;">Prio</th><th style="width:8%;">Desa</th><th>Usulan Kegiatan</th><th style="width:10%;">Volume</th><th style="width:15%;">Lokasi</th><th style="width:11%;">Jumlah</th><th style="width:3%;">1</th><th style="width:3%;">2</th><th style="width:3%;">3</th><th style="width:3%;">4</th><th style="width:3%;">5</th></tr></thead><tbody>';
$t_foot = '</tbody></table></div>';
$t_ttd = 'Sambas, '.tgl_panjang().'<br>Wakil Peserta Forum Perangkat Daerah/Lintas Perangkat Daerah Kabupaten Sambas<br><br><table class="ttd-ba"><thead><tr><th>Unsur Perwakilan</th><th>Nama</th><th style="width:20%;">Tanda Tangan</th></tr></thead><tbody><tr><td>Kecamatan</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>Bappeda</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>Perangkat Daerah</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr></tbody></table>';
$_line = '<tr><td class="c">%s</td><td class="c b">%s</td><td>%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td class="r">%s</td><td class="c">%s</td><td class="c">%s</td><td class="c">%s</td><td class="c">%s</td><td class="c">%s</td></tr>';
$_sub = '<tr class="%s"><td colspan="3" class="b">%s</td><td colspan="3" class="b">%s</td><td class="r b">%s</td><td colspan="5" class="b">&nbsp;</td></tr>';
$body = $t_head;
$kkec = ""; $kfor = ""; $kopd = ""; $n_kec = "";
while ($db->Next()) {
$k_kec = $db->Row("K_Kec");
$n_kec = $db->Row("N_Kec");
if ($kkec == "") {
$html .= sprintf($footer, $db->Row("K_Kec"), $n_kec);
$body .= sprintf($_setfoot, $db->Row("K_Kec"));
}
if ($kfor <> $db->Row("ForumID2")) {
$body .= sprintf($_sub, "forum", "Forum", $db->Row("N_Forum"), "");//rupiah($db->Row("FORUM_RUPIAH"))
$kfor = $db->Row("ForumID2");
}
if ($kkec <> $db->Row("K_Kec")) {
if ($kkec <> "") {
$body .= $t_foot;
$body .= '<pagebreak orientation="landscape" />';
$html .= sprintf($footer, "ttd".$k_kec, "Halaman Tanda Tangan Peserta Forum");
$body .= sprintf($_setfoot, "ttd".$k_kec);
$body .= $t_ttd . $cat_status;
$body .= '<pagebreak orientation="landscape" />';
$body .= $t_head;
$html .= sprintf($footer, $db->Row("K_Kec"), $n_kec);
$body .= sprintf($_setfoot, $db->Row("K_Kec"));
$kfor = "";
}
$body .= sprintf($_sub, "kec", "Kecamatan", $db->Row("N_Kec"), "");//rupiah($db->Row("KEC_RUPIAH"))
$kkec = $db->Row("K_Kec");
}
if ($kopd <> $db->Row("K_OPD")) {
$body .= sprintf($_sub, "opd", "Perangkat Daerah", $db->Row("N_OPD"), rupiah($db->Row("OPD_RUPIAH")));
$kopd = $db->Row("K_OPD");
}
$body .= sprintf($_line, $db->Row("Kode_Usul"), $db->Row("Prio"), $db->Row("N_Desa"), $db->Row("Usulan2"), $db->Row("Vol_Satuan"), $db->Row("Lokasi2"), rupiah($db->Row("Rupiah2")), centang(1,$db->Row("StatusID")), centang(2,$db->Row("StatusID")), centang(3,$db->Row("StatusID")), centang(4,$db->Row("StatusID")), centang(5,$db->Row("StatusID")));
}
$body .= sprintf($t_foot);
if ($kkec <> "") {
$body .= '<pagebreak orientation="landscape" />';
$html .= sprintf($footer, "ttd".$k_kec, "Halaman Tanda Tangan Peserta Forum");
$body .= sprintf($_setfoot, "ttd".$k_kec);
$body .= $t_ttd . $cat_status;
}
$mpdf = new \Mpdf\Mpdf([
'mode' => 'c',
'format' => 'A4-L',
'margin_left' => 8,
'margin_right' => 8,
'margin_top' => 8,
'margin_header' => 5,
'margin_footer' => 5
]);
$mpdf->SetDisplayMode('fullpage');
$css = file_get_contents($_SESSION['__WEB_APP']['REAL_PATH'].'assets/css/pdf/forum.css');
$mpdf->WriteHTML($css, \Mpdf\HTMLParserMode::HEADER_CSS);
$mpdf->WriteHTML($html . $body, \Mpdf\HTMLParserMode::HTML_BODY);
$mpdf->SetAuthor($_SESSION['__WEB_APP']['REG_NAME']);
$mpdf->SetCreator($_SESSION['__WEB_APP']['APP_NAME']." v".$_SESSION['__WEB_APP']['APP_VER']);
$mpdf->setTitle("BA Forum ".$nama_kec);
$mpdf->Output("BA Forum ".$nama_kec.".pdf", \Mpdf\Output\Destination::INLINE);
} else if ( $data == "option-opd" ) {
$aoption = array('type' => "option", 'id' => "OPDID", 'value' => 0, 'avalue' => array());
$db->Query("SELECT * FROM vi_para90_opd WHERE Aktif=1 AND IK=0".($id_forum>0?" AND ForumID='".$id_forum."'":"").($_SESSION['__WEB_USER']['Level']==3?" AND OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")":""));
if ($db->RecordCount()<>1) $aoption['avalue'][] = array('value'=>0, 'html'=>"SEMUA OPD");
while ($db->Next()) {
if ($db->RecordCount()==1) $aoption['value'] = $db->Row("OPDID");
$aoption['avalue'][] = array('value'=>$db->Row("OPDID"), 'html'=>$db->Row("Nama_OPD"));
}
$ajson[] = $aoption;
} else if ( $data == "default") {
$q_kec = ($_SESSION['__WEB_USER']['Level']==2) ? " AND LokasiID='".$_SESSION['__WEB_USER']['KecID']."'" : " AND Level=1 AND LokasiID>2";
$form = new Form($db);
$ttahun = $form->option_db("_", "Tahun", $tahun, true, true, "para_periode", array("Tahun","Tahun"), "Tahun BETWEEN '".$_SESSION['__WEB_APP']['Tahun_Min']."' AND '".$_SESSION['__WEB_APP']['Tahun_Max']."'");
$tkec = $form->option_db("_", "KecID", 0, true, true, "para_lokasi", array("LokasiID","N_Lokasi"), "Aktif=1".$q_kec." ORDER BY N_Lokasi", array(0,"&nbsp;"));
$tforum = $form->option_db("_", "ForumID", 0, true, true, "para_forum", array("ForumID","N_Forum"), "Aktif=1 ORDER BY ForumID", array(0,"SEMUA FORUM"), null, "RepoBAKecJS.oc_Forum()");
$topd = $form->option("_", "OPDID", 0, true, true, array(0 => "&nbsp;"));
$tstatus = $form->option_db("_", "StatusID", 0, true, true, "vi_para_status", array("StatusID","Nama_Status"), "Aktif=1 ORDER BY K_Status", array(0,"SEMUA STATUS"));
echo '
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Tahun">Tahun Data</label>
<div class="col-sm-4 col-lg-5">'.$ttahun.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="KecID">Nama Kecamatan</label>
<div class="col-sm-8 col-lg-9">'.$tkec.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="ForumID">Nama Forum</label>
<div class="col-sm-8 col-lg-9">'.$tforum.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="OPDID">Nama Perangkat Deerah</label>
<div class="col-sm-8 col-lg-9">'.$topd.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="StatusID">Nama Status</label>
<div class="col-sm-8 col-lg-9">'.$tstatus.'</div>
</div>';
}
send_json($ajson);
?>
+267
View File
@@ -0,0 +1,267 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/usul/bahan_opd.php
Desc. : PHP - Kelola Bahan Forum OPD
Created By : Siau Pheng ([email protected]).
Created Date : October 28th, 2011.
Last Modified : January 9th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/musrenbang.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\DB\SQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Table;
use siaupheng\fonia3\Web\Form;
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$mode = Param::Get("mode");
$mode_detail = Param::Get("mode_detail");
$efor_enable = true;
$id_rpjmd = $_SESSION['__WEB_APP']['RENC_RPJMDID'];
$thn_renja = $_SESSION['__WEB_APP']['RENC_THN'];
$id_opd = Param::Get("OPDID", 0);
$id_kec = Param::Get("KecID", 0);
$id_kel = Param::Get("KelID", 0);
$id_usul = Param::Get("UsulanLID", 0);
if ( in_array($data, ["tabel-opd","tabel-kec","tabel-kel","tabel-keg"]) ) {
$qsql = "Tahun='".$thn_renja."' AND ((JU<3 AND Prio IN (1,2,3,4,5)) OR (JU=3))";
$msql = "Aktif=1";
if ( $data == "tabel-opd" ) {
$msql .= ($_SESSION['__WEB_USER']['Level']==3) ? " AND OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")": "";
$msql .= " AND IK=0";
} else if ( $data == "tabel-kec" ) {
$qsql .= " AND OPDID='".$id_opd."'";
$qsql .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND KecID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": "";
$msql .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND LokasiID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": " AND Level=1 AND LokasiID>2";
} else if ( $data == "tabel-kel" ) {
$qsql .= " AND OPDID='".$id_opd."' AND KecID='".$id_kec."'";
$msql .= " AND Level=2 AND IndukID='".$id_kec."'";
} else if ( $data == "tabel-keg" ) {
$qsql .= " AND OPDID='".$id_opd."' AND KecID='".$id_kec."' AND KelID='".$id_kel."'";
}
}
if ( $data == "tabel-opd" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.OPDID OPDID2,M.K_OPD,M.N_OPD FROM (SELECT * FROM para90_opd WHERE ".$msql.") M LEFT JOIN (SELECT OPDID,COUNT(DISTINCT KecID) ITEM_KEC,COUNT(DISTINCT KelID) ITEM_KEL,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY OPDID) K ON (K.OPDID=M.OPDID)");
$obj->add_field("OPDID2", "ID", "hid");
$obj->add_field("K_OPD", "Kode", "c");
$obj->add_field("N_OPD", "Perangkat Daerah", "awr");
$obj->add_field("ITEM_KEC", "Kec", "r", "rupiah");
$obj->add_field("ITEM_KEL", "Desa", "r", "rupiah");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("K_OPD", "A");
//$obj->set_row_color("W_OPD", 1, "rsuccess");
$obj->add_row_btn("save", "Kecamatan", "FBahanOPDJS.opd_select");
$obj->set_func_navi("FBahanOPDJS.data_query('tabel-opd')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divOPD");
} else if ( $data == "tabel-kec" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.LokasiID KecID2,M.K_Lokasi,M.N_Lokasi FROM (SELECT * FROM para_lokasi WHERE ".$msql.") M LEFT JOIN (SELECT KecID,COUNT(DISTINCT KelID) ITEM_KEL,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY KecID) K ON (K.KecID=M.LokasiID)");
$obj->add_field("KecID2", "ID", "hid");
$obj->add_field("K_Lokasi", "Kode", "c");
$obj->add_field("N_Lokasi", "Nama Kecamatan", "awr");
$obj->add_field("ITEM_KEL", "Desa", "r", "rupiah");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("N_Lokasi", "A");
$obj->add_row_btn("save", "Desa", "FBahanOPDJS.kec_select");
$obj->set_func_navi("FBahanOPDJS.data_query('tabel-kec')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEC");
} else if ( $data == "tabel-kel" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,IFNULL(M.LokasiID,0) KelID2,IFNULL(M.K_Lokasi,'000') K_Lokasi,IFNULL(M.N_Lokasi,'USULAN KECAMATAN') N_Lokasi FROM (SELECT KelID,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY KelID) K LEFT JOIN para_lokasi M ON (K.KelID=M.LokasiID)");
$obj->add_field("KelID2", "ID", "hid");
$obj->add_field("K_Lokasi", "Kode", "c");
$obj->add_field("N_Lokasi", "Nama Desa", "awr");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("N_Lokasi", "A");
$obj->add_row_btn("save", "Usulan", "FBahanOPDJS.kel_select");
$obj->set_func_navi("FBahanOPDJS.data_query('tabel-kel')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEL");
} else if ( $data == "tabel-keg" ) {
if (in_array($mode_detail, ["update"])) {
$sql = new SQL($db);
$sql->set_table("mus_usulan_desa");
$sql->add_param("Lokasi");
$sql->add_param("Dusun");
$sql->add_param("RT");
$sql->add_param("Masalah");
$sql->add_param("Usulan");
$sql->add_param("Sasaran");
$sql->add_param("Waktu");
$sql->add_param("Volume");
$sql->add_param("SatuanID");
$sql->add_param("Rupiah");
$sql->add_param("OPDID");
$sql->add_param("Prio");
$sql->add_param("StatusID");
$sql->add_param_stamp("Update_Stamp");
$sql->add_param_userid("Update_UserID");
$sql->add_where("RPJMDID", $id_rpjmd);
$sql->add_where("Tahun", $thn_renja);
$sql->add_where("UsulanLID");
$sql->UpdateDB();
}
$obj = new Table($db);
$obj->set_query("SELECT R.*,CONCAT(R.Volume,' ',S.N_Satuan) N_Satuan,IF(R.StatusID=0,'',T.S_Status) X_Status FROM (SELECT * FROM mus_usulan_desa WHERE ".$qsql.") R LEFT JOIN para_satuan S ON (R.SatuanID=S.SatuanID) LEFT JOIN para_status T ON (R.StatusID=T.StatusID)");
$obj->set_query_footer("SELECT R.*,CONCAT(R.Item,' Usulan') N_Satuan FROM (SELECT COUNT(*) Item,SUM(Rupiah) Rupiah FROM mus_usulan_desa WHERE ".$qsql.") R");
$obj->add_field("UsulanLID", "ID", "hid");
$obj->add_field("Kode", "Kode", "c");
$obj->add_field("Usulan", "Usulan Kegiatan", "awr");
$obj->add_field("Lokasi", "Lokasi", "awr");
$obj->add_field("N_Satuan", "Volume", "l");
$obj->add_field("Rupiah", "Anggaran", "nwr r", "rupiah", "rupiah");
$obj->add_field("Prio", "Prio", "c", "", "", "val-zerolast");
$obj->add_field("X_Status", "Status", "l");
$obj->set_field_order("Usulan", "A");
$obj->set_row_color("StatusID", 1, "rgreen");
$obj->set_row_color("StatusID", 2, "ryellow");
$obj->set_row_color("StatusID", 3, "rblue");
$obj->set_row_color("StatusID", 4, "rpurple");
$obj->set_row_color("StatusID", 5, "rred");
$obj->add_row_btn("clipboard", "Ubah", "FBahanOPDJS.keg_ubah");
$obj->set_func_navi("FBahanOPDJS.data_query('tabel-keg')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEG");
} else if ( $data == "detail-keg" ) {
$enable = ($efor_enable) ? true : false;
$adetail = ['UsulanLID'=>0, 'Kode'=>"Usulan Baru"];
if ($id_usul > 0) {
$db->Query("SELECT * FROM mus_usulan_desa WHERE RPJMDID='".$id_rpjmd."' AND Tahun='".$thn_renja."' AND UsulanLID='".$id_usul."' LIMIT 1");
if ($db->Next()) $adetail = $db->AllRow();
}
$form = new Form($db);
$tkode = $form->textbox("_", "Kode", $adetail['Kode'], false, false);
$tlokasi = $form->textbox("_", "Lokasi", $adetail['Lokasi'], $enable, true, "text", "lokasi kegiatan");
$trt = $form->textbox("_", "RT", $adetail['RT'], $enable, true, "text", "rt dan rw");
$tdusun = $form->textbox("_", "Dusun", $adetail['Dusun'], $enable, true, "text", "nama dusun");
$tmasa = $form->textarea("_", "Masalah", $adetail['Masalah'], $enable, true, 2, "permasalahan");
$tusulan = $form->textarea("_", "Usulan", $adetail['Usulan'], $enable, true, 2, "usulan kegiatan");
$tsasa = $form->textbox("_", "Sasaran", $adetail['Sasaran'], $enable, true, "text", "sasaran / manfaat");
$twaktu = $form->textbox("_", "Waktu", $adetail['Waktu'], $enable, true, "text", "waktu pelaksanaan");
$topd = $form->option_db("_", "OPDID", $adetail['OPDID'], $enable, false, "vi_para90_opd", ["OPDID","Nama_OPD"], "IK=0 ORDER BY K_OPD", [0,"&nbsp;"]);
$tvol = $form->textbox("_", "Volume", $adetail['Volume'], $enable, true, "double", "nilai volume");
$tsatu = $form->option_db("_", "SatuanID", $adetail['SatuanID'], $enable, false, "para_satuan", ["SatuanID","N_Satuan"], "Aktif=1 ORDER BY N_Satuan", [0,"&nbsp;"]);
$trupiah = $form->textbox("_", "Rupiah", $adetail['Rupiah'], $enable, true, "double", "nilai anggaran");
$tprio = $form->option("_", "Prio", $adetail['Prio'], $enable, true, MusPrio_Array());
$tstatus = $form->option_db("_", "StatusID", $adetail['StatusID'], $enable, false, "para_status", array("StatusID","N_Status"), "Aktif=1 ORDER BY K_Status", array(0,"&nbsp;"));
$ajson['html'] = '<form id="formBahanOPD" novalidate="novalidate">
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label">Kode Usulan</label>
<div class="col-sm-3 col-lg-3">'.$tkode.'</div>
<label class="col-sm-3 col-lg-5 col-form-label text-end" for="Prio">Prioritas</label>
<div class="col-sm-2 col-lg-1">'.$tprio.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Lokasi">Lokasi Kegiatan</label>
<div class="col-sm-8 col-lg-9">'.$tlokasi.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Dusun">Dusun dan RT / RW</label>
<div class="col-sm-4 col-lg-5">'.$tdusun.'</div>
<div class="col-sm-4 col-lg-4">'.$trt.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Masalah">Permasalahan</label>
<div class="col-sm-8 col-lg-9">'.$tmasa.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Usulan">Usulan Kegiatan</label>
<div class="col-sm-8 col-lg-9">'.$tusulan.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Sasaran">Sasaran / Manfaat</label>
<div class="col-sm-8 col-lg-9">'.$tsasa.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Waktu">Waktu Pelaksanaan</label>
<div class="col-sm-8 col-lg-9">'.$twaktu.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="OPDID">Nama Perangkat Daerah</label>
<div class="col-sm-8 col-lg-9">'.$topd.'</div>
</div>
<div class="row mb-1"><div class="col"><hr class="my-1"></div></div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Volume">Volume Kegiatan</label>
<div class="col-sm-4 col-lg-4">'.$tvol.'</div>
<div class="col-sm-4 col-lg-5">'.$tsatu.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Rupiah">Perkiraan Anggaran</label>
<div class="col-sm-4 col-lg-4">'.$trupiah.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="StatusID">Status / Hasil</label>
<div class="col">'.$tstatus.'</div>
</div></form>
<input type="hidden" id="UsulanLID" value="'.$adetail['UsulanLID'].'" />
<input type="hidden" id="mode_detail" value="'.$mode_detail.'" />';
} else if ( $data == "default") {
echo '
<div class="fade-in">
<div class="card"><div class="card-header custom-style">Bahan Forum OPD - Tahun Perencanaan '.$thn_renja.'</div><div class="card-body">
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_OPD" placeholder="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="bi-arrow-left-right"></span></i>OPD</button>
</div>
</div>
</div>
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_KEC" placeholder="Nama Kecamatan" type="text" readonly>
<input id="KecID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butKEC"><span><i class="bi-arrow-left-right"></span></i>Kecamatan</button>
</div>
</div>
</div>
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_KEL" placeholder="Nama Desa" type="text" readonly>
<input id="KelID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butKEL"><span><i class="bi-arrow-left-right"></span></i>Desa</button>
</div>
</div>
</div>
<div id="divOPD">&nbsp;</div>
<div id="divKEC">&nbsp;</div>
<div id="divKEL">&nbsp;</div>
<div id="divKEG">&nbsp;</div>
</div></div>
</div>';
}
send_json($ajson);
?>
+257
View File
@@ -0,0 +1,257 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/usul/forum_opd.php
Desc. : PHP - Forum OPD / Pembahasan
Created By : Siau Pheng ([email protected]).
Created Date : October 28th, 2011.
Last Modified : January 9th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/musrenbang.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\DB\SQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Table;
use siaupheng\fonia3\Web\Form;
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$mode = Param::Get("mode");
$mode_detail = Param::Get("mode_detail");
$efor_enable = true;
$id_rpjmd = $_SESSION['__WEB_APP']['RENC_RPJMDID'];
$thn_renja = $_SESSION['__WEB_APP']['RENC_THN'];
$id_opd = Param::Get("OPDID", 0);
$id_kec = Param::Get("KecID", 0);
$id_kel = Param::Get("KelID", 0);
$id_usul = Param::Get("UsulanLID", 0);
if ( in_array($data, ["tabel-opd","tabel-kec","tabel-kel","tabel-keg"]) ) {
$qsql = "Tahun='".$thn_renja."' AND ((JU<3 AND Prio IN (1,2,3,4,5)) OR (JU=3))";
$msql = "Aktif=1";
if ( $data == "tabel-opd" ) {
$msql .= ($_SESSION['__WEB_USER']['Level']==3) ? " AND OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")": "";
$msql .= " AND IK=0";
} else if ( $data == "tabel-kec" ) {
$qsql .= " AND OPDID='".$id_opd."'";
$qsql .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND KecID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": "";
$msql .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND LokasiID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": " AND Level=1 AND LokasiID>2";
} else if ( $data == "tabel-kel" ) {
$qsql .= " AND OPDID='".$id_opd."' AND KecID='".$id_kec."'";
$msql .= " AND Level=2 AND IndukID='".$id_kec."'";
} else if ( $data == "tabel-keg" ) {
$qsql .= " AND OPDID='".$id_opd."' AND KecID='".$id_kec."' AND KelID='".$id_kel."'";
}
}
if ( $data == "tabel-opd" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.OPDID OPDID2,M.K_OPD,M.N_OPD,IF(K.ITEM_KEG=K.ITEM_UDAH,1,0) WD FROM (SELECT * FROM para90_opd WHERE ".$msql.") M LEFT JOIN (SELECT OPDID,COUNT(DISTINCT KecID) ITEM_KEC,COUNT(DISTINCT KelID) ITEM_KEL,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH,SUM(IF(StatusID>0,1,0)) ITEM_UDAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY OPDID) K ON (K.OPDID=M.OPDID)");
$obj->add_field("OPDID2", "ID", "hid");
$obj->add_field("K_OPD", "Kode", "c");
$obj->add_field("N_OPD", "Perangkat Daerah", "awr");
$obj->add_field("ITEM_KEC", "Kec", "r", "rupiah");
$obj->add_field("ITEM_KEL", "Desa", "r", "rupiah");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("ITEM_UDAH", "Dibahas", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("K_OPD", "A");
$obj->set_row_color("WD", 1, "rsuccess");
$obj->add_row_btn("save", "Kecamatan", "FForumOPDJS.opd_select");
$obj->set_func_navi("FForumOPDJS.data_query('tabel-opd')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divOPD");
} else if ( $data == "tabel-kec" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.LokasiID KecID2,M.K_Lokasi,M.N_Lokasi,IF(K.ITEM_KEG=K.ITEM_UDAH,1,0) WD FROM (SELECT * FROM para_lokasi WHERE ".$msql.") M LEFT JOIN (SELECT KecID,COUNT(DISTINCT KelID) ITEM_KEL,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH,SUM(IF(StatusID>0,1,0)) ITEM_UDAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY KecID) K ON (K.KecID=M.LokasiID)");
$obj->add_field("KecID2", "ID", "hid");
$obj->add_field("K_Lokasi", "Kode", "c");
$obj->add_field("N_Lokasi", "Nama Kecamatan", "awr");
$obj->add_field("ITEM_KEL", "Desa", "r", "rupiah");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("ITEM_UDAH", "Dibahas", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("N_Lokasi", "A");
$obj->set_row_color("WD", 1, "rsuccess");
$obj->add_row_btn("save", "Desa", "FForumOPDJS.kec_select");
$obj->set_func_navi("FForumOPDJS.data_query('tabel-kec')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEC");
} else if ( $data == "tabel-kel" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,IFNULL(M.LokasiID,0) KelID2,IFNULL(M.K_Lokasi,'000') K_Lokasi,IFNULL(M.N_Lokasi,'USULAN KECAMATAN') N_Lokasi,IF(K.ITEM_KEG=K.ITEM_UDAH,1,0) WD FROM (SELECT KelID,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH,SUM(IF(StatusID>0,1,0)) ITEM_UDAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY KelID) K LEFT JOIN para_lokasi M ON (K.KelID=M.LokasiID)");
$obj->add_field("KelID2", "ID", "hid");
$obj->add_field("K_Lokasi", "Kode", "c");
$obj->add_field("N_Lokasi", "Nama Desa", "awr");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("ITEM_UDAH", "Dibahas", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("N_Lokasi", "A");
$obj->set_row_color("WD", 1, "rsuccess");
$obj->add_row_btn("save", "Usulan", "FForumOPDJS.kel_select");
$obj->set_func_navi("FForumOPDJS.data_query('tabel-kel')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEL");
} else if ( $data == "tabel-keg" ) {
if (in_array($mode_detail, ["update"])) {
$db->Query("UPDATE mus_usulan_desa SET StatusID='".Param::Get("StatusID",0)."' WHERE RPJMDID='".$id_rpjmd."' AND Tahun='".$thn_renja."' AND UsulanLID='".$id_usul."'");
}
$obj = new Table($db);
$obj->set_query("SELECT R.*,CONCAT(R.Volume,' ',S.N_Satuan) N_Satuan,IF(R.StatusID=0,'',T.S_Status) X_Status FROM (SELECT * FROM mus_usulan_desa WHERE ".$qsql.") R LEFT JOIN para_satuan S ON (R.SatuanID=S.SatuanID) LEFT JOIN para_status T ON (R.StatusID=T.StatusID)");
$obj->set_query_footer("SELECT R.*,CONCAT(R.Item,' Usulan') N_Satuan FROM (SELECT COUNT(*) Item,SUM(Rupiah) Rupiah FROM mus_usulan_desa WHERE ".$qsql.") R");
$obj->add_field("UsulanLID", "ID", "hid");
$obj->add_field("Kode", "Kode", "c");
$obj->add_field("Usulan", "Usulan Kegiatan", "awr");
$obj->add_field("Lokasi", "Lokasi", "awr");
$obj->add_field("N_Satuan", "Volume", "l");
$obj->add_field("Rupiah", "Anggaran", "nwr r", "rupiah", "rupiah");
$obj->add_field("Prio", "Prio", "c", "", "", "val-zerolast");
$obj->add_field("X_Status", "Status", "l");
$obj->set_field_order("Usulan", "A");
$obj->set_row_color("StatusID", 1, "rgreen");
$obj->set_row_color("StatusID", 2, "ryellow");
$obj->set_row_color("StatusID", 3, "rblue");
$obj->set_row_color("StatusID", 4, "rpurple");
$obj->set_row_color("StatusID", 5, "rred");
$obj->add_row_btn("clipboard", "Detail", "FForumOPDJS.keg_ubah");
$obj->add_row_btn("check-all", "Setuju", "FForumOPDJS.keg_1");
$obj->add_row_btn("check", "APBD P", "FForumOPDJS.keg_2");
$obj->add_row_btn("arrow-up-circle", "APBN", "FForumOPDJS.keg_3");
$obj->add_row_btn("arrow-down-circle", "Tangguh", "FForumOPDJS.keg_4");
$obj->add_row_btn("x-lg", "Tolak", "FForumOPDJS.keg_5");
$obj->set_func_navi("FForumOPDJS.data_query('tabel-keg')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEG");
} else if ( $data == "detail-keg" ) {
$enable = false;
$adetail = ['UsulanLID'=>0, 'Kode'=>"Usulan Baru"];
if ($id_usul > 0) {
$db->Query("SELECT * FROM mus_usulan_desa WHERE RPJMDID='".$id_rpjmd."' AND Tahun='".$thn_renja."' AND UsulanLID='".$id_usul."' LIMIT 1");
if ($db->Next()) $adetail = $db->AllRow();
}
$form = new Form($db);
$tkode = $form->textbox("_", "Kode", $adetail['Kode'], false, false);
$tlokasi = $form->textbox("_", "Lokasi", $adetail['Lokasi'], $enable, true, "text", "lokasi kegiatan");
$trt = $form->textbox("_", "RT", $adetail['RT'], $enable, true, "text", "rt dan rw");
$tdusun = $form->textbox("_", "Dusun", $adetail['Dusun'], $enable, true, "text", "nama dusun");
$tmasa = $form->textarea("_", "Masalah", $adetail['Masalah'], $enable, true, 2, "permasalahan");
$tusulan = $form->textarea("_", "Usulan", $adetail['Usulan'], $enable, true, 2, "usulan kegiatan");
$tsasa = $form->textbox("_", "Sasaran", $adetail['Sasaran'], $enable, true, "text", "sasaran / manfaat");
$twaktu = $form->textbox("_", "Waktu", $adetail['Waktu'], $enable, true, "text", "waktu pelaksanaan");
$topd = $form->option_db("_", "OPDID", $adetail['OPDID'], $enable, false, "vi_para90_opd", ["OPDID","Nama_OPD"], "IK=0 ORDER BY K_OPD", [0,"&nbsp;"]);
$tvol = $form->textbox("_", "Volume", $adetail['Volume'], $enable, true, "double", "nilai volume");
$tsatu = $form->option_db("_", "SatuanID", $adetail['SatuanID'], $enable, false, "para_satuan", ["SatuanID","N_Satuan"], "Aktif=1 ORDER BY N_Satuan", [0,"&nbsp;"]);
$trupiah = $form->textbox("_", "Rupiah", $adetail['Rupiah'], $enable, true, "double", "nilai anggaran");
$tprio = $form->option("_", "Prio", $adetail['Prio'], $enable, true, MusPrio_Array());
$tstatus = $form->option_db("_", "StatusID", $adetail['StatusID'], true, false, "para_status", array("StatusID","N_Status"), "Aktif=1 ORDER BY K_Status", array(0,"&nbsp;"));
$ajson['html'] = '<form id="formBahanOPD" novalidate="novalidate">
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label">Kode Usulan</label>
<div class="col-sm-3 col-lg-3">'.$tkode.'</div>
<label class="col-sm-3 col-lg-5 col-form-label text-end" for="Prio">Prioritas</label>
<div class="col-sm-2 col-lg-1">'.$tprio.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Lokasi">Lokasi Kegiatan</label>
<div class="col-sm-8 col-lg-9">'.$tlokasi.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Dusun">Dusun dan RT / RW</label>
<div class="col-sm-4 col-lg-5">'.$tdusun.'</div>
<div class="col-sm-4 col-lg-4">'.$trt.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Masalah">Permasalahan</label>
<div class="col-sm-8 col-lg-9">'.$tmasa.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Usulan">Usulan Kegiatan</label>
<div class="col-sm-8 col-lg-9">'.$tusulan.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Sasaran">Sasaran / Manfaat</label>
<div class="col-sm-8 col-lg-9">'.$tsasa.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Waktu">Waktu Pelaksanaan</label>
<div class="col-sm-8 col-lg-9">'.$twaktu.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="OPDID">Nama Perangkat Daerah</label>
<div class="col-sm-8 col-lg-9">'.$topd.'</div>
</div>
<div class="row mb-1"><div class="col"><hr class="my-1"></div></div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Volume">Volume Kegiatan</label>
<div class="col-sm-4 col-lg-4">'.$tvol.'</div>
<div class="col-sm-4 col-lg-5">'.$tsatu.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Rupiah">Perkiraan Anggaran</label>
<div class="col-sm-4 col-lg-4">'.$trupiah.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="StatusID">Status / Hasil</label>
<div class="col">'.$tstatus.'</div>
</div></form>
<input type="hidden" id="UsulanLID" value="'.$adetail['UsulanLID'].'" />
<input type="hidden" id="mode_detail" value="'.$mode_detail.'" />';
} else if ( $data == "default") {
echo '
<div class="fade-in">
<div class="card"><div class="card-header custom-style">Forum OPD - Tahun Perencanaan '.$thn_renja.'</div><div class="card-body">
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_OPD" placeholder="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="bi-arrow-left-right"></span></i>OPD</button>
</div>
</div>
</div>
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_KEC" placeholder="Nama Kecamatan" type="text" readonly>
<input id="KecID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butKEC"><span><i class="bi-arrow-left-right"></span></i>Kecamatan</button>
</div>
</div>
</div>
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_KEL" placeholder="Nama Desa" type="text" readonly>
<input id="KelID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butKEL"><span><i class="bi-arrow-left-right"></span></i>Desa</button>
</div>
</div>
</div>
<div id="divOPD">&nbsp;</div>
<div id="divKEC">&nbsp;</div>
<div id="divKEL">&nbsp;</div>
<div id="divKEG">&nbsp;</div>
</div></div>
</div>';
}
send_json($ajson);
?>