Files
esapipd/apps/php/repo/browse.php
T

230 lines
12 KiB
PHP

<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/repo/browse.php
Desc. : PHP - Tampilan Data Pelaporan
Created By : Siau Pheng ([email protected]).
Created Date : October 28th, 2011.
Last Modified : May 4th, 2026.
(c) 2011 - 2026, 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\Web\Param;
use siaupheng\fonia3\Web\Table;
use siaupheng\fonia3\Web\Form;
use siaupheng\fonia3\Data\SimpleXLS;
$db = $db ?? new MySQL();
$ajson = [];
$data = Param::Get("data");
$mode = Param::Get("mode");
$mode_detail = Param::Get("mode_detail");
$bln_renja = $_SESSION['__WEB_APP']['REAL_BLN'];
$thn_renja = $_SESSION['__WEB_APP']['REAL_THN'];
$thn_submap = $_SESSION['__WEB_APP']['SUBMAP_TAHUN'];
$field_map = $_SESSION['__WEB_APP']['REAL_FIELD'];
$id_jenis = Param::Get("Jenis", 0);
$tanda_pagu = Param::Get("Tanda_Pagu", "A");
$nilai_pagu = Param::Get("Nilai_Pagu", 0);
$id_dprd = Param::Get("DPRDID", 0);
$id_kec = Param::Get("KecID", 0);
$id_kel = Param::Get("KelID", 0);
$id_opd = Param::Get("OPDID", 0);
$id_sub = Param::Get("SubID", 0);
$kunci_cari = Param::Get("Cari_Keg", "");
$aapp = $_SESSION['__WEB_APP'];
if ( in_array($data, ["tabel-keg","excel"]) ) {
$qsql1 = "Tahun='".$thn_renja."'";
if ($id_jenis > 0) $qsql1 .= " AND Jenis='".$id_jenis."'";
if ($id_dprd > 0) $qsql1 .= " AND DPRDID='".$id_dprd."'";
if ($id_kec > 0) $qsql1 .= " AND KecID='".$id_kec."'";
if ($id_kel > 0) $qsql1 .= " AND KelID='".$id_kel."'";
if ($id_opd > 0) $qsql1 .= " AND OPDID='".$id_opd."'";
if ($id_sub > 0) $qsql1 .= " AND SubID='".$id_sub."'";
if ($nilai_pagu > 0) $qsql1 .= " AND Rupiah".$field_map.($tanda_pagu=="A"?">":"<").$nilai_pagu;
}
if ( $data == "tabel-keg" ) {
if ($kunci_cari <> "") $qsql1 .= " AND CONCAT(Kode,Lokasi) LIKE '%".$kunci_cari."%'";
$obj = new Table($db);
$obj->set_table("(SELECT *,Rupiah".$field_map." Rupiah_X,Pending".$field_map." Pending_X,IF(OPDID=0 OR KecID=0,1,0) ITEM_ERR FROM sapi_keg WHERE ".$qsql1.") 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)", "R.*,X.Nama_Sub", "");
$obj->add_field("SapiID", "ID", "hid");
$obj->add_field("Kode", "Kode", "c");
$obj->add_field("Nama_Sub", "Nama Sub Kegiatan", "l");
$obj->add_field("Lokasi", "Lokasi", "l");
$obj->add_field("Rupiah_X", "Pagu", "r", "rupiah");
$obj->add_field("Pending_X", "Pend", "c", "checkbox");
$obj->add_field("Hidden", "Hidd", "c", "checkbox");
$obj->add_field("ITEM_ERR", "Status", "c", "Kolom_Status2");
$obj->set_field_order("Kode", "A");
$obj->set_row_color("ITEM_ERR", 1, "ryellow");
$obj->set_func_navi("RepoBrowseJS.data_query('tabel-keg')");
$ajson[] = $obj->db_table("divKEG");
} else if ( $data == "detail_filter" ) {
$form = new Form($db);
$tjenis = $form->radio("_", "Fi_Jenis", $id_jenis, true, false, [0=>"Semua",1=>"Pokir",2=>"Asmas",3=>"Renja"]);
$tpagu1 = '<input type="hidden" id="Fi_Tanda_Pagu" value="'.$tanda_pagu.'"><div class="form-check form-check-inline"><input class="form-check-input" type="radio" id="Fi_Tanda_PaguA" name="Fi_Tanda_Pagu" '.($tanda_pagu=="A"?'checked="checked"':'').' onclick="if(this.checked)$(\'#Fi_Tanda_Pagu\').val(\'A\');"><label class="form-check-label" for="Fi_Tanda_PaguA">&gt; Lebih Dari</label></div><div class="form-check form-check-inline"><input class="form-check-input" type="radio" id="Fi_Tanda_PaguZ" name="Fi_Tanda_Pagu" '.($tanda_pagu=="Z"?'checked="checked"':'').' onclick="if(this.checked)$(\'#Fi_Tanda_Pagu\').val(\'Z\');"><label class="form-check-label" for="Fi_Tanda_PaguZ">&lt; Kurang Dari</label></div>';
$tpagu2 = $form->textbox("_", "Fi_Nilai_Pagu", $nilai_pagu, true, false, "double");
$tdprd = $form->option_que("_", "Fi_DPRDID", $id_dprd, true, false, "SELECT * FROM para_dprd WHERE Aktif=1 AND DPRDID IN (SELECT DPRDID FROM sapi_keg WHERE Tahun='".$thn_renja."') ORDER BY K_DPRD", ["DPRDID","N_DPRD"], [0,"SEMUA ANGGOTA DEWAN"]);
$topd = $form->option_que("_", "Fi_OPDID", $id_opd, true, false, "SELECT * FROM vi_para90_opd WHERE Aktif=1 AND OPDID IN (SELECT OPDID FROM sapi_keg WHERE Tahun='".$thn_renja."') ORDER BY K_OPD", ["OPDID","Nama_OPD"], [0,"SEMUA PERANGKAT DAERAH"], null, "RepoBrowseJS.oc_OPD()");
$tsub = $form->option("_", "Fi_SubID", $id_sub, true, false, [$id_sub=>"SEMUA SUB KEGIATAN"]);
$tkec = $form->option_db("_", "Fi_KecID", $id_kec, true, true, "para_lokasi", ["LokasiID","N_Lokasi"], "Level=1 AND Aktif=1 ORDER BY N_Lokasi", [0,"SEMUA KECAMATAN"], null, "RepoBrowseJS.oc_Kec()");
$tkel = $form->option("_", "Fi_KelID", $id_kel, true, false, [$id_kel=>"SEMUA KELURAHAN / DESA"]);
$ajson['html'] = '
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label" for="Fi_Jenis">Sumber Kegiatan</label>
<div class="col-sm-8 col-lg-10 col-form-label">'.$tjenis.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label" for="Fi_Nilai_Pagu">Kriteria Pagu</label>
<div class="col-sm-4 col-lg-5 col-form-label">'.$tpagu1.'</div>
<div class="col-sm-4 col-lg-5">'.$tpagu2.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label" for="Fi_DPRDID">Anggota Dewan</label>
<div class="col-sm-8 col-lg-10">'.$tdprd.'</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-2 col-form-label" for="Fi_OPDID">Perangkat Daerah</label>
<div class="col-sm-8 col-lg-10">'.$topd.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label" for="Fi_SubID">Sub Kegiatan</label>
<div class="col-sm-8 col-lg-10">'.$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-2 col-form-label" for="Fi_KecID">Kecamatan</label>
<div class="col-sm-8 col-lg-10">'.$tkec.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label" for="Fi_KelID">Kelurahan / Desa</label>
<div class="col-sm-8 col-lg-10">'.$tkel.'</div>
</div>';
} else if ( $data == "detail_excel" ) {
$form = new Form($db);
$tsumber = $form->radio("_", "Ex_Sumber", 0, true, false, [0=>"Ya",1=>"Tidak"]);
$thidden = $form->radio("_", "Ex_Hidden", 0, true, false, [0=>"Ya",1=>"Tidak"]);
$tpend = $form->radio("_", "Ex_Pending", 0, true, false, [0=>"Ya",1=>"Tidak"]);
$ajson['html'] = '
<div class="row mb-1">
<label class="col-sm-4 col-lg-4 col-form-label" for="Ex_Sumber">Tampilkan Sumber</label>
<div class="col-sm-8 col-lg-8 col-form-label">'.$tsumber.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-4 col-form-label" for="Ex_Hidden">Tampilkan Hidden</label>
<div class="col-sm-8 col-lg-8 col-form-label">'.$thidden.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-4 col-form-label" for="Ex_Pending">Tampilkan Pending</label>
<div class="col-sm-8 col-lg-8 col-form-label">'.$tpend.'</div>
</div>';
} else if ( $data == "option-sub" ) {
$aoption = ['type' => "option", 'id' => "Fi_SubID", 'value' => Param::Get("Fi_SubID",0), 'avalue' => []];
$db->Query("SELECT * FROM vi_para90_submap WHERE Tahun='".$thn_submap."' AND SubID IN (SELECT SubID FROM sapi_keg WHERE Tahun='".$thn_renja."' AND OPDID='".Param::Get("Fi_OPDID",0)."') ORDER BY K_Sub");
if ($db->RecordCount()<>1) $aoption['avalue'][] = ['value'=>0, 'html'=>"SEMUA SUB KEGIATAN"];
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' => "Fi_KelID", 'value' => Param::Get("Fi_KelID",0), 'avalue' => []];
$db->Query("SELECT * FROM para_lokasi WHERE Level=2 AND Aktif=1 AND IndukID='".Param::Get("Fi_KecID",0)."' 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 == "excel" ) {
$asumber = [1=>"Pokir", 2=>"Musrenbang", 3=>"Renja"];
$ex_sumber = Param::Get("Ex_Sumber", 0); // 0: Ya, 1: Tidak
$ex_hidden = Param::Get("Ex_Hidden", 0); // 0: Ya, 1: Tidak
$ex_pend = Param::Get("Ex_Pending", 0); // 0: Ya, 1: Tidak
$tgl_header = bulan_array()[$bln_renja] . " " . $thn_renja;
if ($ex_hidden == 1) $qsql1 .= " AND Hidden=0";
if ($ex_pend == 1) $qsql1 .= " AND Pending".$field_map."=0";
$db->Query("SELECT R.*,X.N_Sub,O.S_OPD FROM (SELECT SapiID,OPDID,SubID,Lokasi,Jenis,Rupiah".$field_map." Rupiah_X FROM sapi_keg WHERE ".$qsql1.") 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) LEFT JOIN para90_opd O ON (O.OPDID=R.OPDID) ORDER BY O.K_OPD,X.K_Sub,R.Jenis");
$xls = new SimpleXLS([
'title'=>"Data Pelaporan",
'subject'=>"BAPPERIDA MEMPAWAH",
'desc'=>"Export Data Pelaporan dari ISAPIPD"
]);
$xls->add_span(["<b>DATA PELAPORAN</b>",1]);
$xls->add_span(["Periode : ".$tgl_header,1]);
$xls->add_empty_row();
$xls->add_field("No.", 6, "C");
$xls->add_field("Nama Sub Kegiatan", 40, "L");
$xls->add_field("Lokasi Kegiatan", 60, "L");
if ($ex_sumber == 0) $xls->add_field("Sumber", 12, "L");
$xls->add_field("Perangkat Daerah", 20, "L");
$xls->add_field("Nilai Pagu", 20, "R,N");
$xls->add_sheet("".$tgl_header, true);
$no = 1; $tot_pagu = 0;
while ($db->Next()) {
$tot_pagu += $db->Row("Rupiah_X");
$_arow = [$no++, $db->Row("N_Sub"), $db->Row("Lokasi")];
if ($ex_sumber == 0) $_arow[] = $asumber[$db->Row("Jenis")];
array_push($_arow, $db->Row("S_OPD"), $db->Row("Rupiah_X"));
$xls->add_value($_arow);
}
$xls->add_span(["JUMLAH",5-($ex_sumber==0?0:1),"B,C"], [$tot_pagu,1,",B,R,N"]);
$xls->add_stamp(1, true);
$xls->send("Data Pelaporan ".$tgl_header.".xlsx");
unset($xls);
} else if ( $data == "default" ) {
echo '
<div class="fade-in">
<div class="card"><div class="card-header custom-style">Data Pelaporan :: '.bulan_array()[$bln_renja].' '.$thn_renja.'</div><div class="card-body">
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Cari_Keg" placeholder="Kunci Pencarian" type="text"><button class="btn btn-info" type="button" id="butSearch">Cari</button><button class="btn btn-secondary" type="button" id="butAll">Semua</button>
</div>
</div>
<div class="col-auto">
<button class="btn btn-info" type="button" id="butFilter">Filter</button>
<button class="btn btn-success" type="button" id="butExcel">Excel</button>
</div>
</div>
<div id="divKEG">&nbsp;</div>
<input type="hidden" id="Jenis" value="'.$id_jenis.'">
<input type="hidden" id="Tanda_Pagu" value="'.$tanda_pagu.'">
<input type="hidden" id="Nilai_Pagu" value="'.$nilai_pagu.'">
<input type="hidden" id="DPRDID" value="'.$id_dprd.'">
<input type="hidden" id="KecID" value="'.$id_kec.'">
<input type="hidden" id="KelID" value="'.$id_kel.'">
<input type="hidden" id="OPDID" value="'.$id_opd.'">
<input type="hidden" id="SubID" value="'.$id_sub.'">
</div></div>
</div>';
}
send_json($ajson);
?>