Files
esapipd/apps/php/induk/pokir.php
T
2026-05-03 13:08:18 +07:00

256 lines
12 KiB
PHP

<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/induk/pokir.php
Desc. : PHP - Kegiatan Pokir Dewan
Created By : Siau Pheng ([email protected]).
Created Date : October 28th, 2011.
Last Modified : November 24th, 2025.
(c) 2011 - 2025, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/esapipd.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 = $db ?? new MySQL();
$ajson = [];
$data = Param::Get("data");
$mode = Param::Get("mode");
$mode_detail = Param::Get("mode_detail");
$thn_renja = $_SESSION['__WEB_APP']['REAL_THN'];
$thn_submap = $_SESSION['__WEB_APP']['SUBMAP_TAHUN'];
$id_dprd = Param::Get("DPRDID", 0);
$id_dapil = Param::Get("DapilID", 0);
$id_sapi = Param::Get("SapiID", 0);
$id_kec = Param::Get("KecID", 0);
$id_kel = Param::Get("KelID", 0);
$id_opd = Param::Get("OPDID", 0);
$id_prog = Param::Get("ProgID", 0);
$id_keg = Param::Get("KegID", 0);
$id_sub = Param::Get("SubID", 0);
$aapp = $_SESSION['__WEB_APP'];
if ( in_array($data, ["tabel-dprd","tabel-keg"]) ) {
$qsql = "Tahun='".$thn_renja."' AND Jenis=1";
$msql = "M.Aktif=1";
//$msql = "M.Aktif=1 AND IFNULL(K.ITEM_KEG,0)>0";
if ( $data == "tabel-dprd" ) {
$tcari = Param::Get("Nama_DPRD", "");
if ($tcari <> "") $msql .= " AND CONCAT(M.N_DPRD,M.F_DPRD,M.Komisi_DPRD) LIKE '%".$tcari."%'";
$msql .= (in_array($_SESSION['__WEB_USER']['Level'],[5,6])) ? " AND M.DPRDID IN (".$_SESSION['__WEB_USER']['AK_DPRD'].")": "";
$qsql .= (in_array($_SESSION['__WEB_USER']['Level'],[5,6])) ? " AND DPRDID IN (".$_SESSION['__WEB_USER']['AK_DPRD'].")": "";
} else if ( $data == "tabel-keg" ) {
$qsql .= " AND DPRDID='".$id_dprd."'";
}
}
if ( $data == "tabel-dprd" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,IFNULL(K.ITEM_ERR,0) ITEM_ERR2,IF(IFNULL(K.ITEM_ERR,0)=0,0,1) ITEM_VER,M.DPRDID DPRDID2,M.K_DPRD,M.N_DPRD,M.F_DPRD,M.DapilID,CONCAT(M.N_DPRD,' / Fraksi: ',M.F_DPRD,' / Komisi: ',M.Komisi_DPRD) Nama_Plus FROM para_dprd M LEFT JOIN (SELECT DPRDID,COUNT(*) ITEM_KEG,SUM(IF(OPDID=0 OR KecID=0,1,0)) ITEM_ERR,SUM(Rupiah) TOT_RUPIAH FROM sapi_keg WHERE ".$qsql." GROUP BY DPRDID) K ON (K.DPRDID=M.DPRDID) WHERE ".$msql);
$obj->add_field("DPRDID2", "ID", "hid");
$obj->add_field("DapilID", "DapilID", "hid");
$obj->add_field("Nama_Plus", "Nama_Plus", "hid");
$obj->add_field("K_DPRD", "Kode", "c");
$obj->add_field("N_DPRD", "Nama Anggota Dewan", "awr");
$obj->add_field("F_DPRD", "Nama Fraksi", "awr");
$obj->add_field("ITEM_KEG", "Pokir", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Jumlah Pagu", "r", "rupiah");
$obj->add_field("ITEM_ERR2", "Status", "c", "Kolom_Status1");
$obj->set_field_order("K_DPRD", "A");
$obj->set_row_color("ITEM_VER", 1, "ryellow");
$obj->add_row_btn("select", "Pokir", "IndukPokirJS.dprd_select");
$obj->set_func_navi("IndukPokirJS.data_query('tabel-dprd')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divDPRD");
} else if ( $data == "tabel-keg" ) {
if (in_array($mode_detail, ["update"])) {
$sql = new SQL($db);
$sql->set_table("sapi_keg");
$sql->add_param("OPDID");
$sql->add_param("ProgID");
$sql->add_param("KegID");
$sql->add_param("SubID");
$sql->add_param("KecID");
$sql->add_param("KelID");
$sql->add_param("Lokasi");
$sql->add_param("Masalah");
$sql->add_param("Volume");
$sql->add_param("Satuan");
$sql->add_param("Rupiah");
$sql->add_param_stamp();
$sql->add_param_userid();
$sql->add_where("Tahun", $thn_renja);
$sql->add_where("SapiID");
$sql->UpdateDB();
}
$obj = new Table($db);
$obj->set_query("SELECT R.*,X.N_Sub,CONCAT(R.Volume,' ',R.Satuan) N_Satuan FROM (SELECT *,IF(OPDID=0 OR KecID=0,1,0) ITEM_ERR FROM sapi_keg WHERE ".$qsql.") R LEFT JOIN (SELECT SubID,K_Sub,N_Sub,Nama_Sub FROM vi_para90_submap WHERE Tahun='".$aapp['SUBMAP_TAHUN']."') X ON (X.SubID=R.SubID)");
$obj->add_field("SapiID", "ID", "hid");
$obj->add_field("SIPD_UsulanID", "Kode", "c");
$obj->add_field("N_Sub", "Kegiatan Pokir", "awr");
$obj->add_field("Lokasi", "Lokasi", "awr");
$obj->add_field("N_Satuan", "Volume", "l");
$obj->add_field("Rupiah", "Pagu", "r", "rupiah");
$obj->add_field("ITEM_ERR", "Status", "c", "Kolom_Status2");
$obj->set_field_order("SIPD_UsulanID", "A");
$obj->set_row_color("ITEM_ERR", 1, "ryellow");
$obj->add_row_btn("document", "Detail", "IndukPokirJS.keg_ubah");
$obj->set_func_navi("IndukPokirJS.data_query('tabel-keg')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEG");
} else if ( $data == "detail-keg" ) {
$enable = true;
$adetail = ['SapiID'=>0, 'Bebas_Dapil'=>0];
if ($id_dprd > 0) {
//todo: berikutnya ambil data dari tabel master dprd !
$db->Query("SELECT * FROM app_operator WHERE Aktif=1 AND AK_DPRD IN (".$id_dprd.") ORDER BY Last_Date DESC LIMIT 1");
if ($db->Next()) {
if ($db->Row("Level", 0) == 6) $adetail['Bebas_Dapil'] = 1;
}
}
if ($id_sapi > 0) {
$db->Query("SELECT * FROM sapi_keg WHERE Tahun='".$thn_renja."' AND Jenis=1 AND SapiID='".$id_sapi."' LIMIT 1");
if ($db->Next()) $adetail = array_merge($adetail, $db->AllRow());
}
$form = new Form($db);
$topd = $form->option_db("_", "OPDID", $adetail['OPDID'], $enable, true, "para90_opd", ["OPDID","N_OPD"], "Aktif=1 ORDER BY K_OPD", [0,"&nbsp;"], null, "IndukPokirJS.oc_OPD()");
$tprog = $form->option("_", "ProgID", $adetail['ProgID'], $enable, true, [$adetail['ProgID']=>["&nbsp;",0]], null, "IndukPokirJS.oc_Prog()");
$tkeg = $form->option("_", "KegID", $adetail['KegID'], $enable, true, [$adetail['KegID']=>["&nbsp;",0]], null, "IndukPokirJS.oc_Keg()");
$tsub = $form->option("_", "SubID", $adetail['SubID'], $enable, true, [$adetail['SubID']=>["&nbsp;",0]]);
$tkec = $form->option_db("_", "KecID", $adetail['KecID'], $enable, true, "para_lokasi", ["LokasiID","N_Lokasi"], "Level=1 AND Aktif=1 ".($adetail['Bebas_Dapil']==1?"":"AND DapilID='".$id_dapil."'")." ORDER BY N_Lokasi", [0,"&nbsp;"], null, "IndukPokirJS.oc_Kec()");
$tkel = $form->option("_", "KelID", $adetail['KelID'], $enable, false, [$adetail['KelID']=>["&nbsp;",0]]);
$tlokasi = $form->textbox("_", "Lokasi", $adetail['Lokasi'], $enable, true, "text");
$tmasa = $form->textarea("_", "Masalah", $adetail['Masalah'], $enable, true, 2);
$tvol = $form->textbox("_", "Volume", $adetail['Volume'], $enable, true, "double");
$tsatu = $form->textbox("_", "Satuan", $adetail['Satuan'], $enable, true, "text");
$trupiah = $form->textbox("_", "Rupiah", $adetail['Rupiah'], $enable, true, "double");
echo '<form id="formUsulDewan" novalidate="novalidate">
<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">
<label class="col-sm-4 col-lg-3 col-form-label" for="ProgID">Nama Program</label>
<div class="col-sm-8 col-lg-9">'.$tprog.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="KegID">Nama Kegiatan</label>
<div class="col-sm-8 col-lg-9">'.$tkeg.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="SubID">Nama Sub Kegiatan</label>
<div class="col-sm-8 col-lg-9">'.$tsub.'</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="KecID">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="KelID">Kelurahan / Desa</label>
<div class="col-sm-8 col-lg-9">'.$tkel.'</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="Masalah">Permasalahan</label>
<div class="col-sm-8 col-lg-9">'.$tmasa.'</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">Nilai Pagu Kegiatan</label>
<div class="col-sm-4 col-lg-4">'.$trupiah.'</div>
</div></form>
<input type="hidden" id="SapiID" value="'.$adetail['SapiID'].'" />
<input type="hidden" id="mode_detail" value="'.$mode_detail.'" />';
} else if ( $data == "option-prog" ) {
$ak_bidu = '0.00';
$db->Query("SELECT * FROM vi_para90_opd WHERE OPDID='".$id_opd."' LIMIT 1");
if ($db->Next()) {
$ak_bidu = $db->Row("AK_Bidu");
}
$aoption = ['type' => "option", 'id' => "ProgID", 'value' => $id_prog, 'avalue' => []];
$db->Query("SELECT * FROM vi_para90_submap WHERE Tahun='".$thn_submap."' AND K_Bidu IN (".$ak_bidu.") GROUP BY ProgID ORDER BY K_Prog");
if ($db->RecordCount()<>1) $aoption['avalue'][] = array('value'=>0, 'html'=>"");
while ($db->Next()) {
if ($db->RecordCount()==1 && $aoption['value']==0) $aoption['value'] = $db->Row("ProgID");
$aoption['avalue'][] = ['value'=>$db->Row("ProgID"), 'html'=>$db->Row("Nama_Prog")];
}
$ajson[] = $aoption;
} else if ( $data == "option-keg" ) {
$aoption = ['type' => "option", 'id' => "KegID", 'value' => $id_keg, 'avalue' => []];
$db->Query("SELECT * FROM vi_para90_submap WHERE Tahun='".$thn_submap."' AND ProgID='".$id_prog."' GROUP BY KegID ORDER BY K_Keg");
if ($db->RecordCount()<>1) $aoption['avalue'][] = ['value'=>0, 'html'=>""];
while ($db->Next()) {
if ($db->RecordCount()==1 && $aoption['value']==0) $aoption['value'] = $db->Row("KegID");
$aoption['avalue'][] = ['value'=>$db->Row("KegID"), 'html'=>$db->Row("Nama_Keg")];
}
$ajson[] = $aoption;
} else if ( $data == "option-sub" ) {
$aoption = ['type' => "option", 'id' => "SubID", 'value' => $id_sub, 'avalue' => []];
$db->Query("SELECT * FROM vi_para90_submap WHERE Tahun='".$thn_submap."' AND KegID='".$id_keg."' ORDER BY K_Sub");
if ($db->RecordCount()<>1) $aoption['avalue'][] = ['value'=>0, 'html'=>""];
while ($db->Next()) {
if ($db->RecordCount()==1 && $aoption['value']==0) $aoption['value'] = $db->Row("SubID");
$aoption['avalue'][] = ['value'=>$db->Row("SubID"), 'html'=>$db->Row("Nama_Sub")];
}
$ajson[] = $aoption;
} else if ( $data == "option-kel" ) {
$aoption = ['type' => "option", 'id' => "KelID", 'value' => $id_kel, 'avalue' => []];
$db->Query("SELECT * FROM para_lokasi WHERE Level=2 AND Aktif=1 AND IndukID='".$id_kec."' ORDER BY N_Lokasi");
if ($db->RecordCount()<>1) $aoption['avalue'][] = ['value'=>0, 'html'=>"SEMUA KELURAHAN / DESA"];
while ($db->Next()) {
if ($db->RecordCount()==1 && $aoption['value']==0) $aoption['value'] = $db->Row("LokasiID");
$aoption['avalue'][] = ['value'=>$db->Row("LokasiID"), 'html'=>$db->Row("N_Lokasi")];
}
$ajson[] = $aoption;
} else if ( $data == "default") {
echo '
<div class="fade-in">
<div class="card"><div class="card-header custom-style">Kelola Data Induk Pokok Pikiran Dewan</div><div class="card-body">
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_DPRD" placeholder="Nama Anggota Dewan" type="text">
<input id="DPRDID" type="hidden" value="0">
<input id="DapilID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butDPRD"><span><i class="icon bi-arrow-left-right"></span></i>Dewan</button>
</div>
</div>
</div>
<div id="divDPRD">&nbsp;</div>
<div id="divKEG">&nbsp;</div>
</div></div>
</div>';
}
send_json($ajson);
?>