first commit
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
/*******************************************************************
|
||||
|
||||
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
|
||||
Module : /apps/cfg/app.php
|
||||
Desc. : Konfigurasi Global Aplikasi
|
||||
Created By : Siau Pheng ([email protected]).
|
||||
Created Date : November 7th, 2009.
|
||||
Last Modified : July 26th, 2021.
|
||||
|
||||
(c) 2009 - 2021, 3FONIA Software; WWW.3FONIA.COM.
|
||||
|
||||
*******************************************************************/
|
||||
|
||||
require_once(__DIR__."/../../../../vendor/autoload.php");
|
||||
require_once(__DIR__."/mysql.php");
|
||||
require_once(__DIR__."/../php/func/esapipd.php");
|
||||
|
||||
use siaupheng\fonia3\DB\MySQL;
|
||||
|
||||
$db = $db ?? new MySQL();
|
||||
|
||||
if (($_SESSION['__WEB_APP']['APP_CODE'] ?? "")<>"2007809614") {
|
||||
foreach ($_SESSION as $_key => $_val) {
|
||||
if (substr($_key,0,5)=="__WEB") unset($_SESSION[$_key]);
|
||||
if (substr($_key,0,5)=="__APP") unset($_SESSION[$_key]);
|
||||
}
|
||||
}
|
||||
|
||||
if (!isset($_SESSION['__WEB_APP'])) {
|
||||
$real_path = str_replace("\\", "/", __DIR__);
|
||||
$real_path = str_replace("apps/cfg", "", $real_path);
|
||||
$web_path = str_replace($_SERVER['DOCUMENT_ROOT'], "/", $real_path);
|
||||
$web_path = str_replace("//", "/", $web_path);
|
||||
$real_path = str_replace("//", "/", $real_path);
|
||||
|
||||
$apps = [];
|
||||
$apps['APP_CODE'] = "2007809614";
|
||||
$apps['APP_NAME'] = "eSAPIPD";
|
||||
$apps['APP_NAMES'] = "Sistem Aplikasi Pelaporan Insfrastruktur Pembangunan Daerah";
|
||||
$apps['APP_VER'] = "1.0";
|
||||
$apps['APP_UPDATED'] = "July 26th, 2021.";
|
||||
$apps['APP_SID'] = md5(time());
|
||||
$apps['APP_LOCALE'] = array("id"=>"Indonesia", "en"=>"English");
|
||||
$apps['DEF_LOCALE'] = "id";
|
||||
$apps['AUTH_OVER'] = false;
|
||||
$apps['AUTH_LEVEL'] = 1;
|
||||
$apps['USER_LEVEL'] = [0 => "ADMINISTRATOR", 1 => "KABUPATEN / BIDANG", 2 => "KECAMATAN", 7=>"KELURAHAN / DESA", 3 => "OPD", 5 => "DPRD", 9 => "VIEWER"];
|
||||
$apps['USER_LOG'] = true;
|
||||
$apps['USE_QZTRAY'] = false;
|
||||
$apps['CREATOR_YEAR'] = "2020";
|
||||
$apps['CREATOR_NAME'] = "3FONIA Software";
|
||||
$apps['CREATOR_WEBSITE'] = "http://www.3fonia.com";
|
||||
$apps['WEB_PATH'] = $web_path;
|
||||
$apps['REAL_PATH'] = $real_path;
|
||||
$apps['MODULE_PATH'] = "../";
|
||||
$apps['PARENT_SUB'] = false;
|
||||
$apps['PARENT_CODE'] = "2007809605";
|
||||
$apps['PARENT_SITE'] = "https://sicanda.mempawahkab.go.id";
|
||||
|
||||
$db->Query("SELECT * FROM app_config WHERE REG_ID='".$apps['APP_CODE']."' LIMIT 1");
|
||||
if ($db->Next()) $apps = array_merge($apps, $db->AllRow());
|
||||
if ($apps['APP_BUILD']<>"") $apps['APP_VER'] = $apps['APP_BUILD'];
|
||||
|
||||
$db->Query("SELECT * FROM sippd_config WHERE REG_ID='".$apps['PARENT_CODE']."' LIMIT 1");
|
||||
if ($db->Next()) $apps = array_merge($apps, $db->AllRow());
|
||||
// mapping tahun nomenklatur submap
|
||||
$apps['SUBMAP_TAHUN'] = map_tahun_submap($apps['REAL_THN']);
|
||||
$_SESSION['__WEB_APP'] = $apps;
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
/*******************************************************************
|
||||
|
||||
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
|
||||
Module : /apps/cfg/assets.php
|
||||
Desc. : Konfigurasi Assets Aplikasi [css / js]
|
||||
Created By : Siau Pheng ([email protected]).
|
||||
Created Date : November 23rd, 2019.
|
||||
Last Modified : April 19th, 2026.
|
||||
|
||||
(c) 2019 - 2026, 3FONIA Software; WWW.3FONIA.COM.
|
||||
|
||||
*******************************************************************/
|
||||
|
||||
$A_CSS = ["bootstrap/bootstrap.icon.css", "bootstrap/bootstrap.css"];
|
||||
$A_JS = ["jquery/jquery.js", "jquery/jquery.base64.js", "bootstrap/bootstrap.bundle.js", "fonia3.js"];
|
||||
|
||||
if (!user_logged()) {
|
||||
$A_JS[] = "jquery/jquery.backstretch.js";
|
||||
|
||||
} else {
|
||||
//$A_CSS[] = "coreui/coreui.chartjs.css";
|
||||
$A_CSS[] = "datatables/dataTables.bootstrap5.css";
|
||||
$A_CSS[] = "datatables/responsive.bootstrap5.css";
|
||||
$A_CSS[] = "datatables/scroller.bootstrap5.css";
|
||||
$A_CSS[] = "datatables/stateRestore.bootstrap5.css";
|
||||
$A_CSS[] = "select2/select2.css";
|
||||
$A_CSS[] = "select2/select2-bootstrap-5-theme.css";
|
||||
$A_CSS[] = "bootstrap/bootstrap.datepicker.css";
|
||||
//$A_CSS[] = "simplebar.css";
|
||||
//$A_CSS[] = "lightbox.css";
|
||||
//$A_CSS[] = "codemirror.css";
|
||||
//$A_CSS[] = "summernote-bs4.css";
|
||||
$A_CSS[] = "default.css";
|
||||
$A_CSS[] = "print.css";
|
||||
|
||||
$A_JS = [
|
||||
"jquery/jquery.js",
|
||||
"jquery/jquery.base64.js",
|
||||
"jquery/jquery.autosize.js",
|
||||
"jquery/jquery.maskedinput.js",
|
||||
"jquery/jquery.validate.js",
|
||||
"bootstrap/bootstrap.bundle.js",
|
||||
"bootstrap/bootstrap.datepicker.js",
|
||||
"bootstrap/bootstrap.autocomplete.js",
|
||||
"datatables/jquery.dataTables.js",
|
||||
"datatables/dataTables.bootstrap5.js",
|
||||
"datatables/dataTables.responsive.js",
|
||||
"datatables/responsive.bootstrap5.js",
|
||||
"datatables/dataTables.scroller.js",
|
||||
"datatables/dataTables.stateRestore.js",
|
||||
"datatables/stateRestore.bootstrap5.js",
|
||||
//"codemirror/codemirror.js",
|
||||
//"codemirror/xml.js",
|
||||
"moment.js",
|
||||
"select2/select2.js",
|
||||
"chart/chart.js",
|
||||
//"chart/chartjs-plugin-datalabels.js",
|
||||
//"simplebar.js",
|
||||
//"lightbox.js",
|
||||
//"summernote-bs4.js",
|
||||
//"html5-qrcode.js",
|
||||
"fonia3.js",
|
||||
"print.js",
|
||||
"pdf.js",
|
||||
"export.js",
|
||||
//"simulator.js",
|
||||
//"pole-display.js",
|
||||
"highmaps.js",
|
||||
];
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
/*******************************************************************
|
||||
|
||||
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
|
||||
Module : /apps/cfg/mysql.php
|
||||
Desc. : Konfigurasi Server MySQL
|
||||
Created By : Siau Pheng ([email protected]).
|
||||
Created Date : November 7th, 2009.
|
||||
Last Modified : June 28th, 2020.
|
||||
|
||||
(c) 2009 - 2020, 3FONIA Software; WWW.3FONIA.COM.
|
||||
|
||||
*******************************************************************/
|
||||
|
||||
$APP_DATA = [
|
||||
'host' => "127.0.0.1",
|
||||
'port' => "3306",
|
||||
'user' => "sippd_mpw",
|
||||
'pwd' => "r4h4s14",
|
||||
'db' => "sippd_mpw",
|
||||
'sock' => ""
|
||||
];
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,201 @@
|
||||
/*******************************************************************
|
||||
|
||||
Module : /apps/js/index.js
|
||||
Desc. : JS - Halaman Utama Desktop
|
||||
Created By : Siau Pheng ([email protected]).
|
||||
Created Date : May 24th, 2010.
|
||||
Last Modified : April 19th, 2026.
|
||||
|
||||
(c) 2010 - 2026, 3FONIA Software; WWW.3FONIA.COM.
|
||||
|
||||
*******************************************************************/
|
||||
|
||||
var ajax = [];
|
||||
$(document).ready(() => {
|
||||
jQuery("#preloader").remove();
|
||||
loadSidebar();
|
||||
IndexJS.loading();
|
||||
});
|
||||
$(window).on("beforeunload", () => {
|
||||
for (var key in ajax) {
|
||||
ajax[key].abort();
|
||||
}
|
||||
});
|
||||
|
||||
var IndexJS = {
|
||||
|
||||
loading: function(){
|
||||
new Request.JSON({
|
||||
url: FoniaJS.WEB_PATH+'apps/php/index.php',
|
||||
sendParam: ['data=default'],
|
||||
onSuccess: (ares) => {
|
||||
$('#pageContent').html(ares.content);
|
||||
$('#pageToolbarTop').html('');
|
||||
$('#pageToolbarBot').html('');
|
||||
this.Chart_Map();
|
||||
this.Chart_Bar();
|
||||
this.periode_info();
|
||||
}
|
||||
}).send();
|
||||
},
|
||||
|
||||
periode_show: function(reset){
|
||||
new Request.JSON({
|
||||
url: FoniaJS.WEB_PATH+'apps/php/index.php',
|
||||
sendParam: ['data=periode-show','reset='+reset],
|
||||
onSuccess: function(adata){
|
||||
if (!adata.aktif) this.winPeriode = FoniaJS.showWindow('Periode', 'Pilih Periode Data', adata.html, 500, [{},{i:'butTutup'},{i:'butWSave',v:'Simpan',c:'success'}], function(){
|
||||
$('#winPeriode').find('#butWSave').click(function(){IndexJS.periode_simpan();});
|
||||
});
|
||||
}.bind(this)
|
||||
}).send();
|
||||
},
|
||||
|
||||
periode_simpan: function(){
|
||||
new Request.JSON({
|
||||
url: FoniaJS.WEB_PATH+'apps/php/index.php',
|
||||
sendParam: ['data=periode-simpan','OPTION_THN','OPTION_BLN'],
|
||||
onSuccess: function(adata){
|
||||
if (adata.sukses) FoniaJS.showInfo('Sukses Ganti Periode Data');
|
||||
FoniaJS.closeWindow(IndexJS.winPeriode);
|
||||
setTimeout(function(){self.location = FoniaJS.WEB_PATH;}, 10);
|
||||
}
|
||||
}).send();
|
||||
},
|
||||
|
||||
periode_info: function(){
|
||||
new Request.JSON({
|
||||
url: FoniaJS.WEB_PATH+'apps/php/index.php',
|
||||
sendParam: ['data=periode-info'],
|
||||
onSuccess: function(ajson){
|
||||
$('#liPeriode').html(ajson.html);
|
||||
}
|
||||
}).send();
|
||||
},
|
||||
|
||||
Chart_Map: function(){
|
||||
ajax["chart_map"] = $.ajax({
|
||||
url: FoniaJS.WEB_PATH+'apps/php/index.php?data=chart-map',
|
||||
dataType: "json",
|
||||
contentType: "application/json",
|
||||
cache: false,
|
||||
success: (data_kab) => IndexJS.Draw_Map(data_kab.data),
|
||||
});
|
||||
},
|
||||
|
||||
Draw_Map: function(data_pagu) {
|
||||
ajax["json_map"] = $.ajax({
|
||||
url: FoniaJS.WEB_PATH+'apps/php/index.php?data=json-map',
|
||||
dataType: "json",
|
||||
cache: true,
|
||||
contentType: "application/json",
|
||||
success: (dataJ) => {
|
||||
$('#divHome1').addClass('chart_map').highcharts("Map", {
|
||||
chart: {
|
||||
borderWidth: 0.1,
|
||||
backgroundColor: "#f3f3f3"
|
||||
},
|
||||
title: { text: undefined },
|
||||
legend: { enabled: false },
|
||||
mapNavigation: { enabled: true, buttonOptions: { align: 'right', verticalAlign: 'bottom' } },
|
||||
colorAxis: {
|
||||
dataClasses: [
|
||||
{
|
||||
name:"Diatas 40%",
|
||||
from: 20.01,
|
||||
to: 100,
|
||||
color: "#63B8E5"
|
||||
},{
|
||||
name:"Diatas 30%",
|
||||
from: 15.01,
|
||||
to: 20,
|
||||
color: "#00bd55"
|
||||
},{
|
||||
name:"Diatas 20%",
|
||||
from: 10.01,
|
||||
to:15,
|
||||
color: "#ded716"
|
||||
},{
|
||||
name:"Diatas 10%",
|
||||
from: 5.01,
|
||||
to:10,
|
||||
color: "#fc8403"
|
||||
},{
|
||||
name:"Dibawah 10%",
|
||||
from: 0,
|
||||
to:5,
|
||||
color: "#bd1900"
|
||||
}
|
||||
]
|
||||
},
|
||||
series: [
|
||||
{
|
||||
data: data_pagu,
|
||||
mapData: dataJ,
|
||||
joinBy: ['id_kec', 'id_kec'],
|
||||
animation: false,
|
||||
name: "Kecamatan"
|
||||
}
|
||||
],
|
||||
tooltip: {
|
||||
useHTML: true,
|
||||
backgroundColor: 'transparent',
|
||||
borderColor: 'transparent',
|
||||
shadow: false,
|
||||
padding: 0,
|
||||
shared: true,
|
||||
formatter: function() {
|
||||
return '<div style="border-radius:.5rem .5rem .5rem 0;background-color:white;box-shadow:#b1c7ff 0px 3px 10px 0px;padding:.5rem;display:flex;align-items:center;"><span>'+this.point.properties.kec+' <br>'+this.point.value+'%</span></div>';
|
||||
}
|
||||
}
|
||||
}, function(xchart){
|
||||
//xchart.renderer.image(FoniaJS.WEB_PATH+'assets/images/logo90.png',10,15,80,80).add();
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
Chart_Bar: function(){
|
||||
if (!$('#divHome2').length) return;
|
||||
new Request.JSON({
|
||||
url: FoniaJS.WEB_PATH+'apps/php/index.php',
|
||||
sendParam: ['data=chart-bar'],
|
||||
onSuccess: (ares) => {
|
||||
if (ares.tipe=='chart') {
|
||||
$('#divHome2').html('<div class="c-chart-wrapper pb-2"><canvas id="canvasChart2"></canvas></div>');
|
||||
var ctx = $('#canvasChart2');
|
||||
var myChart = new Chart(ctx, {
|
||||
type: ares.chart.type,
|
||||
data: ares.chart.data,
|
||||
options: ares.chart.options
|
||||
});
|
||||
} else {
|
||||
$('#divHome2').html(ares.html);
|
||||
}
|
||||
}
|
||||
}).send();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
function loadSidebar(){
|
||||
const mySidebar = document.getElementById('sidebarMain');
|
||||
mySidebar.addEventListener('shown.bs.modal', () => {
|
||||
document.querySelectorAll('.sidebar .nav-link').forEach((element) => {
|
||||
element.addEventListener('click', (e) => {
|
||||
let nextEl = element.nextElementSibling, parentEl = element.parentElement;
|
||||
if (nextEl){
|
||||
e.preventDefault();
|
||||
let mycollapse = new bootstrap.Collapse(nextEl);
|
||||
if (nextEl.classList.contains('show')){
|
||||
mycollapse.hide();
|
||||
} else {
|
||||
mycollapse.show();
|
||||
var opened_submenu = parentEl.parentElement.querySelector('.submenu.show');
|
||||
if (opened_submenu){ new bootstrap.Collapse(opened_submenu); }
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,148 @@
|
||||
/*******************************************************************
|
||||
|
||||
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
|
||||
Module : /apps/js/induk/asmas.js
|
||||
Desc. : JS - Kegiatan Aspirasi Masyarakat
|
||||
Created By : Siau Pheng ([email protected]).
|
||||
Created Date : October 28th, 2011.
|
||||
Last Modified : November 24th, 2025.
|
||||
|
||||
(c) 2011 - 2025, 3FONIA Software; WWW.3FONIA.COM.
|
||||
|
||||
*******************************************************************/
|
||||
|
||||
var IndukAsmasJS = {
|
||||
PHP: '',
|
||||
KODE: '',
|
||||
|
||||
loading: function(){
|
||||
$('#butKEC').click(function(){
|
||||
if ($('#KecID').val()>0) this.show_hide(1);
|
||||
}.bind(this));
|
||||
$('#butKEL').click(function(){
|
||||
if ($('#KelID').val()>0) this.show_hide(2);
|
||||
}.bind(this));
|
||||
this.show_hide(1);
|
||||
},
|
||||
|
||||
show_hide: function(no){
|
||||
$('#divKEC').css('display', 'none'); $('#butKEC').removeClass('btn-secondary').addClass('btn-info');
|
||||
$('#divKEL').css('display', 'none'); $('#butKEL').removeClass('btn-secondary').addClass('btn-info');
|
||||
$('#divKEG').css('display', 'none');
|
||||
if (no == 1) {
|
||||
$('#KecID').val(0);
|
||||
$('#Nama_KEC').val('');
|
||||
}
|
||||
if (no <= 1) {
|
||||
$('#KelID').val(0);
|
||||
$('#Nama_KEL').val('');
|
||||
$('#butKEC').removeClass('btn-info').addClass('btn-secondary');
|
||||
}
|
||||
if (no <= 2) {
|
||||
$('#butKEL').removeClass('btn-info').addClass('btn-secondary');
|
||||
}
|
||||
if (no == 1) { $('#divKEC').css('display', ''); this.data_query('tabel-kec'); }
|
||||
if (no == 2) { $('#divKEL').css('display', ''); this.data_query('tabel-kel'); }
|
||||
if (no == 3) { $('#divKEG').css('display', ''); this.data_query('tabel-keg'); }
|
||||
},
|
||||
|
||||
kec_select: function(acell){
|
||||
$('#KecID').val(acell[0]);
|
||||
$('#Nama_KEC').val(acell[2]);
|
||||
this.show_hide(2);
|
||||
},
|
||||
|
||||
kel_select: function(acell){
|
||||
$('#KelID').val(acell[0]);
|
||||
$('#Nama_KEL').val(acell[2]);
|
||||
this.show_hide(3);
|
||||
},
|
||||
|
||||
keg_detail: function(mode, ID){
|
||||
new Request({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=detail-keg','mode_detail='+mode,'KecID','KelID','SapiID='+ID],
|
||||
onSuccess: function(txt){
|
||||
this.winDKeg = FoniaJS.showWindow('DKeg', 'Detail Kegiatan Aspirasi Masyarakat', txt, 'xl', [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}], function(){
|
||||
$('#winDKeg').find('#butWSimpan').click(function(){this.keg_simpan();}.bind(this));
|
||||
$('#formUsulAsmas').validate({
|
||||
rules: {
|
||||
required: true,
|
||||
OPDID: {required:true, min:1},
|
||||
ProgID: {required:true, min:1},
|
||||
KegID: {required:true, min:1},
|
||||
SubID: {required:true, min:1},
|
||||
Lokasi: {required:true},
|
||||
Masalah: {required:true},
|
||||
Volume: {required:true, double_id:true},
|
||||
Satuan: {required:true},
|
||||
Rupiah: {required:true, double_id:true}
|
||||
}
|
||||
});
|
||||
this.oc_OPD();
|
||||
}.bind(this));
|
||||
}.bind(this)
|
||||
}).send();
|
||||
},
|
||||
|
||||
keg_ubah: function(acell){
|
||||
this.keg_detail('update', acell[0]);
|
||||
},
|
||||
|
||||
keg_simpan: function(){
|
||||
$('#formUsulAsmas').submit();
|
||||
if (true !== $('#formUsulAsmas').validate().checkForm()) return false;
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=tabel-keg','mode_detail','KecID','KelID','SapiID','OPDID','ProgID','KegID','SubID','Lokasi','Masalah','Volume','Satuan','Rupiah'],
|
||||
onSuccess: function(adata){
|
||||
FoniaJS.closeWindow(this.winDKeg);
|
||||
FoniaJS.showInfo('Sukses menyimpan Kegiatan Aspirasi Masyarakat.');
|
||||
}.bind(this)
|
||||
}).send();
|
||||
},
|
||||
|
||||
data_query: function(tipe, mode){
|
||||
if (tipe=="tabel-kec"){
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=tabel-kec']
|
||||
}).send();
|
||||
} else if (tipe=="tabel-kel"){
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=tabel-kel','KecID']
|
||||
}).send();
|
||||
} else if (tipe=="tabel-keg"){
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=tabel-keg','KecID','KelID']
|
||||
}).send();
|
||||
}
|
||||
},
|
||||
|
||||
oc_OPD: function(){
|
||||
if (parseInt($('#OPDID').val())==0) return;
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=option-prog','OPDID','ProgID']
|
||||
}).send();
|
||||
},
|
||||
|
||||
oc_Prog: function(){
|
||||
if (parseInt($('#ProgID').val())==0) return;
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=option-keg','OPDID','ProgID','KegID']
|
||||
}).send();
|
||||
},
|
||||
|
||||
oc_Keg: function(){
|
||||
if (parseInt($('#KegID').val())==0) return;
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=option-sub','OPDID','ProgID','KegID','SubID']
|
||||
}).send();
|
||||
}
|
||||
|
||||
};
|
||||
@@ -0,0 +1,141 @@
|
||||
/*******************************************************************
|
||||
|
||||
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
|
||||
Module : /apps/js/induk/pokir.js
|
||||
Desc. : JS - 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.
|
||||
|
||||
*******************************************************************/
|
||||
|
||||
var IndukPokirJS = {
|
||||
PHP: '',
|
||||
KODE: '',
|
||||
|
||||
loading: function(){
|
||||
$('#butDPRD').click(function(){
|
||||
if ($('#DPRDID').val()>0) this.show_hide(1);
|
||||
}.bind(this));
|
||||
$('#Nama_DPRD').keydown(function(e){
|
||||
if (13==e.which && false==$(e.target).prop('readonly')) this.data_query('tabel-dprd');
|
||||
}.bind(this));
|
||||
this.show_hide(1);
|
||||
},
|
||||
|
||||
show_hide: function(no){
|
||||
$('#divDPRD').css('display', 'none'); $('#butDPRD').removeClass('btn-secondary').addClass('btn-info');
|
||||
$('#divKEG').css('display', 'none');
|
||||
if (no == 1) {
|
||||
$('#DPRDID').val(0);
|
||||
$('#Nama_DPRD').val('').prop('readonly', false);
|
||||
$('#DapilID').val(0);
|
||||
$('#butDPRD').removeClass('btn-info').addClass('btn-secondary');
|
||||
}
|
||||
if (no == 1) { $('#divDPRD').css('display', ''); this.data_query('tabel-dprd'); }
|
||||
if (no == 2) { $('#divKEG').css('display', ''); this.data_query('tabel-keg'); }
|
||||
},
|
||||
|
||||
dprd_select: function(acell){
|
||||
$('#DPRDID').val(acell[0]);
|
||||
$('#Nama_DPRD').val(acell[2]).prop('readonly', true);
|
||||
$('#DapilID').val(acell[1]);
|
||||
this.show_hide(2);
|
||||
},
|
||||
|
||||
keg_detail: function(mode, ID){
|
||||
new Request({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=detail-keg','mode_detail='+mode,'DPRDID','DapilID','SapiID='+ID],
|
||||
onSuccess: function(txt){
|
||||
this.winDKeg = FoniaJS.showWindow('DKeg', 'Detail Kegiatan Pokir', txt, 'xl', [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}], function(){
|
||||
$('#winDKeg').find('#butWSimpan').click(function(){this.keg_simpan();}.bind(this));
|
||||
$('#formUsulDewan').validate({
|
||||
rules: {
|
||||
required: true,
|
||||
OPDID: {required:true, min:1},
|
||||
ProgID: {required:true, min:1},
|
||||
KegID: {required:true, min:1},
|
||||
SubID: {required:true, min:1},
|
||||
KecID: {required:true, min:1},
|
||||
KelID: {required:false},
|
||||
Lokasi: {required:true},
|
||||
Masalah: {required:true},
|
||||
Volume: {required:true, double_id:true},
|
||||
Satuan: {required:true},
|
||||
Rupiah: {required:true, double_id:true}
|
||||
}
|
||||
});
|
||||
this.oc_OPD();
|
||||
this.oc_Kec();
|
||||
}.bind(this));
|
||||
}.bind(this)
|
||||
}).send();
|
||||
},
|
||||
|
||||
keg_ubah: function(acell){
|
||||
this.keg_detail('update', acell[0]);
|
||||
},
|
||||
|
||||
keg_simpan: function(){
|
||||
$('#formUsulDewan').submit();
|
||||
if (true !== $('#formUsulDewan').validate().checkForm()) return false;
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=tabel-keg','mode_detail','DPRDID','SapiID','OPDID','ProgID','KegID','SubID','KecID','KelID','Lokasi','Masalah','Volume','Satuan','Rupiah'],
|
||||
onSuccess: function(adata){
|
||||
FoniaJS.closeWindow(this.winDKeg);
|
||||
FoniaJS.showInfo('Sukses menyimpan Kegiatan Pokir.');
|
||||
}.bind(this)
|
||||
}).send();
|
||||
},
|
||||
|
||||
data_query: function(tipe, mode){
|
||||
if (tipe=="tabel-dprd"){
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=tabel-dprd','Nama_DPRD']
|
||||
}).send();
|
||||
} else if (tipe=="tabel-keg"){
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=tabel-keg','DPRDID']
|
||||
}).send();
|
||||
}
|
||||
},
|
||||
|
||||
oc_OPD: function(){
|
||||
if (parseInt($('#OPDID').val())==0) return;
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=option-prog','OPDID','ProgID']
|
||||
}).send();
|
||||
},
|
||||
|
||||
oc_Prog: function(){
|
||||
if (parseInt($('#ProgID').val())==0) return;
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=option-keg','OPDID','ProgID','KegID']
|
||||
}).send();
|
||||
},
|
||||
|
||||
oc_Keg: function(){
|
||||
if (parseInt($('#KegID').val())==0) return;
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=option-sub','OPDID','ProgID','KegID','SubID']
|
||||
}).send();
|
||||
},
|
||||
|
||||
oc_Kec: function(){
|
||||
if (parseInt($('#KecID').val())==0) return;
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=option-kel','KecID','KelID']
|
||||
}).send();
|
||||
}
|
||||
|
||||
};
|
||||
@@ -0,0 +1,143 @@
|
||||
/*******************************************************************
|
||||
|
||||
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
|
||||
Module : /apps/js/induk/renja.js
|
||||
Desc. : JS - Kegiatan Renja
|
||||
Created By : Siau Pheng ([email protected]).
|
||||
Created Date : October 28th, 2011.
|
||||
Last Modified : May 3rd, 2026.
|
||||
|
||||
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
|
||||
|
||||
*******************************************************************/
|
||||
|
||||
var IndukRenjaJS = {
|
||||
PHP: '',
|
||||
KODE: '',
|
||||
|
||||
loading: function(){
|
||||
$('#butOPD').click(() => {
|
||||
if ($('#OPDID').val()>0) this.show_hide(1);
|
||||
});
|
||||
$('#Nama_OPD').keydown((e) => {
|
||||
if (13==e.which && false==$(e.target).prop('readonly')) this.data_query('tabel-opd');
|
||||
});
|
||||
this.show_hide(1);
|
||||
},
|
||||
|
||||
show_hide: function(no){
|
||||
$('#divOPD').addClass('d-none'); $('#butOPD').removeClass('btn-secondary').addClass('btn-info');
|
||||
$('#divKEG').addClass('d-none');
|
||||
if (no == 1) {
|
||||
$('#OPDID').val(0);
|
||||
$('#AK_Bidu').val('');
|
||||
$('#Nama_OPD').val('').prop('readonly', false);
|
||||
$('#butOPD').removeClass('btn-info').addClass('btn-secondary');
|
||||
}
|
||||
if (no == 1) { $('#divOPD').removeClass('d-none'); this.data_query('tabel-opd'); }
|
||||
if (no == 2) { $('#divKEG').removeClass('d-none'); this.data_query('tabel-keg'); }
|
||||
},
|
||||
|
||||
opd_select: function(acell){
|
||||
$('#OPDID').val(acell[0]);
|
||||
$('#AK_Bidu').val(acell[1]);
|
||||
$('#Nama_OPD').val(acell[2]).prop('readonly', true);
|
||||
this.show_hide(2);
|
||||
},
|
||||
|
||||
keg_detail: function(mode, ID){
|
||||
new Request.JSON({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=detail-keg','mode_detail='+mode,'OPDID','AK_Bidu','SapiID='+ID],
|
||||
onSuccess: (ajson) => {
|
||||
this.winDKeg = FoniaJS.showWindow('DKeg', 'Detail Kegiatan Pokir', ajson.html, 'xl', [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}], () => {
|
||||
$('#winDKeg').find('#butWSimpan').click(() => this.keg_simpan());
|
||||
$('#formRenja').validate({
|
||||
rules: {
|
||||
required: true,
|
||||
ProgID: {required:true, min:1},
|
||||
KegID: {required:true, min:1},
|
||||
SubID: {required:true, min:1},
|
||||
KecID: {required:true, min:1},
|
||||
KelID: {required:false},
|
||||
Lokasi: {required:true},
|
||||
Masalah: {required:true},
|
||||
Rupiah: {required:true, double_id:true},
|
||||
Hidden: {required:true},
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}).send();
|
||||
},
|
||||
|
||||
keg_tambah: function(){
|
||||
this.keg_detail('insert', 0);
|
||||
},
|
||||
|
||||
keg_ubah: function(acell){
|
||||
this.keg_detail('update', acell[0]);
|
||||
},
|
||||
|
||||
keg_simpan: function(){
|
||||
$('#formRenja').submit();
|
||||
if (true !== $('#formRenja').validate().checkForm()) return false;
|
||||
const _param = ['data=tabel-keg','mode_detail','SapiID','OPDID','ProgID','KegID','SubID','KecID','KelID','Lokasi','Masalah','Hidden','Rupiah'];
|
||||
$(':input[id^="Rupiah_"]').each((i,e) => { _param.push(e.id); });
|
||||
$(':input[id^="Pending_"]').each((i,e) => { _param.push(e.id); });
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: _param,
|
||||
onSuccess: (adata) => {
|
||||
FoniaJS.closeWindow(this.winDKeg);
|
||||
FoniaJS.showInfo('Sukses menyimpan Kegiatan Renja.');
|
||||
}
|
||||
}).send();
|
||||
},
|
||||
|
||||
data_query: function(tipe, mode){
|
||||
if (tipe=="tabel-opd"){
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=tabel-opd','Nama_OPD']
|
||||
}).send();
|
||||
} else if (tipe=="tabel-keg"){
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=tabel-keg','OPDID']
|
||||
}).send();
|
||||
}
|
||||
},
|
||||
|
||||
oc_Prog: function(){
|
||||
if (parseInt($('#ProgID').val())==0) return;
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=option-keg','OPDID','ProgID','KegID']
|
||||
}).send();
|
||||
},
|
||||
|
||||
oc_Keg: function(){
|
||||
if (parseInt($('#KegID').val())==0) return;
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=option-sub','OPDID','ProgID','KegID','SubID']
|
||||
}).send();
|
||||
},
|
||||
|
||||
oc_Kec: function(){
|
||||
if (parseInt($('#KecID').val())==0) return;
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=option-kel','KecID','KelID']
|
||||
}).send();
|
||||
},
|
||||
|
||||
copy_Pagu: function(){
|
||||
FoniaJS.showConfirm('Konfirmasi', 'Yakin akan salin Pagu Awal / Default<br>ke Semua Pagu Bulanan ?', () => {
|
||||
const _pagu = $('#Rupiah').val();
|
||||
$(':input[id^="Rupiah_"]').each((i,e) => $(e).val(_pagu));
|
||||
}, 'warning');
|
||||
}
|
||||
|
||||
};
|
||||
@@ -0,0 +1,84 @@
|
||||
/*******************************************************************
|
||||
|
||||
Module : /apps/js/login.js
|
||||
Desc. : JS - Halaman Proses Login
|
||||
Created By : Siau Pheng ([email protected]).
|
||||
Created Date : January 15th, 2008.
|
||||
Last Modified : June 28th, 2020.
|
||||
|
||||
(c) 2008 - 2020, 3FONIA Software; WWW.3FONIA.COM.
|
||||
|
||||
*******************************************************************/
|
||||
|
||||
$(document).ready(function(){
|
||||
$('#butLogin').click(LoginJS.Proses_Login);
|
||||
$('#Username').keydown(function(e){
|
||||
if (e.which==13) $('#Password').focus();
|
||||
});
|
||||
$('#Password').keydown(function(e){
|
||||
if (e.which==13) $('#butLogin').trigger('click');
|
||||
});
|
||||
LoginJS.Tampil_Login();
|
||||
document.oncontextmenu = new Function ('return false');
|
||||
|
||||
jQuery.backstretch([
|
||||
[
|
||||
{ width: 1280, url: FoniaJS.WEB_PATH+"assets/images/bs/kanda_1280.jpg" },
|
||||
{ width: 960, url: FoniaJS.WEB_PATH+"assets/images/bs/kanda_960.jpg" }
|
||||
],
|
||||
[
|
||||
{ width: 1280, url: FoniaJS.WEB_PATH+"assets/images/bs/istana_1280.jpg" },
|
||||
{ width: 960, url: FoniaJS.WEB_PATH+"assets/images/bs/istana_960.jpg" }
|
||||
],
|
||||
[
|
||||
{ width: 1280, url: FoniaJS.WEB_PATH+"assets/images/bs/mangrove_1280.jpg" },
|
||||
{ width: 960, url: FoniaJS.WEB_PATH+"assets/images/bs/mangrove_960.jpg" }
|
||||
]
|
||||
], {
|
||||
duration: 6000,
|
||||
transition: 'push_left|push_right|cover_up|cover_down|fade',
|
||||
transitionDuration: 600
|
||||
});
|
||||
});
|
||||
|
||||
var LoginJS = {
|
||||
|
||||
Tampil_Login: function(){
|
||||
var Username = FoniaJS.getCookie('Username');
|
||||
if (Username != '') {
|
||||
$('#Username').val(Username);
|
||||
FoniaJS.setFocus('#Password');
|
||||
} else {
|
||||
FoniaJS.setFocus('#Username');
|
||||
}
|
||||
},
|
||||
|
||||
Proses_Login: function(){
|
||||
if (!$('#Username').val()){
|
||||
$('#Username').focus();
|
||||
FoniaJS.showError('Silahkan masukkan ID Pengguna !');
|
||||
return false;
|
||||
}
|
||||
if (!$('#Password').val()){
|
||||
$('#Password').focus();
|
||||
FoniaJS.showError('Silahkan masukkan Kata Sandi !');
|
||||
return false;
|
||||
}
|
||||
new Request.JSON({
|
||||
url: FoniaJS.WEB_PATH+'apps/php/login.php',
|
||||
sendParam: ['mode=login','Username','Password','OPTION_TAHUN','OPTION_BLN'],
|
||||
onSuccess: function(respon){
|
||||
if (respon.hasil == 'SUKSES'){
|
||||
FoniaJS.setCookie('Username', $('#Username').val(), 365);
|
||||
$('#divLoginMsg').html(respon.pesan).removeClass('d-none');
|
||||
$('.input-group').addClass('d-none');
|
||||
setTimeout(function(){self.location = FoniaJS.WEB_PATH+'?auth='+(respon.token??'');}, 1600);
|
||||
}else{
|
||||
FoniaJS.showInfo(respon.pesan, 3000);
|
||||
if (respon.redir) setTimeout(function(){self.location = respon.redir;}, 600);
|
||||
}
|
||||
}
|
||||
}).send();
|
||||
}
|
||||
|
||||
};
|
||||
@@ -0,0 +1,129 @@
|
||||
/*******************************************************************
|
||||
|
||||
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
|
||||
Module : /apps/js/repo/browse.js
|
||||
Desc. : JS - Tampilan Data Pelaporan
|
||||
Created By : Siau Pheng ([email protected]).
|
||||
Created Date : October 28th, 2011.
|
||||
Last Modified : November 26th, 2025.
|
||||
|
||||
(c) 2011 - 2025, 3FONIA Software; WWW.3FONIA.COM.
|
||||
|
||||
*******************************************************************/
|
||||
|
||||
var RepoBrowseJS = {
|
||||
PHP: '',
|
||||
KODE: '',
|
||||
|
||||
loading: function(){
|
||||
this.data_query('tabel-keg');
|
||||
$('#Cari_Keg').keydown(function(e){
|
||||
var key = e.keyCode || e.which || 0;
|
||||
if (key==13 && e.target.value!='') this.data_query('tabel-keg');
|
||||
}.bind(this));
|
||||
$('#butSearch').click(function(e){
|
||||
this.data_query('tabel-keg');
|
||||
}.bind(this));
|
||||
$('#butAll').click(function(){
|
||||
$('#Cari_Keg').val('');
|
||||
this.data_query('tabel-keg');
|
||||
}.bind(this));
|
||||
$('#butFilter').click(function(){this.filter_show();}.bind(this));
|
||||
$('#butExcel').click(function(){this.down_excel();}.bind(this));
|
||||
FoniaJS.setFocus('#Cari_Keg');
|
||||
},
|
||||
|
||||
down_excel: function(){
|
||||
var dload = new cEXPORT(this.PHP);
|
||||
dload.add_param("data", "excel");
|
||||
dload.add_param("Jenis");
|
||||
dload.add_param("DPRDID");
|
||||
dload.add_param("KecID");
|
||||
dload.add_param("KelID");
|
||||
dload.add_param("OPDID");
|
||||
dload.add_param("ProgID");
|
||||
dload.download();
|
||||
},
|
||||
|
||||
filter_show: function(){
|
||||
new Request.JSON({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=detail_filter','Jenis','DPRDID','KecID','KelID','OPDID','ProgID'],
|
||||
onSuccess: function(ajson){
|
||||
this.winFilter = FoniaJS.showWindow('FData', 'Filter Tampilan Data Pelaporan', ajson.html, 600, [{i:'butWReset',v:'Reset Semua',c:'secondary'},{},{i:'butTutup'},{i:'butWSimpan',v:'Terapkan Filter',c:'success'}], function(){
|
||||
$('#winFData')
|
||||
.find('#butWReset').click(function(){this.filter_reset();}.bind(this)).end()
|
||||
.find('#butWSimpan').click(function(){this.filter_simpan();}.bind(this));
|
||||
this.oc_OPD();
|
||||
this.oc_Kec();
|
||||
}.bind(this));
|
||||
}.bind(this)
|
||||
}).send();
|
||||
},
|
||||
|
||||
filter_reset: function(){
|
||||
$('#Jenis').val(0);
|
||||
$('#DPRDID').val(0);
|
||||
$('#KecID').val(0);
|
||||
$('#KelID').val(0);
|
||||
$('#OPDID').val(0);
|
||||
$('#ProgID').val(0);
|
||||
$('#Cari_Keg').val('');
|
||||
FoniaJS.closeWindow(this.winFilter);
|
||||
this.data_query('tabel-keg');
|
||||
},
|
||||
|
||||
filter_simpan: function(){
|
||||
$('#Jenis').val($('#Fi_Jenis').val());
|
||||
$('#DPRDID').val($('#Fi_DPRDID').val());
|
||||
$('#KecID').val($('#Fi_KecID').val());
|
||||
$('#KelID').val($('#Fi_KelID').val());
|
||||
$('#OPDID').val($('#Fi_OPDID').val());
|
||||
$('#ProgID').val($('#Fi_ProgID').val());
|
||||
$('#Cari_Keg').val('');
|
||||
FoniaJS.closeWindow(this.winFilter);
|
||||
this.data_query('tabel-keg');
|
||||
},
|
||||
|
||||
data_query: function(tipe, mode){
|
||||
if (tipe=="tabel-keg"){
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=tabel-keg','Cari_Keg','Jenis','DPRDID','KecID','KelID','OPDID','ProgID']
|
||||
}).send();
|
||||
}
|
||||
},
|
||||
|
||||
oc_OPD: function(){
|
||||
if (parseInt($('#Fi_OPDID').val())==0) return;
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=option-prog','Fi_OPDID','Fi_ProgID']
|
||||
}).send();
|
||||
},
|
||||
|
||||
oc_Prog: function(){
|
||||
if (parseInt($('#Fi_ProgID').val())==0) return;
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=option-keg','Fi_OPDID','Fi_ProgID','Fi_KegID']
|
||||
}).send();
|
||||
},
|
||||
|
||||
oc_Keg: function(){
|
||||
if (parseInt($('#Fi_KegID').val())==0) return;
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=option-sub','Fi_OPDID','Fi_ProgID','Fi_KegID','Fi_SubID']
|
||||
}).send();
|
||||
},
|
||||
|
||||
oc_Kec: function(){
|
||||
if (parseInt($('#Fi_KecID').val())==0) return;
|
||||
new Request.JSONF({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=option-kel','Fi_KecID','Fi_KelID']
|
||||
}).send();
|
||||
}
|
||||
|
||||
};
|
||||
@@ -0,0 +1,55 @@
|
||||
/*******************************************************************
|
||||
|
||||
Module : /apps/js/sys/chpasswd.js
|
||||
Desc. : JS - Perubahan Password Operator
|
||||
Created By : Siau Pheng ([email protected]).
|
||||
Created Date : December 7th, 2008.
|
||||
Last Modified : April 25th, 2020.
|
||||
|
||||
(c) 2008 - 2020, 3FONIA Software; WWW.3FONIA.COM.
|
||||
|
||||
*******************************************************************/
|
||||
|
||||
var SYSChpasswdJS = {
|
||||
PHP: '',
|
||||
KODE: '',
|
||||
|
||||
loading: function(){
|
||||
$('#butSave').click(function(){this.proses_save();}.bind(this));
|
||||
FoniaJS.setFocus('#LPass');
|
||||
},
|
||||
|
||||
proses_save: function(){
|
||||
if ($("#LPass").val()=="") {
|
||||
FoniaJS.showInfo("Silakan masukkan password lama Anda!");
|
||||
FoniaJS.setFocus("#LPass");
|
||||
return false;
|
||||
} else if ($("#BPass1").val()=="") {
|
||||
FoniaJS.showInfo("Silakan masukkan password baru 1 Anda!");
|
||||
FoniaJS.setFocus("#BPass1");
|
||||
return false;
|
||||
} else if ($("#BPass2").val()=="") {
|
||||
FoniaJS.showInfo("Silakan masukkan password baru 2 Anda!");
|
||||
FoniaJS.setFocus("#BPass2");
|
||||
return false;
|
||||
} else if ($("#BPass1").val()!=$("#BPass2").val()) {
|
||||
FoniaJS.showInfo("Password baru 1 dan 2 Anda tidak sama!");
|
||||
FoniaJS.setFocus("#BPass1");
|
||||
return false;
|
||||
}
|
||||
|
||||
new Request.JSON({
|
||||
url: this.PHP,
|
||||
sendParam: ['data=chpasswd','LPass','BPass1','BPass2'],
|
||||
onSuccess: function(ajson){
|
||||
if (ajson.status == true) {
|
||||
FoniaJS.showInfo(ajson.msg);
|
||||
FoniaJS.closeWindow('#win'+this.KODE);
|
||||
} else {
|
||||
FoniaJS.showError(ajson.msg);
|
||||
}
|
||||
}.bind(this)
|
||||
}).send();
|
||||
}
|
||||
|
||||
};
|
||||
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
/*******************************************************************
|
||||
|
||||
App. Name : SISTEM INFORMASI MONITORING DAN EVALUASI
|
||||
Module : /apps/php/func/esapipd.php
|
||||
Desc. : PHP - Fungsi eSAPIPD
|
||||
Created By : Siau Pheng ([email protected]).
|
||||
Created Date : May 15th, 2012.
|
||||
Last Modified : May 1st, 2026.
|
||||
|
||||
(c) 2012 - 2026, 3FONIA Software; WWW.3FONIA.COM.
|
||||
|
||||
*******************************************************************/
|
||||
|
||||
require_once(__DIR__."/../../../../../vendor/autoload.php");
|
||||
|
||||
use siaupheng\fonia3\DB\MySQL;
|
||||
|
||||
$fdb = new MySQL();
|
||||
|
||||
function tahun_ang($prefix = "") {
|
||||
global $fdb;
|
||||
$atahun = [];
|
||||
$fdb->Query("SELECT Tahun FROM para_periode WHERE Tahun IN (SELECT Tahun FROM sapi_keg) ORDER BY Tahun");
|
||||
while ($fdb->Next()){
|
||||
$atahun[$fdb->Row("Tahun")] = $prefix . $fdb->Row("Tahun");
|
||||
}
|
||||
return $atahun;
|
||||
}
|
||||
|
||||
function map_tahun_submap($thn_map = 0) {
|
||||
$amap = [2021 => 2022, 2024 => 2025];
|
||||
return $amap[$thn_map] ?? $thn_map;
|
||||
}
|
||||
|
||||
function Kolom_Status1($err = 0) {
|
||||
$stat = '<i class="icon fs-5 text-danger bi-exclamation-circle me-2" title="Cek dan perbaiki informasi kegiatan!"></i><span class="badge rounded-pill text-bg-danger">'.$err.'</span>';
|
||||
if ($err == 0) $stat = '<i class="icon text-success fs-5 bi-check-circle"></i>';
|
||||
return $stat;
|
||||
}
|
||||
|
||||
function Kolom_Status2($err = 0) {
|
||||
$stat = '<i class="icon fs-5 text-danger bi-exclamation-circle me-2" title="Cek dan perbaiki informasi kegiatan!"></i>';
|
||||
if ($err == 0) $stat = '<i class="icon text-success fs-5 bi-check-circle"></i>';
|
||||
return $stat;
|
||||
}
|
||||
|
||||
function Kegiatan_Baru($tahun = 0, $kd_jenis = "R") {
|
||||
global $fdb;
|
||||
$ino = 0;
|
||||
$fdb->Query("SELECT MAX(RIGHT(Kode,6)) Nomor FROM sapi_keg WHERE Tahun='".$tahun."' AND Kode LIKE '".$kd_jenis.substr($tahun,-2)."%'");
|
||||
if ($fdb->Next()) $ino = (int)$fdb->Row("Nomor", 0);
|
||||
return $kd_jenis.substr($tahun,-2).isi_nol(++$ino, 6);
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/*******************************************************************
|
||||
|
||||
App. Name : SISTEM INFORMASI MONITORING DAN EVALUASI
|
||||
Module : /apps/php/func/report.php
|
||||
Desc. : PHP - Fungsi Report
|
||||
Created By : Siau Pheng ([email protected]).
|
||||
Created Date : May 15th, 2012.
|
||||
Last Modified : April 29th, 2026.
|
||||
|
||||
(c) 2012 - 2026, 3FONIA Software; WWW.3FONIA.COM.
|
||||
|
||||
*******************************************************************/
|
||||
|
||||
require_once(__DIR__."/../../../../../vendor/autoload.php");
|
||||
|
||||
use siaupheng\fonia3\DB\MySQL;
|
||||
|
||||
$fdb = new MySQL();
|
||||
|
||||
function Report_Empty($ltabel = "") {
|
||||
global $fdb;
|
||||
if ($ltabel == "") return false;
|
||||
$fdb->Query("DELETE FROM rep_".$ltabel." WHERE (Unix='".user_unix()."' OR Unix<'".(user_unix()-604800)."') AND UserID='".user_id()."'");
|
||||
}
|
||||
|
||||
function Report_Header($tlapor="", $tperiod="") {
|
||||
$thasil = '<div style="text-align:center;font-size:12pt;"><b>'.strtoupper($_SESSION['__WEB_APP']['REG_NAME']);
|
||||
$thasil .= (($tlapor=="") ? "" : '<br>'.$tlapor) . '</b>';
|
||||
$thasil .= ($tperiod=="") ? "" : '<br><span style="font-size:11pt;">'.$tperiod.'</span>';
|
||||
$thasil .= '</div><br>';
|
||||
echo $thasil;
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,149 @@
|
||||
<?php
|
||||
|
||||
/*******************************************************************
|
||||
|
||||
Module : /apps/php/index.php
|
||||
Desc. : PHP - Halaman Utama Desktop
|
||||
Created By : Siau Pheng ([email protected]).
|
||||
Created Date : May 24th, 2010.
|
||||
Last Modified : April 19th, 2026.
|
||||
|
||||
(c) 2010 - 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\Form;
|
||||
use siaupheng\fonia3\Web\Register;
|
||||
|
||||
function random_color($trans = "0.6") {
|
||||
$col_r = mt_rand( 0, 255 );
|
||||
$col_g = mt_rand( 0, 255 );
|
||||
$col_b = mt_rand( 0, 255 );
|
||||
return "rgba(".$col_r.",".$col_g.",".$col_b.",".$trans.")";
|
||||
}
|
||||
|
||||
$db = $db ?? new MySQL();
|
||||
$ajson = [];
|
||||
$data = Param::Get("data");
|
||||
$tahun = $_SESSION['__WEB_APP']['REAL_THN'] ?? 0;
|
||||
$aapp = $_SESSION['__WEB_APP'];
|
||||
|
||||
if ( $data == "periode-show" ) {
|
||||
$ajson = ['aktif'=>1, 'html'=>""];
|
||||
if ($tahun == 0 || Param::Get("reset", 0) == 1) {
|
||||
$form = new Form($db);
|
||||
$lthn = $form->option("_", "OPTION_THN", $tahun, true, false, tahun_ang());
|
||||
$ajson['aktif'] = 0;
|
||||
$ajson['html'] = '
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-5 col-lg-4 col-form-label" for="OPTION_THN">Tahun Anggaran</label>
|
||||
<div class="col">'.$lthn.'</div>
|
||||
</div>';
|
||||
}
|
||||
|
||||
} else if ( $data == "periode-simpan" ) {
|
||||
// penyimpanan periode tahun dan bulan login !
|
||||
$alogin = $_SESSION['__WEB_APP'];
|
||||
$alogin['REAL_THN'] = Param::Get("OPTION_THN", $alogin['REAL_THN']);
|
||||
|
||||
// mapping tahun nomenklatur submap
|
||||
$alogin['SUBMAP_TAHUN'] = map_tahun_submap($alogin['REAL_THN']);
|
||||
$_SESSION['__WEB_APP'] = $alogin;
|
||||
$ajson['sukses'] = 1;
|
||||
|
||||
} else if ( $data == "periode-info") {
|
||||
$ajson = ['html'=>'<a class="nav-link" onclick="IndexJS.periode_show(1);"><i class="icon bi-calendar"></i></a>'];
|
||||
if ($tahun > 0) {
|
||||
$txtinfo = "TA " . $tahun;
|
||||
$ajson['html'] = '<a class="nav-link text-info fw-bolder" title="'.$txtinfo.'" onclick="IndexJS.periode_show(1);"><i class="icon me-2 bi-calendar-check"></i>'.$txtinfo.'</a>';
|
||||
}
|
||||
|
||||
} else if ( $data == "json-map" ) {
|
||||
$amap = json_decode(file_get_contents(__DIR__."/../../assets/json/map_mempawah.json"), true);
|
||||
echo json_encode($amap);
|
||||
exit;
|
||||
|
||||
} else if ( $data == "chart-map" ) {
|
||||
$tot_pagu = 0; $ajson['data'] = [];
|
||||
$db->Query("SELECT SUM(Rupiah) Pagu FROM sapi_keg WHERE Tahun='".$tahun."'");
|
||||
if ($db->Next()) $tot_pagu = $db->Row("Pagu", 0);
|
||||
|
||||
$db->Query("SELECT IFNULL(L.LokasiID,0) LokasiID,A.Pagu FROM (SELECT KecID,SUM(Rupiah) Pagu FROM sapi_keg WHERE Tahun='".$tahun."' GROUP BY KecID) A LEFT JOIN para_lokasi L ON (L.LokasiID=A.KecID)");
|
||||
while ($db->Next()) {
|
||||
if ($db->Row("LokasiID", 0) == 0) continue;
|
||||
$ajson['data'][] = ['id_kec'=>$db->Row("LokasiID"), 'value'=>uang2($db->Row("Pagu",0)>0?$tot_pagu/$db->Row("Pagu",0):0)];
|
||||
}
|
||||
|
||||
} else if ( $data == "chart-bar" ) {
|
||||
$ajson['tipe'] = "chart";
|
||||
$db->Query("SELECT IFNULL(L.LokasiID,0) LokasiID,L.N_Lokasi,S.* FROM (SELECT KecID,SUM(IF(Jenis=1,Rupiah,0)) POK,SUM(IF(Jenis=2,Rupiah,0)) MUS FROM sapi_keg WHERE Tahun='".$tahun."' GROUP BY KecID) S LEFT JOIN para_lokasi L ON (L.LokasiID=S.KecID) ORDER BY L.K_Lokasi");
|
||||
|
||||
$adata['datasets'] = [];
|
||||
$adata['labels'] = [];
|
||||
$atmp1 = [0]; $atmp2 = [0];
|
||||
$adata['labels'][] = "Belum Ada Data Usulan";
|
||||
if ($db->RecordCount()>0) {
|
||||
$atmp1 = []; $atmp2 = [];
|
||||
$adata['labels'] = [];
|
||||
}
|
||||
while ($db->Next()){
|
||||
if ($db->Row("LokasiID", 0) == 0) continue;
|
||||
$atmp1[] = round($db->Row("MUS"), 2);
|
||||
$atmp2[] = round($db->Row("POK"), 2);
|
||||
$adata['labels'][] = $db->Row("N_Lokasi");
|
||||
}
|
||||
$adata['datasets'][] = ['data'=>$atmp1, 'label'=>"Asmas", 'backgroundColor'=>random_color(), 'order'=>1, 'datalabels'=>['align'=>"end", 'anchor'=>"end", 'color'=>"#36A2EB"]];
|
||||
$adata['datasets'][] = ['data'=>$atmp2, 'label'=>"Pokir", 'backgroundColor'=>random_color(), 'order'=>2, 'datalabels'=>['align'=>"end", 'anchor'=>"end", 'color'=>"#36A2EB"]];
|
||||
|
||||
$ajson['chart'] = ['type' => "bar",
|
||||
'data' => $adata,
|
||||
'options' => [
|
||||
'plugins' => [
|
||||
'title' => ['display' => true, 'text' => 'Penyebaran Pagu di Kecamatan', 'font' => [ 'size' => 20 ]],
|
||||
'legend' => ['position' => "bottom"],
|
||||
'tooltip' => [ 'mode' => 'index' ],
|
||||
],
|
||||
'responsive' => true,
|
||||
'aspectRatio' => 1.5,
|
||||
'layout' => ['padding' => ['top' => 10]],
|
||||
]
|
||||
];
|
||||
|
||||
} else if ( $data == "default" ) {
|
||||
$aapp = $_SESSION['__WEB_APP'];
|
||||
$ajson['content'] = '
|
||||
<div class="fade-in">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-6">
|
||||
<div class="card" style="min-height:calc(100vh - 140px);">
|
||||
<div class="card-body pb-0 text-center" id="divHome1">
|
||||
<img src="'.$aapp['WEB_PATH'].'assets/images/logo150.png" title="'.$aapp['REG_NAME'].'">
|
||||
<p class="mt-2">'.$aapp['REG_ADDRESS'].'<br>
|
||||
'.$aapp['REG_CITY'].' '.$aapp['REG_POSTCODE'].'</p>
|
||||
<p class="mt-3 mb-3"><i>Register ID : '.Register::reg_id().'</i></p>
|
||||
<p>'.$aapp['APP_NAMES'].'<br>'.$aapp['APP_NAME'].' Ver. '.$aapp['APP_VER'].'<br>
|
||||
Updated : '.$aapp['APP_UPDATED'].'</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-6">
|
||||
<div class="card" style="min-height:calc(100vh - 140px);">
|
||||
<div class="card-body pb-0" id="divHome2">
|
||||
<div class="c-chart-wrapper pb-2">
|
||||
<canvas id="canvasChart2"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
';
|
||||
}
|
||||
|
||||
send_json($ajson);
|
||||
?>
|
||||
@@ -0,0 +1,251 @@
|
||||
<?php
|
||||
|
||||
/*******************************************************************
|
||||
|
||||
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
|
||||
Module : /apps/php/induk/asmas.php
|
||||
Desc. : PHP - Kegiatan Aspirasi Masyarakat
|
||||
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_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-kec","tabel-kel","tabel-keg"]) ) {
|
||||
$qsql = "Tahun='".$thn_renja."' AND Jenis=2";
|
||||
$msql = "M.Aktif=1 AND IFNULL(K.ITEM_KEG,0)>0";
|
||||
|
||||
if ( $data == "tabel-kec" ) {
|
||||
$qsql2 = $qsql;
|
||||
$qsql2 .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND KecID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": "";
|
||||
$qsql2 .= ($_SESSION['__WEB_USER']['Level']==7) ? " AND KelID IN (".$_SESSION['__WEB_USER']['AK_KEL'].")": "";
|
||||
$msql .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND M.LokasiID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": " AND M.Level=1";
|
||||
$msql .= ($_SESSION['__WEB_USER']['Level']==7) ? " AND M.LokasiID IN (SELECT IndukID FROM para_lokasi WHERE Level=2 AND LokasiID IN (".$_SESSION['__WEB_USER']['AK_KEL']."))": " AND M.Level=1";
|
||||
} else if ( $data == "tabel-kel" ) {
|
||||
$qsql .= " AND KecID='".$id_kec."'";
|
||||
$msql .= " AND M.Level=2 AND M.IndukID='".$id_kec."'";
|
||||
$msql .= ($_SESSION['__WEB_USER']['Level']==7) ? " AND M.LokasiID IN (".$_SESSION['__WEB_USER']['AK_KEL'].")": "";
|
||||
} else if ( $data == "tabel-keg" ) {
|
||||
$qsql .= " AND KecID='".$id_kec."' AND KelID='".$id_kel."'";
|
||||
}
|
||||
}
|
||||
|
||||
if ( $data == "tabel-kec" ) {
|
||||
$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.LokasiID KecID2,M.K_Lokasi,M.N_Lokasi FROM para_lokasi M LEFT JOIN (SELECT KecID,COUNT(DISTINCT KelID) ITEM_KEL,COUNT(*) ITEM_KEG,SUM(IF(OPDID=0 OR KecID=0,1,0)) ITEM_ERR,SUM(Rupiah) TOT_RUPIAH FROM sapi_keg WHERE ".$qsql2." GROUP BY KecID) K ON (K.KecID=M.LokasiID) WHERE ".$msql);
|
||||
$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", "Kel / Desa", "r", "rupiah");
|
||||
$obj->add_field("ITEM_KEG", "Asmas", "r", "rupiah");
|
||||
$obj->add_field("TOT_RUPIAH", "Jumlah Pagu", "r", "rupiah");
|
||||
$obj->add_field("ITEM_ERR2", "Status", "c", "Kolom_Status1");
|
||||
$obj->set_field_order("N_Lokasi", "A");
|
||||
$obj->set_row_color("ITEM_VER", 1, "ryellow");
|
||||
$obj->add_row_btn("select", "Kel / Desa", "IndukAsmasJS.kec_select");
|
||||
$obj->set_func_navi("IndukAsmasJS.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(K.ITEM_ERR,0) ITEM_ERR2,IF(IFNULL(K.ITEM_ERR,0)=0,0,1) ITEM_VER,M.LokasiID KelID2,M.K_Lokasi,M.N_Lokasi FROM para_lokasi M LEFT JOIN (SELECT KelID,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 KelID) K ON (K.KelID=M.LokasiID) WHERE ".$msql);
|
||||
$obj->add_field("KelID2", "ID", "hid");
|
||||
$obj->add_field("K_Lokasi", "Kode", "c");
|
||||
$obj->add_field("N_Lokasi", "Nama Kelurahan / Desa", "awr");
|
||||
$obj->add_field("ITEM_KEG", "Asmas", "r", "rupiah");
|
||||
$obj->add_field("TOT_RUPIAH", "Jumlah Pagu", "r", "rupiah");
|
||||
$obj->add_field("ITEM_ERR2", "Status", "c", "Kolom_Status1");
|
||||
$obj->set_field_order("N_Lokasi", "A");
|
||||
$obj->set_row_color("ITEM_VER", 1, "ryellow");
|
||||
$obj->add_row_btn("select", "Asmas", "IndukAsmasJS.kel_select");
|
||||
$obj->set_func_navi("IndukAsmasJS.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("sapi_keg");
|
||||
$sql->add_param("OPDID");
|
||||
$sql->add_param("ProgID");
|
||||
$sql->add_param("KegID");
|
||||
$sql->add_param("SubID");
|
||||
$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 Asmas", "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", "IndukAsmasJS.keg_ubah");
|
||||
$obj->set_func_navi("IndukAsmasJS.data_query('tabel-keg')");
|
||||
$obj->set_textbtn(true);
|
||||
$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 Jenis=2 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," "], null, "IndukAsmasJS.oc_OPD()");
|
||||
$tprog = $form->option("_", "ProgID", $adetail['ProgID'], $enable, true, [$adetail['ProgID']=>[" ",0]], null, "IndukAsmasJS.oc_Prog()");
|
||||
$tkeg = $form->option("_", "KegID", $adetail['KegID'], $enable, true, [$adetail['KegID']=>[" ",0]], null, "IndukAsmasJS.oc_Keg()");
|
||||
$tsub = $form->option("_", "SubID", $adetail['SubID'], $enable, true, [$adetail['SubID']=>[" ",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="formUsulAsmas" 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="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 == "default") {
|
||||
echo '
|
||||
<div class="fade-in">
|
||||
<div class="card"><div class="card-header custom-style">Kelola Data Induk Aspirasi Masyarakat</div><div class="card-body">
|
||||
<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="icon 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 Kelurahan / 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="icon bi-arrow-left-right"></span></i>Kel / Desa</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="divKEC"> </div>
|
||||
<div id="divKEL"> </div>
|
||||
<div id="divKEG"> </div>
|
||||
</div></div>
|
||||
</div>';
|
||||
}
|
||||
|
||||
send_json($ajson);
|
||||
?>
|
||||
@@ -0,0 +1,255 @@
|
||||
<?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," "], null, "IndukPokirJS.oc_OPD()");
|
||||
$tprog = $form->option("_", "ProgID", $adetail['ProgID'], $enable, true, [$adetail['ProgID']=>[" ",0]], null, "IndukPokirJS.oc_Prog()");
|
||||
$tkeg = $form->option("_", "KegID", $adetail['KegID'], $enable, true, [$adetail['KegID']=>[" ",0]], null, "IndukPokirJS.oc_Keg()");
|
||||
$tsub = $form->option("_", "SubID", $adetail['SubID'], $enable, true, [$adetail['SubID']=>[" ",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," "], null, "IndukPokirJS.oc_Kec()");
|
||||
$tkel = $form->option("_", "KelID", $adetail['KelID'], $enable, false, [$adetail['KelID']=>[" ",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"> </div>
|
||||
<div id="divKEG"> </div>
|
||||
</div></div>
|
||||
</div>';
|
||||
}
|
||||
|
||||
send_json($ajson);
|
||||
?>
|
||||
@@ -0,0 +1,291 @@
|
||||
<?php
|
||||
|
||||
/*******************************************************************
|
||||
|
||||
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
|
||||
Module : /apps/php/induk/renja.php
|
||||
Desc. : PHP - Kegiatan Renja
|
||||
Created By : Siau Pheng ([email protected]).
|
||||
Created Date : October 28th, 2011.
|
||||
Last Modified : May 3rd, 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'];
|
||||
$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=3 AND Tahapan=1";
|
||||
$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) 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("select", "Renja", "IndukRenjaJS.opd_select");
|
||||
$obj->set_func_navi("IndukRenjaJS.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("Rupiah");
|
||||
$sql->add_param("Hidden");
|
||||
$sql->add_param_stamp();
|
||||
$sql->add_param_userid();
|
||||
$sql->add_where("Tahun", $thn_renja);
|
||||
$sql->add_where("SapiID");
|
||||
|
||||
$sql2 = new SQL($db);
|
||||
$sql2->set_table("sapi_keg_tag");
|
||||
$sql2->add_param("Rupiah_01");
|
||||
$sql2->add_param("Rupiah_02");
|
||||
$sql2->add_param("Rupiah_03");
|
||||
$sql2->add_param("Rupiah_04");
|
||||
$sql2->add_param("Rupiah_05");
|
||||
$sql2->add_param("Rupiah_06");
|
||||
$sql2->add_param("Rupiah_07");
|
||||
$sql2->add_param("Rupiah_08");
|
||||
$sql2->add_param("Rupiah_09");
|
||||
$sql2->add_param("Rupiah_10");
|
||||
$sql2->add_param("Rupiah_11");
|
||||
$sql2->add_param("Rupiah_12");
|
||||
$sql2->add_param("Pending_01");
|
||||
$sql2->add_param("Pending_02");
|
||||
$sql2->add_param("Pending_03");
|
||||
$sql2->add_param("Pending_04");
|
||||
$sql2->add_param("Pending_05");
|
||||
$sql2->add_param("Pending_06");
|
||||
$sql2->add_param("Pending_07");
|
||||
$sql2->add_param("Pending_08");
|
||||
$sql2->add_param("Pending_09");
|
||||
$sql2->add_param("Pending_10");
|
||||
$sql2->add_param("Pending_11");
|
||||
$sql2->add_param("Pending_12");
|
||||
$sql2->add_where("Tahun", $thn_renja);
|
||||
$sql2->add_where("SapiID");
|
||||
|
||||
switch ($mode_detail) {
|
||||
case "insert":
|
||||
$sql->add_param("Tahun", $thn_renja);
|
||||
$sql->add_param("Jenis", 3);
|
||||
$sql->add_param("Tahapan", 1);
|
||||
$sql->add_param("OPDID");
|
||||
$sql->add_param("Kode", Kegiatan_Baru($thn_renja, "R"));
|
||||
$sql->InsertDB();
|
||||
$_id = $sql->LastInsertID();
|
||||
$sql2->add_param("SapiID", $_id);
|
||||
$sql2->add_param("Tahun", $thn_renja);
|
||||
$sql2->InsertDB();
|
||||
break;
|
||||
case "update":
|
||||
$sql->UpdateDB();
|
||||
$sql2->UpdateDB();
|
||||
break;
|
||||
case "delete":
|
||||
//$sql->DeleteDB();
|
||||
//$sql2->DeleteDB();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$obj = new Table($db);
|
||||
$obj->set_query("SELECT R.*,X.Nama_Sub 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("Kode", "Kode", "c");
|
||||
$obj->add_field("Nama_Sub", "Kegiatan Renja", "l");
|
||||
$obj->add_field("Lokasi", "Lokasi", "awr");
|
||||
$obj->add_field("Rupiah", "Pagu", "r", "rupiah");
|
||||
$obj->add_field("ITEM_ERR", "Status", "c", "Kolom_Status2");
|
||||
$obj->set_field_order("SIPD_Unix", "A");
|
||||
$obj->set_row_color("ITEM_ERR", 1, "ryellow");
|
||||
$obj->add_row_btn("clipboard", "Detail Kegiatan", "IndukRenjaJS.keg_ubah");
|
||||
$obj->set_func_btn("IndukRenjaJS.keg_tambah", '<i class="bi-plus-lg me-1"></i>Kegiatan');
|
||||
$obj->set_func_navi("IndukRenjaJS.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 Jenis=3 AND SapiID='".$id_sapi."' LIMIT 1");
|
||||
if ($db->Next()) $adetail = array_merge($adetail, $db->AllRow());
|
||||
$db->Query("SELECT * FROM sapi_keg_tag WHERE Tahun='".$thn_renja."' AND SapiID='".$adetail['SapiID']."' LIMIT 1");
|
||||
if ($db->Next()) $adetail = array_merge($adetail, $db->AllRow());
|
||||
}
|
||||
|
||||
$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, "IndukRenjaJS.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, "IndukRenjaJS.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, "IndukRenjaJS.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"><button class="btn btn-outline-info shadow-none text-primary" title="Salin ke Pagu semua Bulan." onclick="IndukRenjaJS.copy_Pagu();"><i class="bi-copy"></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':'').'>
|
||||
<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 Induk 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);
|
||||
?>
|
||||
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
/*******************************************************************
|
||||
|
||||
Module : /apps/php/login.php
|
||||
Desc. : PHP - Halaman Proses Login
|
||||
Created By : Siau Pheng ([email protected]).
|
||||
Created Date : January 5th, 2008.
|
||||
Last Modified : June 28th, 2020.
|
||||
|
||||
(c) 2008 - 2020, 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\Auth;
|
||||
use siaupheng\fonia3\Web\Param;
|
||||
|
||||
$db = $db ?? new MySQL();
|
||||
$auth = new Auth($db);
|
||||
$ajson = [];
|
||||
$mode = Param::Get("mode");
|
||||
$aapp = $_SESSION['__WEB_APP'];
|
||||
|
||||
if ($mode == "login") {
|
||||
$auser = [];
|
||||
$auth->set_id_reg($aapp['PARENT_CODE']);
|
||||
if ($auth->user_check(Param::Get("Username"), Param::Get("Password"))) {
|
||||
$auser = $auth->user_data(Param::Get("Username"));
|
||||
|
||||
// penyimpanan periode dan tw login !
|
||||
$alogin = $_SESSION['__WEB_APP'];
|
||||
$log_tahun = Param::Get("OPTION_TAHUN", $alogin['REAL_THN']);
|
||||
if ($log_tahun <> $alogin['REAL_THN']) {
|
||||
$alogin['REAL_THN'] = $log_tahun;
|
||||
}
|
||||
// mapping tahun nomenklatur submap
|
||||
$alogin['SUBMAP_TAHUN'] = map_tahun_submap($alogin['REAL_THN']);
|
||||
$_SESSION['__WEB_APP'] = $alogin;
|
||||
|
||||
$_appurl = $_GET['redir'];
|
||||
if (!empty($_appurl)) {
|
||||
$_redir = $auth->redirect($_appurl);
|
||||
//jika kosong, tampilkan pesan redirect tidak diijinkan
|
||||
//jika berisi, js harus redirect ...
|
||||
}
|
||||
|
||||
$ajson['token'] = $_SESSION['APP_TOKEN'];
|
||||
$ajson['hasil'] = "SUKSES";
|
||||
$ajson['pesan'] = '<div class="border border-success p-2 pt-3"><h5>Login berhasil,</h5><p><b>'.$auser["Username"].'</b> / '.$auser["Nama"].'<br>'.$auser["Posisi"].'<br><i>login terakhir :</i><br>'.tgl_sql2str($auser["Last_Date"],true).'<br>'.$auser["Last_IP"].'</p></div>';
|
||||
} else {
|
||||
$ajson['hasil'] = "ERROR";
|
||||
$ajson['pesan'] = "Periksa kembali ID Pengguna atau Password Anda ...";
|
||||
}
|
||||
|
||||
} else if ($mode == "logout") {
|
||||
$auth->logout();
|
||||
foreach ($_SESSION as $_key => $_val) {
|
||||
if (substr($_key,0,5)=="__WEB") unset($_SESSION[$_key]);
|
||||
if (substr($_key,0,5)=="__APP") unset($_SESSION[$_key]);
|
||||
}
|
||||
require(__DIR__."/../cfg/app.php");
|
||||
$nhost = ($_SERVER['SERVER_ADDR'] == "127.0.0.1") ? $_SESSION['__WEB_APP']['WEB_PATH']."../" : $_SESSION['__WEB_APP']['PARENT_SITE'];
|
||||
$ajson['nexthost'] = $nhost;
|
||||
}
|
||||
|
||||
send_json($ajson);
|
||||
?>
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
/*******************************************************************
|
||||
|
||||
Module : /apps/php/login.php
|
||||
Desc. : PHP - Halaman Proses Login
|
||||
Created By : Siau Pheng ([email protected]).
|
||||
Created Date : January 5th, 2008.
|
||||
Last Modified : June 28th, 2020.
|
||||
|
||||
(c) 2008 - 2020, 3FONIA Software; WWW.3FONIA.COM.
|
||||
|
||||
*******************************************************************/
|
||||
|
||||
require_once(__DIR__."/../../../../vendor/autoload.php");
|
||||
require_once(__DIR__."/func/esapipd.php");
|
||||
|
||||
use siaupheng\fonia3\DB\MySQL;
|
||||
|
||||
$db = $db ?? new MySQL();
|
||||
$d2 = $d2 ?? new MySQL();
|
||||
|
||||
$db->Query("SELECT *,IF(Jenis=1,'P',IF(Jenis=2,'M','R')) Kode_Jenis FROM sapi_keg ORDER BY SapiID");
|
||||
while ($db->Next()) {
|
||||
$d2->Query("UPDATE sapi_keg SET Kode='".Kegiatan_Baru($db->Row("Tahun"), $db->Row("Kode_Jenis"))."' WHERE SapiID='".$db->Row("SapiID")."' LIMIT 1");
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,188 @@
|
||||
<?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 : November 26th, 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_jenis = Param::Get("Jenis", 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_prog = Param::Get("ProgID", 0);
|
||||
//$id_keg = Param::Get("KegID", 0);
|
||||
//$id_sub = Param::Get("SubID", 0);
|
||||
$kunci_cari = Param::Get("Cari_Keg", "");
|
||||
$aapp = $_SESSION['__WEB_APP'];
|
||||
|
||||
if ( $data == "tabel-keg" ) {
|
||||
$qsql = "Tahun='".$thn_renja."'";
|
||||
if ($id_jenis > 0) $qsql .= " AND Jenis='".$id_jenis."'";
|
||||
if ($id_dprd > 0) $qsql .= " AND DPRDID='".$id_dprd."'";
|
||||
if ($id_kec > 0) $qsql .= " AND KecID='".$id_kec."'";
|
||||
if ($id_kel > 0) $qsql .= " AND KelID='".$id_kel."'";
|
||||
if ($id_opd > 0) $qsql .= " AND OPDID='".$id_opd."'";
|
||||
if ($id_prog > 0) $qsql .= " AND ProgID='".$id_prog."'";
|
||||
if ($kunci_cari <> "") $qsql .= " AND CONCAT(CONVERT(SIPD_UsulanID USING UTF8),Lokasi) LIKE '%".$kunci_cari."%'";
|
||||
|
||||
$obj = new Table($db);
|
||||
$obj->set_table("(SELECT *,CONCAT(IF(Jenis=1,'P','A'),'-',CONVERT(SIPD_UsulanID USING UTF8)) Kode_Usul,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)", "R.*,X.N_Sub,CONCAT(R.Volume,' ',R.Satuan) N_Satuan", "");
|
||||
$obj->add_field("SapiID", "ID", "hid");
|
||||
$obj->add_field("Kode_Usul", "Kode", "c");
|
||||
$obj->add_field("N_Sub", "Nama Sub Kegiatan", "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("Kode_Usul", "A");
|
||||
$obj->set_row_color("ITEM_ERR", 1, "ryellow");
|
||||
//$obj->add_row_btn("select", "Pokir", "UsulPokirJS.dprd_select");
|
||||
$obj->set_func_navi("UsulBrowseJS.data_query('tabel-keg')");
|
||||
$obj->set_textbtn(true);
|
||||
$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"]);
|
||||
$tdprd = $form->option_db("_", "Fi_DPRDID", $id_dprd, true, false, "para_dprd", ["DPRDID","N_DPRD"], "Aktif=1 ORDER BY K_DPRD", [0,"SEMUA ANGGOTA DEWAN"]);
|
||||
$topd = $form->option_db("_", "Fi_OPDID", $id_opd, true, false, "para90_opd", ["OPDID","N_OPD"], "Aktif=1 ORDER BY K_OPD", [0,"SEMUA PERANGKAT DAERAH"], null, "UsulBrowseJS.oc_OPD()");
|
||||
$tprog = $form->option("_", "Fi_ProgID", $id_prog, true, false, [$id_prog=>["SEMUA PROGRAM",0]], null, "UsulBrowseJS.oc_Prog()");
|
||||
$tkeg = $form->option("_", "Fi_KegID", $id_keg, true, false, [$id_keg=>[" ",0]], null, "UsulBrowseJS.oc_Keg()");
|
||||
$tsub = $form->option("_", "Fi_SubID", $id_sub, true, false, [$id_sub=>[" ",0]]);
|
||||
$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, "UsulBrowseJS.oc_Kec()");
|
||||
$tkel = $form->option("_", "Fi_KelID", $id_kel, true, false, [$id_kel=>["SEMUA KELURAHAN / DESA",0]]);
|
||||
$ajson['html'] = '
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-4 col-lg-3 col-form-label" for="Fi_Jenis">Jenis Kegiatan</label>
|
||||
<div class="col-sm-8 col-lg-9 col-form-label">'.$tjenis.'</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label class="col-sm-4 col-lg-3 col-form-label" for="Fi_DPRDID">Nama Anggota Dewan</label>
|
||||
<div class="col-sm-8 col-lg-9">'.$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-3 col-form-label" for="Fi_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="Fi_ProgID">Nama Program</label>
|
||||
<div class="col-sm-8 col-lg-9">'.$tprog.'</div>
|
||||
</div>
|
||||
<div class="row mb-1 d-none">
|
||||
<label class="col-sm-4 col-lg-3 col-form-label" for="Fi_KegID">Nama Kegiatan</label>
|
||||
<div class="col-sm-8 col-lg-9">'.$tkeg.'</div>
|
||||
</div>
|
||||
<div class="row mb-1 d-none">
|
||||
<label class="col-sm-4 col-lg-3 col-form-label" for="Fi_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="Fi_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="Fi_KelID">Kelurahan / Desa</label>
|
||||
<div class="col-sm-8 col-lg-9">'.$tkel.'</div>
|
||||
</div>
|
||||
';
|
||||
|
||||
} else if ( $data == "option-prog" ) {
|
||||
$ak_bidu = '0.00';
|
||||
$db->Query("SELECT * FROM vi_para90_opd WHERE OPDID='".Param::Get("Fi_OPDID",0)."' LIMIT 1");
|
||||
if ($db->Next()) {
|
||||
$ak_bidu = $db->Row("AK_Bidu");
|
||||
}
|
||||
$aoption = ['type' => "option", 'id' => "Fi_ProgID", 'value' => Param::Get("Fi_ProgID",0), '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'=>"SEMUA PROGRAM");
|
||||
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' => "Fi_KegID", 'value' => Param::Get("Fi_KegID",0), 'avalue' => []];
|
||||
$db->Query("SELECT * FROM vi_para90_submap WHERE Tahun='".$thn_submap."' AND ProgID='".Param::Get("Fi_ProgID",0)."' GROUP BY KegID ORDER BY K_Keg");
|
||||
if ($db->RecordCount()<>1) $aoption['avalue'][] = ['value'=>0, 'html'=>"SEMUA KEGIATAN"];
|
||||
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' => "Fi_SubID", 'value' => Param::Get("Fi_SubID",0), 'avalue' => []];
|
||||
$db->Query("SELECT * FROM vi_para90_submap WHERE Tahun='".$thn_submap."' AND KegID='".Param::Get("Fi_KegID",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 == "default") {
|
||||
echo '
|
||||
<div class="fade-in">
|
||||
<div class="card"><div class="card-header custom-style">Tampilan Data Pelaporan</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"> </div>
|
||||
<input type="hidden" id="Jenis" value="'.$id_jenis.'">
|
||||
<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="ProgID" value="'.$id_prog.'">
|
||||
</div></div>
|
||||
</div>';
|
||||
}
|
||||
|
||||
send_json($ajson);
|
||||
?>
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
/*******************************************************************
|
||||
|
||||
Module : /apps/php/sys/chpasswd.php
|
||||
Desc. : PHP - Perubahan Password Operator
|
||||
Created By : Siau Pheng (siaupheng@3fonia.com).
|
||||
Created Date : December 7th, 2008.
|
||||
Last Modified : April 25th, 2020.
|
||||
|
||||
(c) 2008 - 2020, 3FONIA Software; WWW.3FONIA.COM.
|
||||
|
||||
*******************************************************************/
|
||||
|
||||
require_once(dirname(__FILE__)."/../../../../../modules3/web.auth.php");
|
||||
require_once(dirname(__FILE__)."/../../../../../modules3/web.form.php");
|
||||
require_once(dirname(__FILE__)."/../../../../../modules3/web.misc.php");
|
||||
require_once(dirname(__FILE__)."/../../../../../modules3/data.json.php");
|
||||
|
||||
$db = DB();
|
||||
$auth = new cAUTH();
|
||||
$ajson = array();
|
||||
$data = $ap->getParam("data");
|
||||
|
||||
if ( $data == "default") {
|
||||
$form = new cFORM();
|
||||
$form->password("Password Lama", "LPass", $l_pass, true, true, "masukkan password lama", 20);
|
||||
$form->password("Password Baru 1", "BPass1", $b_pass1, true, true, "masukkan password baru 1", 20);
|
||||
$form->password("Password Baru 2", "BPass2", $b_pass2, true, true, "masukkan password baru 2", 20);
|
||||
$form->show('
|
||||
_LPass_
|
||||
_BPass1_
|
||||
_BPass2_
|
||||
');
|
||||
|
||||
} else if ( $data == "chpasswd") {
|
||||
$l_pass = $ap->getParam("LPass");
|
||||
$b_pass1 = $ap->getParam("BPass1");
|
||||
$b_pass2 = $ap->getParam("BPass2");
|
||||
|
||||
$ajson['status'] = false;
|
||||
if ($auth->user_check(user_user(), $l_pass)) {
|
||||
$db->Query("UPDATE app_operator SET Password=MD5('".$b_pass1."') WHERE UserID='".user_id()."'");
|
||||
$ajson['status'] = true;
|
||||
$ajson['msg'] = "Sukses merubah password Anda!";
|
||||
} else {
|
||||
$ajson['msg'] = "Password lama Anda salah!";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
send_json($ajson);
|
||||
?>
|
||||
Reference in New Issue
Block a user