287 lines
14 KiB
PHP
287 lines
14 KiB
PHP
<?php
|
|
|
|
/*******************************************************************
|
|
|
|
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
|
|
Module : /apps/php/ubah/renja.php
|
|
Desc. : PHP - Perubahan Kegiatan Renja
|
|
Created By : Siau Pheng ([email protected]).
|
|
Created Date : October 28th, 2011.
|
|
Last Modified : May 6th, 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\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'];
|
|
$field_map = $_SESSION['__WEB_APP']['REAL_FIELD'];
|
|
$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-opd","tabel-keg"]) ) {
|
|
$qsql = "Tahun='".$thn_renja."' AND Jenis=".SAPI_JENIS_RENJA."";
|
|
$msql = "M.Aktif=1";
|
|
|
|
if ( $data == "tabel-opd" ) {
|
|
$tcari = Param::Get("Nama_OPD", "");
|
|
if ($tcari <> "") $msql .= " AND CONCAT(M.K_OPD,M.N_OPD) LIKE '%".$tcari."%'";
|
|
$msql .= (in_array($_SESSION['__WEB_USER']['Level'],[3,4])) ? " AND M.OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")": "";
|
|
$qsql .= (in_array($_SESSION['__WEB_USER']['Level'],[3,4])) ? " AND OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")": "";
|
|
} else if ( $data == "tabel-keg" ) {
|
|
$qsql .= " AND OPDID='".$id_opd."'";
|
|
}
|
|
}
|
|
|
|
if ( $data == "tabel-opd" ) {
|
|
$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.OPDID OPDID2,M.K_OPD,M.N_OPD,M.Nama_OPD,M.AK_Bidu FROM vi_para90_opd M LEFT JOIN (SELECT OPDID,COUNT(*) ITEM_KEG,SUM(IF(OPDID=0 OR KecID=0,1,0)) ITEM_ERR,SUM(Rupiah".$field_map.") TOT_RUPIAH FROM sapi_keg WHERE ".$qsql." GROUP BY OPDID) K ON (K.OPDID=M.OPDID) WHERE ".$msql);
|
|
$obj->add_field("OPDID2", "ID", "hid");
|
|
$obj->add_field("AK_Bidu", "AK_Bidu", "hid");
|
|
$obj->add_field("Nama_OPD", "Nama OPD", "hid");
|
|
$obj->add_field("K_OPD", "Kode", "c");
|
|
$obj->add_field("N_OPD", "Nama Perangkat Daerah", "awr");
|
|
$obj->add_field("ITEM_KEG", "Renja", "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_OPD", "A");
|
|
$obj->set_row_color("ITEM_VER", 1, "ryellow");
|
|
$obj->add_row_btn("save", "Renja", "UbahRenjaJS.opd_select");
|
|
$obj->set_func_navi("UbahRenjaJS.data_query('tabel-opd')");
|
|
$obj->set_textbtn(true);
|
|
$ajson[] = $obj->json_table("divOPD");
|
|
|
|
} else if ( $data == "tabel-keg" ) {
|
|
if (in_array($mode_detail, ["insert","update","delete"])) {
|
|
$sql = new SQL($db);
|
|
$sql->set_table("sapi_keg");
|
|
$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("Hidden");
|
|
$sql->add_param("Rupiah");
|
|
$sql->add_param("Rupiah_01");
|
|
$sql->add_param("Rupiah_02");
|
|
$sql->add_param("Rupiah_03");
|
|
$sql->add_param("Rupiah_04");
|
|
$sql->add_param("Rupiah_05");
|
|
$sql->add_param("Rupiah_06");
|
|
$sql->add_param("Rupiah_07");
|
|
$sql->add_param("Rupiah_08");
|
|
$sql->add_param("Rupiah_09");
|
|
$sql->add_param("Rupiah_10");
|
|
$sql->add_param("Rupiah_11");
|
|
$sql->add_param("Rupiah_12");
|
|
$sql->add_param("Pending_01");
|
|
$sql->add_param("Pending_02");
|
|
$sql->add_param("Pending_03");
|
|
$sql->add_param("Pending_04");
|
|
$sql->add_param("Pending_05");
|
|
$sql->add_param("Pending_06");
|
|
$sql->add_param("Pending_07");
|
|
$sql->add_param("Pending_08");
|
|
$sql->add_param("Pending_09");
|
|
$sql->add_param("Pending_10");
|
|
$sql->add_param("Pending_11");
|
|
$sql->add_param("Pending_12");
|
|
$sql->add_param_stamp();
|
|
$sql->add_param_userid();
|
|
$sql->add_where("Tahun", $thn_renja);
|
|
$sql->add_where("SapiID");
|
|
|
|
switch ($mode_detail) {
|
|
case "insert":
|
|
$sql->add_param("Tahun", $thn_renja);
|
|
$sql->add_param("Jenis", SAPI_JENIS_RENJA);
|
|
$sql->add_param("Tahapan", 2);
|
|
$sql->add_param("OPDID");
|
|
$sql->add_param("Kode", Kegiatan_Baru($thn_renja, "R"));
|
|
$sql->InsertDB();
|
|
break;
|
|
case "update":
|
|
$sql->UpdateDB();
|
|
break;
|
|
case "delete":
|
|
//$sql->DeleteDB();
|
|
break;
|
|
}
|
|
}
|
|
|
|
$obj = new Table($db);
|
|
$obj->set_query("SELECT R.*,X.Nama_Sub FROM (SELECT *,Rupiah".$field_map." Rupiah_X,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", "ID1", "hid");
|
|
$obj->add_field("Tahapan", "ID2", "hid");
|
|
$obj->add_field("Kode", "Kode", "c");
|
|
$obj->add_field("Nama_Sub", "Kegiatan Renja", "l");
|
|
$obj->add_field("Lokasi", "Lokasi", "l");
|
|
$obj->add_field("Rupiah_X", "Pagu", "r", "rupiah");
|
|
$obj->add_field("ITEM_ERR", "Status", "c", "Kolom_Status2");
|
|
$obj->set_field_order("Kode", "A");
|
|
$obj->set_row_color("ITEM_ERR", 1, "ryellow");
|
|
$obj->add_row_btn("clipboard", "Detail Kegiatan", "UbahRenjaJS.keg_ubah". "Tahapan", 2);
|
|
$obj->add_row_btn("clipboard-fill", "Detail Kegiatan", "UbahRenjaJS.keg_ubah", "Tahapan", 1);
|
|
$obj->set_func_btn("UbahRenjaJS.keg_tambah", '<i class="bi-plus-lg me-1"></i>Kegiatan Perubahan');
|
|
$obj->set_func_navi("UbahRenjaJS.data_query('tabel-keg')");
|
|
$ajson[] = $obj->json_table("divKEG");
|
|
|
|
} else if ( $data == "detail-keg" ) {
|
|
$enable = true;
|
|
$adetail = ['SapiID'=>0];
|
|
if ($id_sapi > 0) {
|
|
$db->Query("SELECT * FROM sapi_keg WHERE Tahun='".$thn_renja."' AND SapiID='".$id_sapi."' LIMIT 1");
|
|
if ($db->Next()) $adetail = array_merge($adetail, $db->AllRow());
|
|
if ($adetail['Tahapan'] == 1) $enable = false;
|
|
}
|
|
|
|
$form = new Form($db);
|
|
$tprog = $form->option_que("_", "ProgID", $adetail['ProgID'], $enable, false, "SELECT ProgID,Nama_Prog FROM vi_para90_submap WHERE Tahun='".$thn_submap."' AND K_Bidu IN (".stripslashes(Param::Get("AK_Bidu","'X.XX'")).") GROUP BY ProgID ORDER BY K_Prog", ["ProgID","Nama_Prog"], [0," "], null, "UbahRenjaJS.oc_Prog()");
|
|
$tkeg = $form->option_que("_", "KegID", $adetail['KegID'], $enable, false, "SELECT KegID,Nama_Keg FROM vi_para90_submap WHERE Tahun='".$thn_submap."' AND ProgID='".$adetail['ProgID']."' GROUP BY KegID ORDER BY K_Keg", ["KegID","Nama_Keg"], [0," "], null, "UbahRenjaJS.oc_Keg()");
|
|
$tsub = $form->option_que("_", "SubID", $adetail['SubID'], $enable, false, "SELECT SubID,Nama_Sub FROM vi_para90_submap WHERE Tahun='".$thn_submap."' AND KegID='".$adetail['KegID']."' ORDER BY K_Sub", ["SubID","Nama_Sub"], [0," "]);
|
|
$tkec = $form->option_db("_", "KecID", $adetail['KecID'], $enable, true, "para_lokasi", ["LokasiID","N_Lokasi"], "Level=1 AND Aktif=1 ORDER BY N_Lokasi", [0," "], null, "UbahRenjaJS.oc_Kec()");
|
|
$tkel = $form->option_que("_", "KelID", $adetail['KelID'], $enable, false, "SELECT LokasiID,N_Lokasi FROM para_lokasi WHERE Level=2 AND Aktif=1 AND IndukID='".$adetail['KecID']."' ORDER BY K_Lokasi", ["LokasiID","N_Lokasi"], [0," "]);
|
|
$tlokasi = $form->textbox("_", "Lokasi", $adetail['Lokasi'], $enable, true, "text");
|
|
$tmasa = $form->textarea("_", "Masalah", $adetail['Masalah'], $enable, true, 2);
|
|
$trupiah = $form->textbox("_", "Rupiah", $adetail['Rupiah'], $enable, true, "double");
|
|
$thidden = $form->radio("_", "Hidden", $adetail['Hidden'], $enable, true, [1=>"Ya",0=>"Tidak"]);
|
|
$ajson['html'] = '<form id="formRenja" novalidate="novalidate">
|
|
<div class="row mb-1">
|
|
<label class="col-sm-4 col-lg-2 col-form-label" for="ProgID">Nama Program</label>
|
|
<div class="col-sm-8 col-lg-10">'.$tprog.'</div>
|
|
</div>
|
|
<div class="row mb-1">
|
|
<label class="col-sm-4 col-lg-2 col-form-label" for="KegID">Nama Kegiatan</label>
|
|
<div class="col-sm-8 col-lg-10">'.$tkeg.'</div>
|
|
</div>
|
|
<div class="row mb-1">
|
|
<label class="col-sm-4 col-lg-2 col-form-label" for="SubID">Nama 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="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="KelID">Kelurahan / Desa</label>
|
|
<div class="col-sm-8 col-lg-10">'.$tkel.'</div>
|
|
</div>
|
|
<div class="row mb-1">
|
|
<label class="col-sm-4 col-lg-2 col-form-label" for="Lokasi">Lokasi Kegiatan</label>
|
|
<div class="col-sm-8 col-lg-10">'.$tlokasi.'</div>
|
|
</div>
|
|
<div class="row mb-1">
|
|
<label class="col-sm-4 col-lg-2 col-form-label" for="Masalah">Permasalahan</label>
|
|
<div class="col-sm-8 col-lg-10">'.$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-2 col-form-label" for="Rupiah">Pagu Awal / Default</label>
|
|
<div class="col-sm-4 col-lg-4">'.$trupiah.'</div>
|
|
<div class="col">
|
|
'.($enable?
|
|
'<button class="btn btn-outline-info text-primary" title="Salin ke Pagu semua Bulan." onclick="UbahRenjaJS.copy_Pagu();"><i class="bi-copy"></i></button>':
|
|
'<button class="btn btn-outline-secondary text-muted"><i class="bi-lock"></i></button>').'
|
|
</div>
|
|
</div>';
|
|
|
|
$abulan = bulan_array();
|
|
for ($bln = 1; $bln <= 12; $bln++) {
|
|
$bln_fix = isi_nol($bln, 2);
|
|
$trup_x = $form->textbox("_", "Rupiah_".$bln_fix, $adetail['Rupiah_'.$bln_fix], $enable, false, "double");
|
|
$ajson['html'] .= '
|
|
<div class="row mb-1">
|
|
<label class="col-sm-4 col-lg-2 col-form-label" for="Rupiah_'.$bln_fix.'">Pagu '.$abulan[$bln].'</label>
|
|
<div class="col-sm-4 col-lg-4">'.$trup_x.'</div>
|
|
<div class="col-sm-4 col-lg-3"><div class="form-control">
|
|
<input type="checkbox" id="Pending_'.$bln_fix.'" value="'.$adetail['Pending_'.$bln_fix].'" onchange="this.value=(this.checked)?\'1\':\'0\';" class="form-check-input me-2"'.($adetail['Pending_'.$bln_fix]==1?' checked':'').($enable?'':' disabled=true').'>
|
|
<label class="form-check-label" for="Pending_'.$bln_fix.'">Pending '.$abulan[$bln].'</label>
|
|
</div></div>
|
|
</div>';
|
|
}
|
|
|
|
$ajson['html'] .= '
|
|
<div class="row mb-1">
|
|
<label class="col-sm-4 col-lg-2 col-form-label" for="Hidden">Paket Hidden</label>
|
|
<div class="col-sm-8 col-lg-10">'.$thidden.'</div>
|
|
</div>
|
|
</form>
|
|
<input type="hidden" id="SapiID" value="'.$adetail['SapiID'].'" />
|
|
<input type="hidden" id="mode_detail" value="'.$mode_detail.'" />';
|
|
|
|
} 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 Perubahan - Rencana Kerja</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="Nama Perangkat Daerah" type="text">
|
|
<input id="OPDID" type="hidden" value="0">
|
|
<input id="AK_Bidu" type="hidden" value="">
|
|
<button class="btn btn-info btn-ganti" type="button" id="butOPD"><span><i class="icon bi-arrow-left-right"></span></i>OPD</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="divOPD"> </div>
|
|
<div id="divKEG"> </div>
|
|
</div></div>
|
|
</div>';
|
|
}
|
|
|
|
send_json($ajson);
|
|
?>
|