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 (siaupheng@3fonia.com).
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 (siaupheng@3fonia.com).
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 (siaupheng@3fonia.com).
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 (siaupheng@3fonia.com).
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 (siaupheng@3fonia.com).
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 (siaupheng@3fonia.com).
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 (siaupheng@3fonia.com).
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 (siaupheng@3fonia.com).
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 (siaupheng@3fonia.com).
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 (siaupheng@3fonia.com).
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);
?>