commit pertama

This commit is contained in:
2026-01-30 13:07:53 +07:00
commit 48199537d4
303 changed files with 136097 additions and 0 deletions
+77
View File
@@ -0,0 +1,77 @@
<?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 : January 12th, 2026.
(c) 2009 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../vendor/autoload.php");
require_once(__DIR__."/mysql.php");
use siaupheng\fonia3\DB\MySQL;
$db = (is_resource($db)) ? $db : new MySQL();
if (($_SESSION['__WEB_APP']['APP_CODE'] ?? "")<>"1909811005") {
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'] = "1909811005";
$apps['APP_NAME'] = "eMusrenbang";
$apps['APP_NAMES'] = "Usulan Musrenbang Kecamatan";
$apps['APP_VER'] = "2.0";
$apps['APP_UPDATED'] = "January 12th, 2026.";
$apps['APP_SID'] = md5(time());
$apps['APP_LOCALE'] = ["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", 3 => "OPD", 5 => "DPRD", 9 => "VIEWER"];
$apps['USER_LOG'] = true;
$apps['USE_QZTRAY'] = false;
$apps['CREATOR_YEAR'] = "2019";
$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'] = true;
$apps['PARENT_CODE'] = "1909811004";
$apps['PARENT_SITE'] = "https://sippdkabsambas.com";
$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());
$db->Query("SELECT Tahun1,Tahun2,Tahun3,Tahun4,Tahun5,Tahun_Min,Tahun_Max,Ket N_RPJMD FROM vi_para_rpjmd WHERE RPJMDID='".$apps['RENC_RPJMDID']."' LIMIT 1");
if ($db->Next()) $apps = array_merge($apps, $db->AllRow());
if ($apps['Tahun1']==$apps['RENC_THN']) $apps['RENC_FIELD'] = "_T1";
if ($apps['Tahun2']==$apps['RENC_THN']) $apps['RENC_FIELD'] = "_T2";
if ($apps['Tahun3']==$apps['RENC_THN']) $apps['RENC_FIELD'] = "_T3";
if ($apps['Tahun4']==$apps['RENC_THN']) $apps['RENC_FIELD'] = "_T4";
if ($apps['Tahun5']==$apps['RENC_THN']) $apps['RENC_FIELD'] = "_T5";
$_SESSION['__WEB_APP'] = $apps;
}
?>
+72
View File
@@ -0,0 +1,72 @@
<?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 : January 21st, 2024.
(c) 2019 - 2024, 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[] = "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"
];
}
?>
+25
View File
@@ -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_sambas",
'pwd' => "s1ppds4mb4s@",
'db' => "sippd_sambas",
'sock' => ""
];
?>
+93
View File
@@ -0,0 +1,93 @@
/*******************************************************************
Module : /apps/js/index.js
Desc. : JS - Halaman Utama Desktop
Created By : Siau Pheng ([email protected]).
Created Date : May 24th, 2010.
Last Modified : August 15th, 2019.
(c) 2010 - 2020, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
$(document).ready(function(){
jQuery("#preloader").remove();
loadSidebar();
IndexJS.loading();
});
var IndexJS = {
loading: function(){
new Request.JSON({
url: FoniaJS.WEB_PATH+'apps/php/index.php',
sendParam: ['data=default'],
onSuccess: function(ares){
$('#pageContent').html(ares.content);
$('#pageToolbarTop').html('');
$('#pageToolbarBot').html('');
this.loadPagu();
this.loadChart();
}.bind(this)
}).send();
},
loadPagu: function(){
new Request.JSON({
url: FoniaJS.WEB_PATH+'apps/php/index.php',
sendParam: ['data=pagu-info'],
onSuccess: function(ares){
$('#divHome1').html(ares.html);
}
}).send();
},
loadChart: function(){
new Request.JSON({
url: FoniaJS.WEB_PATH+'apps/php/index.php',
sendParam: ['data=pagu-chart'],
onSuccess: function(data){
var ctx = $('#pieChart');
var pieOptions = {
legend: { display: true, position: 'bottom', labels:{pointStyle:'circle', usePointStyle:true} },
aspectRatio: 1.3,
cutoutPercentage: 35,
responsiveAnimationDuration: 10,
responsive: true,
maintainAspectRatio: true,
onResize: function(mcha, size) {
var leg = (size.width <= 330) ? false : true;
mcha.options.legend.display = leg;
}
};
var myChart = new Chart(ctx, {
type: 'doughnut',
data: data,
options: pieOptions
});
}
}).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); }
}
}
});
})
});
}
+86
View File
@@ -0,0 +1,86 @@
/*******************************************************************
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');
if (jQuery.backstretch){
jQuery.backstretch([
[
{ width: 1280, url: FoniaJS.WEB_PATH+"assets/images/bs/jami_1280.jpg" },
{ width: 960, url: FoniaJS.WEB_PATH+"assets/images/bs/jami_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/tugu_1280.jpg" },
{ width: 960, url: FoniaJS.WEB_PATH+"assets/images/bs/tugu_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'],
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();
}
};
+43
View File
@@ -0,0 +1,43 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/form_kec.js
Desc. : JS - Cetak Form Usulan Musrenbang Kecamatan
Created By : Siau Pheng ([email protected]).
Created Date : March 21st, 2014.
Last Modified : January 30th, 2021.
(c) 2014 - 2021, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var RepoFormKecJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
},
proses_pdf: function(){
if ($('#KecID').val() == 0) {
FoniaJS.showInfo('Silahkan Pilih Nama Kecamatan !');
return false;
}
var dpdf = new cPDF(this.PHP);
dpdf.set_zoom(80);
dpdf.add_param("data", "pdf");
dpdf.add_param("Tahun");
dpdf.add_param("KecID");
dpdf.add_param("KelID");
dpdf.showPDF();
},
oc_Kec: function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=option-kel','KecID']
}).send();
}
};
+36
View File
@@ -0,0 +1,36 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/hasil_kec.js
Desc. : JS - Cetak Hasil Usulan Musrenbang Kecamatan
Created By : Siau Pheng ([email protected]).
Created Date : March 21st, 2014.
Last Modified : January 30th, 2021.
(c) 2014 - 2021, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var RepoHasilKecJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
},
proses_pdf: function(){
if ($('#KecID').val() == 0) {
FoniaJS.showInfo('Silahkan Pilih Nama Kecamatan !');
return false;
}
var dpdf = new cPDF(this.PHP);
dpdf.set_zoom(80);
dpdf.add_param("data", "pdf");
dpdf.add_param("Tipe");
dpdf.add_param("Tahun");
dpdf.add_param("KecID");
dpdf.showPDF();
}
};
+60
View File
@@ -0,0 +1,60 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/usul_desa.js
Desc. : JS - Laporan Daftar Usulan / Desa
Created By : Siau Pheng ([email protected]).
Created Date : March 21st, 2014.
Last Modified : June 11th, 2022.
(c) 2014 - 2022, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var RepoUsulDesaJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butExcel').click(function(){this.proses_excel();}.bind(this));
$('#butPrint').click(function(){this.proses_print(true);}.bind(this));
$('#butPreview').click(function(){this.proses_print(false);}.bind(this));
},
proses_excel: function(){
if ($('#KecID').val() == 0 || $('#KelID').val() == 0) {
FoniaJS.showInfo('Silahkan Pilih Nama Kecamatan dan Nama Desa !');
return false;
}
var dload = new cEXPORT(this.PHP);
dload.add_param("data", "xls");
dload.add_param("Tipe");
dload.add_param("Tahun");
dload.add_param("KelID");
dload.add_param("KecID");
dload.download();
},
proses_print: function(prt){
if ($('#KecID').val() == 0 || $('#KelID').val() == 0) {
FoniaJS.showInfo('Silahkan Pilih Nama Kecamatan dan Nama Desa !');
return false;
}
var cetak = new cPRINTER(this.PHP);
cetak.set_zoom(80);
cetak.add_param("data", "print");
cetak.add_param("Tipe");
cetak.add_param("Tahun");
cetak.add_param("KelID");
cetak.add_param("KecID");
if (prt) { cetak.doPrint(); } else cetak.doPreview();
},
oc_Kec: function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=option-kel','KecID']
}).send();
}
};
+40
View File
@@ -0,0 +1,40 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/usul_kecdesa.js
Desc. : JS - Laporan Daftar Usulan / Kecamatan & Desa
Created By : Siau Pheng ([email protected]).
Created Date : March 21st, 2014.
Last Modified : January 30th, 2021.
(c) 2014 - 2021, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var RepoUsulKecDesaJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
},
proses_pdf: function(){
var dpdf = new cPDF(this.PHP);
dpdf.set_zoom(80);
dpdf.add_param("data", "pdf");
dpdf.add_param("Tipe");
dpdf.add_param("Tahun");
dpdf.add_param("KecID");
dpdf.add_param("KelID");
dpdf.showPDF();
},
oc_Kec: function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=option-kel','KecID']
}).send();
}
};
+33
View File
@@ -0,0 +1,33 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/usul_kecopd.js
Desc. : JS - Laporan Daftar Usulan / Kecamatan & OPD
Created By : Siau Pheng ([email protected]).
Created Date : March 21st, 2014.
Last Modified : January 30th, 2021.
(c) 2014 - 2021, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var RepoUsulKecOPDJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
},
proses_pdf: function(){
var dpdf = new cPDF(this.PHP);
dpdf.set_zoom(80);
dpdf.add_param("data", "pdf");
dpdf.add_param("Tipe");
dpdf.add_param("Tahun");
dpdf.add_param("KecID");
dpdf.add_param("OPDID");
dpdf.showPDF();
}
};
+55
View File
@@ -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();
}
};
+159
View File
@@ -0,0 +1,159 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/usul/desa.js
Desc. : JS - Usulan Desa
Created By : Siau Pheng ([email protected]).
Created Date : October 28th, 2011.
Last Modified : January 9th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var MUsulDesaJS = {
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));
$('#butBEL').click(function(){
if ($('#BelID').val()>0) this.show_hide(3);
}.bind(this));
this.show_hide(1);
},
show_hide: function(no){
$('#divKEC').addClass('d-none'); $('#butKEC').removeClass('btn-secondary').addClass('btn-info');
$('#divKEL').addClass('d-none'); $('#butKEL').removeClass('btn-secondary').addClass('btn-info');
$('#divBEL').addClass('d-none'); $('#butBEL').removeClass('btn-secondary').addClass('btn-info');
$('#divKEG').addClass('d-none');
if (no == 1) {
$('#KecID').val(0);
$('#Nama_KEC').val('');
$('#Hak_Usulan').val(1);
}
if (no <= 1) {
$('#KelID').val(0);
$('#Nama_KEL').val('');
$('#butKEC').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 2) {
$('#BelID').val(0);
$('#Nama_BEL').val('');
$('#butKEL').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 3) {
$('#butBEL').removeClass('btn-info').addClass('btn-secondary');
}
if (no == 1) { $('#divKEC').removeClass('d-none'); this.data_query('tabel-kec'); }
if (no == 2) { $('#divKEL').removeClass('d-none'); this.data_query('tabel-kel'); }
if (no == 3) { $('#divBEL').removeClass('d-none'); this.data_query('tabel-bel'); }
if (no == 4) { $('#divKEG').removeClass('d-none'); this.data_query('tabel-keg'); }
},
kec_select: function(acell){
$('#KecID').val(acell[0]);
$('#Nama_KEC').val(acell[3]);
$('#Hak_Usulan').val(acell[1]);
this.show_hide(2);
},
kel_select: function(acell){
$('#KelID').val(acell[0]);
$('#Nama_KEL').val(acell[2]);
this.show_hide(3);
},
bel_select: function(acell){
$('#BelID').val(acell[0]);
$('#Nama_BEL').val(acell[2]);
this.show_hide(4);
},
keg_detail: function(mode, ID){
new Request.JSON({
url: this.PHP,
sendParam: ['data=detail-keg','mode_detail='+mode,'Hak_Usulan','UsulanLID='+ID],
onSuccess: function(ajson){
var tombol = [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}];
if ($('#Hak_Usulan').val()==0) tombol.pop();
this.winDKeg = FoniaJS.showWindow('DKeg', 'Detail Usulan Kegiatan Desa', ajson.html, 'xl', tombol, function(){
$('#winDKeg').find('#butWSimpan').click(function(){this.keg_simpan();}.bind(this));
$('#formUsulDesa').validate({
rules: {
required: true,
OPDID: {required:true, min:1},
Volume: {required:true, double_id:true},
SatuanID: {required:true, min:1},
Rupiah: {required:true, double_id:true}
}
});
}.bind(this));
}.bind(this)
}).send();
},
keg_tambah: function(){
this.keg_detail('insert', 0);
},
keg_ubah: function(acell){
this.keg_detail('update', acell[0]);
},
keg_hapus: function(acell){
FoniaJS.showConfirm('Konfirmasi', 'Hapus usulan <b>"'+acell[2]+'"</b> ?', function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=delete','Hak_Usulan','KecID','KelID','BelID','UsulanLID='+acell[0]],
onSuccess: function(adata){
FoniaJS.showInfo('Proses hapus data sukses!');
}.bind(this)
}).send();
}.bind(this), 'danger');
},
keg_simpan: function(){
$('#formUsulDesa').submit();
if (true !== $('#formUsulDesa').validate().checkForm()) return false;
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail','Hak_Usulan','OPDID','KecID','KelID','BelID','UsulanLID','Lokasi','Dusun','RT','Masalah','Usulan','Sasaran','Waktu','Volume','SatuanID','Rupiah'],
onSuccess: function(){
FoniaJS.closeWindow(this.winDKeg);
FoniaJS.showInfo('Sukses menyimpan Usulan Kegiatan.');
}.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-bel"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-bel','KecID','KelID']
}).send();
} else if (tipe=="tabel-keg"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','Hak_Usulan','KecID','KelID','BelID']
}).send();
}
}
};
+129
View File
@@ -0,0 +1,129 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/usul/hasil.js
Desc. : JS - nput Hasil Usulan Desa
Created By : Siau Pheng ([email protected]).
Created Date : October 28th, 2011.
Last Modified : January 13th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var MUsulHasilJS = {
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));
$('#butOPD').click(function(){
if ($('#OPDID').val()>0) this.show_hide(3);
}.bind(this));
this.show_hide(1);
},
show_hide: function(no){
$('#divKEC').addClass('d-none'); $('#butKEC').removeClass('btn-secondary').addClass('btn-info');
$('#divKEL').addClass('d-none'); $('#butKEL').removeClass('btn-secondary').addClass('btn-info');
$('#divOPD').addClass('d-none'); $('#butOPD').removeClass('btn-secondary').addClass('btn-info');
$('#divKEG').addClass('d-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) {
$('#OPDID').val(0);
$('#Nama_OPD').val('');
$('#butKEL').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 3) {
$('#butOPD').removeClass('btn-info').addClass('btn-secondary');
}
if (no == 1) { $('#divKEC').removeClass('d-none'); this.data_query('tabel-kec'); }
if (no == 2) { $('#divKEL').removeClass('d-none'); this.data_query('tabel-kel'); }
if (no == 3) { $('#divOPD').removeClass('d-none'); this.data_query('tabel-opd'); }
if (no == 4) { $('#divKEG').removeClass('d-none'); 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);
},
opd_select: function(acell){//
$('#OPDID').val(acell[0]);
$('#Nama_OPD').val(acell[2]);
this.show_hide(4);
},
keg_detail: function(mode, ID){
new Request.JSON({
url: this.PHP,
sendParam: ['data=detail-keg','mode_detail='+mode,'UsulanLID='+ID],
onSuccess: function(ajson){
this.winDKeg = FoniaJS.showWindow('DKeg', 'Detail Usulan Kegiatan Desa', ajson.html, 'xl', [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}], function(){
$('#winDKeg').find('#butWSimpan').click(function(){this.keg_simpan();}.bind(this));
$('#Prio').focus();
}.bind(this));
}.bind(this)
}).send();
},
keg_ubah: function(acell){
this.keg_detail('update', acell[0]);
},
keg_simpan: function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail','OPDID','KecID','KelID','UsulanLID','Prio'],
onSuccess: function(){
FoniaJS.closeWindow(this.winDKeg);
FoniaJS.showInfo('Sukses menyimpan Usulan Kegiatan.');
}.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-opd"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-opd','KecID','KelID']
}).send();
} else if (tipe=="tabel-keg"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','KecID','KelID','OPDID']
}).send();
}
}
};
+117
View File
@@ -0,0 +1,117 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/usul/kec.js
Desc. : JS - Usulan Kecamatan
Created By : Siau Pheng ([email protected]).
Created Date : October 28th, 2011.
Last Modified : January 13th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var MUsulKecJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butKEC').click(function(){
if ($('#KecID').val()>0) this.show_hide(1);
}.bind(this));
this.show_hide(1);
},
show_hide: function(no){
$('#divKEC').addClass('d-none'); $('#butKEC').removeClass('btn-secondary').addClass('btn-info');
$('#divKEG').addClass('d-none');
if (no == 1) {
$('#KecID').val(0);
$('#Nama_KEC').val('');
$('#Hak_Usulan').val(1);
}
if (no <= 1) {
$('#butKEC').removeClass('btn-info').addClass('btn-secondary');
}
if (no == 1) { $('#divKEC').removeClass('d-none'); this.data_query('tabel-kec'); }
if (no == 2) { $('#divKEG').removeClass('d-none'); this.data_query('tabel-keg'); }
},
kec_select: function(acell){
$('#KecID').val(acell[0]);
$('#Nama_KEC').val(acell[3]);
$('#Hak_Usulan').val(acell[1]);
this.show_hide(2);
},
keg_detail: function(mode, ID){
new Request.JSON({
url: this.PHP,
sendParam: ['data=detail-keg','mode_detail='+mode,'Hak_Usulan','KecID','UsulanLID='+ID],
onSuccess: function(ajson){
var tombol = [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}];
if ($('#Hak_Usulan').val()==0) tombol.pop();
this.winDKeg = FoniaJS.showWindow('DKeg', 'Detail Usulan Kegiatan Kecamatan', ajson.html, 'xl', tombol, function(){
$('#winDKeg').find('#butWSimpan').click(function(){this.keg_simpan();}.bind(this));
$('#formUsulKec').validate({
rules: {
required: true,
OPDID: {required:true, min:1},
Volume2: {required:true, double_id:true},
SatuanID2: {required:true, min:1},
Rupiah2: {required:true, double_id:true}
}
});
}.bind(this));
}.bind(this)
}).send();
},
keg_tambah: function(){
this.keg_detail('insert', 0);
},
keg_ubah: function(acell){
this.keg_detail('update', acell[0]);
},
keg_hapus: function(acell){
FoniaJS.showConfirm('Konfirmasi', 'Hapus usulan <b>"'+acell[2]+'"</b> ?', function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=delete','Hak_Usulan','KecID','UsulanLID='+acell[0]],
onSuccess: function(adata){
FoniaJS.showInfo('Proses hapus data sukses!');
}.bind(this)
}).send();
}.bind(this), 'danger');
},
keg_simpan: function(){
$('#formUsulKec').submit();
if (true !== $('#formUsulKec').validate().checkForm()) return false;
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail','Hak_Usulan','OPDID','KecID','KelID','UsulanLID','Lokasi2','Dusun2','RT2','Masalah2','Usulan2','Sasaran2','Waktu2','Volume2','SatuanID2','Rupiah2'],
onSuccess: function(){
FoniaJS.closeWindow(this.winDKeg);
FoniaJS.showInfo('Sukses menyimpan Usulan Kegiatan.');
}.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-keg"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','Hak_Usulan','KecID']
}).send();
}
}
};
+140
View File
@@ -0,0 +1,140 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/usul/prio.js
Desc. : JS - Prioritas Usulan Desa
Created By : Siau Pheng ([email protected]).
Created Date : October 28th, 2011.
Last Modified : January 9th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var MUsulPrioJS = {
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));
$('#butSID').click(function(){
if ($('#SidangID').val()>0) this.show_hide(3);
}.bind(this));
this.show_hide(1);
},
show_hide: function(no){
$('#divKEC').addClass('d-none'); $('#butKEC').removeClass('btn-secondary').addClass('btn-info');
$('#divKEL').addClass('d-none'); $('#butKEL').removeClass('btn-secondary').addClass('btn-info');
$('#divSID').addClass('d-none'); $('#butSID').removeClass('btn-secondary').addClass('btn-info');
$('#divKEG').addClass('d-none');
if (no == 1) {
$('#KecID').val(0);
$('#Nama_KEC').val('');
$('#Hak_Prioritas').val(1);
}
if (no <= 1) {
$('#KelID').val(0);
$('#Nama_KEL').val('');
$('#butKEC').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 2) {
$('#SidangID').val(0);
$('#Nama_SID').val('');
$('#butKEL').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 3) {
$('#butSID').removeClass('btn-info').addClass('btn-secondary');
}
if (no == 1) { $('#divKEC').removeClass('d-none'); this.data_query('tabel-kec'); }
if (no == 2) { $('#divKEL').removeClass('d-none'); this.data_query('tabel-kel'); }
if (no == 3) { $('#divSID').removeClass('d-none'); this.data_query('tabel-sid'); }
if (no == 4) { $('#divKEG').removeClass('d-none'); this.data_query('tabel-keg'); }
},
kec_select: function(acell){
$('#KecID').val(acell[0]);
$('#Nama_KEC').val(acell[3]);
$('#Hak_Prioritas').val(acell[1]);
this.show_hide(2);
},
kel_select: function(acell){
$('#KelID').val(acell[0]);
$('#Nama_KEL').val(acell[2]);
this.show_hide(3);
},
sid_select: function(acell){
$('#SidangID').val(acell[0]);
$('#Nama_SID').val(acell[2]);
this.show_hide(4);
},
keg_detail: function(mode, ID){
new Request.JSON({
url: this.PHP,
sendParam: ['data=detail-keg','mode_detail='+mode,'Hak_Prioritas','UsulanLID='+ID],
onSuccess: function(ajson){
var tombol = [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}];
if ($('#Hak_Prioritas').val()==0) tombol.pop();
this.winDKeg = FoniaJS.showWindow('DKeg', 'Detail Usulan Kegiatan Desa', ajson.html, 'xl', tombol, function(){
$('#winDKeg').find('#butWSimpan').click(function(){this.keg_simpan();}.bind(this));
}.bind(this));
}.bind(this)
}).send();
},
keg_ubah: function(acell){
this.keg_detail('update', acell[0]);
},
keg_simpan: function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail','Hak_Prioritas','KecID','KelID','SidangID','UsulanLID','Prio'],
onSuccess: function(){
FoniaJS.closeWindow(this.winDKeg);
FoniaJS.showInfo('Sukses menyimpan Usulan Kegiatan.');
}.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-sid"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-sid','KecID','KelID']
}).send();
} else if (tipe=="tabel-keg"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','Hak_Prioritas','KecID','KelID','SidangID']
}).send();
}
},
oc_Prio: function(el){
var id = $(el).closest('tr').children('td:first').text();
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=update','Hak_Prioritas','KecID','KelID','SidangID','UsulanLID='+id,'Prio='+$(el).val()],
}).send();
}
};
+139
View File
@@ -0,0 +1,139 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/usul/valid.js
Desc. : JS - Validasi Usulan Desa
Created By : Siau Pheng ([email protected]).
Created Date : October 28th, 2011.
Last Modified : January 13th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var MUsulValidJS = {
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));
$('#butBEL').click(function(){
if ($('#BelID').val()>0) this.show_hide(3);
}.bind(this));
this.show_hide(1);
},
show_hide: function(no){
$('#divKEC').addClass('d-none'); $('#butKEC').removeClass('btn-secondary').addClass('btn-info');
$('#divKEL').addClass('d-none'); $('#butKEL').removeClass('btn-secondary').addClass('btn-info');
$('#divBEL').addClass('d-none'); $('#butBEL').removeClass('btn-secondary').addClass('btn-info');
$('#divKEG').addClass('d-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) {
$('#BelID').val(0);
$('#Nama_BEL').val('');
$('#butKEL').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 3) {
$('#butBEL').removeClass('btn-info').addClass('btn-secondary');
}
if (no == 1) { $('#divKEC').removeClass('d-none'); this.data_query('tabel-kec'); }
if (no == 2) { $('#divKEL').removeClass('d-none'); this.data_query('tabel-kel'); }
if (no == 3) { $('#divBEL').removeClass('d-none'); this.data_query('tabel-bel'); }
if (no == 4) { $('#divKEG').removeClass('d-none'); 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);
},
bel_select: function(acell){
$('#BelID').val(acell[0]);
$('#Nama_BEL').val(acell[2]);
this.show_hide(4);
},
keg_detail: function(mode, ID){
new Request.JSON({
url: this.PHP,
sendParam: ['data=detail-keg','mode_detail='+mode,'UsulanLID='+ID],
onSuccess: function(ajson){
this.winDKeg = FoniaJS.showWindow('DKeg', 'Detail Usulan Kegiatan Desa', ajson.html, 'xl', [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}], function(){
$('#winDKeg').find('#butWSimpan').click(function(){this.keg_simpan();}.bind(this));
$('#formUsulDesa').validate({
rules: {
required: true,
OPDID: {required:true, min:1},
Volume: {required:true, double_id:true},
SatuanID: {required:true, min:1},
Rupiah: {required:true, double_id:true}
}
});
}.bind(this));
}.bind(this)
}).send();
},
keg_ubah: function(acell){
this.keg_detail('update', acell[0]);
},
keg_simpan: function(){
$('#formUsulDesa').submit();
if (true !== $('#formUsulDesa').validate().checkForm()) return false;
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail','OPDID','KecID','KelID','BelID','UsulanLID','Lokasi','Dusun','RT','Masalah','Usulan','Sasaran','Waktu','Volume','SatuanID','Rupiah'],
onSuccess: function(){
FoniaJS.closeWindow(this.winDKeg);
FoniaJS.showInfo('Sukses menyimpan Usulan Kegiatan.');
}.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-bel"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-bel','KecID','KelID']
}).send();
} else if (tipe=="tabel-keg"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','KecID','KelID','BelID']
}).send();
}
}
};
+72
View File
@@ -0,0 +1,72 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/func/musrenbang.php
Desc. : PHP - Fungsi Musrenbang
Created By : Siau Pheng ([email protected]).
Created Date : May 15th, 2012.
Last Modified : January 9th, 2026.
(c) 2012 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\DB\SQL;
$fdb = (is_resource($fdb)) ? $fdb : new MySQL();
function ID_Usulan_Desa($id_rpjmd = 0, $tahun = 0) {
global $fdb;
$ino = 1;
$fdb->Query("SELECT MAX(UsulanLID)+1 Nomor FROM mus_usulan_desa WHERE RPJMDID='".$id_rpjmd."' AND Tahun='".$tahun."'");
if ($fdb->Next()) $ino = $fdb->Row("Nomor", 1);
return $ino;
}
function Kode_Usulan_Desa($tahun = 0, $id_desa = 0) {
global $fdb;
$k_desa = "000";
if ($id_desa > 0) {
$fdb->Query("SELECT K_Lokasi FROM para_lokasi WHERE LokasiID='".$id_desa."' LIMIT 1");
if ($fdb->Next()) $k_desa = $fdb->Row("K_Lokasi");
}
$tno = $k_desa . "-"; $ino = 0;
$fdb->Query("SELECT MAX(RIGHT(Kode,3)) Nomor FROM mus_usulan_desa WHERE Tahun='".$tahun."' AND LEFT(Kode,".strlen($tno).")='".$tno."'");
if ($fdb->Next()) $ino = (int)$fdb->Row("Nomor", 0);
$tno .= isi_nol($ino+1, 3);
return $tno;
}
function Kode_Usulan_Kec($tahun = 0, $id_kec = 0) {
global $fdb;
$k_kec = "00";
if ($id_kec > 0) {
$fdb->Query("SELECT RIGHT(K_Lokasi,2) Kode FROM para_lokasi WHERE LokasiID='".$id_kec."' LIMIT 1");
if ($fdb->Next()) $k_kec = $fdb->Row("Kode");
}
$tno = $k_kec . "-"; $ino = 0;
$fdb->Query("SELECT MAX(RIGHT(Kode,3)) Nomor FROM mus_usulan_desa WHERE Tahun='".$tahun."' AND KecID='".$id_kec."' AND JU=3");
if ($fdb->Next()) $ino = (int)$fdb->Row("Nomor", 0);
$tno .= isi_nol($ino+1, 3);
return $tno;
}
function MUSPrio($iprio=0) {
$hasil = '<select class="form-select form-select-sm" onchange="MUsulPrioJS.oc_Prio(this);" required=true aria-label="Pilihan Prioritas" >';
for ($o=0; $o<=5; $o++) {
$hasil .= '<option value="'.$o.'"'.($o==$iprio?' selected="selected"':'').'>'.$o.'</option>';
}
$hasil .= '</select>';
return $hasil;
}
function MusPrio_Array() {
return [0=>"0", 1=>"1", 2=>"2", 3=>"3", 4=>"4", 5=>"5"];
}
?>
+37
View File
@@ -0,0 +1,37 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/func/report.php
Desc. : PHP - Fungsi Report
Created By : Siau Pheng ([email protected]).
Created Date : May 15th, 2012.
Last Modified : January 9th, 2026.
(c) 2012 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\DB\SQL;
$fdb = (is_resource($fdb)) ? $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;
}
?>
+101
View File
@@ -0,0 +1,101 @@
<?php
/*******************************************************************
Module : /apps/php/index.php
Desc. : PHP - Halaman Utama Desktop
Created By : Siau Pheng ([email protected]).
Created Date : May 24th, 2010.
Last Modified : August 30th, 2020.
(c) 2010 - 2020, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../vendor/autoload.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Form;
use siaupheng\fonia3\Web\Register;
$db = $db ?? new MySQL();
$ajson = [];
$data = Param::Get("data");
if ( $data == "pagu-info" || $data == "pagu-chart" ) {
if ($_SESSION['__WEB_USER']['Level']==2) {
$tot_pagu = 0;
$db->Query("SELECT SUM(Rupiah) Pagu FROM mus_usulan_desa WHERE Tahun='".$_SESSION['__WEB_APP']['RENC_THN']."' AND KecID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")");
if ($db->Next()) $tot_pagu = $db->Row("Pagu");
$db->Query("SELECT L.K_Lokasi K_Kec,L.N_Lokasi N_Kec,U.Pagu FROM (SELECT KelID,SUM(Rupiah) Pagu FROM mus_usulan_desa WHERE Tahun='".$_SESSION['__WEB_APP']['RENC_THN']."' AND KecID IN (".$_SESSION['__WEB_USER']['AK_KEC'].") GROUP BY KelID) U LEFT JOIN para_lokasi L ON (L.LokasiID=U.KelID) ORDER BY L.K_Lokasi");
} else {
$tot_pagu = 0;
$db->Query("SELECT SUM(Rupiah) Pagu FROM mus_usulan_desa WHERE Tahun='".$_SESSION['__WEB_APP']['RENC_THN']."'");
if ($db->Next()) $tot_pagu = $db->Row("Pagu");
$db->Query("SELECT L.K_Lokasi K_Kec,L.N_Lokasi N_Kec,U.Pagu FROM (SELECT KecID,SUM(Rupiah) Pagu FROM mus_usulan_desa WHERE Tahun='".$_SESSION['__WEB_APP']['RENC_THN']."' GROUP BY KecID) U LEFT JOIN para_lokasi L ON (L.LokasiID=U.KecID) ORDER BY L.K_Lokasi");
}
}
if ( $data == "pagu-info" ) {
$pagu_info = '<h4 class="text-end">Rekapitulasi Usulan Musrenbang '.$_SESSION['__WEB_APP']['RENC_THN'].'</h4>';
$pagu_info .= '<table class="table table-striped">';
$pagu_info .= '<thead><tr><th>'.($_SESSION['__WEB_USER']['Level']==7?"Indikator":($_SESSION['__WEB_USER']['Level']==2?"Kelurahan / Desa":"Kecamatan")).'</th><th>Total Anggaran</th></tr></thead><tbody>';
while ($db->Next()){
$pagu_info .= sprintf('<tr><td class="l">%s</td><td class="r">%s</td></tr>', $db->Row("N_Kec"), rupiah2($db->Row("Pagu")));
}
$pagu_info .= '</tbody></table>';
$ajson['html'] = $pagu_info;
} else if ( $data == "pagu-chart" ) {
$ajson['datasets'] = array();
$ajson['labels'] = array();
$atmp = array(); $acol = array();
$atmp[] = 100;
$col_r = mt_rand( 0, 255 );
$col_g = mt_rand( 0, 255 );
$col_b = mt_rand( 0, 255 );
$acol[] = "rgb(".$col_r.",".$col_g.",".$col_b.")";
$ajson['labels'][] = "Belum Ada Usulan";
if ($db->RecordCount()>0) {
$atmp = array();
$acol = array();
$ajson['labels'] = array();
}
while ($db->Next()){
$atmp[] = round($db->Row("Pagu") / $tot_pagu * 100, 2);
$col_r = mt_rand( 0, 255 );
$col_g = mt_rand( 0, 255 );
$col_b = mt_rand( 0, 255 );
$acol[] = "rgb(".$col_r.",".$col_g.",".$col_b.")";
$ajson['labels'][] = $db->Row("N_Kec");
}
$ajson['datasets'][] = array('data'=>$atmp, 'backgroundColor'=>$acol);
} else if ( $data == "default" ) {
$aapp = $_SESSION['__WEB_APP'];
$ajson['content'] = '
<div class="row">
<div class="col-sm-12 col-md-6 d-flex align-items-stretch">
<div class="card w-100 h-100"><div class="card-body d-flex flex-column" id="divHome1">
<div class="my-auto text-center"><img class="img-fluid" src="'.$aapp['WEB_PATH'].'assets/images/logo300.png" title="'.$aapp['REG_NAME'].'" style="width:25%">
<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>
<div class="col-sm-12 col-md-6 d-flex align-items-stretch">
<div class="card w-100 h-100"><div class="card-body d-flex flex-column" id="divHome2">
<div class="chart-wrapper pb-2">
<canvas id="pieChart"></canvas>
</div>
</div></div>
</div>
</div>
';
}
send_json($ajson);
?>
+60
View File
@@ -0,0 +1,60 @@
<?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");
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"));
$_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);
?>
+167
View File
@@ -0,0 +1,167 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/repo/form_kec.php
Desc. : PHP - Cetak Form Usulan Musrenbang Kecamatan
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : June 6th, 2024.
(c) 2014 - 2024, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
ini_set("pcre.backtrack_limit", 100000000);
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/report.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Form;
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$tahun = Param::Get("Tahun", $_SESSION['__WEB_APP']['RENC_THN']);
$id_kec = Param::Get("KecID", 0);
$id_kel = Param::Get("KelID", 0);
if ( $data == "pdf" || $data == "print") {
$nama_kec = "Semua Kecamatan";
if ($id_kec > 0) {
$db->Query("SELECT * FROM para_lokasi WHERE LokasiID='".$id_kec."' LIMIT 1");
if ($db->Next()) $nama_kec = $db->Row("N_Lokasi");
}
$tsql = " Tahun='".$tahun."' AND JU IN (0,2)";
$tsql .= ($id_kec==0) ? "" : " AND KecID='".$id_kec."'";
$tsql .= ($id_kel==0) ? "" : " AND KelID='".$id_kel."'";
// proses rekap database
Report_Empty("mus_kec");
Report_Empty("mus_kel");
Report_Empty("mus_opd");
$db->Query("INSERT INTO rep_mus_kec SELECT T.Tahun,T.KecID,SUM(T.Rupiah),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.KecID");
$db->Query("INSERT INTO rep_mus_kel SELECT T.Tahun,T.KecID,T.OPDID,T.KelID,SUM(T.Rupiah),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.KecID,T.KelID");
$db->Query("INSERT INTO rep_mus_opd SELECT T.Tahun,T.KecID,O.SidangID,T.KelID,SUM(T.Rupiah),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T LEFT JOIN para90_opd O ON (O.OPDID=T.OPDID) GROUP BY T.KecID,T.KelID,O.SidangID");
$db->Query("SELECT T.*,D.K_Kec,D.N_Kec,D.K_Desa,D.N_Desa,CONCAT(D.K_Kec,'.',T.Kode) Kode_Usul,CONCAT(T.Volume,' ',S.N_Satuan) Vol_Satuan,T.OPDID OPDID2,O.K_OPD,O.S_OPD,G.SidangID,G.N_Sidang,IF(T.Prio=0,9,Prio) Kode_Prio,RC.*,RD.*,RO.* FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T LEFT JOIN vi_para_desa D ON (D.DesaID=T.KelID) LEFT JOIN para_satuan S ON (S.SatuanID=T.SatuanID) LEFT JOIN para90_opd O ON (O.OPDID=T.OPDID) LEFT JOIN para_sidang G ON (G.SidangID=O.SidangID) LEFT JOIN rep_mus_kec RC ON (T.KecID=RC.KecID AND T.Tahun=RC.Tahun AND RC.UserID='".user_id()."' AND RC.Unix='".user_unix()."') LEFT JOIN rep_mus_kel RD ON (T.KecID=RD.KecID AND T.KelID=RD.KelID AND T.Tahun=RD.Tahun AND RD.UserID='".user_id()."' AND RD.Unix='".user_unix()."') LEFT JOIN rep_mus_opd RO ON (T.KecID=RO.KecID AND T.KelID=RO.KelID AND G.SidangID=RO.OPDID AND T.Tahun=RO.Tahun AND RO.UserID='".user_id()."' AND RO.Unix='".user_unix()."') ORDER BY D.N_Kec,D.N_Desa,G.SidangID,O.S_OPD,Kode_Prio,T.Kode");
}
if ( $data == "pdf" ) {
$html = '<p class="judul">Daftar Usulan Pembangunan untuk Tahun '.$tahun.'<br>Berdasarkan Desa dan Kelompok Sidang</p>';
$footer = '<htmlpagefooter name="RepFoot%s"><table class="footer"><tr><td width="33%%">eMusrenbang - Kabupaten Sambas</td><td width="34%%" class="c">%s</td><td width="33%%" class="r i">{DATE d-m-Y H:i} / Halaman : {PAGENO} dari {nbpg}</td></tr></table></htmlpagefooter>';
$_setfoot = '<sethtmlpagefooter name="RepFoot%s" show-this-page="1" value="on" />';
$t_head = '<div><table class="garis" autosize="1"><thead><tr><th colspan="2">Usulan Kegiatan</th><th>Volume</th><th>Lokasi</th><th>Jumlah</th><th>Kode</th></tr></thead><tbody>';
$t_foot = '</tbody></table></div><table class="ttd"><tr><td>Kepala Desa<br>%s<br><br><br>( ............................ )</td></tr></table>';
$_line = '<tr><td class="c kotak" rowspan="2"><table><tr><td class="c">%s</td><tr></table></td><td>%s</td><td class="r">%s</td><td>%s</td><td class="r">%s</td><td class="c small">%s</td></tr><tr><td class="i" colspan="2">%s</td><td class="i" colspan="3">%s</td></tr>';
$_sub = '<tr class="%s"><td colspan="4" class="b">%s</td><td class="r b">%s</td><td class="b">&nbsp;</td></tr>';
$_judul = '<tr><td colspan="6" class="c b" style="font-size:12pt;">%s</td></tr>';
$_catat = '<tr><td colspan="6" class="b">TIAP DESA AGAR MEMBERIKAN NOMOR PRIORITAS 1 - 5 PADA DAFTAR USULAN DIBAWAH INI.</td></tr>';
$body = '';
$kkec = ""; $kdesa = ""; $ksidang = ""; $kopd = ""; $n_desa = "";
while ($db->Next()) {
$n_desa = $db->Row("N_Desa");
if ($kdesa == "") {
$body .= $t_head;
$html .= sprintf($footer, $db->Row("K_Desa"), $n_desa);
$body .= sprintf($_setfoot, $db->Row("K_Desa"));
}
if ($kkec <> $db->Row("K_Kec")) {
$body .= sprintf($_sub, "kec", "KECAMATAN ".$db->Row("N_Kec"), rupiah($db->Row("KEC_RUPIAH")));
$kkec = $db->Row("K_Kec");
}
if ($kdesa <> $db->Row("K_Desa")) {
if ($kdesa <> "") {
$body .= sprintf($t_foot, $l_desa);
$body .= '<pagebreak orientation="portrait" />';
$body .= $t_head;
}
$body .= sprintf($_sub, "desa", $n_desa, rupiah($db->Row("KEL_RUPIAH")));
if ($kdesa <> "") {
$html .= sprintf($footer, $db->Row("K_Desa"), $n_desa);
$body .= sprintf($_setfoot, $db->Row("K_Desa"));
}
$kdesa = $db->Row("K_Desa");
$ksidang = "";
}
if ($ksidang <> $db->Row("SidangID")) {
if ($ksidang <> "") {
$body .= sprintf($t_foot, $n_desa);
$body .= '<pagebreak orientation="portrait" />';
$body .= $t_head;
}
$body .= sprintf($_judul, $n_desa);
$body .= sprintf($_sub, "forum", $db->Row("N_Sidang"), rupiah($db->Row("OPD_RUPIAH")));
$body .= $_catat;
$ksidang = $db->Row("SidangID");
$kopd = "";
}
if ($kopd <> $db->Row("OPDID2")) {
$body .= sprintf($_sub, "opd", $db->Row("S_OPD"), "");
$kopd = $db->Row("OPDID2");
}
$body .= sprintf($_line, ($db->RowFloat("Prio")==0?"&nbsp;":$db->Row("Prio")), $db->Row("Usulan"), $db->Row("Vol_Satuan"), $db->Row("Lokasi"), rupiah($db->Row("Rupiah")), $db->Row("Kode_Usul"), "Permasalahan : ".$db->Row("Masalah"), "Dusun : ".$db->Row("Dusun")." / RT : ".$db->Row("RT"));
$l_desa = $db->Row("N_Desa");
}
$body .= sprintf($t_foot, $l_desa);
$mpdf = new \Mpdf\Mpdf([
'mode' => 'c',
'format' => 'A4',
'margin_left' => 8,
'margin_right' => 8,
'margin_top' => 8,
'margin_header' => 5,
'margin_footer' => 5
]);
$mpdf->SetDisplayMode('fullpage');
$css = file_get_contents($_SESSION['__WEB_APP']['REAL_PATH'].'assets/css/pdf/musrenbang.css');
$mpdf->WriteHTML($css, \Mpdf\HTMLParserMode::HEADER_CSS);
$mpdf->WriteHTML($html . $body, \Mpdf\HTMLParserMode::HTML_BODY);
$mpdf->SetAuthor($_SESSION['__WEB_APP']['REG_NAME']);
$mpdf->SetCreator($_SESSION['__WEB_APP']['APP_NAME']." v".$_SESSION['__WEB_APP']['APP_VER']);
$mpdf->setTitle("Form Usulan ".$nama_kec);
$mpdf->Output("Form Usulan ".$nama_kec.".pdf", \Mpdf\Output\Destination::INLINE);
} else if ( $data == "option-kel" ) {
$aoption = ['type' => "option", 'id' => "KelID", 'value' => 0, 'avalue' => []];
$db->Query("SELECT * FROM para_lokasi WHERE Aktif=1 AND Level=2 AND IndukID='".$id_kec."' ORDER BY K_Lokasi");
if ($db->RecordCount()<>1) $aoption['avalue'][] = ['value'=>0, 'html'=>""];
while ($db->Next()) {
if ($db->RecordCount()==1) $aoption['value'] = $db->Row("LokasiID");
$aoption['avalue'][] = ['value'=>$db->Row("LokasiID"), 'html'=>$db->Row("N_Lokasi")];
}
$ajson[] = $aoption;
} else if ( $data == "default") {
$q_kec = ($_SESSION['__WEB_USER']['Level']==2) ? " AND LokasiID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": " AND Level=1 AND LokasiID>2";
$form = new Form($db);
$ttahun = $form->option_db("_", "Tahun", $tahun, true, false, "para_periode", array("Tahun","Tahun"), "Tahun BETWEEN '".$_SESSION['__WEB_APP']['Tahun_Min']."' AND '".$_SESSION['__WEB_APP']['Tahun_Max']."'");
$tkec = $form->option_db("_", "KecID", 0, true, true, "para_lokasi", array("LokasiID","N_Lokasi"), "Aktif=1".$q_kec." ORDER BY N_Lokasi", ($_SESSION['__WEB_USER']['Level']==2?"":array(0,"SEMUA KECAMATAN")), null, "RepoFormKecJS.oc_Kec()");
$tkel = $form->option("_", "KelID", 0, true, true, array(0=>"SEMUA DESA"));
echo '
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Tahun">Tahun Data</label>
<div class="col-sm-4 col-lg-5">'.$ttahun.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="KecID">Nama Kecamatan</label>
<div class="col-sm-8 col-lg-9">'.$tkec.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="KelID">Nama Desa</label>
<div class="col-sm-8 col-lg-9">'.$tkel.'</div>
</div>';
}
send_json($ajson);
?>
+157
View File
@@ -0,0 +1,157 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/repo/hasil_kec.php
Desc. : PHP - Cetak Hasil Usulan Musrenbang Kecamatan
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : June 6th, 2024.
(c) 2014 - 2024, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
ini_set("pcre.backtrack_limit", 100000000);
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/report.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Form;
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$tahun = Param::Get("Tahun", $_SESSION['__WEB_APP']['RENC_THN']);
$id_kec = Param::Get("KecID", 0);
$tipe = Param::Get("Tipe", "D");
if ( $data == "pdf" || $data == "print") {
$nama_kec = "Semua Kecamatan";
if ($id_kec > 0) {
$db->Query("SELECT * FROM para_lokasi WHERE LokasiID='".$id_kec."' LIMIT 1");
if ($db->Next()) $nama_kec = $db->Row("N_Lokasi");
}
$tsql = " Tahun='".$tahun."' AND JU IN (0,2)";
$tsql .= ($id_kec==0) ? "" : " AND KecID='".$id_kec."'";
$tsql .= ($tipe=="D") ? " AND Prio IN (1,2,3,4,5)" : " AND Prio NOT IN (1,2,3,4,5)";
// proses rekap database
Report_Empty("mus_kec");
Report_Empty("mus_opd");
$db->Query("INSERT INTO rep_mus_kec SELECT T.Tahun,T.KecID,SUM(T.Rupiah),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.KecID");
$db->Query("INSERT INTO rep_mus_opd SELECT T.Tahun,T.KecID,O.SidangID,T.KelID,SUM(T.Rupiah),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T LEFT JOIN para90_opd O ON (O.OPDID=T.OPDID) GROUP BY T.KecID,O.SidangID");
$db->Query("SELECT T.*,D.K_Kec,D.N_Kec,D.N_Desa,CONCAT(D.K_Kec,'.',T.Kode) Kode_Usul,CONCAT(T.Volume,' ',S.N_Satuan) Vol_Satuan,O.S_OPD,G.SidangID,G.N_Sidang,RC.*,RO.* FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T LEFT JOIN vi_para_desa D ON (D.DesaID=T.KelID) LEFT JOIN para_satuan S ON (S.SatuanID=T.SatuanID) LEFT JOIN para90_opd O ON (O.OPDID=T.OPDID) LEFT JOIN para_sidang G ON (G.SidangID=O.SidangID) LEFT JOIN rep_mus_kec RC ON (T.KecID=RC.KecID AND T.Tahun=RC.Tahun AND RC.UserID='".user_id()."' AND RC.Unix='".user_unix()."') LEFT JOIN rep_mus_opd RO ON (T.KecID=RO.KecID AND G.SidangID=RO.OPDID AND T.Tahun=RO.Tahun AND RO.UserID='".user_id()."' AND RO.Unix='".user_unix()."') ORDER BY D.N_Kec,G.SidangID,T.Prio,D.K_Desa,T.Kode");
}
if ( $data == "pdf" ) {
if ($tipe == "D") {
$html = '<p class="judul">Hasil Sidang Kelompok Musrenbang Kecamatan<br>Usulan Pembangunan Tahun '.($tahun-1).'</p>';
$footer = '<htmlpagefooter name="RepFoot%s"><table class="footer"><tr><td width="33%%">eMusrenbang - Kabupaten Sambas</td><td width="34%%" class="c">%s</td><td width="33%%" class="r i">{DATE d-m-Y H:i} / Halaman : {PAGENO} dari {nbpg}</td></tr></table></htmlpagefooter>';
$_setfoot = '<sethtmlpagefooter name="RepFoot%s" show-this-page="1" value="on" />';
$t_head = '<div><table class="garis" autosize="1"><thead><tr><th colspan="2">Usulan Kegiatan</th><th>Volume</th><th>Lokasi</th><th>Jumlah</th><th>Desa</th><th>OPD</th><th>Kode</th></tr></thead><tbody>';
$t_foot = '</tbody></table></div>';
$_line = '<tr><td class="c kotakh"><table><tr><td>%s</td><tr></table></td><td>%s</td><td class="r" nowrap>%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td>%s</td><td class="c">%s</td></tr>';
$_sub = '<tr class="%s"><td colspan="4" class="b">%s</td><td class="r b">%s</td><td class="b">&nbsp;</td><td class="b">&nbsp;</td><td class="b">&nbsp;</td></tr>';
$body = '';
$kkec = ""; $ksidang = "";
while ($db->Next()) {
if ($kkec == "") {
$body .= $t_head;
$html .= sprintf($footer, $db->Row("K_Kec"), $db->Row("N_Kec"));
$body .= sprintf($_setfoot, $db->Row("K_Kec"));
}
if ($kkec <> $db->Row("K_Kec")) {
$body .= sprintf($_sub, "kec", "KECAMATAN ".$db->Row("N_Kec"), rupiah($db->Row("KEC_RUPIAH")));
$kkec = $db->Row("K_Kec");
}
if ($ksidang <> $db->Row("SidangID")) {
$body .= sprintf($_sub, "forum", $db->Row("N_Sidang"), rupiah($db->Row("OPD_RUPIAH")));
$ksidang = $db->Row("SidangID");
}
$body .= sprintf($_line, $db->Row("Prio"), $db->Row("Usulan"), $db->Row("Vol_Satuan"), $db->Row("Lokasi"), rupiah($db->Row("Rupiah")), $db->Row("N_Desa"), $db->Row("S_OPD"), $db->Row("Kode_Usul"));
}
$body .= $t_foot;
} else {
$html = '<p class="judul">Daftar Usulan Musrenbang Kecamatan Tahun '.($tahun-1).'<br>Yang Belum Disepakati</p>';
$footer = '<htmlpagefooter name="RepFoot%s"><table class="footer"><tr><td width="33%%">eMusrenbang - Kabupaten Sambas</td><td width="34%%" class="c">%s</td><td width="33%%" class="r i">{DATE d-m-Y H:i} / Halaman : {PAGENO} dari {nbpg}</td></tr></table></htmlpagefooter>';
$_setfoot = '<sethtmlpagefooter name="RepFoot%s" show-this-page="1" value="on" />';
$t_head = '<div><table class="garis" autosize="1"><thead><tr><th>Kode</th><th>Usulan Kegiatan</th><th>Volume</th><th>Lokasi</th><th>Jumlah</th><th>Desa</th><th>OPD</th></tr></thead><tbody>';
$t_foot = '</tbody></table></div>';
$_line = '<tr><td class="c">%s</td><td>%s</td><td class="r" nowrap>%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td>%s</td></tr>';
$_sub = '<tr class="%s"><td colspan="4" class="b">%s</td><td class="r b">%s</td><td class="b">&nbsp;</td><td class="b">&nbsp;</td></tr>';
$body = '';
$kkec = ""; $ksidang = "";
while ($db->Next()) {
if ($kkec == "") {
$body .= $t_head;
$html .= sprintf($footer, $db->Row("K_Kec"), $db->Row("N_Kec"));
$body .= sprintf($_setfoot, $db->Row("K_Kec"));
}
if ($kkec <> $db->Row("K_Kec")) {
$body .= sprintf($_sub, "kec", "KECAMATAN ".$db->Row("N_Kec"), rupiah($db->Row("KEC_RUPIAH")));
$kkec = $db->Row("K_Kec");
}
if ($ksidang <> $db->Row("SidangID")) {
$body .= sprintf($_sub, "forum", $db->Row("N_Sidang"), rupiah($db->Row("OPD_RUPIAH")));
$ksidang = $db->Row("SidangID");
}
$body .= sprintf($_line, $db->Row("Kode_Usul"), $db->Row("Usulan"), $db->Row("Vol_Satuan"), $db->Row("Lokasi"), rupiah($db->Row("Rupiah")), $db->Row("N_Desa"), $db->Row("S_OPD"));
}
$body .= $t_foot;
}
$mpdf = new \Mpdf\Mpdf([
'mode' => 'c',
'format' => 'A4-L',
'margin_left' => 8,
'margin_right' => 8,
'margin_top' => 8,
'margin_header' => 5,
'margin_footer' => 5
]);
$mpdf->SetDisplayMode('fullpage');
$css = file_get_contents($_SESSION['__WEB_APP']['REAL_PATH'].'assets/css/pdf/musrenbang.css');
$mpdf->WriteHTML($css, \Mpdf\HTMLParserMode::HEADER_CSS);
$mpdf->WriteHTML($html . $body, \Mpdf\HTMLParserMode::HTML_BODY);
$mpdf->SetAuthor($_SESSION['__WEB_APP']['REG_NAME']);
$mpdf->SetCreator($_SESSION['__WEB_APP']['APP_NAME']." v".$_SESSION['__WEB_APP']['APP_VER']);
$mpdf->setTitle("Usulan ".$nama_kec);
$mpdf->Output("Usulan ".$nama_kec.".pdf", \Mpdf\Output\Destination::INLINE);
} else if ( $data == "default") {
$q_kec = ($_SESSION['__WEB_USER']['Level']==2) ? " AND LokasiID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": " AND Level=1 AND LokasiID>2";
$form = new Form($db);
$ttipe = $form->radio("_", "Tipe", "D", true, true, array('D'=>"Disepakati",'B'=>"Belum Disepakati"));
$ttahun = $form->option_db("_", "Tahun", $tahun, true, false, "para_periode", array("Tahun","Tahun"), "Tahun BETWEEN '".$_SESSION['__WEB_APP']['Tahun_Min']."' AND '".$_SESSION['__WEB_APP']['Tahun_Max']."'");
$tkec = $form->option_db("_", "KecID", 0, true, false, "para_lokasi", array("LokasiID","N_Lokasi"), "Aktif=1".$q_kec." ORDER BY N_Lokasi", array(0,"&nbsp;"));
echo '
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Tahun">Tahun Data</label>
<div class="col-sm-4 col-lg-5">'.$ttahun.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="KecID">Nama Kecamatan</label>
<div class="col-sm-8 col-lg-9">'.$tkec.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Tipe">Jenis Laporan</label>
<div class="col-sm-8 col-lg-9">'.$ttipe.'</div>
</div>';
}
?>
+275
View File
@@ -0,0 +1,275 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/repo/usul_desa.php
Desc. : PHP - Laporan Daftar Usulan / Desa
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : June 6th, 2024.
(c) 2014 - 2024, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
ini_set("pcre.backtrack_limit", 100000000);
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/report.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Form;
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$tahun = Param::Get("Tahun", $_SESSION['__WEB_APP']['RENC_THN']);
$id_kec = Param::Get("KecID", 0);
$id_kel = Param::Get("KelID", 0);
$tipe = Param::Get("Tipe", "D");
if ( $data == "print" || $data == "xls") {
$adesa = array();
if ($id_kel > 0) {
$db->Query("SELECT * FROM vi_para_desa WHERE DesaID='".$id_kel."' LIMIT 1");
if ($db->Next()) $adesa = $db->AllRow();
}
$tsql = " Tahun='".$tahun."' AND JU IN (0,2)";
$tsql .= ($id_kec==0) ? "" : " AND KecID='".$id_kec."'";
$tsql .= ($id_kel==0) ? "" : " AND KelID='".$id_kel."'";
// proses rekap database
Report_Empty("mus_bel");
$db->Query("INSERT INTO rep_mus_bel SELECT T.Tahun,T.KelID,T.BelID,SUM(T.Rupiah),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.BelID");
if ($tipe == "D") {
$db->Query("SELECT T.*,B.K_Belanja,B.N_Belanja,CONCAT(T.Volume,' ',S.N_Satuan) Vol_Satuan,O.S_OPD,RB.* FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T LEFT JOIN para_belanja B ON (B.BelID=T.BelID) LEFT JOIN para_satuan S ON (S.SatuanID=T.SatuanID) LEFT JOIN para90_opd O ON (O.OPDID=T.OPDID) LEFT JOIN rep_mus_bel RB ON (T.KelID=RB.KelID AND T.BelID=RB.BelID AND T.Tahun=RB.Tahun AND RB.UserID='".user_id()."' AND RB.Unix='".user_unix()."') ORDER BY B.K_Belanja,T.Kode");
} else {// REKAP
$db->Query("SELECT RB.*,B.K_Belanja,B.N_Belanja FROM (SELECT * FROM rep_mus_bel WHERE Tahun='".$tahun."' AND KelID='".$id_kel."' AND Unix='".user_unix()."' AND UserID='".user_id()."') RB LEFT JOIN para_belanja B ON (RB.BelID=B.BelID) ORDER BY B.K_Belanja");
}
}
if ( $data == "print" ) {
if ($tipe == "D") {
$t_head = '<div><p class="judul">REKAP USULAN RKP DESA TAHUN '.($tahun-1).'<br>UNTUK MUSRENBANG KECAMATAN TAHUN '.$tahun.'</p></div>
<table><tr><td width="150">DESA</td><td>'.$adesa['N_Desa'].'</td></tr><tr><td>KECAMATAN</td><td>'.$adesa['N_Kec'].'</td></tr><tr><td>KABUPATEN</td><td>SAMBAS</td></tr></table>
<div><table class="garis" autosize="1"><thead><tr><th colspan="2">Usulan Kegiatan</th><th>Lokasi</th><th>Volume</th><th>Sasaran</th><th>Waktu</th><th>Jumlah</th><th>OPD</th></tr></thead><tbody>';
$t_foot = '</tbody></table></div>';
$_line = '<tr><td class="c">%s</td><td>%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td class="r">%s</td><td class="r">%s</td><td>%s</td></tr>';
$_sub = '<tr class="bel"><td class="b c">%s</td><td colspan="5" class="b">%s</td><td class="b r">%s</td><td class="b">&nbsp;</td></tr>';
$body = $t_head;
$kbel = "";
while ($db->Next()) {
if ($kbel <> $db->Row("K_Belanja")) {
$body .= sprintf($_sub, $db->Row("K_Belanja"), $db->Row("N_Belanja"), rupiah($db->Row("BEL_RUPIAH")));
$kbel = $db->Row("K_Belanja");
}
$body .= sprintf($_line, $db->Row("Kode"), $db->Row("Usulan"), $db->Row("Lokasi"), $db->Row("Vol_Satuan"), $db->Row("Sasaran"), $db->Row("Waktu"), rupiah($db->Row("Rupiah")), $db->Row("S_OPD"));
}
$body .= sprintf($t_foot);
} else {// REKAP
$t_head = '<div><p class="judul">REKAP USULAN RKP DESA TAHUN '.($tahun-1).'<br>UNTUK MUSRENBANG KECAMATAN TAHUN '.$tahun.'</p></div>
<table><tr><td width="150">DESA</td><td>'.$adesa['N_Desa'].'</td></tr><tr><td>KECAMATAN</td><td>'.$adesa['N_Kec'].'</td></tr><tr><td>KABUPATEN</td><td>SAMBAS</td></tr></table>
<div><table class="garis" autosize="1"><thead><tr><th>Kode</th><th>Jenis Belanja</th><th>Jumlah</th></tr></thead><tbody>';
$t_foot = '</tbody></table></div>';
$_line = '<tr><td class="c">%s</td><td>%s</td><td class="r">%s</td></tr>';
$_sub = '<tr><td colspan="2" class="b c">%s</td><td class="b r">%s</td></tr>';
$body = $t_head;
$tot_rupiah = 0;
while ($db->Next()) {
$body .= sprintf($_line, $db->Row("K_Belanja"), $db->Row("N_Belanja"), rupiah($db->Row("BEL_RUPIAH")));
$tot_rupiah += $db->Row("BEL_RUPIAH");
}
$body .= sprintf($_sub, "JUMLAH USULAN KEGIATAN ".$adesa['N_Desa'], rupiah($tot_rupiah));
$body .= sprintf($t_foot);
}
echo $html . $body;
} else if ( $data == "xls") {
\PhpOffice\PhpSpreadsheet\Cell\Cell::setValueBinder( new \PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder() );
$styleTxt = [
'numberFormat' => ['formatCode' => \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_TEXT]
];
$styleNum = [
'numberFormat' => ['formatCode' => \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED2]
];
$ssheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
$ssheet->getProperties()
->setCreator($_SESSION['__WEB_APP']['APP_NAME']." v".$_SESSION['__WEB_APP']['APP_VER'])
->setLastModifiedBy($_SESSION['__WEB_APP']['APP_NAME']." v".$_SESSION['__WEB_APP']['APP_VER'])
->setTitle("Rekap Usulan RKP Desa Tahun ".$tahun)
->setCategory("Rekap Usulan RKP Desa")
->setSubject("Rekap Usulan RKP Desa")
->setDescription("Rekap Usulan RKP Desa")
->setCompany("Bappeda Kabupaten Sambas");
$sheet = $ssheet->getActiveSheet();
$sheet->setTitle("USULAN DESA");
// header
$styleHeader = [
'font' => ['bold' => true],
'alignment' => ['horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER]
];
$styleTableH = [
'font' => ['bold' => true],
'alignment' => ['horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER, 'vertical' => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER, 'wrapText' => true],
'fill' => ['fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID, 'startColor' => ['rgb'=>"D0D0D0"]],
'borders' => ['allBorders' => ['borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN, 'color' => ['rgb'=>"C0C0C0"]]]
];
$sheet->setCellValue("A1", "REKAP USULAN RKP DESA TAHUN ".($tahun-1));
$sheet->setCellValue("A2", "UNTUK MUSRENBANG KECAMATAN TAHUN ".$tahun);
$sheet->setCellValue("A3", "DESA : ".$adesa['N_Desa']);
$sheet->setCellValue("A4", "KECAMATAN : ".$adesa['N_Kec']);
$sheet->setCellValue("A5", "KABUPATEN : SAMBAS");
if ($tipe == "D") {
$sheet->mergeCells('A1:H1');
$sheet->mergeCells('A2:H2');
$sheet->getStyle('A1:H2')->applyFromArray($styleHeader);
// table header
$sheet->getColumnDimension('A')->setWidth(10);
$sheet->getColumnDimension('B')->setWidth(50);
$sheet->getColumnDimension('C')->setWidth(30);
$sheet->getColumnDimension('D')->setWidth(20);
$sheet->getColumnDimension('E')->setWidth(30);
$sheet->getColumnDimension('F')->setWidth(10);
$sheet->getColumnDimension('G')->setWidth(18);
$sheet->getColumnDimension('H')->setWidth(22);
$sheet->setCellValue("A6", "Usulan Kegiatan");
$sheet->mergeCells('A6:B6');
$sheet->setCellValue("C6", "Lokasi");
$sheet->setCellValue("D6", "Volume");
$sheet->setCellValue("E6", "Sasaran");
$sheet->setCellValue("F6", "Waktu");
$sheet->setCellValue("G6", "Jumlah");
$sheet->setCellValue("H6", "OPD");
$sheet->getStyle('A6:H6')->applyFromArray($styleTableH);
$baris = 7; $kbel = "";
$styleBEL = [
'font' => ['bold' => true],
'fill' => ['fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID, 'startColor' => ['rgb'=>"A2FFFF"]]
];
while ($db->Next()) {
if ($kbel <> $db->Row("K_Belanja")) {
$sheet->setCellValue("A".$baris, $db->Row("K_Belanja"));
$sheet->setCellValue("B".$baris, $db->Row("N_Belanja"));
$sheet->mergeCells('B'.$baris.':F'.$baris);
$sheet->setCellValue("G".$baris, $db->RowFloat("BEL_RUPIAH"));
$sheet->getStyle('G'.$baris.':G'.$baris)->applyFromArray($styleNum);
$sheet->getStyle('A'.$baris.':H'.$baris)->applyFromArray($styleBEL);
$baris++;
$kbel = $db->Row("K_Belanja");
}
$sheet->setCellValue("A".$baris, $db->Row("Kode"));
$sheet->setCellValue("B".$baris, $db->Row("Usulan"));
$sheet->setCellValue("C".$baris, $db->Row("Lokasi"));
$sheet->setCellValue("D".$baris, $db->Row("Vol_Satuan"));
$sheet->setCellValue("E".$baris, $db->Row("Sasaran"));
$sheet->setCellValue("F".$baris, $db->Row("Waktu"));
$sheet->setCellValue("G".$baris, $db->RowFloat("Rupiah"));
$sheet->setCellValue("H".$baris, $db->Row("S_OPD"));
$sheet->getStyle('G'.$baris.':G'.$baris)->applyFromArray($styleNum);
$baris++;
}
$sheet->getStyle('A7:H'.($baris-1))->applyFromArray(['borders' => ['allBorders' => ['borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN]]]);
} else {// REKAP
$sheet->mergeCells('A1:C1');
$sheet->mergeCells('A2:C2');
$sheet->getStyle('A1:C2')->applyFromArray($styleHeader);
// table header
$sheet->getColumnDimension('A')->setWidth(10);
$sheet->getColumnDimension('B')->setWidth(70);
$sheet->getColumnDimension('C')->setWidth(18);
$sheet->setCellValue("A6", "Kode");
$sheet->setCellValue("B6", "Jenis Belanja");
$sheet->setCellValue("C6", "Jumlah");
$sheet->getStyle('A6:C6')->applyFromArray($styleTableH);
$baris = 7; $tot_rupiah = 0;
$styleBEL = [
'font' => ['bold' => true],
'fill' => ['fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID, 'startColor' => ['rgb'=>"A2FFFF"]]
];
while ($db->Next()) {
$sheet->setCellValue("A".$baris, $db->Row("K_Belanja"));
$sheet->setCellValue("B".$baris, $db->Row("N_Belanja"));
$sheet->setCellValue("C".$baris, $db->RowFloat("BEL_RUPIAH"));
$sheet->getStyle('C'.$baris.':C'.$baris)->applyFromArray($styleNum);
$baris++;
$tot_rupiah += $db->Row("BEL_RUPIAH");
}
$sheet->setCellValue("B".$baris, "JUMLAH USULAN KEGIATAN ".$adesa['N_Desa']);
$sheet->setCellValue("C".$baris, $tot_rupiah);
$sheet->getStyle('C'.$baris.':C'.$baris)->applyFromArray($styleNum);
$sheet->getStyle('A'.$baris.':C'.$baris)->applyFromArray(['font' => ['bold' => true]]);
$baris++;
$sheet->getStyle('A7:C'.($baris-1))->applyFromArray(['borders' => ['allBorders' => ['borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN]]]);
}
$sheet->getSheetView()->setZoomScale(75);
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="Usulan Desa '.$adesa['N_Desa'].'.xlsx"');
header('Cache-Control: max-age=0');
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($ssheet, 'Xlsx');
$writer->save('php://output');
$ssheet->disconnectWorksheets();
unset($ssheet);
unset($writer);
} else if ( $data == "option-kel" ) {
$aoption = ['type' => "option", 'id' => "KelID", 'value' => 0, 'avalue' => []];
$db->Query("SELECT * FROM para_lokasi WHERE Aktif=1 AND Level=2 AND IndukID='".$id_kec."' ORDER BY K_Lokasi");
if ($db->RecordCount()<>1) $aoption['avalue'][] = ['value'=>0, 'html'=>""];
while ($db->Next()) {
if ($db->RecordCount()==1) $aoption['value'] = $db->Row("LokasiID");
$aoption['avalue'][] = ['value'=>$db->Row("LokasiID"), 'html'=>$db->Row("N_Lokasi")];
}
$ajson[] = $aoption;
} else if ( $data == "default") {
$q_kec = ($_SESSION['__WEB_USER']['Level']==2) ? " AND LokasiID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": " AND Level=1 AND LokasiID>2";
$form = new Form($db);
$ttipe = $form->radio("_", "Tipe", "D", true, true, array('D'=>"Detail",'R'=>"Rekap"));
$ttahun = $form->option_db("_", "Tahun", $tahun, true, true, "para_periode", array("Tahun","Tahun"), "Tahun BETWEEN '".$_SESSION['__WEB_APP']['Tahun_Min']."' AND '".$_SESSION['__WEB_APP']['Tahun_Max']."'");
$tkec = $form->option_db("_", "KecID", 0, true, true, "para_lokasi", array("LokasiID","N_Lokasi"), "Aktif=1".$q_kec." ORDER BY N_Lokasi", array(0,"&nbsp;"), null, "RepoUsulDesaJS.oc_Kec()");
$tkel = $form->option("_", "KelID", 0, true, true, array());
echo '
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Tahun">Tahun Data</label>
<div class="col-sm-4 col-lg-5">'.$ttahun.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="KecID">Nama Kecamatan</label>
<div class="col-sm-8 col-lg-9">'.$tkec.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="KelID">Nama 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="Tipe">Jenis Laporan</label>
<div class="col-sm-8 col-lg-9">'.$ttipe.'</div>
</div>';
}
send_json($ajson);
?>
+187
View File
@@ -0,0 +1,187 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/repo/usul_kecopd.php
Desc. : PHP - Laporan Daftar Usulan / Kecamatan & OPD
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : June 6th, 2024.
(c) 2014 - 2024, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
ini_set("pcre.backtrack_limit", 100000000);
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/report.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Form;
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$tahun = Param::Get("Tahun", $_SESSION['__WEB_APP']['RENC_THN']);
$id_kec = Param::Get("KecID", 0);
$id_kel = Param::Get("KelID", 0);
$tipe = Param::Get("Tipe", "D");
if ( $data == "pdf" || $data == "print") {
$nama_kec = "Semua Kecamatan";
if ($id_kec > 0) {
$db->Query("SELECT * FROM para_lokasi WHERE LokasiID='".$id_kec."' LIMIT 1");
if ($db->Next()) $nama_kec = $db->Row("N_Lokasi");
}
$tsql = " Tahun='".$tahun."' AND JU IN (0,2)";
$tsql .= ($id_kec==0) ? "" : " AND KecID='".$id_kec."'";
$tsql .= ($id_kel==0) ? "" : " AND KelID='".$id_kel."'";
// proses rekap database
Report_Empty("mus_kec");
Report_Empty("mus_kel");
Report_Empty("mus_opd");
$db->Query("INSERT INTO rep_mus_kec SELECT T.Tahun,T.KecID,SUM(T.Rupiah),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.KecID");
$db->Query("INSERT INTO rep_mus_kel SELECT T.Tahun,T.KecID,T.OPDID,T.KelID,SUM(T.Rupiah),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.KecID,T.KelID");
$db->Query("INSERT INTO rep_mus_opd SELECT T.Tahun,T.KecID,T.OPDID,T.KelID,SUM(T.Rupiah),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.KecID,T.KelID,T.OPDID");
if ($tipe == "D") {
$db->Query("SELECT T.*,D.K_Kec,D.N_Kec,D.K_Desa,D.N_Desa,CONCAT(T.Volume,' ',S.N_Satuan) Vol_Satuan,O.K_OPD,O.N_OPD,RC.*,RO.*,RD.* FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T LEFT JOIN vi_para_desa D ON (D.DesaID=T.KelID) LEFT JOIN para_satuan S ON (S.SatuanID=T.SatuanID) LEFT JOIN para90_opd O ON (O.OPDID=T.OPDID) LEFT JOIN rep_mus_kec RC ON (T.KecID=RC.KecID AND T.Tahun=RC.Tahun AND RC.UserID='".user_id()."' AND RC.Unix='".user_unix()."') LEFT JOIN rep_mus_kel RD ON (T.KecID=RD.KecID AND T.KelID=RD.KelID AND T.Tahun=RD.Tahun AND RD.UserID='".user_id()."' AND RD.Unix='".user_unix()."') LEFT JOIN rep_mus_opd RO ON (T.KecID=RO.KecID AND T.KelID=RO.KelID AND T.OPDID=RO.OPDID AND T.Tahun=RO.Tahun AND RO.UserID='".user_id()."' AND RO.Unix='".user_unix()."') ORDER BY D.N_Kec,D.N_Desa,O.N_OPD,T.Kode");
} else {// REKAP
$db->Query("SELECT RO.*,D.K_Desa,D.N_Desa,D.K_Kec,D.N_Kec,O.K_OPD,O.N_OPD,RC.*,RD.* FROM (SELECT * FROM rep_mus_opd WHERE".str_replace("AND JU IN (0,2)", "", $tsql)." AND Unix='".user_unix()."' AND UserID='".user_id()."') RO LEFT JOIN vi_para_desa D ON (RO.KelID=D.DesaID) LEFT JOIN para90_opd O ON (O.OPDID=RO.OPDID) LEFT JOIN rep_mus_kec RC ON (RO.KecID=RC.KecID AND RO.Tahun=RC.Tahun AND RC.UserID='".user_id()."' AND RC.Unix='".user_unix()."') LEFT JOIN rep_mus_kel RD ON (RD.KecID=RO.KecID AND RD.KelID=RO.KelID AND RD.Tahun=RO.Tahun AND RD.UserID='".user_id()."' AND RD.Unix='".user_unix()."')");
}
}
if ( $data == "pdf" ) {
if ($tipe == "D") {
$html = '<p class="judul">Daftar Usulan Pembangunan Desa untuk Tahun '.$tahun.'<br>Berdasarkan Kecamatan dan Desa</p>';
$footer = '<htmlpagefooter name="RepFoot%s"><table class="footer"><tr><td width="33%%">eMusrenbang - Kabupaten Sambas</td><td width="34%%" class="c">%s</td><td width="33%%" class="r i">{DATE d-m-Y H:i} / Halaman : {PAGENO} dari {nbpg}</td></tr></table></htmlpagefooter>';
$_setfoot = '<sethtmlpagefooter name="RepFoot%s" show-this-page="1" value="on" />';
$t_head = '<div><table class="garis" autosize="1"><thead><tr><th colspan="2">Usulan Kegiatan</th><th>Volume</th><th>Lokasi</th><th>Jumlah</th></tr></thead><tbody>';
$t_foot = '</tbody></table></div>';
$_line = '<tr><td class="c" rowspan="2">%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td class="r">%s</td></tr><tr><td class="i" colspan="2">%s</td><td class="i" colspan="2">%s</td></tr>';
$_sub = '<tr class="%s"><td colspan="4" class="b">%s</td><td class="r b">%s</td></tr>';
$body = $t_head;
$kkec = ""; $kopd = ""; $kdesa = ""; $n_desa = "";
while ($db->Next()) {
$n_desa = $db->Row("N_Desa");
if ($kdesa == "") {
$html .= sprintf($footer, $db->Row("KelID"), $n_desa);
$body .= sprintf($_setfoot, $db->Row("KelID"));
}
if ($kkec <> $db->Row("K_Kec")) {
$body .= sprintf($_sub, "kec", "KECAMATAN ".$db->Row("N_Kec"), rupiah($db->Row("KEC_RUPIAH")));
$kkec = $db->Row("K_Kec");
}
if ($kdesa <> $db->Row("K_Desa")) {
$body .= sprintf($_sub, "desa", $n_desa, rupiah($db->Row("KEL_RUPIAH")));
if ($kdesa <> "") {
$html .= sprintf($footer, $db->Row("KelID"), $n_desa);
$body .= sprintf($_setfoot, $db->Row("KelID"));
}
$kdesa = $db->Row("K_Desa");
$kopd = "";
}
if ($kopd <> $db->Row("K_OPD")) {
$body .= sprintf($_sub, "opd", $db->Row("N_OPD"), rupiah($db->Row("OPD_RUPIAH")));
$kopd = $db->Row("K_OPD");
}
$body .= sprintf($_line, $db->Row("Kode"), $db->Row("Usulan"), $db->Row("Vol_Satuan"), $db->Row("Lokasi"), rupiah($db->Row("Rupiah")), "Permasalahan : ".$db->Row("Masalah"), "Dusun : ".$db->Row("Dusun")." / RT : ".$db->Row("RT"));
}
$body .= sprintf($t_foot);
} else {
$html = '<p class="judul">Rekap Usulan Pembangunan Desa untuk Tahun '.$tahun.'<br>Berdasarkan Kecamatan dan Desa</p>';
$footer = '<htmlpagefooter name="RepFoot%s"><table class="footer"><tr><td width="33%%">eMusrenbang - Kabupaten Sambas</td><td width="34%%" class="c">%s</td><td width="33%%" class="r i">{DATE d-m-Y H:i} / Halaman : {PAGENO} dari {nbpg}</td></tr></table></htmlpagefooter>';
$_setfoot = '<sethtmlpagefooter name="RepFoot%s" show-this-page="1" value="on" />';
$t_head = '<div><table class="garis" autosize="1"><thead><tr><th>Kecamatan / Desa / OPD</th><th>Jumlah</th></tr></thead><tbody>';
$t_foot = '</tbody></table></div>';
$_line = '<tr><td>%s</td><td class="r">%s</td></tr>';
$_sub = '<tr class="%s"><td class="b">%s</td><td class="r b">%s</td></tr>';
$body = $t_head;
$html .= sprintf($footer, "1", "Rekap Usulan Desa");
$body .= sprintf($_setfoot, "1");
$kkec = ""; $kdesa = "";
while ($db->Next()) {
if ($kkec <> $db->Row("K_Kec")) {
$body .= sprintf($_sub, "kec", "KECAMATAN ".$db->Row("N_Kec"), rupiah($db->Row("KEC_RUPIAH")));
$kkec = $db->Row("K_Kec");
}
if ($kdesa <> $db->Row("K_Desa")) {
$body .= sprintf($_sub, "desa", $db->Row("N_Desa"), rupiah($db->Row("KEL_RUPIAH")));
$kdesa = $db->Row("K_Desa");
}
$body .= sprintf($_line, $db->Row("N_OPD"), rupiah($db->Row("OPD_RUPIAH")));
}
$body .= sprintf($t_foot);
}
$mpdf = new \Mpdf\Mpdf([
'mode' => 'c',
'format' => 'A4-L',
'margin_left' => 8,
'margin_right' => 8,
'margin_top' => 8,
'margin_header' => 5,
'margin_footer' => 5
]);
$mpdf->SetDisplayMode('fullpage');
$css = file_get_contents($_SESSION['__WEB_APP']['REAL_PATH'].'assets/css/pdf/musrenbang.css');
$mpdf->WriteHTML($css, \Mpdf\HTMLParserMode::HEADER_CSS);
$mpdf->WriteHTML($html . $body, \Mpdf\HTMLParserMode::HTML_BODY);
$mpdf->SetAuthor($_SESSION['__WEB_APP']['REG_NAME']);
$mpdf->SetCreator($_SESSION['__WEB_APP']['APP_NAME']." v".$_SESSION['__WEB_APP']['APP_VER']);
$mpdf->setTitle("Usulan ".$nama_kec);
$mpdf->Output("Usulan ".$nama_kec.".pdf", \Mpdf\Output\Destination::INLINE);
} else if ( $data == "option-kel" ) {
$aoption = ['type' => "option", 'id' => "KelID", 'value' => 0, 'avalue' => []];
$db->Query("SELECT * FROM para_lokasi WHERE Aktif=1 AND Level=2 AND IndukID='".$id_kec."' ORDER BY K_Lokasi");
if ($db->RecordCount()<>1) $aoption['avalue'][] = ['value'=>0, 'html'=>""];
while ($db->Next()) {
if ($db->RecordCount()==1) $aoption['value'] = $db->Row("LokasiID");
$aoption['avalue'][] = ['value'=>$db->Row("LokasiID"), 'html'=>$db->Row("N_Lokasi")];
}
$ajson[] = $aoption;
} else if ( $data == "default") {
$q_kec = ($_SESSION['__WEB_USER']['Level']==2) ? " AND LokasiID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": " AND Level=1 AND LokasiID>2";
$form = new Form($db);
$ttipe = $form->radio("_", "Tipe", "D", true, true, array('D'=>"Detail",'R'=>"Rekap"));
$ttahun = $form->option_db("_", "Tahun", $tahun, true, true, "para_periode", array("Tahun","Tahun"), "Tahun BETWEEN '".$_SESSION['__WEB_APP']['Tahun_Min']."' AND '".$_SESSION['__WEB_APP']['Tahun_Max']."'");
$tkec = $form->option_db("_", "KecID", 0, true, true, "para_lokasi", array("LokasiID","N_Lokasi"), "Aktif=1".$q_kec." ORDER BY N_Lokasi", ($_SESSION['__WEB_USER']['Level']==2?"":array(0,"SEMUA KECAMATAN")), null, "RepoUsulKecDesaJS.oc_Kec()");
$tkel = $form->option("_", "KelID", 0, true, false, array(0=>"SEMUA DESA"));
echo '
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Tahun">Tahun Data</label>
<div class="col-sm-4 col-lg-5">'.$ttahun.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="KecID">Nama Kecamatan</label>
<div class="col-sm-8 col-lg-9">'.$tkec.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="KelID">Nama 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="Tipe">Jenis Laporan</label>
<div class="col-sm-8 col-lg-9">'.$ttipe.'</div>
</div>';
}
send_json($ajson);
?>
+175
View File
@@ -0,0 +1,175 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/repo/usul_kecopd.php
Desc. : PHP - Laporan Daftar Usulan / Kecamatan & OPD
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : June 6th, 2024.
(c) 2014 - 2024, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
ini_set("pcre.backtrack_limit", 100000000);
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/report.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Form;
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$tahun = Param::Get("Tahun", $_SESSION['__WEB_APP']['RENC_THN']);
$id_kec = Param::Get("KecID", 0);
$id_opd = Param::Get("OPDID", 0);
$tipe = Param::Get("Tipe", "D");
if ( $data == "pdf" || $data == "print") {
$nama_kec = "Semua Kecamatan";
if ($id_kec > 0) {
$db->Query("SELECT * FROM para_lokasi WHERE LokasiID='".$id_kec."' LIMIT 1");
if ($db->Next()) $nama_kec = $db->Row("N_Lokasi");
}
$tsql = " Tahun='".$tahun."' AND JU IN (0,2)";
$tsql .= ($id_kec==0) ? "" : " AND KecID='".$id_kec."'";
$tsql .= ($id_opd==0) ? "" : " AND OPDID='".$id_opd."'";
// proses rekap database
Report_Empty("mus_kec");
Report_Empty("mus_kel");
Report_Empty("mus_opd");
$db->Query("INSERT INTO rep_mus_kec SELECT T.Tahun,T.KecID,SUM(T.Rupiah),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.KecID");
$db->Query("INSERT INTO rep_mus_opd SELECT T.Tahun,T.KecID,T.OPDID,T.KelID,SUM(T.Rupiah),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.KecID,T.OPDID");
$db->Query("INSERT INTO rep_mus_kel SELECT T.Tahun,T.KecID,T.OPDID,T.KelID,SUM(T.Rupiah),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.KecID,T.OPDID,T.KelID");
if ($tipe == "D") {
$db->Query("SELECT T.*,D.K_Kec,D.N_Kec,D.K_Desa,D.N_Desa,CONCAT(T.Volume,' ',S.N_Satuan) Vol_Satuan,T.OPDID OPDID2,O.K_OPD,O.N_OPD,RC.*,RO.*,RD.* FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T LEFT JOIN vi_para_desa D ON (D.DesaID=T.KelID) LEFT JOIN para_satuan S ON (S.SatuanID=T.SatuanID) LEFT JOIN para90_opd O ON (O.OPDID=T.OPDID) LEFT JOIN rep_mus_kec RC ON (T.KecID=RC.KecID AND T.Tahun=RC.Tahun AND RC.UserID='".user_id()."' AND RC.Unix='".user_unix()."') LEFT JOIN rep_mus_opd RO ON (T.KecID=RO.KecID AND T.OPDID=RO.OPDID AND T.Tahun=RO.Tahun AND RO.UserID='".user_id()."' AND RO.Unix='".user_unix()."') LEFT JOIN rep_mus_kel RD ON (T.KecID=RD.KecID AND T.OPDID=RD.OPDID AND T.KelID=RD.KelID AND T.Tahun=RD.Tahun AND RD.UserID='".user_id()."' AND RD.Unix='".user_unix()."') ORDER BY D.N_Kec,O.N_OPD,D.N_Desa,T.Kode");
} else {// REKAP
$db->Query("SELECT RD.*,D.N_Desa,D.K_Kec,D.N_Kec,O.K_OPD,O.N_OPD,RC.*,RO.* FROM (SELECT * FROM rep_mus_kel WHERE".str_replace("AND JU IN (0,2)", "", $tsql)." AND Unix='".user_unix()."' AND UserID='".user_id()."') RD LEFT JOIN vi_para_desa D ON (RD.KelID=D.DesaID) LEFT JOIN para90_opd O ON (O.OPDID=RD.OPDID) LEFT JOIN rep_mus_kec RC ON (RD.KecID=RC.KecID AND RD.Tahun=RC.Tahun AND RC.UserID='".user_id()."' AND RC.Unix='".user_unix()."') LEFT JOIN rep_mus_opd RO ON (RD.KecID=RO.KecID AND RD.OPDID=RO.OPDID AND RD.Tahun=RO.Tahun AND RO.UserID='".user_id()."' AND RO.Unix='".user_unix()."')");
}
}
if ( $data == "pdf" ) {
if ($tipe == "D") {
$html = '<p class="judul">Daftar Usulan Pembangunan Desa untuk Tahun '.$tahun.'<br>Berdasarkan Kecamatan dan OPD</p>';
$footer = '<htmlpagefooter name="RepFoot%s"><table class="footer"><tr><td width="33%%">eMusrenbang - Kabupaten Sambas</td><td width="34%%" class="c">%s</td><td width="33%%" class="r i">{DATE d-m-Y H:i} / Halaman : {PAGENO} dari {nbpg}</td></tr></table></htmlpagefooter>';
$_setfoot = '<sethtmlpagefooter name="RepFoot%s" show-this-page="1" value="on" />';
$t_head = '<div><table class="garis" autosize="1"><thead><tr><th colspan="2">Usulan Kegiatan</th><th>Volume</th><th>Lokasi</th><th>Jumlah</th></tr></thead><tbody>';
$t_foot = '</tbody></table></div>';
$_line = '<tr><td class="c" rowspan="2">%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td class="r">%s</td></tr><tr><td class="i" colspan="2">%s</td><td class="i" colspan="2">%s</td></tr>';
$_sub = '<tr class="%s"><td colspan="4" class="b">%s</td><td class="r b">%s</td></tr>';
$body = $t_head;
$kkec = ""; $kopd = ""; $kdesa = ""; $n_opd = "";
while ($db->Next()) {
$n_opd = $db->Row("N_OPD");
if ($kopd == "") {
$html .= sprintf($footer, $db->Row("OPDID"), $n_opd);
$body .= sprintf($_setfoot, $db->Row("OPDID"));
}
if ($kkec <> $db->Row("K_Kec")) {
$body .= sprintf($_sub, "kec", "KECAMATAN ".$db->Row("N_Kec"), rupiah($db->Row("KEC_RUPIAH")));
$kkec = $db->Row("K_Kec");
}
if ($kopd <> $db->Row("K_OPD")) {
$body .= sprintf($_sub, "opd", $n_opd, rupiah($db->Row("OPD_RUPIAH")));
if ($kopd <> "") {
$html .= sprintf($footer, $db->Row("OPDID"), $n_opd);
$body .= sprintf($_setfoot, $db->Row("OPDID"));
}
$kopd = $db->Row("K_OPD");
$kdesa = "";
}
if ($kdesa <> $db->Row("K_Desa")) {
$body .= sprintf($_sub, "desa", $db->Row("N_Desa"), rupiah($db->Row("KEL_RUPIAH")));
$kdesa = $db->Row("K_Desa");
}
$body .= sprintf($_line, $db->Row("Kode"), $db->Row("Usulan"), $db->Row("Vol_Satuan"), $db->Row("Lokasi"), rupiah($db->Row("Rupiah")), "Permasalahan : ".$db->Row("Masalah"), "Dusun : ".$db->Row("Dusun")." / RT : ".$db->Row("RT"));
}
$body .= sprintf($t_foot);
} else {
$html = '<p class="judul">Rekap Usulan Pembangunan Desa untuk Tahun '.$tahun.'<br>Berdasarkan Kecamatan dan OPD</p>';
$footer = '<htmlpagefooter name="RepFoot%s"><table class="footer"><tr><td width="33%%">eMusrenbang - Kabupaten Sambas</td><td width="34%%" class="c">%s</td><td width="33%%" class="r i">{DATE d-m-Y H:i} / Halaman : {PAGENO} dari {nbpg}</td></tr></table></htmlpagefooter>';
$_setfoot = '<sethtmlpagefooter name="RepFoot%s" show-this-page="1" value="on" />';
$t_head = '<div><table class="garis" autosize="1"><thead><tr><th>Kecamatan / OPD / Desa</th><th>Jumlah</th></tr></thead><tbody>';
$t_foot = '</tbody></table></div>';
$_line = '<tr><td>%s</td><td class="r">%s</td></tr>';
$_sub = '<tr class="%s"><td class="b">%s</td><td class="r b">%s</td></tr>';
$body = $t_head;
$html .= sprintf($footer, "1", "Rekap Usulan OPD");
$body .= sprintf($_setfoot, "1");
$kkec = ""; $kopd = "";
while ($db->Next()) {
if ($kkec <> $db->Row("K_Kec")) {
$body .= sprintf($_sub, "kec", "KECAMATAN ".$db->Row("N_Kec"), rupiah($db->Row("KEC_RUPIAH")));
$kkec = $db->Row("K_Kec");
}
if ($kopd <> $db->Row("K_OPD")) {
$body .= sprintf($_sub, "opd", $db->Row("N_OPD"), rupiah($db->Row("OPD_RUPIAH")));
$kopd = $db->Row("K_OPD");
}
$body .= sprintf($_line, $db->Row("N_Desa"), rupiah($db->Row("KEL_RUPIAH")));
}
$body .= sprintf($t_foot);
}
$mpdf = new \Mpdf\Mpdf([
'mode' => 'c',
'format' => 'A4-L',
'margin_left' => 8,
'margin_right' => 8,
'margin_top' => 8,
'margin_header' => 5,
'margin_footer' => 5
]);
$mpdf->SetDisplayMode('fullpage');
$css = file_get_contents($_SESSION['__WEB_APP']['REAL_PATH'].'assets/css/pdf/musrenbang.css');
$mpdf->WriteHTML($css, \Mpdf\HTMLParserMode::HEADER_CSS);
$mpdf->WriteHTML($html . $body, \Mpdf\HTMLParserMode::HTML_BODY);
$mpdf->SetAuthor($_SESSION['__WEB_APP']['REG_NAME']);
$mpdf->SetCreator($_SESSION['__WEB_APP']['APP_NAME']." v".$_SESSION['__WEB_APP']['APP_VER']);
$mpdf->setTitle("Usulan ".$nama_kec);
$mpdf->Output("Usulan ".$nama_kec.".pdf", \Mpdf\Output\Destination::INLINE);
} else if ( $data == "default") {
$q_kec = ($_SESSION['__WEB_USER']['Level']==2) ? " AND LokasiID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": " AND Level=1 AND LokasiID>2";
$form = new Form($db);
$ttipe = $form->radio("_", "Tipe", "D", true, true, array('D'=>"Detail",'R'=>"Rekap"));
$ttahun = $form->option_db("_", "Tahun", $tahun, true, true, "para_periode", array("Tahun","Tahun"), "Tahun BETWEEN '".$_SESSION['__WEB_APP']['Tahun_Min']."' AND '".$_SESSION['__WEB_APP']['Tahun_Max']."'");
$tkec = $form->option_db("_", "KecID", 0, true, true, "para_lokasi", array("LokasiID","N_Lokasi"), "Aktif=1".$q_kec." ORDER BY N_Lokasi", ($_SESSION['__WEB_USER']['Level']==2?"":array(0,"SEMUA KECAMATAN")));
$topd = $form->option_db("_", "OPDID", 0, true, false, "vi_para90_opd", array("OPDID","Nama_OPD"), "Aktif=1 ORDER BY K_OPD", array(0,"SEMUA OPD"));
echo '
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Tahun">Tahun Data</label>
<div class="col-sm-4 col-lg-5">'.$ttahun.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="KecID">Nama Kecamatan</label>
<div class="col-sm-8 col-lg-9">'.$tkec.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="OPDID">Nama Perangkat Deerah</label>
<div class="col-sm-8 col-lg-9">'.$topd.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Tipe">Jenis Laporan</label>
<div class="col-sm-8 col-lg-9">'.$ttipe.'</div>
</div>';
}
?>
+52
View File
@@ -0,0 +1,52 @@
<?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(__DIR__."/../../../../../vendor/autoload.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\DB\SQL;
use siaupheng\fonia3\Web\Auth;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Form;
$db = $db ?? new MySQL();
$auth = new Auth($db);
$ajson = [];
$data = Param::Get("data");
if ( $data == "default") {
$form = new Form($db);
$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 = Param::Get("LPass");
$b_pass1 = Param::Get("BPass1");
$b_pass2 = Param::Get("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);
?>
+285
View File
@@ -0,0 +1,285 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/usul/desa.php
Desc. : PHP - Usulan Desa
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 28th, 2011.
Last Modified : January 9th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/musrenbang.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\DB\SQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Table;
use siaupheng\fonia3\Web\Form;
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$mode = Param::Get("mode");
$mode_detail = Param::Get("mode_detail");
$emus_enable = Param::Get("Hak_Usulan", 0);
$id_rpjmd = $_SESSION['__WEB_APP']['RENC_RPJMDID'];
$thn_renja = $_SESSION['__WEB_APP']['RENC_THN'];
$id_kec = Param::Get("KecID", 0);
$id_kel = Param::Get("KelID", 0);
$id_bel = Param::Get("BelID", 0);
$id_usul = Param::Get("UsulanLID", 0);
if ( in_array($data, ["tabel-kec","tabel-kel","tabel-bel","tabel-keg"]) ) {
$qsql = "Tahun='".$thn_renja."' AND JU IN (0,2)";
$msql = "Aktif=1";
if ( $data == "tabel-kec" ) {
$qsql .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND KecID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": "";
$msql .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND LokasiID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": " AND Level=1 AND LokasiID>2";
} else if ( $data == "tabel-kel" ) {
$qsql .= " AND KecID='".$id_kec."'";
$msql .= " AND Level=2 AND IndukID='".$id_kec."'";
} else if ( $data == "tabel-bel" ) {
$qsql .= " AND KecID='".$id_kec."' AND KelID='".$id_kel."'";
} else if ( $data == "tabel-keg" ) {
$qsql .= " AND KecID='".$id_kec."' AND KelID='".$id_kel."' AND BelID='".$id_bel."'";
}
}
if ( $data == "tabel-kec" ) {
$f_usul = (in_array($_SESSION['__WEB_USER']['Level'],[0])) ? 1: 0;
if (in_array($_SESSION['__WEB_USER']['Level'],[2,7])) {
$f_usul = "IFNULL(H.Hak_Usulan,1)";
}
$qakses = "Tahun='".$thn_renja."'";
$qakses .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND KecID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": "";
$obj = new Table($db);
$obj->set_query("SELECT K.*,IFNULL(K.Waktu,'0000-00-00 00:00:00') Waktu0,M.LokasiID KecID2,M.K_Lokasi,M.N_Lokasi,".$f_usul." Hak_Usulan FROM (SELECT * FROM para_lokasi WHERE ".$msql.") M LEFT JOIN (SELECT KecID,COUNT(DISTINCT KelID) ITEM_KEL,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH,MAX(DateStamp) Waktu FROM mus_usulan_desa WHERE ".$qsql." GROUP BY KecID) K ON (K.KecID=M.LokasiID) LEFT JOIN (SELECT KecID,Hak_Usulan FROM sippd_akses_mus WHERE ".$qakses." ORDER BY KecID) H ON (H.KecID=M.LokasiID)");
$obj->add_field("KecID2", "ID", "hid");
$obj->add_field("Hak_Usulan", "Akses", "hid");
$obj->add_field("K_Lokasi", "Kode", "c");
$obj->add_field("N_Lokasi", "Nama Kecamatan", "awr");
$obj->add_field("ITEM_KEL", "Desa", "r", "rupiah");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->add_field("Waktu0", "Terakhir Input", "c nwr", "sqljams", "", "val-tgljams");
$obj->set_field_order("N_Lokasi", "A");
$obj->add_row_btn("save", "Desa", "MUsulDesaJS.kec_select");
$obj->set_func_navi("MUsulDesaJS.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.*,M.LokasiID KelID2,M.K_Lokasi,M.N_Lokasi FROM (SELECT * FROM para_lokasi WHERE ".$msql.") M LEFT JOIN (SELECT KelID,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY KelID) K ON (K.KelID=M.LokasiID)");
$obj->add_field("KelID2", "ID", "hid");
$obj->add_field("K_Lokasi", "Kode", "c");
$obj->add_field("N_Lokasi", "Nama Desa", "awr");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("N_Lokasi", "A");
$obj->add_row_btn("save", "Belanja", "MUsulDesaJS.kel_select");
$obj->set_func_navi("MUsulDesaJS.data_query('tabel-kel')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEL");
} else if ( $data == "tabel-bel" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.BelID BelID2,M.K_Belanja,M.N_Belanja FROM (SELECT * FROM para_belanja WHERE ".$msql.") M LEFT JOIN (SELECT BelID,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY BelID) K ON (K.BelID=M.BelID)");
$obj->add_field("BelID2", "ID", "hid");
$obj->add_field("K_Belanja", "Kode", "c");
$obj->add_field("N_Belanja", "Jenis Belanja", "awr");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("K_Belanja", "A");
$obj->add_row_btn("save", "Usulan", "MUsulDesaJS.bel_select");
$obj->set_func_navi("MUsulDesaJS.data_query('tabel-bel')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divBEL");
} else if ( $data == "tabel-keg" ) {
if (in_array($mode_detail, ["insert","update","delete"])) {
$sql = new SQL($db);
$sql->set_table("mus_usulan_desa");
$sql->add_param("Lokasi");
$sql->add_param("Dusun");
$sql->add_param("RT");
$sql->add_param("Masalah");
$sql->add_param("Usulan");
$sql->add_param("Sasaran");
$sql->add_param("Waktu");
$sql->add_param("Volume");
$sql->add_param("SatuanID");
$sql->add_param("Rupiah");
$sql->add_param("OPDID");
$sql->add_param_stamp();
$sql->add_param_userid();
$sql->add_where("RPJMDID", $id_rpjmd);
$sql->add_where("Tahun", $thn_renja);
$sql->add_where("UsulanLID", $id_usul);
if ( $mode_detail == "insert" ) {
$id_usul = ID_Usulan_Desa($id_rpjmd, $thn_renja);
$sql->add_param("RPJMDID", $id_rpjmd);
$sql->add_param("Tahun", $thn_renja);
$sql->add_param("UsulanLID", $id_usul);
$sql->add_param("KecID", $id_kec);
$sql->add_param("KelID", $id_kel);
$sql->add_param("BelID", $id_bel);
$sql->add_param("Kode", Kode_Usulan_Desa($thn_renja, $id_kel));
$sql->add_param("K_RKA", "CONCAT(Tahun,'-',Kode)", true);
$sql->InsertDB();
} else if ( $mode_detail == "update" ) {
$sql->UpdateDB();
} else if ( $mode_detail == "delete" ) {
$sql->DeleteDB();
}
if (in_array($mode_detail, ["insert","update"])) {
$db->Query("UPDATE mus_usulan_desa SET Lokasi2=Lokasi,Dusun2=Dusun,RT2=RT,Masalah2=Masalah,Usulan2=Usulan,Sasaran2=Sasaran,Waktu2=Waktu,Volume2=Volume,SatuanID2=SatuanID,Rupiah2=Rupiah WHERE RPJMDID='".$id_rpjmd."' AND Tahun='".$thn_renja."' AND UsulanLID='".$id_usul."' AND FUbah=0");
}
}
$obj = new Table($db);
$obj->set_query("SELECT R.*,CONCAT(R.Volume,' ',S.N_Satuan) N_Satuan FROM (SELECT *,IF(BAksi=0,'Belum Verifikasi','Ok') XKet,IF(BAksi=0,0,1) XAksi FROM mus_usulan_desa WHERE ".$qsql.") R LEFT JOIN para_satuan S ON (R.SatuanID=S.SatuanID)");
$obj->set_query_footer("SELECT R.*,CONCAT(R.Item,' Usulan') N_Satuan FROM (SELECT COUNT(*) Item,SUM(Rupiah) Rupiah FROM mus_usulan_desa WHERE ".$qsql.") R");
$obj->add_field("UsulanLID", "ID", "hid");
$obj->add_field("Kode", "Kode", "c");
$obj->add_field("Usulan", "Usulan Kegiatan", "awr");
$obj->add_field("Lokasi", "Lokasi", "awr");
$obj->add_field("N_Satuan", "Volume", "l");
$obj->add_field("Rupiah", "Anggaran", "nwr r", "rupiah", "rupiah");
$obj->add_field("Prio", "Prio", "c", "", "", "val-zerolast");
$obj->add_field("XKet", "Status", "l");
$obj->set_field_order("Usulan", "A");
$obj->set_row_color("BAksi", 1, "rsuccess");
$obj->set_row_color("BAksi", 2, "rdanger");
$obj->set_row_color("BAksi", 3, "rwarning");
if ($emus_enable) {
$obj->add_row_btn("clipboard", "Ubah", "MUsulDesaJS.keg_ubah");
$obj->add_row_btn("trash", "Hapus", "MUsulDesaJS.keg_hapus", "KelID", $id_kel);
$obj->set_func_btn("MUsulDesaJS.keg_tambah", "+ Usulan");
} else {
$obj->add_row_btn("clipboard", "Detail", "MUsulDesaJS.keg_ubah");
}
$obj->set_func_navi("MUsulDesaJS.data_query('tabel-keg')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEG");
} else if ( $data == "detail-keg" ) {
$enable = ($emus_enable) ? true : false;
$adetail = ['UsulanLID'=>0, 'Kode'=>"Usulan Baru"];
if ($id_usul > 0) {
$db->Query("SELECT * FROM mus_usulan_desa WHERE RPJMDID='".$id_rpjmd."' AND Tahun='".$thn_renja."' AND UsulanLID='".$id_usul."' LIMIT 1");
if ($db->Next()) $adetail = $db->AllRow();
}
$form = new Form($db);
$tkode = $form->textbox("_", "Kode", $adetail['Kode'], false, false);
$tlokasi = $form->textbox("_", "Lokasi", $adetail['Lokasi'], $enable, true, "text", "lokasi kegiatan");
$trt = $form->textbox("_", "RT", $adetail['RT'], $enable, true, "text", "rt dan rw");
$tdusun = $form->textbox("_", "Dusun", $adetail['Dusun'], $enable, true, "text", "nama dusun");
$tmasa = $form->textarea("_", "Masalah", $adetail['Masalah'], $enable, true, 2, "permasalahan");
$tusulan = $form->textarea("_", "Usulan", $adetail['Usulan'], $enable, true, 2, "usulan kegiatan");
$tsasa = $form->textbox("_", "Sasaran", $adetail['Sasaran'], $enable, true, "text", "sasaran / manfaat");
$twaktu = $form->textbox("_", "Waktu", $adetail['Waktu'], $enable, true, "text", "waktu pelaksanaan");
$topd = $form->option_db("_", "OPDID", $adetail['OPDID'], $enable, false, "vi_para90_opd", ["OPDID","Nama_OPD"], "IK=0 ORDER BY K_OPD", [0,"&nbsp;"]);
$tvol = $form->textbox("_", "Volume", $adetail['Volume'], $enable, true, "double", "nilai volume");
$tsatu = $form->option_db("_", "SatuanID", $adetail['SatuanID'], $enable, false, "para_satuan", ["SatuanID","N_Satuan"], "Aktif=1 ORDER BY N_Satuan", [0,"&nbsp;"]);
$trupiah = $form->textbox("_", "Rupiah", $adetail['Rupiah'], $enable, true, "double", "nilai anggaran");
$ajson['html'] = '<form id="formUsulDesa" novalidate="novalidate">
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label">Kode Usulan</label>
<div class="col-sm-3 col-lg-3">'.$tkode.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Lokasi">Lokasi Kegiatan</label>
<div class="col-sm-8 col-lg-9">'.$tlokasi.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Dusun">Dusun dan RT / RW</label>
<div class="col-sm-4 col-lg-5">'.$tdusun.'</div>
<div class="col-sm-4 col-lg-4">'.$trt.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Masalah">Permasalahan</label>
<div class="col-sm-8 col-lg-9">'.$tmasa.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Usulan">Usulan Kegiatan</label>
<div class="col-sm-8 col-lg-9">'.$tusulan.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Sasaran">Sasaran / Manfaat</label>
<div class="col-sm-8 col-lg-9">'.$tsasa.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Waktu">Waktu Pelaksanaan</label>
<div class="col-sm-8 col-lg-9">'.$twaktu.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="OPDID">Nama Perangkat Daerah</label>
<div class="col-sm-8 col-lg-9">'.$topd.'</div>
</div>
<div class="row mb-1"><div class="col"><hr class="my-1"></div></div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Volume">Volume Kegiatan</label>
<div class="col-sm-4 col-lg-4">'.$tvol.'</div>
<div class="col-sm-4 col-lg-5">'.$tsatu.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Rupiah">Perkiraan Anggaran</label>
<div class="col-sm-4 col-lg-4">'.$trupiah.'</div>
</div></form>
<input type="hidden" id="UsulanLID" value="'.$adetail['UsulanLID'].'" />
<input type="hidden" id="mode_detail" value="'.$mode_detail.'" />';
} else if ( $data == "default") {
echo '
<div class="fade-in">
<div class="card"><div class="card-header custom-style">Input Usulan Desa - Tahun Perencanaan '.$thn_renja.'</div><div class="card-body">
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_KEC" placeholder="Nama Kecamatan" type="text" readonly>
<input id="KecID" type="hidden" value="0">
<input id="Hak_Usulan" type="hidden" value="1">
<button class="btn btn-info btn-ganti" type="button" id="butKEC"><span><i class="bi-arrow-left-right"></span></i>Kecamatan</button>
</div>
</div>
</div>
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_KEL" placeholder="Nama Desa" type="text" readonly>
<input id="KelID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butKEL"><span><i class="bi-arrow-left-right"></span></i>Desa</button>
</div>
</div>
</div>
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_BEL" placeholder="Jenis Belanja" type="text" readonly>
<input id="BelID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butBEL"><span><i class="bi-arrow-left-right"></span></i>Belanja</button>
</div>
</div>
</div>
<div id="divKEC">&nbsp;</div>
<div id="divKEL">&nbsp;</div>
<div id="divBEL">&nbsp;</div>
<div id="divKEG">&nbsp;</div>
</div></div>
</div>';
}
send_json($ajson);
?>
+239
View File
@@ -0,0 +1,239 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/usul/hasil.php
Desc. : PHP - nput Hasil Usulan Desa
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 28th, 2011.
Last Modified : January 13th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/musrenbang.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\DB\SQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Table;
use siaupheng\fonia3\Web\Form;
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$mode = Param::Get("mode");
$mode_detail = Param::Get("mode_detail");
$emus_enable = true;
$id_rpjmd = $_SESSION['__WEB_APP']['RENC_RPJMDID'];
$thn_renja = $_SESSION['__WEB_APP']['RENC_THN'];
$id_kec = Param::Get("KecID", 0);
$id_kel = Param::Get("KelID", 0);
$id_opd = Param::Get("OPDID", 0);
$id_usul = Param::Get("UsulanLID", 0);
if ( in_array($data, ["tabel-kec","tabel-kel","tabel-opd","tabel-keg"]) ) {
$qsql = "Tahun='".$thn_renja."' AND JU IN (0,2)";
$msql = "Aktif=1";
if ( $data == "tabel-kec" ) {
$qsql .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND KecID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": "";
$msql .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND LokasiID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": " AND Level=1 AND LokasiID>2";
} else if ( $data == "tabel-kel" ) {
$qsql .= " AND KecID='".$id_kec."'";
$msql .= " AND Level=2 AND IndukID='".$id_kec."'";
} else if ( $data == "tabel-opd" ) {
$qsql .= " AND KecID='".$id_kec."' AND KelID='".$id_kel."'";
} else if ( $data == "tabel-keg" ) {
$qsql .= " AND KecID='".$id_kec."' AND KelID='".$id_kel."' AND OPDID='".$id_opd."'";
}
}
if ( $data == "tabel-kec" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.LokasiID KecID2,M.K_Lokasi,M.N_Lokasi FROM (SELECT * FROM para_lokasi WHERE ".$msql.") M LEFT JOIN (SELECT KecID,COUNT(DISTINCT KelID) ITEM_KEL,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY KecID) K ON (K.KecID=M.LokasiID)");
$obj->add_field("KecID2", "ID", "hid");
$obj->add_field("K_Lokasi", "Kode", "c");
$obj->add_field("N_Lokasi", "Nama Kecamatan", "awr");
$obj->add_field("ITEM_KEL", "Desa", "r", "rupiah");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("N_Lokasi", "A");
$obj->add_row_btn("save", "Desa", "MUsulHasilJS.kec_select");
$obj->set_func_navi("MUsulHasilJS.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.*,M.LokasiID KelID2,M.K_Lokasi,M.N_Lokasi FROM (SELECT * FROM para_lokasi WHERE ".$msql.") M LEFT JOIN (SELECT KelID,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY KelID) K ON (K.KelID=M.LokasiID)");
$obj->add_field("KelID2", "ID", "hid");
$obj->add_field("K_Lokasi", "Kode", "c");
$obj->add_field("N_Lokasi", "Nama Desa", "awr");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("N_Lokasi", "A");
$obj->add_row_btn("save", "OPD", "MUsulHasilJS.kel_select");
$obj->set_func_navi("MUsulHasilJS.data_query('tabel-kel')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEL");
} else if ( $data == "tabel-opd" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.OPDID OPDID2,M.K_OPD,M.N_OPD,IF(K.TOT_PRIO>0,1,0) W_OPD FROM (SELECT OPDID,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH,SUM(Prio) TOT_PRIO FROM mus_usulan_desa WHERE ".$qsql." GROUP BY OPDID) K LEFT JOIN (SELECT * FROM para90_opd WHERE ".$msql.") M ON (M.OPDID=K.OPDID)");
$obj->add_field("OPDID2", "ID", "hid");
$obj->add_field("K_OPD", "Kode", "c");
$obj->add_field("N_OPD", "Perangkat Daerah", "awr");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("K_OPD", "A");
$obj->set_row_color("W_OPD", 1, "rsuccess");
$obj->add_row_btn("save", "Usulan", "MUsulHasilJS.opd_select");
$obj->set_func_navi("MUsulHasilJS.data_query('tabel-opd')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divOPD");
} else if ( $data == "tabel-keg" ) {
if (in_array($mode_detail, ["update"])) {
$sql = new SQL($db);
$sql->set_table("mus_usulan_desa");
$sql->add_param("Prio");
$sql->add_where("RPJMDID", $id_rpjmd);
$sql->add_where("Tahun", $thn_renja);
$sql->add_where("UsulanLID", $id_usul);
$sql->UpdateDB();
}
$obj = new Table($db);
$obj->set_query("SELECT R.*,CONCAT(R.Volume,' ',S.N_Satuan) N_Satuan FROM (SELECT *,IF(Prio>0,1,0) XPrio FROM mus_usulan_desa WHERE ".$qsql.") R LEFT JOIN para_satuan S ON (R.SatuanID=S.SatuanID)");
$obj->set_query_footer("SELECT R.*,CONCAT(R.Item,' Usulan') N_Satuan FROM (SELECT COUNT(*) Item,SUM(Rupiah) Rupiah FROM mus_usulan_desa WHERE ".$qsql.") R");
$obj->add_field("UsulanLID", "ID", "hid");
$obj->add_field("Kode", "Kode", "c");
$obj->add_field("Usulan", "Usulan Kegiatan", "awr");
$obj->add_field("Lokasi", "Lokasi", "awr");
$obj->add_field("N_Satuan", "Volume", "l");
$obj->add_field("Rupiah", "Anggaran", "nwr r", "rupiah", "rupiah");
$obj->add_field("Prio", "Prio", "c", "", "", "val-zerolast");
$obj->set_field_order("Usulan", "A");
$obj->set_row_color("XPrio", 1, "rsuccess");
$obj->add_row_btn("clipboard", "Hasil", "MUsulHasilJS.keg_ubah");
$obj->set_func_navi("MUsulHasilJS.data_query('tabel-keg')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEG");
} else if ( $data == "detail-keg" ) {
$enable = ($emus_enable) ? true : false;
$adetail = ['UsulanLID'=>0, 'Kode'=>"Usulan Baru"];
if ($id_usul > 0) {
$db->Query("SELECT * FROM mus_usulan_desa WHERE RPJMDID='".$id_rpjmd."' AND Tahun='".$thn_renja."' AND UsulanLID='".$id_usul."' LIMIT 1");
if ($db->Next()) $adetail = $db->AllRow();
}
$form = new Form($db);
$tkode = $form->textbox("_", "Kode", $adetail['Kode'], false, false);
$tlokasi = $form->textbox("_", "Lokasi", $adetail['Lokasi'], false, false, "text", "lokasi kegiatan");
$trt = $form->textbox("_", "RT", $adetail['RT'], false, false, "text", "rt dan rw");
$tdusun = $form->textbox("_", "Dusun", $adetail['Dusun'], false, false, "text", "nama dusun");
$tmasa = $form->textarea("_", "Masalah", $adetail['Masalah'], false, false, 2, "permasalahan");
$tusulan = $form->textarea("_", "Usulan", $adetail['Usulan'], false, false, 2, "usulan kegiatan");
$tsasa = $form->textbox("_", "Sasaran", $adetail['Sasaran'], false, false, "text", "sasaran / manfaat");
$twaktu = $form->textbox("_", "Waktu", $adetail['Waktu'], false, false, "text", "waktu pelaksanaan");
$topd = $form->option_db("_", "OPDID", $adetail['OPDID'], false, false, "vi_para90_opd", ["OPDID","Nama_OPD"], "IK=0 ORDER BY K_OPD", [0,"&nbsp;"]);
$tvol = $form->textbox("_", "Volume", $adetail['Volume'], false, false, "double", "nilai volume");
$tsatu = $form->option_db("_", "SatuanID", $adetail['SatuanID'], false, false, "para_satuan", ["SatuanID","N_Satuan"], "Aktif=1 ORDER BY N_Satuan", [0,"&nbsp;"]);
$trupiah = $form->textbox("_", "Rupiah", $adetail['Rupiah'], false, false, "double", "nilai anggaran");
$tprio = $form->option("_", "Prio", $adetail['Prio'], $enable, false, MusPrio_Array());
$ajson['html'] = '<form id="formUsulDesa" novalidate="novalidate">
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label">Kode Usulan</label>
<div class="col-sm-3 col-lg-3">'.$tkode.'</div>
<label class="col-sm-3 col-lg-5 col-form-label text-end" for="Prio">Prioritas</label>
<div class="col-sm-2 col-lg-1">'.$tprio.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Lokasi">Lokasi Kegiatan</label>
<div class="col-sm-8 col-lg-9">'.$tlokasi.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Dusun">Dusun dan RT / RW</label>
<div class="col-sm-4 col-lg-5">'.$tdusun.'</div>
<div class="col-sm-4 col-lg-4">'.$trt.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Masalah">Permasalahan</label>
<div class="col-sm-8 col-lg-9">'.$tmasa.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Usulan">Usulan Kegiatan</label>
<div class="col-sm-8 col-lg-9">'.$tusulan.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Sasaran">Sasaran / Manfaat</label>
<div class="col-sm-8 col-lg-9">'.$tsasa.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Waktu">Waktu Pelaksanaan</label>
<div class="col-sm-8 col-lg-9">'.$twaktu.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="OPDID">Nama Perangkat Daerah</label>
<div class="col-sm-8 col-lg-9">'.$topd.'</div>
</div>
<div class="row mb-1"><div class="col"><hr class="my-1"></div></div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Volume">Volume Kegiatan</label>
<div class="col-sm-4 col-lg-4">'.$tvol.'</div>
<div class="col-sm-4 col-lg-5">'.$tsatu.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Rupiah">Perkiraan Anggaran</label>
<div class="col-sm-4 col-lg-4">'.$trupiah.'</div>
</div></form>
<input type="hidden" id="UsulanLID" value="'.$adetail['UsulanLID'].'" />
<input type="hidden" id="mode_detail" value="'.$mode_detail.'" />';
} else if ( $data == "default") {
echo '
<div class="fade-in">
<div class="card"><div class="card-header custom-style">Input Hasil Usulan Desa - Tahun Perencanaan '.$thn_renja.'</div><div class="card-body">
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_KEC" placeholder="Nama Kecamatan" type="text" readonly>
<input id="KecID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butKEC"><span><i class="bi-arrow-left-right"></span></i>Kecamatan</button>
</div>
</div>
</div>
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_KEL" placeholder="Nama Desa" type="text" readonly>
<input id="KelID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butKEL"><span><i class="bi-arrow-left-right"></span></i>Desa</button>
</div>
</div>
</div>
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_OPD" placeholder="Perangkat Daerah" type="text" readonly>
<input id="OPDID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butOPD"><span><i class="bi-arrow-left-right"></span></i>OPD</button>
</div>
</div>
</div>
<div id="divKEC">&nbsp;</div>
<div id="divKEL">&nbsp;</div>
<div id="divOPD">&nbsp;</div>
<div id="divKEG">&nbsp;</div>
</div></div>
</div>';
}
send_json($ajson);
?>
+235
View File
@@ -0,0 +1,235 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/usul/kec.php
Desc. : PHP - Usulan Kecamatan
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 28th, 2011.
Last Modified : January 13th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/musrenbang.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\DB\SQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Table;
use siaupheng\fonia3\Web\Form;
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$mode = Param::Get("mode");
$mode_detail = Param::Get("mode_detail");
$emus_enable = Param::Get("Hak_Usulan", 0);
$id_rpjmd = $_SESSION['__WEB_APP']['RENC_RPJMDID'];
$thn_renja = $_SESSION['__WEB_APP']['RENC_THN'];
$id_kec = Param::Get("KecID", 0);
$id_usul = Param::Get("UsulanLID", 0);
if ( in_array($data, ["tabel-kec","tabel-keg"]) ) {
$qsql = "Tahun='".$thn_renja."' AND JU=3";
$msql = "Aktif=1";
if ( $data == "tabel-kec" ) {
$qsql .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND KecID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": "";
$msql .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND LokasiID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": " AND Level=1 AND LokasiID>2";
} else if ( $data == "tabel-keg" ) {
$qsql .= " AND KecID='".$id_kec."'";
}
}
if ( $data == "tabel-kec" ) {
$f_usul = (in_array($_SESSION['__WEB_USER']['Level'],[0])) ? 1: 0;
if (in_array($_SESSION['__WEB_USER']['Level'],[2,7])) {
$f_usul = "IFNULL(H.Hak_Usulan,1)";
}
$qakses = "Tahun='".$thn_renja."'";
$qakses .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND KecID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": "";
$obj = new Table($db);
$obj->set_query("SELECT K.*,IFNULL(K.Waktu,'0000-00-00 00:00:00') Waktu0,M.LokasiID KecID2,M.K_Lokasi,M.N_Lokasi,".$f_usul." Hak_Usulan FROM (SELECT * FROM para_lokasi WHERE ".$msql.") M LEFT JOIN (SELECT KecID,COUNT(*) ITEM_KEG,SUM(Rupiah2) TOT_RUPIAH,MAX(DateStamp) Waktu FROM mus_usulan_desa WHERE ".$qsql." GROUP BY KecID) K ON (K.KecID=M.LokasiID) LEFT JOIN (SELECT KecID,Hak_Usulan FROM sippd_akses_mus WHERE ".$qakses." ORDER BY KecID) H ON (H.KecID=M.LokasiID)");
$obj->add_field("KecID2", "ID", "hid");
$obj->add_field("Hak_Usulan", "Akses", "hid");
$obj->add_field("K_Lokasi", "Kode", "c");
$obj->add_field("N_Lokasi", "Nama Kecamatan", "awr");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->add_field("Waktu0", "Terakhir Input", "c nwr", "sqljams", "", "val-tgljams");
$obj->set_field_order("N_Lokasi", "A");
$obj->add_row_btn("save", "Usulan", "MUsulKecJS.kec_select");
$obj->set_func_navi("MUsulKecJS.data_query('tabel-kec')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEC");
} else if ( $data == "tabel-keg" ) {
if (in_array($mode_detail, ["insert","update","delete"])) {
$sql = new SQL($db);
$sql->set_table("mus_usulan_desa");
$sql->add_param("Lokasi2");
$sql->add_param("Dusun2");
$sql->add_param("RT2");
$sql->add_param("Masalah2");
$sql->add_param("Usulan2");
$sql->add_param("Sasaran2");
$sql->add_param("Waktu2");
$sql->add_param("Volume2");
$sql->add_param("SatuanID2");
$sql->add_param("Rupiah2");
$sql->add_param("OPDID");
$sql->add_param("KelID");
$sql->add_param("FUbah", 1);//update oleh forum
$sql->add_param("JU", 3);//jenis usulan kecamatan
$sql->add_param_stamp();
$sql->add_param_userid();
$sql->add_where("RPJMDID", $id_rpjmd);
$sql->add_where("Tahun", $thn_renja);
$sql->add_where("UsulanLID", $id_usul);
if ( $mode_detail == "insert" ) {
$id_usul = ID_Usulan_Desa($id_rpjmd, $thn_renja);
$sql->add_param("RPJMDID", $id_rpjmd);
$sql->add_param("Tahun", $thn_renja);
$sql->add_param("UsulanLID", $id_usul);
$sql->add_param("KecID", $id_kec);
$sql->add_param("Kode", Kode_Usulan_Kec($thn_renja, $id_kec));
$sql->add_param("K_RKA", "CONCAT(Tahun,'-',Kode)", true);
$sql->InsertDB();
} else if ( $mode_detail == "update" ) {
$sql->UpdateDB();
} else if ( $mode_detail == "delete" ) {
$sql->DeleteDB();
}
if (in_array($mode_detail, ["insert","update"])) {
$db->Query("UPDATE mus_usulan_desa SET Lokasi=Lokasi2,Dusun=Dusun2,RT=RT2,Masalah=Masalah2,Usulan=Usulan2,Sasaran=Sasaran2,Waktu=Waktu2,Volume=Volume2,SatuanID=SatuanID2,Rupiah=Rupiah2 WHERE RPJMDID='".$id_rpjmd."' AND Tahun='".$thn_renja."' AND UsulanLID='".$id_usul."' AND FUbah=1 AND JU=3");
}
}
$obj = new Table($db);
$obj->set_query("SELECT R.*,CONCAT(R.Volume2,' ',S.N_Satuan) N_Satuan FROM (SELECT *,IF(BAksi=0,'Belum Verifikasi','Ok') XKet,IF(BAksi=0,0,1) XAksi FROM mus_usulan_desa WHERE ".$qsql.") R LEFT JOIN para_satuan S ON (R.SatuanID2=S.SatuanID)");
$obj->set_query_footer("SELECT R.*,CONCAT(R.Item,' Usulan') N_Satuan FROM (SELECT COUNT(*) Item,SUM(Rupiah2) Rupiah2 FROM mus_usulan_desa WHERE ".$qsql.") R");
$obj->add_field("UsulanLID", "ID", "hid");
$obj->add_field("Kode", "Kode", "c");
$obj->add_field("Usulan2", "Usulan Kegiatan", "awr");
$obj->add_field("Lokasi2", "Lokasi", "awr");
$obj->add_field("N_Satuan", "Volume", "l");
$obj->add_field("Rupiah2", "Anggaran", "nwr r", "rupiah", "rupiah");
$obj->add_field("Prio", "Prio", "c", "", "", "val-zerolast");
$obj->add_field("XKet", "Status", "l");
$obj->set_field_order("Usulan2", "A");
$obj->set_row_color("BAksi", 1, "rsuccess");
$obj->set_row_color("BAksi", 2, "rdanger");
$obj->set_row_color("BAksi", 3, "rwarning");
if ($emus_enable) {
$obj->add_row_btn("clipboard", "Ubah", "MUsulKecJS.keg_ubah");
$obj->add_row_btn("trash", "Hapus", "MUsulKecJS.keg_hapus", "KecID", $id_kec);
$obj->set_func_btn("MUsulKecJS.keg_tambah", "+ Usulan");
} else {
$obj->add_row_btn("clipboard", "Detail", "MUsulKecJS.keg_ubah");
}
$obj->set_func_navi("MUsulKecJS.data_query('tabel-keg')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEG");
} else if ( $data == "detail-keg" ) {
$enable = ($emus_enable) ? true : false;
$adetail = ['UsulanLID'=>0, 'Kode'=>"Usulan Baru"];
if ($id_usul > 0) {
$db->Query("SELECT * FROM mus_usulan_desa WHERE RPJMDID='".$id_rpjmd."' AND Tahun='".$thn_renja."' AND UsulanLID='".$id_usul."' LIMIT 1");
if ($db->Next()) $adetail = $db->AllRow();
}
$form = new Form($db);
$tkode = $form->textbox("_", "Kode", $adetail['Kode'], false, false);
$tlokasi = $form->textbox("_", "Lokasi2", $adetail['Lokasi2'], $enable, true, "text", "lokasi kegiatan");
$trt = $form->textbox("_", "RT2", $adetail['RT2'], $enable, true, "text", "rt dan rw");
$tdusun = $form->textbox("_", "Dusun2", $adetail['Dusun2'], $enable, true, "text", "nama dusun");
$tmasa = $form->textarea("_", "Masalah2", $adetail['Masalah2'], $enable, true, 2, "permasalahan");
$tusulan = $form->textarea("_", "Usulan2", $adetail['Usulan2'], $enable, true, 2, "usulan kegiatan");
$tsasa = $form->textbox("_", "Sasaran2", $adetail['Sasaran2'], $enable, true, "text", "sasaran / manfaat");
$twaktu = $form->textbox("_", "Waktu2", $adetail['Waktu2'], $enable, true, "text", "waktu pelaksanaan");
$topd = $form->option_db("_", "OPDID", $adetail['OPDID'], $enable, false, "vi_para90_opd", ["OPDID","Nama_OPD"], "IK=0 ORDER BY K_OPD", [0,"&nbsp;"]);
$tkel = $form->option_db("_", "KelID", $adetail['KelID'], $enable, true, "para_lokasi", ["LokasiID","N_Lokasi"], "Level=2 AND Aktif=1 AND IndukID='".$id_kec."' ORDER BY K_Lokasi", [0,"SATU KECAMATAN"]);
$tvol = $form->textbox("_", "Volume2", $adetail['Volume2'], $enable, true, "double", "nilai volume");
$tsatu = $form->option_db("_", "SatuanID2", $adetail['SatuanID2'], $enable, false, "para_satuan", ["SatuanID","N_Satuan"], "Aktif=1 ORDER BY N_Satuan", [0,"&nbsp;"]);
$trupiah = $form->textbox("_", "Rupiah2", $adetail['Rupiah2'], $enable, true, "double", "nilai anggaran");
$ajson['html'] = '<form id="formUsulDesa" novalidate="novalidate">
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label">Kode Usulan</label>
<div class="col-sm-3 col-lg-3">'.$tkode.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="KelID">Nama 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="Lokasi2">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="Dusun2">Dusun dan RT / RW</label>
<div class="col-sm-4 col-lg-5">'.$tdusun.'</div>
<div class="col-sm-4 col-lg-4">'.$trt.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Masalah2">Permasalahan</label>
<div class="col-sm-8 col-lg-9">'.$tmasa.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Usulan2">Usulan Kegiatan</label>
<div class="col-sm-8 col-lg-9">'.$tusulan.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Sasaran2">Sasaran / Manfaat</label>
<div class="col-sm-8 col-lg-9">'.$tsasa.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Waktu2">Waktu Pelaksanaan</label>
<div class="col-sm-8 col-lg-9">'.$twaktu.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="OPDID">Nama Perangkat Daerah</label>
<div class="col-sm-8 col-lg-9">'.$topd.'</div>
</div>
<div class="row mb-1"><div class="col"><hr class="my-1"></div></div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Volume2">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="Rupiah2">Perkiraan Anggaran</label>
<div class="col-sm-4 col-lg-4">'.$trupiah.'</div>
</div></form>
<input type="hidden" id="UsulanLID" value="'.$adetail['UsulanLID'].'" />
<input type="hidden" id="mode_detail" value="'.$mode_detail.'" />';
} else if ( $data == "default") {
echo '
<div class="fade-in">
<div class="card"><div class="card-header custom-style">Input Usulan Kecamatan - Tahun Perencanaan '.$thn_renja.'</div><div class="card-body">
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_KEC" placeholder="Nama Kecamatan" type="text" readonly>
<input id="KecID" type="hidden" value="0">
<input id="Hak_Usulan" type="hidden" value="1">
<button class="btn btn-info btn-ganti" type="button" id="butKEC"><span><i class="bi-arrow-left-right"></span></i>Kecamatan</button>
</div>
</div>
</div>
<div id="divKEC">&nbsp;</div>
<div id="divKEG">&nbsp;</div>
</div></div>
</div>';
}
send_json($ajson);
?>
+259
View File
@@ -0,0 +1,259 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/usul/prio.php
Desc. : PHP - Prioritas Usulan Desa
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 28th, 2011.
Last Modified : January 9th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/musrenbang.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\DB\SQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Table;
use siaupheng\fonia3\Web\Form;
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$mode = Param::Get("mode");
$mode_detail = Param::Get("mode_detail");
$emus_enable = Param::Get("Hak_Prioritas", 0);
$id_rpjmd = $_SESSION['__WEB_APP']['RENC_RPJMDID'];
$thn_renja = $_SESSION['__WEB_APP']['RENC_THN'];
$id_kec = Param::Get("KecID", 0);
$id_kel = Param::Get("KelID", 0);
$id_sidang = Param::Get("SidangID", 0);
$id_usul = Param::Get("UsulanLID", 0);
if ( in_array($data, ["tabel-kec","tabel-kel","tabel-sid","tabel-keg"]) ) {
$qsql = "Tahun='".$thn_renja."' AND JU IN (0,2)";
$msql = "Aktif=1";
if ( $data == "tabel-kec" ) {
$qsql .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND KecID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": "";
$msql .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND LokasiID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": " AND Level=1 AND LokasiID>2";
} else if ( $data == "tabel-kel" ) {
$qsql .= " AND KecID='".$id_kec."'";
$msql .= " AND Level=2 AND IndukID='".$id_kec."'";
} else if ( $data == "tabel-sid" ) {
$qsql .= " AND KecID='".$id_kec."' AND KelID='".$id_kel."'";
} else if ( $data == "tabel-keg" ) {
$qsql .= " AND KecID='".$id_kec."' AND KelID='".$id_kel."' AND OPDID IN (SELECT OPDID FROM para90_opd WHERE SidangID='".$id_sidang."')";
}
}
if ( $data == "tabel-kec" ) {
$f_usul = (in_array($_SESSION['__WEB_USER']['Level'],[0])) ? 1: 0;
if (in_array($_SESSION['__WEB_USER']['Level'],[2,7])) {
$f_usul = "IFNULL(H.Hak_Prioritas,1)";
}
$qakses = "Tahun='".$thn_renja."'";
$qakses .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND KecID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": "";
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.LokasiID KecID2,M.K_Lokasi,M.N_Lokasi,".$f_usul." Hak_Prioritas FROM (SELECT * FROM para_lokasi WHERE ".$msql.") M LEFT JOIN (SELECT KecID,COUNT(DISTINCT KelID) ITEM_KEL,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY KecID) K ON (K.KecID=M.LokasiID) LEFT JOIN (SELECT KecID,Hak_Prioritas FROM sippd_akses_mus WHERE ".$qakses." ORDER BY KecID) H ON (H.KecID=M.LokasiID)");
$obj->add_field("KecID2", "ID", "hid");
$obj->add_field("Hak_Prioritas", "Akses", "hid");
$obj->add_field("K_Lokasi", "Kode", "c");
$obj->add_field("N_Lokasi", "Nama Kecamatan", "awr");
$obj->add_field("ITEM_KEL", "Desa", "r", "rupiah");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("N_Lokasi", "A");
$obj->add_row_btn("save", "Desa", "MUsulPrioJS.kec_select");
$obj->set_func_navi("MUsulPrioJS.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.*,M.LokasiID KelID2,M.K_Lokasi,M.N_Lokasi FROM (SELECT * FROM para_lokasi WHERE ".$msql.") M LEFT JOIN (SELECT KelID,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY KelID) K ON (K.KelID=M.LokasiID)");
$obj->add_field("KelID2", "ID", "hid");
$obj->add_field("K_Lokasi", "Kode", "c");
$obj->add_field("N_Lokasi", "Nama Desa", "awr");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("N_Lokasi", "A");
$obj->add_row_btn("save", "Kelompok", "MUsulPrioJS.kel_select");
$obj->set_func_navi("MUsulPrioJS.data_query('tabel-kel')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEL");
} else if ( $data == "tabel-sid" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.SidangID SidangID2,M.N_Sidang,IF(K.ITEM_PRIO=7,1,0) W_SID FROM (SELECT * FROM para_sidang WHERE ".$msql.") M LEFT JOIN (SELECT O.SidangID,SUM(A.ITEM_KEG) ITEM_KEG,SUM(TOT_RUPIAH) TOT_RUPIAH,SUM(A.ITEM_PRIO) ITEM_PRIO FROM (SELECT OPDID,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH,SUM(IF(Prio>0,1,0)) ITEM_PRIO FROM mus_usulan_desa WHERE ".$qsql." GROUP BY OPDID) A LEFT JOIN para90_opd O ON (A.OPDID=O.OPDID) GROUP BY O.SidangID) K ON (K.SidangID=M.SidangID)");
$obj->add_field("SidangID2", "ID", "hid");
$obj->add_field("SidangID2", "Kode", "c");
$obj->add_field("N_Sidang", "Kelompok Sidang", "awr");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->add_field("ITEM_PRIO", "Prioritas", "r", "rupiah");
$obj->set_field_order("SidangID2", "A");
$obj->set_row_color("W_SID", 1, "rsuccess");
$obj->add_row_btn("save", "Usulan", "MUsulPrioJS.sid_select");
$obj->set_func_navi("MUsulPrioJS.data_query('tabel-sid')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divSID");
} else if ( $data == "tabel-keg" ) {
if ($mode_detail=="update") {
$i_prio = Param::Get("Prio", 0);
if ($i_prio>0) {
$ada = false;
$db->Query("SELECT * FROM mus_usulan_desa WHERE JU IN (0,2) AND RPJMDID='".$id_rpjmd."' AND Tahun='".$thn_renja."' AND KecID='".$id_kec."' AND KelID='".$id_kel."' AND OPDID IN (SELECT OPDID FROM para90_opd WHERE SidangID='".$id_sidang."') AND UsulanLID<>'".$id_usul."' AND Prio='".$i_prio."'");
if ($db->Next()) $ada = true;
if ($ada==true) $db->Query("UPDATE mus_usulan_desa SET Prio=IF(Prio+1>5,0,Prio+1) WHERE JU IN (0,2) AND RPJMDID='".$id_rpjmd."' AND Tahun='".$thn_renja."' AND KecID='".$id_kec."' AND KelID='".$id_kel."' AND OPDID IN (SELECT OPDID FROM para90_opd WHERE SidangID='".$id_sidang."') AND UsulanLID<>'".$id_usul."' AND Prio>='".$i_prio."'");
}
$db->Query("UPDATE mus_usulan_desa SET Prio='".$i_prio."' WHERE JU IN (0,2) AND RPJMDID='".$id_rpjmd."' AND Tahun='".$thn_renja."' AND UsulanLID='".$id_usul."'");
$db->Query("UPDATE mus_usulan_desa SET JU=2 WHERE RPJMDID='".$id_rpjmd."' AND Tahun='".$thn_renja."' AND KecID='".$id_kec."' AND KelID='".$id_kel."' AND Prio>0");
}
$obj = new Table($db);
$obj->set_query("SELECT R.*,CONCAT(R.Volume,' ',S.N_Satuan) N_Satuan FROM (SELECT * FROM mus_usulan_desa WHERE ".$qsql.") R LEFT JOIN para_satuan S ON (R.SatuanID=S.SatuanID)");
$obj->set_query_footer("SELECT R.*,CONCAT(R.Item,' Usulan') N_Satuan FROM (SELECT COUNT(*) Item,SUM(Rupiah) Rupiah FROM mus_usulan_desa WHERE ".$qsql.") R");
$obj->add_field("UsulanLID", "ID", "hid");
$obj->add_field("Kode", "Kode", "c");
$obj->add_field("Usulan", "Usulan Kegiatan", "awr");
$obj->add_field("Lokasi", "Lokasi", "awr");
$obj->add_field("N_Satuan", "Volume", "l");
$obj->add_field("Rupiah", "Anggaran", "nwr r", "rupiah", "rupiah");
if ($emus_enable) {
$obj->add_field("Prio", "Prio", "c select", "MUSPrio", "", "dom-select-zerolast");
} else {
$obj->add_field("Prio", "Prio", "c", "", "", "val-zerolast");
}
$obj->set_field_order("Prio", "A");
$obj->set_row_color("Prio", 1, "rp1");
$obj->set_row_color("Prio", 2, "rp2");
$obj->set_row_color("Prio", 3, "rp3");
$obj->set_row_color("Prio", 4, "rp4");
$obj->set_row_color("Prio", 5, "rp5");
$obj->add_row_btn("clipboard", "Detail", "MUsulPrioJS.keg_ubah");
$obj->set_func_navi("MUsulPrioJS.data_query('tabel-keg')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEG");
} else if ( $data == "detail-keg" ) {
$enable = ($emus_enable) ? true : false;
$adetail = ['UsulanLID'=>0, 'Kode'=>"Usulan Baru"];
if ($id_usul > 0) {
$db->Query("SELECT * FROM mus_usulan_desa WHERE RPJMDID='".$id_rpjmd."' AND Tahun='".$thn_renja."' AND UsulanLID='".$id_usul."' LIMIT 1");
if ($db->Next()) $adetail = $db->AllRow();
}
$form = new Form($db);
$tkode = $form->textbox("_", "Kode", $adetail['Kode'], false, false);
$tlokasi = $form->textbox("_", "Lokasi", $adetail['Lokasi'], false, false);
$trt = $form->textbox("_", "RT", $adetail['RT'], false, false, "text");
$tdusun = $form->textbox("_", "Dusun", $adetail['Dusun'], false, false, "text");
$tmasa = $form->textarea("_", "Masalah", $adetail['Masalah'], false, false, 2);
$tusulan = $form->textarea("_", "Usulan", $adetail['Usulan'], false, false, 2);
$tsasa = $form->textbox("_", "Sasaran", $adetail['Sasaran'], false, false, "text");
$twaktu = $form->textbox("_", "Waktu", $adetail['Waktu'], false, false, "text");
$topd = $form->option_db("_", "OPDID", $adetail['OPDID'], false, false, "vi_para90_opd", ["OPDID","Nama_OPD"], "IK=0 ORDER BY K_OPD", [0,"&nbsp;"]);
$tvol = $form->textbox("_", "Volume", $adetail['Volume'], false, false, "double");
$tsatu = $form->option_db("_", "SatuanID", $adetail['SatuanID'], false, false, "para_satuan", ["SatuanID","N_Satuan"], "Aktif=1 ORDER BY N_Satuan", [0,"&nbsp;"]);
$trupiah = $form->textbox("_", "Rupiah", $adetail['Rupiah'], false, false, "double");
$tprio = $form->option("_", "Prio", $adetail['Prio'], $enable, false, MusPrio_Array());
$ajson['html'] = '<form id="formUsulDesa" novalidate="novalidate">
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label">Kode Usulan</label>
<div class="col-sm-3 col-lg-3">'.$tkode.'</div>
<label class="col-sm-3 col-lg-5 col-form-label text-end" for="Prio">Prioritas</label>
<div class="col-sm-2 col-lg-1">'.$tprio.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Lokasi">Lokasi Kegiatan</label>
<div class="col-sm-8 col-lg-9">'.$tlokasi.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Dusun">Dusun dan RT / RW</label>
<div class="col-sm-4 col-lg-5">'.$tdusun.'</div>
<div class="col-sm-4 col-lg-4">'.$trt.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Masalah">Permasalahan</label>
<div class="col-sm-8 col-lg-9">'.$tmasa.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Usulan">Usulan Kegiatan</label>
<div class="col-sm-8 col-lg-9">'.$tusulan.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Sasaran">Sasaran / Manfaat</label>
<div class="col-sm-8 col-lg-9">'.$tsasa.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Waktu">Waktu Pelaksanaan</label>
<div class="col-sm-8 col-lg-9">'.$twaktu.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="OPDID">Nama Perangkat Daerah</label>
<div class="col-sm-8 col-lg-9">'.$topd.'</div>
</div>
<div class="row mb-1"><div class="col"><hr class="my-1"></div></div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Volume">Volume Kegiatan</label>
<div class="col-sm-4 col-lg-4">'.$tvol.'</div>
<div class="col-sm-4 col-lg-5">'.$tsatu.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Rupiah">Perkiraan Anggaran</label>
<div class="col-sm-4 col-lg-4">'.$trupiah.'</div>
</div></form>
<input type="hidden" id="UsulanLID" value="'.$adetail['UsulanLID'].'" />
<input type="hidden" id="mode_detail" value="'.$mode_detail.'" />';
} else if ( $data == "default") {
echo '
<div class="fade-in">
<div class="card"><div class="card-header custom-style">Input Prioritas Usulan Desa - Tahun Perencanaan '.$thn_renja.'</div><div class="card-body">
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_KEC" placeholder="Nama Kecamatan" type="text" readonly>
<input id="KecID" type="hidden" value="0">
<input id="Hak_Prioritas" type="hidden" value="1">
<button class="btn btn-info btn-ganti" type="button" id="butKEC"><span><i class="bi-arrow-left-right"></span></i>Kecamatan</button>
</div>
</div>
</div>
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_KEL" placeholder="Nama Desa" type="text" readonly>
<input id="KelID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butKEL"><span><i class="bi-arrow-left-right"></span></i>Desa</button>
</div>
</div>
</div>
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_SID" placeholder="Jenis Belanja" type="text" readonly>
<input id="SidangID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butSID"><span><i class="bi-arrow-left-right"></span></i>Sidang</button>
</div>
</div>
</div>
<div id="divKEC">&nbsp;</div>
<div id="divKEL">&nbsp;</div>
<div id="divSID">&nbsp;</div>
<div id="divKEG">&nbsp;</div>
</div></div>
</div>';
}
send_json($ajson);
?>
+260
View File
@@ -0,0 +1,260 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/usul/valid.php
Desc. : PHP - Validasi Usulan Desa
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 28th, 2011.
Last Modified : January 13th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/musrenbang.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\DB\SQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Table;
use siaupheng\fonia3\Web\Form;
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$mode = Param::Get("mode");
$mode_detail = Param::Get("mode_detail");
$emus_enable = true;
$id_rpjmd = $_SESSION['__WEB_APP']['RENC_RPJMDID'];
$thn_renja = $_SESSION['__WEB_APP']['RENC_THN'];
$id_kec = Param::Get("KecID", 0);
$id_kel = Param::Get("KelID", 0);
$id_bel = Param::Get("BelID", 0);
$id_usul = Param::Get("UsulanLID", 0);
if ( in_array($data, ["tabel-kec","tabel-kel","tabel-bel","tabel-keg"]) ) {
$qsql = "Tahun='".$thn_renja."' AND JU IN (0,2)";
$msql = "Aktif=1";
if ( $data == "tabel-kec" ) {
$qsql .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND KecID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": "";
$msql .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND LokasiID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": " AND Level=1 AND LokasiID>2";
} else if ( $data == "tabel-kel" ) {
$qsql .= " AND KecID='".$id_kec."'";
$msql .= " AND Level=2 AND IndukID='".$id_kec."'";
} else if ( $data == "tabel-bel" ) {
$qsql .= " AND KecID='".$id_kec."' AND KelID='".$id_kel."'";
} else if ( $data == "tabel-keg" ) {
$qsql .= " AND KecID='".$id_kec."' AND KelID='".$id_kel."' AND BelID='".$id_bel."'";
}
}
if ( $data == "tabel-kec" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.LokasiID KecID2,M.K_Lokasi,M.N_Lokasi,IF(K.ITEM_KEG=K.ITEM_DONE,1,0) W_DONE FROM (SELECT * FROM para_lokasi WHERE ".$msql.") M LEFT JOIN (SELECT KecID,COUNT(DISTINCT KelID) ITEM_KEL,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH,SUM(IF(BAksi=1,1,0)) ITEM_DONE FROM mus_usulan_desa WHERE ".$qsql." GROUP BY KecID) K ON (K.KecID=M.LokasiID)");
$obj->add_field("KecID2", "ID", "hid");
$obj->add_field("K_Lokasi", "Kode", "c");
$obj->add_field("N_Lokasi", "Nama Kecamatan", "awr");
$obj->add_field("ITEM_KEL", "Desa", "r", "rupiah");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("ITEM_DONE", "Validasi", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("N_Lokasi", "A");
$obj->set_row_color("W_DONE", 1, "rsuccess");
$obj->add_row_btn("save", "Desa", "MUsulValidJS.kec_select");
$obj->set_func_navi("MUsulValidJS.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.*,M.LokasiID KelID2,M.K_Lokasi,M.N_Lokasi,IF(K.ITEM_KEG=K.ITEM_DONE,1,0) W_DONE FROM (SELECT * FROM para_lokasi WHERE ".$msql.") M LEFT JOIN (SELECT KelID,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH,SUM(IF(BAksi=1,1,0)) ITEM_DONE FROM mus_usulan_desa WHERE ".$qsql." GROUP BY KelID) K ON (K.KelID=M.LokasiID)");
$obj->add_field("KelID2", "ID", "hid");
$obj->add_field("K_Lokasi", "Kode", "c");
$obj->add_field("N_Lokasi", "Nama Desa", "awr");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("ITEM_DONE", "Validasi", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("N_Lokasi", "A");
$obj->set_row_color("W_DONE", 1, "rsuccess");
$obj->add_row_btn("save", "Belanja", "MUsulValidJS.kel_select");
$obj->set_func_navi("MUsulValidJS.data_query('tabel-kel')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEL");
} else if ( $data == "tabel-bel" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.BelID BelID2,M.K_Belanja,M.N_Belanja,IF(K.ITEM_KEG=K.ITEM_DONE,1,0) W_DONE FROM (SELECT * FROM para_belanja WHERE ".$msql.") M LEFT JOIN (SELECT BelID,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH,SUM(IF(BAksi=1,1,0)) ITEM_DONE FROM mus_usulan_desa WHERE ".$qsql." GROUP BY BelID) K ON (K.BelID=M.BelID)");
$obj->add_field("BelID2", "ID", "hid");
$obj->add_field("K_Belanja", "Kode", "c");
$obj->add_field("N_Belanja", "Jenis Belanja", "awr");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("ITEM_DONE", "Validasi", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("K_Belanja", "A");
$obj->set_row_color("W_DONE", 1, "rsuccess");
$obj->add_row_btn("save", "Usulan", "MUsulValidJS.bel_select");
$obj->set_func_navi("MUsulValidJS.data_query('tabel-bel')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divBEL");
} else if ( $data == "tabel-keg" ) {
if (in_array($mode_detail, ["update"])) {
$sql = new SQL($db);
$sql->set_table("mus_usulan_desa");
$sql->add_param("Lokasi");
$sql->add_param("Dusun");
$sql->add_param("RT");
$sql->add_param("Masalah");
$sql->add_param("Usulan");
$sql->add_param("Sasaran");
$sql->add_param("Waktu");
$sql->add_param("Volume");
$sql->add_param("SatuanID");
$sql->add_param("Rupiah");
$sql->add_param("OPDID");
$sql->add_param("BAksi", 1);//todo: hanya ada 1 aksi oleh bappeda
$sql->add_param_stamp("Verify_Stamp");
$sql->add_param_userid("Verify_UserID");
$sql->add_where("RPJMDID", $id_rpjmd);
$sql->add_where("Tahun", $thn_renja);
$sql->add_where("UsulanLID", $id_usul);
$sql->UpdateDB();
$db->Query("UPDATE mus_usulan_desa SET Lokasi2=Lokasi,Dusun2=Dusun,RT2=RT,Masalah2=Masalah,Usulan2=Usulan,Sasaran2=Sasaran,Waktu2=Waktu,Volume2=Volume,SatuanID2=SatuanID,Rupiah2=Rupiah WHERE RPJMDID='".$id_rpjmd."' AND Tahun='".$thn_renja."' AND UsulanLID='".$id_usul."' AND FUbah=0");
}
$obj = new Table($db);
$obj->set_query("SELECT R.*,CONCAT(R.Volume,' ',S.N_Satuan) N_Satuan FROM (SELECT *,IF(BAksi=0,'Belum Verifikasi','Ok') XKet,IF(BAksi=0,0,1) XAksi FROM mus_usulan_desa WHERE ".$qsql.") R LEFT JOIN para_satuan S ON (R.SatuanID=S.SatuanID)");
$obj->set_query_footer("SELECT R.*,CONCAT(R.Item,' Usulan') N_Satuan FROM (SELECT COUNT(*) Item,SUM(Rupiah) Rupiah FROM mus_usulan_desa WHERE ".$qsql.") R");
$obj->add_field("UsulanLID", "ID", "hid");
$obj->add_field("Kode", "Kode", "c");
$obj->add_field("Usulan", "Usulan Kegiatan", "awr");
$obj->add_field("Lokasi", "Lokasi", "awr");
$obj->add_field("N_Satuan", "Volume", "l");
$obj->add_field("Rupiah", "Anggaran", "nwr r", "rupiah", "rupiah");
$obj->add_field("Prio", "Prio", "c", "", "", "val-zerolast");
$obj->add_field("XKet", "Status", "l");
$obj->set_field_order("Usulan", "A");
$obj->set_row_color("XAksi", 1, "rsuccess");
$obj->add_row_btn("clipboard", "Verifikasi", "MUsulValidJS.keg_ubah");
$obj->set_func_navi("MUsulValidJS.data_query('tabel-keg')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEG");
} else if ( $data == "detail-keg" ) {
$enable = ($emus_enable) ? true : false;
$adetail = ['UsulanLID'=>0, 'Kode'=>"Usulan Baru"];
if ($id_usul > 0) {
$db->Query("SELECT * FROM mus_usulan_desa WHERE RPJMDID='".$id_rpjmd."' AND Tahun='".$thn_renja."' AND UsulanLID='".$id_usul."' LIMIT 1");
if ($db->Next()) $adetail = $db->AllRow();
}
$form = new Form($db);
$tkode = $form->textbox("_", "Kode", $adetail['Kode'], false, false);
$tlokasi = $form->textbox("_", "Lokasi", $adetail['Lokasi'], $enable, true, "text", "lokasi kegiatan");
$trt = $form->textbox("_", "RT", $adetail['RT'], $enable, true, "text", "rt dan rw");
$tdusun = $form->textbox("_", "Dusun", $adetail['Dusun'], $enable, true, "text", "nama dusun");
$tmasa = $form->textarea("_", "Masalah", $adetail['Masalah'], $enable, true, 2, "permasalahan");
$tusulan = $form->textarea("_", "Usulan", $adetail['Usulan'], $enable, true, 2, "usulan kegiatan");
$tsasa = $form->textbox("_", "Sasaran", $adetail['Sasaran'], $enable, true, "text", "sasaran / manfaat");
$twaktu = $form->textbox("_", "Waktu", $adetail['Waktu'], $enable, true, "text", "waktu pelaksanaan");
$topd = $form->option_db("_", "OPDID", $adetail['OPDID'], $enable, false, "vi_para90_opd", ["OPDID","Nama_OPD"], "IK=0 ORDER BY K_OPD", [0,"&nbsp;"]);
$tvol = $form->textbox("_", "Volume", $adetail['Volume'], $enable, true, "double", "nilai volume");
$tsatu = $form->option_db("_", "SatuanID", $adetail['SatuanID'], $enable, false, "para_satuan", ["SatuanID","N_Satuan"], "Aktif=1 ORDER BY N_Satuan", [0,"&nbsp;"]);
$trupiah = $form->textbox("_", "Rupiah", $adetail['Rupiah'], $enable, true, "double", "nilai anggaran");
$tprio = $form->option("_", "Prio", $adetail['Prio'], false, false, MusPrio_Array());
$ajson['html'] = '<form id="formUsulDesa" novalidate="novalidate">
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label">Kode Usulan</label>
<div class="col-sm-3 col-lg-3">'.$tkode.'</div>
<label class="col-sm-3 col-lg-5 col-form-label text-end" for="Prio">Prioritas</label>
<div class="col-sm-2 col-lg-1">'.$tprio.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Lokasi">Lokasi Kegiatan</label>
<div class="col-sm-8 col-lg-9">'.$tlokasi.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Dusun">Dusun dan RT / RW</label>
<div class="col-sm-4 col-lg-5">'.$tdusun.'</div>
<div class="col-sm-4 col-lg-4">'.$trt.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Masalah">Permasalahan</label>
<div class="col-sm-8 col-lg-9">'.$tmasa.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Usulan">Usulan Kegiatan</label>
<div class="col-sm-8 col-lg-9">'.$tusulan.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Sasaran">Sasaran / Manfaat</label>
<div class="col-sm-8 col-lg-9">'.$tsasa.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Waktu">Waktu Pelaksanaan</label>
<div class="col-sm-8 col-lg-9">'.$twaktu.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="OPDID">Nama Perangkat Daerah</label>
<div class="col-sm-8 col-lg-9">'.$topd.'</div>
</div>
<div class="row mb-1"><div class="col"><hr class="my-1"></div></div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Volume">Volume Kegiatan</label>
<div class="col-sm-4 col-lg-4">'.$tvol.'</div>
<div class="col-sm-4 col-lg-5">'.$tsatu.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Rupiah">Perkiraan Anggaran</label>
<div class="col-sm-4 col-lg-4">'.$trupiah.'</div>
</div></form>
<input type="hidden" id="UsulanLID" value="'.$adetail['UsulanLID'].'" />
<input type="hidden" id="mode_detail" value="'.$mode_detail.'" />';
} else if ( $data == "default") {
echo '
<div class="fade-in">
<div class="card"><div class="card-header custom-style">Verifikasi Bappeda atas Usulan Desa - Tahun Perencanaan '.$thn_renja.'</div><div class="card-body">
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_KEC" placeholder="Nama Kecamatan" type="text" readonly>
<input id="KecID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butKEC"><span><i class="bi-arrow-left-right"></span></i>Kecamatan</button>
</div>
</div>
</div>
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_KEL" placeholder="Nama Desa" type="text" readonly>
<input id="KelID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butKEL"><span><i class="bi-arrow-left-right"></span></i>Desa</button>
</div>
</div>
</div>
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_BEL" placeholder="Jenis Belanja" type="text" readonly>
<input id="BelID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butBEL"><span><i class="bi-arrow-left-right"></span></i>Belanja</button>
</div>
</div>
</div>
<div id="divKEC">&nbsp;</div>
<div id="divKEL">&nbsp;</div>
<div id="divBEL">&nbsp;</div>
<div id="divKEG">&nbsp;</div>
</div></div>
</div>';
}
send_json($ajson);
?>
+130
View File
@@ -0,0 +1,130 @@
/*******************************************************************
Module : /assets/css/musrenbang.css
Desc. : CSS Custom Musrenbang
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : December 20th, 2007.
Last Modified : January 21st, 2024.
(c) 2009 - 2024, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
@media print {
.pagebreak { page-break-before: always; display: none; }
}
@page {
margin-top: 1.2cm;
margin-bottom: 1.2cm;
margin-left: 2cm;
margin-right: 2cm;
size: landscape;
}
.pagebreak { text-align: center; }
div.print-body {
/*font-family: 'DejaVu Sans Condensed';*/
font-size: 10pt;
line-height: 1;
width: 100%;
color: #000;
}
div.print-body p { margin: 0; padding: 0; padding-bottom: 10px; }
p.judul { text-align: center; font-size: 1.2em; font-weight: bold; }
p.indent { font-size: 1.1em; text-indent: 3em; text-align: justify; text-justify: inter-word; }
p.normal { font-size: 1.1em; }
p.center { font-size: 1.1em; text-align: center; }
ul.nomor {
font-size: 1.1em;
list-style: decimal outside none;
margin: 0;
padding-left: 20px;
}
ul.nomor li {
margin: 3px 0;
}
hr.lamp { border-top: 1px solid #000; }
table.footer {
width: 100%;
font-family: sans-serif;
font-size: 9pt;
color: #333;
border-top: 1px solid #ccc;
}
table.footer td { padding-top: 2px; }
table.normal {
width: 100%;
font-size: 1.1em;
border: 0;
}
table.indent-ba {
margin-left: 1.5em;
}
table {
border-spacing: 0;
border-collapse: collapse;
}
table tr.small-header td {
font-size: .6em;
font-style: italic;
}
td { vertical-align: top; }
td.kolom1 { width: 26%; }
td.kolom2 { width: 2%; }
td.kolom3 { width: 12%; }
td.kolom4 { width: 18%; }
td.justify { text-align: justify; text-justify: inter-word; }
td.nopad { padding-left: 0; }
table.lamp {
width: 60%;
font-size: 1.1em;
margin-right: 0;
margin-left: auto;
}
table.lamp-land {
width: 40%;
font-size: 1.1em;
margin-right: 0;
margin-left: auto;
}
table.ttd {
width: 33%;
font-size: 1.1em;
margin-right: 0;
margin-left: auto;
margin-top: 5px;
}
table.ttd td {
text-align: center;
}
table.garis {
width: 100%;
font-size: 1em;
border: 1px solid #ccc;
border-spacing: 0;
border-collapse: collapse;
}
table.garis th, table.garis td {
text-align: left;
border: 1px solid #ccc;
padding: 2mm;
}
table.garis th {
text-align: center;
font-weight: bold;
background-color: #ddd;
white-space: nowrap;
}
table.garis td { padding-top: 1.2mm; padding-bottom: 1.2mm; vertical-align: top; }
table tr.kec td { background-color: #00B7EF; text-transform: uppercase; }
table tr.desa td { background-color: #FFF200; text-transform: uppercase; }
table tr.forum td { background-color: #A7DA4E; text-transform: uppercase; }
table tr.opd td { background-color: #ccc; text-transform: uppercase; }
table tr.bel td { background-color: #A2FFFF; text-transform: uppercase; }
+81
View File
@@ -0,0 +1,81 @@
/*******************************************************************
Module : /assets/css/pdf-usulan.css
Desc. : CSS Class for PDF Usulan
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 7th, 2008.
Last Modified : January 20th, 2020.
(c) 2008 - 2020, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
body {
font-family: 'DejaVu Sans Condensed';
font-size: 11pt;
width: 100%;
color: #000;
}
p { margin: 0; padding: 0; padding-bottom: 10px; }
p.judul { text-align: center; font-weight: bold; }
table.footer {
width: 100%;
font-family: sans-serif;
font-size: 9pt;
color: #333;
border-top: 1px solid #ccc;
}
table.garis {
width: 100%;
border: 1px solid #ccc;
border-spacing: 0;
border-collapse: collapse;
}
table.garis th, table.garis td {
font-size: 9pt;
text-align: left;
border: 1px solid #ccc;
padding: 2mm;
}
table.garis th {
font-size: 10pt;
text-align: center;
font-weight: bold;
background-color: #ddd;
}
table.garis td { padding-top: 1.2mm; padding-bottom: 1.2mm; }
table.ttd {
width: 33%;
margin-right: 0;
margin-left: auto;
margin-top: 5px;
}
table.ttd td {
text-align: center;
font-size: 10pt;
}
table td.l { text-align: left; }
table td.c { text-align: center; }
table td.r { text-align: right; }
table td.b { font-weight: bold; }
table td.i { font-style: italic; }
table td.small { font-size: .65em; }
table td.bi { font-weight: bold; font-style: italic; background-color: #F0F0F0; }
table tr.kec td { background-color: #00B7EF; text-transform: uppercase; }
table tr.desa td { background-color: #FFF200; text-transform: uppercase; }
table tr.forum td { background-color: #A7DA4E; text-transform: uppercase; }
table tr.opd td { background-color: #ccc; text-transform: uppercase; }
table tr.bel td { background-color: #A2FFFF; text-transform: uppercase; }
table td.kotak { width: 6.5%; }
table td.kotak table { border: 1px solid #000; width: 100%; }
table td.kotak table td { font-size: 11pt; border: none; }
table td.kotakh { width: 5%; }
table td.kotakh table { border: 1px solid #000; width: 100%; }
table td.kotakh table td { font-size: 10pt; border: none; text-align: center; padding: 0; }
+54
View File
@@ -0,0 +1,54 @@
/*******************************************************************
Module : /assets/css/styles.css
Desc. : CSS Custom
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : December 20th, 2007.
Last Modified : January 21st, 2024.
(c) 2009 - 2024, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
:root {
--bs-body-font-size: 1rem;
--bs-body-line-height: 1.2;
}
div.note-editor.card {
margin-bottom: 0 !important;
border: unset !important;
}
button.btn-ganti {
box-shadow: none !important;
padding-top: 0;
padding-bottom: 0;
width: 9.8em;
text-align: left;
}
button.btn-ganti span {
position: relative;
left: -12px;
display: inline-block;
padding: 3px 8px;
background: rgba(0,0,0,0.15);
height: 100%;
vertical-align: middle;
}
table>tbody tr.rp1 td:not(:last-child) { background-color:#0033ff; color: white; }
table>tbody tr.rp2 td:not(:last-child) { background-color:#0066ff; color: white; }
table>tbody tr.rp3 td:not(:last-child) { background-color:#0099ff; color: white; }
table>tbody tr.rp4 td:not(:last-child) { background-color:#00ccff; }
table>tbody tr.rp5 td:not(:last-child) { background-color:#00ffff; }
table button.plus-circle { background-color: var(--success); }
table button.minus-circle { background-color: var(--danger); }
table button.reload { background-color: var(--secondary); }
table a.plus-circle i { color: var(--success); }
table a.minus-circle i { color: var(--danger); }
table a.reload i { color: var(--secondary); }
/*.navbar-nav .dropdown-menu {
width: 280px !important;
}*/
Binary file not shown.

After

Width:  |  Height:  |  Size: 304 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

+32
View File
@@ -0,0 +1,32 @@
/*******************************************************************
Module : /assets/locale/fonia.id.js
Desc. : JS - Fonia Module Locale
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : January 28th, 2013.
Last Modofied : November 22nd, 2019
(c) 2013 - 2019, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
if (typeof FoniaJS !== "undefined") {
FoniaJS.locale('id', {
Fonia: {
sess_expire: 'Session Anda telah berakhir, silakan login kembali!',
page404: 'Halaman aplikasi belum tersedia!',
input_passwd: 'Silakan masukkan Password!',
input_userid: 'Silakan masukkan User ID!',
auth_super: 'Persetujuan Supervisor',
auth_user: 'Validasi Operator',
auth_wait_msg: 'Menunggu disetujui oleh<br>Supervisor Anda...',
cancel: 'Batal',
auth_fail: 'Proses gagal!<br>Menunggu terlalu lama ...',
auth_success: 'Proses disetujui!',
but_add: 'Tambah',
but_edit: 'Ubah'
}
});
}
+85
View File
@@ -0,0 +1,85 @@
/*******************************************************************
Module : /assets/locale/moment.id.js
Desc. : JS - Moment Locale
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : January 28th, 2013.
Last Modofied : November 22nd, 2019
(c) 2013 - 2019, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
if (typeof moment !== "undefined") {
moment.locale('id', {
months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),
monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),
weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
longDateFormat : {
LT : 'HH.mm',
LTS : 'HH.mm.ss',
L : 'DD-MM-YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY [pukul] HH.mm',
LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
},
meridiemParse: /pagi|siang|sore|malam/,
meridiemHour : function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (meridiem === 'pagi') {
return hour;
} else if (meridiem === 'siang') {
return hour >= 11 ? hour : hour + 12;
} else if (meridiem === 'sore' || meridiem === 'malam') {
return hour + 12;
}
},
meridiem : function (hours, minutes, isLower) {
if (hours < 11) {
return 'pagi';
} else if (hours < 15) {
return 'siang';
} else if (hours < 19) {
return 'sore';
} else {
return 'malam';
}
},
calendar : {
sameDay : '[Hari ini pukul] LT',
nextDay : '[Besok pukul] LT',
nextWeek : 'dddd [pukul] LT',
lastDay : '[Kemarin pukul] LT',
lastWeek : 'dddd [lalu pukul] LT',
sameElse : 'L'
},
relativeTime : {
future : 'dalam %s',
past : '%s yang lalu',
s : 'beberapa detik',
ss : '%d detik',
m : 'semenit',
mm : '%d menit',
h : 'sejam',
hh : '%d jam',
d : 'sehari',
dd : '%d hari',
M : 'sebulan',
MM : '%d bulan',
y : 'setahun',
yy : '%d tahun'
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 7th is the first week of the year.
}
});
moment.locale('id');
}
+53
View File
@@ -0,0 +1,53 @@
<!------------------------------------------------------------------
Module : /assets/templates/404.php
Desc. : HTML5 Page - Halaman Template Error 404
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : February 17th, 2020.
(c) 2020, 3FONIA Software; WWW.3FONIA.COM.
------------------------------------------------------------------->
<!DOCTYPE html>
<html lang="en">
<head>
<title>[_APP_NAME_VER_] - Error 404</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="PhpED + FW9 @ 3FONIA Software"/>
<meta name="author" content="Siau Pheng &lt;siaupheng[at]3fonia.com&gt;"/>
<meta name="description" content="[_APP_NAME_VER_], [_APP_NAMES_]" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<link rel="icon" href="[_WEB_PATH_]assets/images/logo150.png" type="image/png" />
<link rel="shortcut icon" href="[_WEB_PATH_]assets/images/logo150.png" type="image/png" />
</head>
<body class="min-vh-100 d-flex flex-row align-items-center">
<div class="container">
<div class="row justify-content-center">
<div class="col-xl-4 col-md-8">
<div class="card-group">
<div class="card">
<div class="card-body">
<div class="mb-2">
<img class="mx-auto d-block" src="[_WEB_PATH_]assets/images/logo300.png" title="[_REG_NAME_UP_]">
<div class="text-center pt-2 pb-2"><span class="reg_app1">[_APP_NAME_]</span><br><span class="reg_app2">Ver. [_APP_VER_]</span></div>
</div>
<div class="mb-2 mx-auto d-block text-center">
<div class="fs-4 text-danger">4.0.4</div>
<div class="fs-5 text-info">Modul atau bagian aplikasi yang diakses tidak ditemukan !</div>
</div>
<div class="text-center pt-2 pb-2 d-none" id="divLoginMsg">&nbsp;</div>
<div class="pt-4">
<div class="text-center">&reg; [_CREATOR_YEAR_]. [_REG_NAME_]</div>
<div class="text-center">All Rights Reserved.</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
+106
View File
@@ -0,0 +1,106 @@
<!------------------------------------------------------------------
Module : /assets/templates/index.php
Desc. : HTML Page - Halaman Template / Themes
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 10th, 2008.
Last Modified : January 15th, 2024.
(c) 2008 - 2024, 3FONIA Software; WWW.3FONIA.COM.
------------------------------------------------------------------->
<!DOCTYPE html>
<html lang="en">
<head>
<title>[_APP_NAME_VER_]</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="PhpED + FW9 @ 3FONIA Software"/>
<meta name="author" content="Siau Pheng &lt;siaupheng[at]3fonia.com&gt;"/>
<meta name="description" content="[_APP_NAME_VER_], [_APP_NAMES_]" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<link rel="icon" href="[_WEB_PATH_]assets/images/logo150.png" type="image/png" />
<link rel="shortcut icon" href="[_WEB_PATH_]assets/images/logo150.png" type="image/png" />
</head>
<body>
<div class="modal fade" id="sidebarMain" tabindex="-1" aria-labelledby="" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<img src="[_WEB_PATH_]assets/images/logo-apps.png" title="[_APP_NAME_]">
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"><i class="fs-1 bi-x-lg"></i></button>
</div>
<div class="modal-body">
<nav class="sidebar card py-2 mb-4"><ul class="nav flex-column">[_NAVI_SIDEBAR_]</ul></nav>
</div>
</div>
</div>
</div>
<div class="wrapper d-flex flex-column min-vh-100">
<header class="fixed-top navbar-custom">
<nav class="navbar navbar-expand-lg">
<div class="container-fluid">
<div class="navbar-toggler btn p-0 d-lg-none"><a href="#" data-bs-toggle="modal" data-bs-target="#sidebarMain"><i class="icon-md icon-3xl bi-list"></i></a></div>
<div class="collapse navbar-collapse">
<ul class="navbar-nav navbar-nav-scroll me-auto">[_NAVI_HEADER_]</ul>
</div>
<ul class="nav flex-nowrap align-items-center ms-sm-3 list-unstyled">
<li class="nav-item d-md-none d-lg-block d-flex align-items-center" id="liPeriode">&nbsp;</li>
<li class="nav-item mx-2 dropdown">
<a class="nav-link" data-bs-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><i class="fs-4 bi-bell"></i><span class="position-absolute translate-middle badge rounded-pill bg-danger" id="DDNotifCount">0</span></a>
<div class="dropdown-menu dropdown-menu-end dropdown-menu-lg pt-0" id="DDNotif">
<div class="dropdown-header bg-light"><strong>Anda belum punya pesan</strong></div>
</div>
</li>
<li class="nav-item ms-2 dropdown">
<a class="nav-link btn p-0" id="profileDD" role="button" data-bs-auto-close="outside" data-bs-display="static" data-bs-toggle="dropdown" aria-expanded="false"><span class="badge-profile"></span><img class="icon-md rounded-5" src="[_WEB_PATH_]assets/images/[_USER_IMG_]" title="[_USER_NAME_]"></a>
<ul class="dropdown-menu dropdown-menu-end dropdown-profile pt-3 small me-md-n3" aria-labelledby="profileDD">
<li class="dropdown-item-text">
<div class="d-flex text-black">
<div class="flex-shrink-0"><img src="[_WEB_PATH_]assets/images/[_USER_IMG_]" class="icon-lg"></div>
<div class="flex-grow-1 ms-3">
<div>[_USER_USER_]</div>
<div class="fs-6">[_USER_NAME_]</div>
<div class="small">[_USER_POSISI_]</div>
</div>
</div>
</li>
[_MENU_MODUL_]
<li class="dropdown-divider"></li>
<li><a class="dropdown-item slink" id="HomeLink"><i class="me-2 bi-house"></i>Beranda</a></li>
<li><a class="dropdown-item"><i class="me-2 bi-person-circle"></i>Profil</a></li>
<!--<li><a class="dropdown-item"><i class="me-2 bi-gear"></i>Settings</a></li>-->
<li><a class="dropdown-item mlink" id="SYSCLink"><i class="me-2 bi-unlock2"></i>Ubah Password</a></li>
<li class="dropdown-divider"></li>
<li><a class="dropdown-item text-danger slink" id="ExitLink"><i class="me-2 bi-arrow-right"></i>Keluar</a></li>
</ul>
</li>
</ul>
</div>
</nav>
</header>
<div class="body flex-grow-1">
<div class="container-fluid mt-2 px-0 py-2">
<div aria-live="polite" aria-atomic="true" class="position-relative">
<div class="toast-container position-absolute top-0 end-0 p-3" id="div-toast">&nbsp;</div>
</div>
<div id="pageToolbarTop" class="container-fluid">&nbsp;</div>
<div id="pageContent" class="container-fluid">&nbsp;</div>
<div id="pageToolbarBot" class="container-fluid">&nbsp;</div>
</div>
</div>
<footer class="footer">
<div><a href="[_REG_WEBSITE_]">&reg; [_REG_YEAR_]; [_REG_NAME_]</a></div>
<div class="ms-auto d-none d-md-block">Informasi : XXXX XXXX XXXX (Admin)</div>
</footer>
</div>
<div id="dataPrint" class="d-none d-print-block">&nbsp;</div>
<div id="preloader"><div id="loader"></div></div>
</body>
</html>
+67
View File
@@ -0,0 +1,67 @@
<!------------------------------------------------------------------
Module : /assets/templates/login.php
Desc. : HTML5 Page - Halaman Template Login
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : December 21th, 2009.
Last Modified : January 15th, 2024.
(c) 2009 - 2024, 3FONIA Software; WWW.3FONIA.COM.
------------------------------------------------------------------->
<!DOCTYPE html>
<html lang="en">
<head>
<title>[_APP_NAME_VER_]</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="PhpED + FW9 @ 3FONIA Software"/>
<meta name="author" content="Siau Pheng &lt;siaupheng[at]3fonia.com&gt;"/>
<meta name="description" content="[_APP_NAME_VER_], [_APP_NAMES_]" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<link rel="icon" href="[_WEB_PATH_]assets/images/logo150.png" type="image/png" />
<link rel="shortcut icon" href="[_WEB_PATH_]assets/images/logo150.png" type="image/png" />
</head>
<body class="min-vh-100 d-flex flex-row align-items-center dark:bg-transparent">
<div class="container">
<div aria-live="polite" aria-atomic="true" class="position-relative">
<div class="toast-container position-absolute top-0 start-50 translate-middle-x" id="div-toast">&nbsp;</div>
</div>
<div class="row justify-content-center">
<div class="col-xl-4 col-lg-5 col-md-6 col-10">
<div class="card-group d-block d-md-flex row">
<div class="card col-md-6 p-3 mb-0">
<div class="card-body">
<div class="mb-2">
<img class="mx-auto d-block" src="[_WEB_PATH_]assets/images/logo150.png" title="[_REG_NAME_UP_]">
<div class="text-center pt-2 pb-2">[_APP_NAME_] Ver. [_APP_VER_]<br>Register ID : [_REG_ID_]</div>
</div>
<div class="input-group mb-2">
<span class="input-group-text">
<i class="bi-person-circle"></i>
</span>
<input class="form-control" id="Username" type="text" placeholder="ID Pengguna">
</div>
<div class="input-group mb-3">
<span class="input-group-text">
<i class="bi-unlock2"></i>
</span>
<input class="form-control" id="Password" type="password" placeholder="Kata Sandi">
</div>
<div class="input-group d-grid gap-2">
<button id="butLogin" class="btn btn-primary" type="button">Login</button>
</div>
<div class="text-center d-none" id="divLoginMsg">&nbsp;</div>
<div class="pt-4">
<div class="text-center">&reg; [_REG_YEAR_]; [_REG_NAME_]</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
+80
View File
@@ -0,0 +1,80 @@
<?php
/*******************************************************************
Module : /auth.php
Desc. : PHP Page - Halaman Identifikasi Akses
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : November 20th, 2016.
Last Modified : March 26th, 2023.
(c) 2016 - 2023, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../vendor/autoload.php");
if (!isset($_SESSION['__WEB_APP'])) {
require_once(__DIR__."/apps/cfg/app.php");
}
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\Web\Auth;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Menu;
$db = $db ?? new MySQL();
$auth = new Auth($db);
$ajson = [];
$mode = Param::Get("mode", "");
if ($mode == "auth") {
$data = Param::Get("data", "");
$ajson = ['status' => 0, 'pesan' => ""];
if ($data == "super-check") {
$bsuper = (Param::Get("SUPER","true") == "true") ? true : false;
$buover = (Param::Get("UOVER","false") == "true") ? true : false;
if (!$auth->user_check_level(Param::Get("UID"), $_SESSION['__WEB_APP']['AUTH_LEVEL']) && $bsuper == true) {
$ajson['status'] = 0;
$ajson['pesan'] = "Silakan hubungi Supervisor / Administrator Anda!";
} else {
if (!$auth->user_check(Param::Get("UID"), Param::Get("PWD"))) {
$ajson['status'] = 0;
$ajson['pesan'] = "User ID atau Password Anda Salah!<br>Anda tidak diijinkan melanjutkan proses!";
} else {
$ajson['status'] = 1;
if ($buover == true && $bsuper == false && Param::Get("UID") <> $_SESSION['__WEB_USER']['Username']) {
$new_sess = $auth->user_data(Param::Get("UID"));
foreach ($new_sess as $_key => $_val) {
if ($_SESSION['__WEB_USER'][$_key]) $_SESSION['__WEB_USER'][$_key] = $_val;
}
}
}
}
} elseif ($data == "super-request") {
$db->Query("DELETE FROM app_auth WHERE UserID='".user_id()."' AND Kode='".Param::Get("KODE")."' AND SID='".Param::Get("REQ_SID")."' AND REQ='".Param::Get("REQ")."' AND Auth=0");
$db->Query("INSERT INTO app_auth SET UserID='".user_id()."',Kode='".Param::Get("KODE")."',SID='".Param::Get("REQ_SID")."',REQ='".Param::Get("REQ")."',Catatan='".Param::Get("MSG")."',Tanggal=NOW()");
} elseif ($data == "super-cancel") {
$db->Query("DELETE FROM app_auth WHERE UserID='".user_id()."' AND Kode='".Param::Get("KODE")."' AND SID='".Param::Get("REQ_SID")."' AND REQ='".Param::Get("REQ")."'");
} elseif ($data == "request-check") {
$db->Query("SELECT Auth FROM app_auth WHERE UserID='".user_id()."' AND Kode='".Param::Get("KODE")."' AND SID='".Param::Get("REQ_SID")."' AND REQ='".Param::Get("REQ")."'");
if ($db->Next() && $db->Row("Auth",0) == 1) $ajson['status'] = 1;
}
} else {
$page = Param::Get("p", "");
$query = Param::Get("q", "");
$ajson['login'] = false;
if (user_logged() && $page<>"") {
$ajson = Menu::MenuJSON($db, $page, $query);
}
$auth->token_update();
}
send_json($ajson);
?>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
+15
View File
@@ -0,0 +1,15 @@
[css]
login_stamp = "0"
login_file =
index_stamp = "22799734982"
index_file = "03fce5ea049f81a1731aadd4be445a04.css"
display_stamp = "0"
display_file =
[js]
login_stamp = "0"
login_file =
index_stamp = "41586686774"
index_file = "013738f32619a2125e26ee99baeac7d0.js"
display_stamp = "0"
display_file =
File diff suppressed because one or more lines are too long
View File
+95
View File
@@ -0,0 +1,95 @@
<?php
/*******************************************************************
Module : /index.php
Desc. : PHP Page - Halaman Utama Aplikasi Web
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : May 28th, 2011.
Last Modified : January 21st, 2024.
(c) 2011 - 2024, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../vendor/autoload.php");
require_once(__DIR__."/apps/cfg/app.php");
use siaupheng\fonia3\App;
use siaupheng\fonia3\Web\Auth;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\DB\MySQL;
/*function requestData($url, $postdata = null){
$ch = curl_init($url);
$headers = array( 'Accept: application/json' );
curl_setopt_array($ch, array(
CURLOPT_POST => 1,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POSTFIELDS => $postdata,
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_VERBOSE => 1
));
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
$token = $_GET['token'];
if (!empty($token) && !$_SESSION['token']) $_SESSION['token'] = $token;
$user = "";
if ($_SESSION['token']) {
$url = "http://127.0.0.1/TEST/sso/provider/cek_token.php?token=".$_SESSION['token'];
$respon = json_decode(requestData($url));
$user = $respon->data;
if ($respon->code != 200) {
unset($_SESSION['token']);
}
}*/
$db = $db ?? new MySQL();
$auth = new Auth($db);
$auth->set_id_reg($_SESSION['__WEB_APP']['PARENT_CODE']);
$token = Param::Get("auth", "");
if (!empty($token) && !$_SESSION['APP_TOKEN']) $_SESSION['APP_TOKEN'] = $token;
if ($_SESSION['APP_TOKEN']) {
if ($auth->token_check()) {
if (!isset($_SESSION['__WEB_USER'])) {
$auser = $auth->user_data($auth->getUserByToken($_SESSION['APP_TOKEN']));
$nlevel = intval($auser['Level']);
if ($nlevel == 2) { // KECAMATAN
$auser['Grup_MenuID'] = 7;
//UPDATE KEC + KEL ARRAY DATA
$auser['A_KEC'] = explode(",", $auser['AK_KEC']);
$auser['A_KEL'] = explode(",", $auser['AK_KEL']);
} else if ($nlevel == 3) { // OPD
$auser['Grup_MenuID'] = 4;
$db->Query("SELECT IK FROM para90_opd WHERE OPDID IN (".$auser['AK_OPD'].")");
if ($db->Next()) { if ($db->Row("IK",0)==1) $auser['Grup_MenuID'] = 3; }
//UPDATE OPD ARRAY DATA
$auser['A_OPD'] = explode(",", $auser['AK_OPD']);
} else if ($nlevel == 5) {// DPRD
$auser['Grup_MenuID'] = 5;
//UPDATE DPRD ARRAY DATA
$auser['A_DPRD'] = explode(",", $auser['AK_DPRD']);
} else if ($nlevel == 9) {// VIEWER
$auser['Grup_MenuID'] = 9;
}
if (intval($auser['Grup_MenuID']) > 0) $auser['Menu_Grup'] = $auth->user_allmenu($auser['Grup_MenuID']);
$_SESSION['__WEB_USER'] = $auser;
}
$auth->gen_module_menu();
$auth->user_log();
} else {
unset($_SESSION['APP_TOKEN']);
unset($_SESSION['__WEB_USER']);
}
}
require_once(__DIR__."/apps/cfg/assets.php");
$html = new App();
$html->TampilApp();
?>