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'] ?? "")<>"1909811007") {
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'] = "1909811007";
$apps['APP_NAME'] = "eForum";
$apps['APP_NAMES'] = "Forum / Musyawarah OPD";
$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' => ""
];
?>
+46
View File
@@ -0,0 +1,46 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/forum/ba_kec.js
Desc. : JS - Cetak Berita Acara / 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 FRepoBAKecJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
this.oc_Forum();
},
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("ForumID");
dpdf.add_param("OPDID");
dpdf.add_param("StatusID");
dpdf.showPDF();
},
oc_Forum: function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=option-opd','KecID','ForumID']
}).send();
}
};
+142
View File
@@ -0,0 +1,142 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/usul/bahan_opd.js
Desc. : JS - Kelola Bahan Forum OPD
Created By : Siau Pheng ([email protected]).
Created Date : October 28th, 2011.
Last Modified : January 9th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var FBahanOPDJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butOPD').click(function(){
if ($('#OPDID').val()>0) this.show_hide(1);
}.bind(this));
$('#butKEC').click(function(){
if ($('#KecID').val()>0) this.show_hide(2);
}.bind(this));
$('#butKEL').click(function(){
//if ($('#KelID').val()>0)
this.show_hide(3);
}.bind(this));
this.show_hide(1);
},
show_hide: function(no){
$('#divOPD').addClass('d-none'); $('#butOPD').removeClass('btn-secondary').addClass('btn-info');
$('#divKEC').addClass('d-none'); $('#butKEC').removeClass('btn-secondary').addClass('btn-info');
$('#divKEL').addClass('d-none'); $('#butKEL').removeClass('btn-secondary').addClass('btn-info');
$('#divKEG').addClass('d-none');
if (no == 1) {
$('#OPDID').val(0);
$('#Nama_OPD').val('');
}
if (no <= 1) {
$('#KecID').val(0);
$('#Nama_KEC').val('');
$('#butOPD').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 2) {
$('#KelID').val(0);
$('#Nama_KEL').val('');
$('#butKEC').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 3) {
$('#butKEL').removeClass('btn-info').addClass('btn-secondary');
}
if (no == 1) { $('#divOPD').removeClass('d-none'); this.data_query('tabel-opd'); }
if (no == 2) { $('#divKEC').removeClass('d-none'); this.data_query('tabel-kec'); }
if (no == 3) { $('#divKEL').removeClass('d-none'); this.data_query('tabel-kel'); }
if (no == 4) { $('#divKEG').removeClass('d-none'); this.data_query('tabel-keg'); }
},
opd_select: function(acell){
$('#OPDID').val(acell[0]);
$('#Nama_OPD').val(acell[2]);
this.show_hide(2);
},
kec_select: function(acell){
$('#KecID').val(acell[0]);
$('#Nama_KEC').val(acell[2]);
this.show_hide(3);
},
kel_select: function(acell){
$('#KelID').val(acell[0]);
$('#Nama_KEL').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));
$('#formBahanOPD').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},
Prio: {required:false},
StatusID: {required:false}
}
});
}.bind(this));
}.bind(this)
}).send();
},
keg_ubah: function(acell){
this.keg_detail('update', acell[0]);
},
keg_simpan: function(){
$('#formBahanOPD').submit();
if (true !== $('#formBahanOPD').validate().checkForm()) return false;
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail','OPDID','KecID','KelID','UsulanLID','Lokasi','Dusun','RT','Masalah','Usulan','Sasaran','Waktu','Volume','SatuanID','Rupiah','Prio','StatusID'],
onSuccess: function(){
FoniaJS.closeWindow(this.winDKeg);
FoniaJS.showInfo('Sukses menyimpan Usulan Kegiatan.');
}.bind(this)
}).send();
},
data_query: function(tipe, mode){
if (tipe=="tabel-opd"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-opd']
}).send();
} else if (tipe=="tabel-kec"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kec','OPDID']
}).send();
} else if (tipe=="tabel-kel"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kel','OPDID','KecID']
}).send();
} else if (tipe=="tabel-keg"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','OPDID','KecID','KelID']
}).send();
}
}
};
+164
View File
@@ -0,0 +1,164 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/usul/forum_opd.js
Desc. : JS - Forum OPD / Pembahasan
Created By : Siau Pheng ([email protected]).
Created Date : October 28th, 2011.
Last Modified : January 9th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var FForumOPDJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butOPD').click(function(){
if ($('#OPDID').val()>0) this.show_hide(1);
}.bind(this));
$('#butKEC').click(function(){
if ($('#KecID').val()>0) this.show_hide(2);
}.bind(this));
$('#butKEL').click(function(){
//if ($('#KelID').val()>0)
this.show_hide(3);
}.bind(this));
this.show_hide(1);
},
show_hide: function(no){
$('#divOPD').addClass('d-none'); $('#butOPD').removeClass('btn-secondary').addClass('btn-info');
$('#divKEC').addClass('d-none'); $('#butKEC').removeClass('btn-secondary').addClass('btn-info');
$('#divKEL').addClass('d-none'); $('#butKEL').removeClass('btn-secondary').addClass('btn-info');
$('#divKEG').addClass('d-none');
if (no == 1) {
$('#OPDID').val(0);
$('#Nama_OPD').val('');
}
if (no <= 1) {
$('#KecID').val(0);
$('#Nama_KEC').val('');
$('#butOPD').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 2) {
$('#KelID').val(0);
$('#Nama_KEL').val('');
$('#butKEC').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 3) {
$('#butKEL').removeClass('btn-info').addClass('btn-secondary');
}
if (no == 1) { $('#divOPD').removeClass('d-none'); this.data_query('tabel-opd'); }
if (no == 2) { $('#divKEC').removeClass('d-none'); this.data_query('tabel-kec'); }
if (no == 3) { $('#divKEL').removeClass('d-none'); this.data_query('tabel-kel'); }
if (no == 4) { $('#divKEG').removeClass('d-none'); this.data_query('tabel-keg'); }
},
opd_select: function(acell){
$('#OPDID').val(acell[0]);
$('#Nama_OPD').val(acell[2]);
this.show_hide(2);
},
kec_select: function(acell){
$('#KecID').val(acell[0]);
$('#Nama_KEC').val(acell[2]);
this.show_hide(3);
},
kel_select: function(acell){
$('#KelID').val(acell[0]);
$('#Nama_KEL').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));
}.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','StatusID'],
onSuccess: function(){
FoniaJS.closeWindow(this.winDKeg);
FoniaJS.showInfo('Sukses menyimpan Usulan Kegiatan.');
}.bind(this)
}).send();
},
keg_1: function(acell){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=update','OPDID','KecID','KelID','UsulanLID='+acell[0],'StatusID=1'],
}).send();
},
keg_2: function(acell){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=update','OPDID','KecID','KelID','UsulanLID='+acell[0],'StatusID=2'],
}).send();
},
keg_3: function(acell){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=update','OPDID','KecID','KelID','UsulanLID='+acell[0],'StatusID=3'],
}).send();
},
keg_4: function(acell){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=update','OPDID','KecID','KelID','UsulanLID='+acell[0],'StatusID=4'],
}).send();
},
keg_5: function(acell){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=update','OPDID','KecID','KelID','UsulanLID='+acell[0],'StatusID=5'],
}).send();
},
data_query: function(tipe, mode){
if (tipe=="tabel-opd"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-opd']
}).send();
} else if (tipe=="tabel-kec"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kec','OPDID']
}).send();
} else if (tipe=="tabel-kel"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kel','OPDID','KecID']
}).send();
} else if (tipe=="tabel-keg"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','OPDID','KecID','KelID']
}).send();
}
}
};
+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();
}
};
+32
View File
@@ -0,0 +1,32 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/bahan_kec.js
Desc. : JS - Cetak Bahan Forum untuk 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 RepoBahanKecJS = {
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("Tahun");
dpdf.add_param("KecID");
dpdf.add_param("OPDID");
dpdf.showPDF();
}
};
+32
View File
@@ -0,0 +1,32 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/bahan_opd.js
Desc. : JS - Cetak Bahan Forum untuk 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 RepoBahanOPDJS = {
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("Tahun");
dpdf.add_param("KecID");
dpdf.add_param("OPDID");
dpdf.showPDF();
}
};
+45
View File
@@ -0,0 +1,45 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/hasil_forum.js
Desc. : JS - Cetak Hasil Forum / Forum
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 RepoHasilForumJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
this.oc_Forum();
},
proses_pdf: function(){
if ($('#ForumID').val() == 0) {
FoniaJS.showInfo('Silahkan Pilih Nama Forum !');
return false;
}
var dpdf = new cPDF(this.PHP);
dpdf.set_zoom(80);
dpdf.add_param("data", "pdf");
dpdf.add_param("Tahun");
dpdf.add_param("ForumID");
dpdf.add_param("OPDID");
dpdf.add_param("StatusID");
dpdf.showPDF();
},
oc_Forum: function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=option-opd','ForumID']
}).send();
}
};
+36
View File
@@ -0,0 +1,36 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/hasil_opd.js
Desc. : JS - Cetak Hasil Forum / 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 RepoHasilOPDJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
},
proses_pdf: function(){
if ($('#OPDID').val() == 0) {
FoniaJS.showInfo('Silahkan Pilih Nama Perangkat Daerah !');
return false;
}
var dpdf = new cPDF(this.PHP);
dpdf.set_zoom(80);
dpdf.add_param("data", "pdf");
dpdf.add_param("Tahun");
dpdf.add_param("OPDID");
dpdf.add_param("StatusID");
dpdf.showPDF();
}
};
+36
View File
@@ -0,0 +1,36 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/hasil_status.js
Desc. : JS - Cetak Hasil Forum / Status
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 RepoHasilStatusJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
},
proses_pdf: function(){
if ($('#StatusID').val() == 0) {
FoniaJS.showInfo('Silahkan Pilih Nama Status !');
return false;
}
var dpdf = new cPDF(this.PHP);
dpdf.set_zoom(80);
dpdf.add_param("data", "pdf");
dpdf.add_param("Tahun");
dpdf.add_param("OPDID");
dpdf.add_param("StatusID");
dpdf.showPDF();
}
};
+55
View File
@@ -0,0 +1,55 @@
/*******************************************************************
Module : /apps/js/sys/chpasswd.js
Desc. : JS - Perubahan Password Operator
Created By : Siau Pheng ([email protected]).
Created Date : December 7th, 2008.
Last Modified : April 25th, 2020.
(c) 2008 - 2020, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var SYSChpasswdJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butSave').click(function(){this.proses_save();}.bind(this));
FoniaJS.setFocus('#LPass');
},
proses_save: function(){
if ($("#LPass").val()=="") {
FoniaJS.showInfo("Silakan masukkan password lama Anda!");
FoniaJS.setFocus("#LPass");
return false;
} else if ($("#BPass1").val()=="") {
FoniaJS.showInfo("Silakan masukkan password baru 1 Anda!");
FoniaJS.setFocus("#BPass1");
return false;
} else if ($("#BPass2").val()=="") {
FoniaJS.showInfo("Silakan masukkan password baru 2 Anda!");
FoniaJS.setFocus("#BPass2");
return false;
} else if ($("#BPass1").val()!=$("#BPass2").val()) {
FoniaJS.showInfo("Password baru 1 dan 2 Anda tidak sama!");
FoniaJS.setFocus("#BPass1");
return false;
}
new Request.JSON({
url: this.PHP,
sendParam: ['data=chpasswd','LPass','BPass1','BPass2'],
onSuccess: function(ajson){
if (ajson.status == true) {
FoniaJS.showInfo(ajson.msg);
FoniaJS.closeWindow('#win'+this.KODE);
} else {
FoniaJS.showError(ajson.msg);
}
}.bind(this)
}).send();
}
};
+159
View File
@@ -0,0 +1,159 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/usul/desa2.js
Desc. : JS - Input Usulan Desa Susulan
Created By : Siau Pheng ([email protected]).
Created Date : October 28th, 2011.
Last Modified : January 9th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var FUsulDesa2JS = {
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},
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','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','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-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();
}
}
};
+117
View File
@@ -0,0 +1,117 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/usul/kec.js
Desc. : JS - Usulan Kecamatan
Created By : Siau Pheng ([email protected]).
Created Date : October 28th, 2011.
Last Modified : January 13th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var FUsulKecJS = {
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();
}
}
};
+183
View File
@@ -0,0 +1,183 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/forum/ba_kec.php
Desc. : PHP - Cetak Berita Acara / Kecamatan
Created By : Siau Pheng ([email protected]).
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;
function centang($urut=0, $nilai=0) {
return (($urut==$nilai && $nilai>0) ? "X" : "&nbsp;");
}
$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_forum = Param::Get("ForumID", 0);
$id_opd = Param::Get("OPDID", 0);
$id_status = Param::Get("StatusID", 0);
if ( $data == "pdf" || $data == "print") {
$nama_kec = "Semua Kecamatan";
if ($id_kec > 0) {
$db->Query("SELECT N_Lokasi FROM para_lokasi WHERE LokasiID='".$id_kec."' LIMIT 1");
if ($db->Next()) $nama_kec = $db->Row("N_Lokasi");
}
$cat_status = '<br><br><table class="ttd-ba-status"><tbody><tr><td class="judul" colspan="2">Keterangan :</td></tr>';
$db->Query("SELECT * FROM para_status WHERE Aktif=1 ORDER BY K_Status");
while ($db->Next()) {
$cat_status .= sprintf('<tr><td style="width:20px;">%s.</td><td>%s</td></tr>', $db->Row("K_Status"), $db->Row("N_Status"));
}
$cat_status .= '</tbody></table>';
$tsql = " Tahun='".$tahun."' AND ((JU<3 AND Prio>0) OR (JU=3))";
$tsql .= ($id_kec==0) ? "" : " AND KecID='".$id_kec."'";
$tsql .= ($id_forum==0) ? "" : " AND OPDID IN (SELECT OPDID FROM para90_opd WHERE Aktif=1 AND ForumID='".$id_forum."')";
$tsql .= ($id_opd==0) ? "" : " AND OPDID='".$id_opd."'";
$tsql .= ($id_status==0) ? "" : " AND StatusID='".$id_status."'";
// proses rekap database
Report_Empty("mus_opd");
$db->Query("INSERT INTO rep_mus_opd SELECT T.Tahun,T.KecID,T.OPDID,T.KelID,SUM(T.Rupiah2),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.KecID,T.OPDID");
$db->Query("SELECT T.*,K.K_Lokasi K_Kec,K.N_Lokasi N_Kec,D.N_Lokasi N_Desa,CONCAT(IF(T.JU=3,'KEC',K.K_Lokasi),'.',T.Kode) Kode_Usul,CONCAT(T.Volume2,' ',S.N_Satuan) Vol_Satuan,O.S_OPD,O.K_OPD,O.N_OPD,F.ForumID ForumID2,F.N_Forum,RO.* FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T LEFT JOIN para_lokasi K ON (K.LokasiID=T.KecID AND K.Level=1) LEFT JOIN para_lokasi D ON (D.LokasiID=T.KelID AND D.Level=2) LEFT JOIN para_satuan S ON (S.SatuanID=T.SatuanID2) LEFT JOIN para90_opd O ON (O.OPDID=T.OPDID) LEFT JOIN para_forum F ON (F.ForumID=O.ForumID) 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()."') ORDER BY K.K_Lokasi,O.ForumID,O.K_OPD,T.JU DESC,T.Kode");
}
if ( $data == "pdf" ) {
$html = '<p class="judul">Berita Acara Kesepakatan<br>Forum Perangkat Daerah / Lintas Perangkat Daerah<br>Kabupaten Sambas Tahun '.($tahun-1).'</p>';
$footer = '<htmlpagefooter name="RepFoot%s"><table class="footer"><tr><td width="33%%">eForum - 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 style="width:8%;">Kode</th><th style="width:4%;">Prio</th><th style="width:8%;">Desa</th><th>Usulan Kegiatan</th><th style="width:10%;">Volume</th><th style="width:15%;">Lokasi</th><th style="width:11%;">Jumlah</th><th style="width:3%;">1</th><th style="width:3%;">2</th><th style="width:3%;">3</th><th style="width:3%;">4</th><th style="width:3%;">5</th></tr></thead><tbody>';
$t_foot = '</tbody></table></div>';
$t_ttd = 'Sambas, '.tgl_panjang().'<br>Wakil Peserta Forum Perangkat Daerah/Lintas Perangkat Daerah Kabupaten Sambas<br><br><table class="ttd-ba"><thead><tr><th>Unsur Perwakilan</th><th>Nama</th><th style="width:20%;">Tanda Tangan</th></tr></thead><tbody><tr><td>Kecamatan</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>Bappeda</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>Perangkat Daerah</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr></tbody></table>';
$_line = '<tr><td class="c">%s</td><td class="c b">%s</td><td>%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td class="r">%s</td><td class="c">%s</td><td class="c">%s</td><td class="c">%s</td><td class="c">%s</td><td class="c">%s</td></tr>';
$_sub = '<tr class="%s"><td colspan="3" class="b">%s</td><td colspan="3" class="b">%s</td><td class="r b">%s</td><td colspan="5" class="b">&nbsp;</td></tr>';
$body = $t_head;
$kkec = ""; $kfor = ""; $kopd = ""; $n_kec = "";
while ($db->Next()) {
$k_kec = $db->Row("K_Kec");
$n_kec = $db->Row("N_Kec");
if ($kkec == "") {
$html .= sprintf($footer, $db->Row("K_Kec"), $n_kec);
$body .= sprintf($_setfoot, $db->Row("K_Kec"));
}
if ($kfor <> $db->Row("ForumID2")) {
$body .= sprintf($_sub, "forum", "Forum", $db->Row("N_Forum"), "");//rupiah($db->Row("FORUM_RUPIAH"))
$kfor = $db->Row("ForumID2");
}
if ($kkec <> $db->Row("K_Kec")) {
if ($kkec <> "") {
$body .= $t_foot;
$body .= '<pagebreak orientation="landscape" />';
$html .= sprintf($footer, "ttd".$k_kec, "Halaman Tanda Tangan Peserta Forum");
$body .= sprintf($_setfoot, "ttd".$k_kec);
$body .= $t_ttd . $cat_status;
$body .= '<pagebreak orientation="landscape" />';
$body .= $t_head;
$html .= sprintf($footer, $db->Row("K_Kec"), $n_kec);
$body .= sprintf($_setfoot, $db->Row("K_Kec"));
$kfor = "";
}
$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", "Perangkat Daerah", $db->Row("N_OPD"), rupiah($db->Row("OPD_RUPIAH")));
$kopd = $db->Row("K_OPD");
}
$body .= sprintf($_line, $db->Row("Kode_Usul"), $db->Row("Prio"), $db->Row("N_Desa"), $db->Row("Usulan2"), $db->Row("Vol_Satuan"), $db->Row("Lokasi2"), rupiah($db->Row("Rupiah2")), centang(1,$db->Row("StatusID")), centang(2,$db->Row("StatusID")), centang(3,$db->Row("StatusID")), centang(4,$db->Row("StatusID")), centang(5,$db->Row("StatusID")));
}
$body .= sprintf($t_foot);
if ($kkec <> "") {
$body .= '<pagebreak orientation="landscape" />';
$html .= sprintf($footer, "ttd".$k_kec, "Halaman Tanda Tangan Peserta Forum");
$body .= sprintf($_setfoot, "ttd".$k_kec);
$body .= $t_ttd . $cat_status;
}
$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/forum.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("BA Forum ".$nama_kec);
$mpdf->Output("BA Forum ".$nama_kec.".pdf", \Mpdf\Output\Destination::INLINE);
} else if ( $data == "option-opd" ) {
$aoption = array('type' => "option", 'id' => "OPDID", 'value' => 0, 'avalue' => array());
$db->Query("SELECT * FROM vi_para90_opd WHERE Aktif=1 AND IK=0".($id_forum>0?" AND ForumID='".$id_forum."'":"").($_SESSION['__WEB_USER']['Level']==3?" AND OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")":""));
if ($db->RecordCount()<>1) $aoption['avalue'][] = array('value'=>0, 'html'=>"SEMUA OPD");
while ($db->Next()) {
if ($db->RecordCount()==1) $aoption['value'] = $db->Row("OPDID");
$aoption['avalue'][] = array('value'=>$db->Row("OPDID"), 'html'=>$db->Row("Nama_OPD"));
}
$ajson[] = $aoption;
} else if ( $data == "default") {
$q_kec = ($_SESSION['__WEB_USER']['Level']==2) ? " AND LokasiID='".$_SESSION['__WEB_USER']['KecID']."'" : " AND Level=1 AND LokasiID>2";
$form = new Form($db);
$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;"));
$tforum = $form->option_db("_", "ForumID", 0, true, true, "para_forum", array("ForumID","N_Forum"), "Aktif=1 ORDER BY ForumID", array(0,"SEMUA FORUM"), null, "RepoBAKecJS.oc_Forum()");
$topd = $form->option("_", "OPDID", 0, true, true, array(0 => "&nbsp;"));
$tstatus = $form->option_db("_", "StatusID", 0, true, true, "vi_para_status", array("StatusID","Nama_Status"), "Aktif=1 ORDER BY K_Status", array(0,"SEMUA STATUS"));
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="ForumID">Nama Forum</label>
<div class="col-sm-8 col-lg-9">'.$tforum.'</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="StatusID">Nama Status</label>
<div class="col-sm-8 col-lg-9">'.$tstatus.'</div>
</div>';
}
send_json($ajson);
?>
+267
View File
@@ -0,0 +1,267 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/usul/bahan_opd.php
Desc. : PHP - Kelola Bahan Forum OPD
Created By : Siau Pheng ([email protected]).
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");
$efor_enable = true;
$id_rpjmd = $_SESSION['__WEB_APP']['RENC_RPJMDID'];
$thn_renja = $_SESSION['__WEB_APP']['RENC_THN'];
$id_opd = Param::Get("OPDID", 0);
$id_kec = Param::Get("KecID", 0);
$id_kel = Param::Get("KelID", 0);
$id_usul = Param::Get("UsulanLID", 0);
if ( in_array($data, ["tabel-opd","tabel-kec","tabel-kel","tabel-keg"]) ) {
$qsql = "Tahun='".$thn_renja."' AND ((JU<3 AND Prio IN (1,2,3,4,5)) OR (JU=3))";
$msql = "Aktif=1";
if ( $data == "tabel-opd" ) {
$msql .= ($_SESSION['__WEB_USER']['Level']==3) ? " AND OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")": "";
$msql .= " AND IK=0";
} else if ( $data == "tabel-kec" ) {
$qsql .= " AND OPDID='".$id_opd."'";
$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 OPDID='".$id_opd."' AND KecID='".$id_kec."'";
$msql .= " AND Level=2 AND IndukID='".$id_kec."'";
} else if ( $data == "tabel-keg" ) {
$qsql .= " AND OPDID='".$id_opd."' AND KecID='".$id_kec."' AND KelID='".$id_kel."'";
}
}
if ( $data == "tabel-opd" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.OPDID OPDID2,M.K_OPD,M.N_OPD FROM (SELECT * FROM para90_opd WHERE ".$msql.") M LEFT JOIN (SELECT OPDID,COUNT(DISTINCT KecID) ITEM_KEC,COUNT(DISTINCT KelID) ITEM_KEL,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY OPDID) K ON (K.OPDID=M.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_KEC", "Kec", "r", "rupiah");
$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("K_OPD", "A");
//$obj->set_row_color("W_OPD", 1, "rsuccess");
$obj->add_row_btn("save", "Kecamatan", "FBahanOPDJS.opd_select");
$obj->set_func_navi("FBahanOPDJS.data_query('tabel-opd')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divOPD");
} else 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", "FBahanOPDJS.kec_select");
$obj->set_func_navi("FBahanOPDJS.data_query('tabel-kec')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEC");
} else if ( $data == "tabel-kel" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,IFNULL(M.LokasiID,0) KelID2,IFNULL(M.K_Lokasi,'000') K_Lokasi,IFNULL(M.N_Lokasi,'USULAN KECAMATAN') N_Lokasi FROM (SELECT KelID,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY KelID) K LEFT JOIN para_lokasi M 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", "Usulan", "FBahanOPDJS.kel_select");
$obj->set_func_navi("FBahanOPDJS.data_query('tabel-kel')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEL");
} else if ( $data == "tabel-keg" ) {
if (in_array($mode_detail, ["update"])) {
$sql = new SQL($db);
$sql->set_table("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("Prio");
$sql->add_param("StatusID");
$sql->add_param_stamp("Update_Stamp");
$sql->add_param_userid("Update_UserID");
$sql->add_where("RPJMDID", $id_rpjmd);
$sql->add_where("Tahun", $thn_renja);
$sql->add_where("UsulanLID");
$sql->UpdateDB();
}
$obj = new Table($db);
$obj->set_query("SELECT R.*,CONCAT(R.Volume,' ',S.N_Satuan) N_Satuan,IF(R.StatusID=0,'',T.S_Status) X_Status FROM (SELECT * FROM mus_usulan_desa WHERE ".$qsql.") R LEFT JOIN para_satuan S ON (R.SatuanID=S.SatuanID) LEFT JOIN para_status T ON (R.StatusID=T.StatusID)");
$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("X_Status", "Status", "l");
$obj->set_field_order("Usulan", "A");
$obj->set_row_color("StatusID", 1, "rgreen");
$obj->set_row_color("StatusID", 2, "ryellow");
$obj->set_row_color("StatusID", 3, "rblue");
$obj->set_row_color("StatusID", 4, "rpurple");
$obj->set_row_color("StatusID", 5, "rred");
$obj->add_row_btn("clipboard", "Ubah", "FBahanOPDJS.keg_ubah");
$obj->set_func_navi("FBahanOPDJS.data_query('tabel-keg')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEG");
} else if ( $data == "detail-keg" ) {
$enable = ($efor_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'], $enable, true, MusPrio_Array());
$tstatus = $form->option_db("_", "StatusID", $adetail['StatusID'], $enable, false, "para_status", array("StatusID","N_Status"), "Aktif=1 ORDER BY K_Status", array(0,"&nbsp;"));
$ajson['html'] = '<form id="formBahanOPD" 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>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="StatusID">Status / Hasil</label>
<div class="col">'.$tstatus.'</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">Bahan Forum OPD - 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_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 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 id="divOPD">&nbsp;</div>
<div id="divKEC">&nbsp;</div>
<div id="divKEL">&nbsp;</div>
<div id="divKEG">&nbsp;</div>
</div></div>
</div>';
}
send_json($ajson);
?>
+257
View File
@@ -0,0 +1,257 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/usul/forum_opd.php
Desc. : PHP - Forum OPD / Pembahasan
Created By : Siau Pheng ([email protected]).
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");
$efor_enable = true;
$id_rpjmd = $_SESSION['__WEB_APP']['RENC_RPJMDID'];
$thn_renja = $_SESSION['__WEB_APP']['RENC_THN'];
$id_opd = Param::Get("OPDID", 0);
$id_kec = Param::Get("KecID", 0);
$id_kel = Param::Get("KelID", 0);
$id_usul = Param::Get("UsulanLID", 0);
if ( in_array($data, ["tabel-opd","tabel-kec","tabel-kel","tabel-keg"]) ) {
$qsql = "Tahun='".$thn_renja."' AND ((JU<3 AND Prio IN (1,2,3,4,5)) OR (JU=3))";
$msql = "Aktif=1";
if ( $data == "tabel-opd" ) {
$msql .= ($_SESSION['__WEB_USER']['Level']==3) ? " AND OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")": "";
$msql .= " AND IK=0";
} else if ( $data == "tabel-kec" ) {
$qsql .= " AND OPDID='".$id_opd."'";
$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 OPDID='".$id_opd."' AND KecID='".$id_kec."'";
$msql .= " AND Level=2 AND IndukID='".$id_kec."'";
} else if ( $data == "tabel-keg" ) {
$qsql .= " AND OPDID='".$id_opd."' AND KecID='".$id_kec."' AND KelID='".$id_kel."'";
}
}
if ( $data == "tabel-opd" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.OPDID OPDID2,M.K_OPD,M.N_OPD,IF(K.ITEM_KEG=K.ITEM_UDAH,1,0) WD FROM (SELECT * FROM para90_opd WHERE ".$msql.") M LEFT JOIN (SELECT OPDID,COUNT(DISTINCT KecID) ITEM_KEC,COUNT(DISTINCT KelID) ITEM_KEL,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH,SUM(IF(StatusID>0,1,0)) ITEM_UDAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY OPDID) K ON (K.OPDID=M.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_KEC", "Kec", "r", "rupiah");
$obj->add_field("ITEM_KEL", "Desa", "r", "rupiah");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("ITEM_UDAH", "Dibahas", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("K_OPD", "A");
$obj->set_row_color("WD", 1, "rsuccess");
$obj->add_row_btn("save", "Kecamatan", "FForumOPDJS.opd_select");
$obj->set_func_navi("FForumOPDJS.data_query('tabel-opd')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divOPD");
} else 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_UDAH,1,0) WD 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(StatusID>0,1,0)) ITEM_UDAH 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_UDAH", "Dibahas", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("N_Lokasi", "A");
$obj->set_row_color("WD", 1, "rsuccess");
$obj->add_row_btn("save", "Desa", "FForumOPDJS.kec_select");
$obj->set_func_navi("FForumOPDJS.data_query('tabel-kec')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEC");
} else if ( $data == "tabel-kel" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,IFNULL(M.LokasiID,0) KelID2,IFNULL(M.K_Lokasi,'000') K_Lokasi,IFNULL(M.N_Lokasi,'USULAN KECAMATAN') N_Lokasi,IF(K.ITEM_KEG=K.ITEM_UDAH,1,0) WD FROM (SELECT KelID,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH,SUM(IF(StatusID>0,1,0)) ITEM_UDAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY KelID) K LEFT JOIN para_lokasi M 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_UDAH", "Dibahas", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("N_Lokasi", "A");
$obj->set_row_color("WD", 1, "rsuccess");
$obj->add_row_btn("save", "Usulan", "FForumOPDJS.kel_select");
$obj->set_func_navi("FForumOPDJS.data_query('tabel-kel')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEL");
} else if ( $data == "tabel-keg" ) {
if (in_array($mode_detail, ["update"])) {
$db->Query("UPDATE mus_usulan_desa SET StatusID='".Param::Get("StatusID",0)."' WHERE RPJMDID='".$id_rpjmd."' AND Tahun='".$thn_renja."' AND UsulanLID='".$id_usul."'");
}
$obj = new Table($db);
$obj->set_query("SELECT R.*,CONCAT(R.Volume,' ',S.N_Satuan) N_Satuan,IF(R.StatusID=0,'',T.S_Status) X_Status FROM (SELECT * FROM mus_usulan_desa WHERE ".$qsql.") R LEFT JOIN para_satuan S ON (R.SatuanID=S.SatuanID) LEFT JOIN para_status T ON (R.StatusID=T.StatusID)");
$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("X_Status", "Status", "l");
$obj->set_field_order("Usulan", "A");
$obj->set_row_color("StatusID", 1, "rgreen");
$obj->set_row_color("StatusID", 2, "ryellow");
$obj->set_row_color("StatusID", 3, "rblue");
$obj->set_row_color("StatusID", 4, "rpurple");
$obj->set_row_color("StatusID", 5, "rred");
$obj->add_row_btn("clipboard", "Detail", "FForumOPDJS.keg_ubah");
$obj->add_row_btn("check-all", "Setuju", "FForumOPDJS.keg_1");
$obj->add_row_btn("check", "APBD P", "FForumOPDJS.keg_2");
$obj->add_row_btn("arrow-up-circle", "APBN", "FForumOPDJS.keg_3");
$obj->add_row_btn("arrow-down-circle", "Tangguh", "FForumOPDJS.keg_4");
$obj->add_row_btn("x-lg", "Tolak", "FForumOPDJS.keg_5");
$obj->set_func_navi("FForumOPDJS.data_query('tabel-keg')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEG");
} else if ( $data == "detail-keg" ) {
$enable = 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'], $enable, true, MusPrio_Array());
$tstatus = $form->option_db("_", "StatusID", $adetail['StatusID'], true, false, "para_status", array("StatusID","N_Status"), "Aktif=1 ORDER BY K_Status", array(0,"&nbsp;"));
$ajson['html'] = '<form id="formBahanOPD" 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>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="StatusID">Status / Hasil</label>
<div class="col">'.$tstatus.'</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">Forum OPD - 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_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 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 id="divOPD">&nbsp;</div>
<div id="divKEC">&nbsp;</div>
<div id="divKEL">&nbsp;</div>
<div id="divKEG">&nbsp;</div>
</div></div>
</div>';
}
send_json($ajson);
?>
+72
View File
@@ -0,0 +1,72 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/func/musrenbang.php
Desc. : PHP - Fungsi Musrenbang
Created By : Siau Pheng ([email protected]).
Created Date : May 15th, 2012.
Last Modified : January 9th, 2026.
(c) 2012 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\DB\SQL;
$fdb = (is_resource($fdb)) ? $fdb : new MySQL();
function ID_Usulan_Desa($id_rpjmd = 0, $tahun = 0) {
global $fdb;
$ino = 1;
$fdb->Query("SELECT MAX(UsulanLID)+1 Nomor FROM mus_usulan_desa WHERE RPJMDID='".$id_rpjmd."' AND Tahun='".$tahun."'");
if ($fdb->Next()) $ino = $fdb->Row("Nomor", 1);
return $ino;
}
function Kode_Usulan_Desa($tahun = 0, $id_desa = 0) {
global $fdb;
$k_desa = "000";
if ($id_desa > 0) {
$fdb->Query("SELECT K_Lokasi FROM para_lokasi WHERE LokasiID='".$id_desa."' LIMIT 1");
if ($fdb->Next()) $k_desa = $fdb->Row("K_Lokasi");
}
$tno = $k_desa . "-"; $ino = 0;
$fdb->Query("SELECT MAX(RIGHT(Kode,3)) Nomor FROM mus_usulan_desa WHERE Tahun='".$tahun."' AND LEFT(Kode,".strlen($tno).")='".$tno."'");
if ($fdb->Next()) $ino = (int)$fdb->Row("Nomor", 0);
$tno .= isi_nol($ino+1, 3);
return $tno;
}
function Kode_Usulan_Kec($tahun = 0, $id_kec = 0) {
global $fdb;
$k_kec = "00";
if ($id_kec > 0) {
$fdb->Query("SELECT RIGHT(K_Lokasi,2) Kode FROM para_lokasi WHERE LokasiID='".$id_kec."' LIMIT 1");
if ($fdb->Next()) $k_kec = $fdb->Row("Kode");
}
$tno = $k_kec . "-"; $ino = 0;
$fdb->Query("SELECT MAX(RIGHT(Kode,3)) Nomor FROM mus_usulan_desa WHERE Tahun='".$tahun."' AND KecID='".$id_kec."' AND JU=3");
if ($fdb->Next()) $ino = (int)$fdb->Row("Nomor", 0);
$tno .= isi_nol($ino+1, 3);
return $tno;
}
function MUSPrio($iprio=0) {
$hasil = '<select class="form-select form-select-sm" onchange="MUsulPrioJS.oc_Prio(this);" required=true aria-label="Pilihan Prioritas" >';
for ($o=0; $o<=5; $o++) {
$hasil .= '<option value="'.$o.'"'.($o==$iprio?' selected="selected"':'').'>'.$o.'</option>';
}
$hasil .= '</select>';
return $hasil;
}
function MusPrio_Array() {
return [0=>"0", 1=>"1", 2=>"2", 3=>"3", 4=>"4", 5=>"5"];
}
?>
+37
View File
@@ -0,0 +1,37 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/func/report.php
Desc. : PHP - Fungsi Report
Created By : Siau Pheng ([email protected]).
Created Date : May 15th, 2012.
Last Modified : January 9th, 2026.
(c) 2012 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\DB\SQL;
$fdb = (is_resource($fdb)) ? $fdb : new MySQL();
function Report_Empty($ltabel = "") {
global $fdb;
if ($ltabel == "") return false;
$fdb->Query("DELETE FROM rep_".$ltabel." WHERE (Unix='".user_unix()."' OR Unix<'".(user_unix()-604800)."') AND UserID='".user_id()."'");
}
function Report_Header($tlapor="", $tperiod="") {
$thasil = '<div style="text-align:center;font-size:12pt;"><b>'.strtoupper($_SESSION['__WEB_APP']['REG_NAME']);
$thasil .= (($tlapor=="") ? "" : '<br>'.$tlapor) . '</b>';
$thasil .= ($tperiod=="") ? "" : '<br><span style="font-size:11pt;">'.$tperiod.'</span>';
$thasil .= '</div><br>';
echo $thasil;
}
?>
+101
View File
@@ -0,0 +1,101 @@
<?php
/*******************************************************************
Module : /apps/php/index.php
Desc. : PHP - Halaman Utama Desktop
Created By : Siau Pheng ([email protected]).
Created Date : May 24th, 2010.
Last Modified : August 30th, 2020.
(c) 2010 - 2020, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../vendor/autoload.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Form;
use siaupheng\fonia3\Web\Register;
$db = $db ?? new MySQL();
$ajson = [];
$data = Param::Get("data");
if ( $data == "pagu-info" || $data == "pagu-chart" ) {
if ($_SESSION['__WEB_USER']['Level']==2) {
$tot_pagu = 0;
$db->Query("SELECT SUM(Rupiah2) Pagu FROM mus_usulan_desa WHERE Tahun='".$_SESSION['__WEB_APP']['RENC_THN']."' AND KecID IN (".$_SESSION['__WEB_USER']['AK_KEC'].") AND ((JU<3 AND Prio IN (1,2,3,4,5)) OR (JU=3))");
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(Rupiah2) Pagu FROM mus_usulan_desa WHERE Tahun='".$_SESSION['__WEB_APP']['RENC_THN']."' AND KecID IN (".$_SESSION['__WEB_USER']['AK_KEC'].") AND ((JU<3 AND Prio IN (1,2,3,4,5)) OR (JU=3)) 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(Rupiah2) Pagu FROM mus_usulan_desa WHERE Tahun='".$_SESSION['__WEB_APP']['RENC_THN']."' AND ((JU<3 AND Prio IN (1,2,3,4,5)) OR (JU=3))");
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(Rupiah2) Pagu FROM mus_usulan_desa WHERE Tahun='".$_SESSION['__WEB_APP']['RENC_THN']."' AND ((JU<3 AND Prio IN (1,2,3,4,5)) OR (JU=3)) 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 Forum OPD '.$_SESSION['__WEB_APP']['RENC_THN'].'</h4>';
$pagu_info .= '<table class="table table-striped">';
$pagu_info .= '<thead><tr role="row"><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 role="row"><td class="left">%s</td><td class="right">%s</td></tr>', $db->Row("N_Kec"), rupiah2($db->Row("Pagu")));
}
$pagu_info .= '</tbody></table>';
$ajson['html'] = $pagu_info;
} else if ( $data == "pagu-chart" ) {
$ajson['datasets'] = array();
$ajson['labels'] = array();
$atmp = array(); $acol = array();
$atmp[] = 100;
$col_r = mt_rand( 0, 255 );
$col_g = mt_rand( 0, 255 );
$col_b = mt_rand( 0, 255 );
$acol[] = "rgb(".$col_r.",".$col_g.",".$col_b.")";
$ajson['labels'][] = "Belum Ada Usulan";
if ($db->RecordCount()>0) {
$atmp = array();
$acol = array();
$ajson['labels'] = array();
}
while ($db->Next()){
$atmp[] = round($db->Row("Pagu") / $tot_pagu * 100, 2);
$col_r = mt_rand( 0, 255 );
$col_g = mt_rand( 0, 255 );
$col_b = mt_rand( 0, 255 );
$acol[] = "rgb(".$col_r.",".$col_g.",".$col_b.")";
$ajson['labels'][] = $db->Row("N_Kec");
}
$ajson['datasets'][] = array('data'=>$atmp, 'backgroundColor'=>$acol);
} else if ( $data == "default" ) {
$aapp = $_SESSION['__WEB_APP'];
$ajson['content'] = '
<div class="row">
<div class="col-sm-12 col-md-6 d-flex align-items-stretch">
<div class="card w-100 h-100"><div class="card-body d-flex flex-column" id="divHome1">
<div class="my-auto text-center"><img class="img-fluid" src="'.$aapp['WEB_PATH'].'assets/images/logo300.png" title="'.$aapp['REG_NAME'].'" style="width:25%">
<p class="mt-2">'.$aapp['REG_ADDRESS'].'<br>
'.$aapp['REG_CITY'].' '.$aapp['REG_POSTCODE'].'</p>
<p class="mt-3 mb-3"><i>Register ID : '.Register::reg_id().'</i></p>
<p>'.$aapp['APP_NAMES'].'<br>'.$aapp['APP_NAME'].' Ver. '.$aapp['APP_VER'].'<br>
Updated : '.$aapp['APP_UPDATED'].'</p></div>
</div></div>
</div>
<div class="col-sm-12 col-md-6 d-flex align-items-stretch">
<div class="card w-100 h-100"><div class="card-body d-flex flex-column" id="divHome2">
<div class="chart-wrapper pb-2">
<canvas id="pieChart"></canvas>
</div>
</div></div>
</div>
</div>
';
}
send_json($ajson);
?>
+60
View File
@@ -0,0 +1,60 @@
<?php
/*******************************************************************
Module : /apps/php/login.php
Desc. : PHP - Halaman Proses Login
Created By : Siau Pheng ([email protected]).
Created Date : January 5th, 2008.
Last Modified : June 28th, 2020.
(c) 2008 - 2020, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../vendor/autoload.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\Web\Auth;
use siaupheng\fonia3\Web\Param;
$db = $db ?? new MySQL();
$auth = new Auth($db);
$ajson = [];
$mode = Param::Get("mode");
$aapp = $_SESSION['__WEB_APP'];
if ($mode == "login") {
$auser = [];
$auth->set_id_reg($aapp['PARENT_CODE']);
if ($auth->user_check(Param::Get("Username"), Param::Get("Password"))) {
$auser = $auth->user_data(Param::Get("Username"));
$_appurl = $_GET['redir'];
if (!empty($_appurl)) {
$_redir = $auth->redirect($_appurl);
//jika kosong, tampilkan pesan redirect tidak diijinkan
//jika berisi, js harus redirect ...
}
$ajson['token'] = $_SESSION['APP_TOKEN'];
$ajson['hasil'] = "SUKSES";
$ajson['pesan'] = '<div class="border border-success p-2 pt-3"><h5>Login berhasil,</h5><p><b>'.$auser["Username"].'</b> / '.$auser["Nama"].'<br>'.$auser["Posisi"].'<br><i>login terakhir :</i><br>'.tgl_sql2str($auser["Last_Date"],true).'<br>'.$auser["Last_IP"].'</p></div>';
} else {
$ajson['hasil'] = "ERROR";
$ajson['pesan'] = "Periksa kembali ID Pengguna atau Password Anda ...";
}
} else if ($mode == "logout") {
$auth->logout();
foreach ($_SESSION as $_key => $_val) {
if (substr($_key,0,5)=="__WEB") unset($_SESSION[$_key]);
if (substr($_key,0,5)=="__APP") unset($_SESSION[$_key]);
}
require(__DIR__."/../cfg/app.php");
$nhost = ($_SERVER['SERVER_ADDR'] == "127.0.0.1") ? $_SESSION['__WEB_APP']['WEB_PATH']."../" : $_SESSION['__WEB_APP']['PARENT_SITE'];
$ajson['nexthost'] = $nhost;
}
send_json($ajson);
?>
+134
View File
@@ -0,0 +1,134 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/repo/bahan_kec.php
Desc. : PHP - Cetak Bahan Forum untuk Kecamatan
Created By : Siau Pheng ([email protected]).
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_opd = Param::Get("OPDID", 0);
$id_kec = Param::Get("KecID", 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<3 AND Prio IN (1,2,3,4,5)) OR (JU=3))";
$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_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("SELECT T.*,IFNULL(D.K_Kec,'000') K_Kec,IFNULL(D.N_Kec,'USULAN KECAMATAN') N_Kec,IFNULL(D.N_Kec,'') N_Kec2,D.N_Desa,CONCAT(D.K_Kec,'.',T.Kode) Kode_Usul,CONCAT(T.Volume,' ',S.N_Satuan) Vol_Satuan,O.S_OPD,O.K_OPD,O.N_OPD,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 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()."') ORDER BY D.K_Kec,O.K_OPD,T.Prio,T.Kode");
}
if ( $data == "pdf" ) {
$html = '<p class="judul">Daftar Usulan Pembangunan Berdasarkan Kecamatan Untuk Pembahasan Renja '.($tahun-1).'<br>Di Dalam Forum PD/LPD Tahun '.($tahun).'</p>';
$footer = '<htmlpagefooter name="RepFoot%s"><table class="footer"><tr><td width="33%%">eForum - 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>No. Prio</th><th>Usulan Kegiatan</th><th>Kode Rincian</th><th>Volume</th><th>Lokasi</th><th>Jumlah</th><th colspan="2">Lokasi (Desa/Kec)</th><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>Ket</th></tr></thead><tbody>';
$t_foot = '</tbody></table></div>';
$_line = '<tr><td class="v">%s</td><td>%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td>%s</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>';
$_sub = '<tr class="%s"><td colspan="5" class="b">%s</td><td class="r b">%s</td><td colspan="8" class="b">&nbsp;</td></tr>';
$_judul = '<tr><td>&nbsp;</td><td colspan="13" class="b" style="font-size:12pt;">%s</td></tr>';
$body = $t_head;
$kkec = ""; $kopd = ""; $kprio = ""; $n_opd = "";
while ($db->Next()) {
$n_opd = $db->Row("N_OPD");
if ($kopd == "") {
$html .= sprintf($footer, $db->Row("K_OPD"), $n_opd);
$body .= sprintf($_setfoot, $db->Row("K_OPD"));
}
if ($kkec <> $db->Row("K_Kec")) {
$body .= sprintf($_sub, "kec", $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("K_OPD"), $n_opd);
$body .= sprintf($_setfoot, $db->Row("K_OPD"));
}
$kopd = $db->Row("K_OPD");
}
if ($kprio <> $db->Row("Prio")) {
$body .= sprintf($_judul, $db->Row("Prio"));
$kprio = $db->Row("Prio");
}
$body .= sprintf($_line, $db->Row("Prio"), $db->Row("Usulan"), $db->Row("Kode_Usul"), $db->Row("Vol_Satuan"), $db->Row("Lokasi"), rupiah($db->Row("Rupiah")), $db->Row("N_Desa"), $db->Row("N_Kec2"));
}
$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/forum.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("Bahan Kecamatan ".$nama_kec);
$mpdf->Output("Bahan Kecamatan ".$nama_kec.".pdf", \Mpdf\Output\Destination::INLINE);
} else if ( $data == "default") {
$q_opd = ($_SESSION['__WEB_USER']['Level']==3) ? " AND OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")" : "";
$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, 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, true, "vi_para90_opd", array("OPDID","Nama_OPD"), "Aktif=1 AND IK=0".$q_opd." ORDER BY K_OPD", ($_SESSION['__WEB_USER']['Level']==3?null: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="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="KecID">Nama Kecamatan</label>
<div class="col-sm-8 col-lg-9">'.$tkec.'</div>
</div>';
}
?>
+128
View File
@@ -0,0 +1,128 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/repo/bahan_opd.php
Desc. : PHP - Cetak Bahan Forum untuk OPD
Created By : Siau Pheng ([email protected]).
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_opd = Param::Get("OPDID", 0);
$id_kec = Param::Get("KecID", 0);
if ( $data == "pdf" || $data == "print") {
$nama_opd = "Semua OPD";
if ($id_opd > 0) {
$db->Query("SELECT N_OPD FROM para90_opd WHERE OPDID='".$id_opd."' LIMIT 1");
if ($db->Next()) $nama_opd = $db->Row("N_OPD");
}
$tsql = " Tahun='".$tahun."' AND ((JU<3 AND Prio IN (1,2,3,4,5)) OR (JU=3))";
$tsql .= ($id_opd==0) ? "" : " AND OPDID='".$id_opd."'";
$tsql .= ($id_kec==0) ? "" : " AND KecID='".$id_kec."'";
// proses rekap database
Report_Empty("mus_opd");
$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.OPDID");
$db->Query("SELECT T.*,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,O.K_OPD,O.N_OPD,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 rep_mus_opd RO ON (T.OPDID=RO.OPDID AND T.Tahun=RO.Tahun AND RO.UserID='".user_id()."' AND RO.Unix='".user_unix()."') ORDER BY O.K_OPD,T.Prio,D.K_Kec,T.Kode");
}
if ( $data == "pdf" ) {
$html = '<p class="judul">Daftar Usulan Pembangunan Berdasarkan OPD Untuk Pembahasan Renja '.($tahun-1).'<br>Di Dalam Forum PD/LPD Tahun '.($tahun).'</p>';
$footer = '<htmlpagefooter name="RepFoot%s"><table class="footer"><tr><td width="33%%">eForum - 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>No. Prio</th><th>Usulan Kegiatan</th><th>Kode Rincian</th><th>Volume</th><th>Lokasi</th><th>Jumlah</th><th colspan="2">Lokasi (Desa/Kec)</th><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>Ket</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>%s</td><td>%s</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>';
$_sub = '<tr class="%s"><td colspan="5" class="b">%s</td><td class="r b">%s</td><td colspan="8" class="b">&nbsp;</td></tr>';
$body = $t_head;
$kopd = ""; $n_opd = "";
while ($db->Next()) {
$n_opd = $db->Row("N_OPD");
if ($kopd == "") {
$html .= sprintf($footer, $db->Row("K_OPD"), $n_opd);
$body .= sprintf($_setfoot, $db->Row("K_OPD"));
}
if ($kopd <> $db->Row("K_OPD")) {
if ($kopd <> "") {
$body .= $t_foot;
$body .= '<pagebreak orientation="landscape" />';
$body .= $t_head;
}
$body .= sprintf($_sub, "opd", $n_opd, rupiah($db->Row("OPD_RUPIAH")));
if ($kopd <> "") {
$html .= sprintf($footer, $db->Row("K_OPD"), $n_opd);
$body .= sprintf($_setfoot, $db->Row("K_OPD"));
}
$kopd = $db->Row("K_OPD");
}
$body .= sprintf($_line, $db->Row("Prio"), $db->Row("Usulan"), $db->Row("Kode_Usul"), $db->Row("Vol_Satuan"), $db->Row("Lokasi"), rupiah($db->Row("Rupiah")), $db->Row("N_Desa"), $db->Row("N_Kec"));
}
$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/forum.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("Bahan OPD ".$nama_opd);
$mpdf->Output("Bahan OPD ".$nama_opd.".pdf", \Mpdf\Output\Destination::INLINE);
} else if ( $data == "default") {
$q_opd = ($_SESSION['__WEB_USER']['Level']==3) ? " AND OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")" : "";
$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, 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, true, "vi_para90_opd", array("OPDID","Nama_OPD"), "Aktif=1 AND IK=0".$q_opd." ORDER BY K_OPD", ($_SESSION['__WEB_USER']['Level']==3?null: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>';
}
?>
+169
View File
@@ -0,0 +1,169 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/repo/hasil_forum.php
Desc. : PHP - Cetak Hasil Forum / Forum
Created By : Siau Pheng ([email protected]).
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_forum = Param::Get("ForumID", 0);
$id_opd = Param::Get("OPDID", 0);
$id_status = Param::Get("StatusID", 0);
if ( $data == "pdf" || $data == "print") {
$nama_forum = "Semua Forum";
if ($id_forum > 0) {
$db->Query("SELECT N_Forum FROM para_forum WHERE ForumID='".$id_forum."' LIMIT 1");
if ($db->Next()) $nama_forum = $db->Row("N_Forum");
}
$cat_status = '<br><br><table class="ttd-ba-status"><tbody><tr><td class="judul" colspan="2">Keterangan :</td></tr>';
$db->Query("SELECT * FROM para_status WHERE Aktif=1 ORDER BY K_Status");
while ($db->Next()) {
$cat_status .= sprintf('<tr><td style="width:20px;">%s.</td><td>%s</td></tr>', $db->Row("K_Status"), $db->Row("N_Status"));
}
$cat_status .= '</tbody></table>';
$tsql = " Tahun='".$tahun."'";
$tsql .= ($id_forum==0) ? "" : " AND OPDID IN (SELECT OPDID FROM para90_opd WHERE Aktif=1 AND ForumID='".$id_forum."')";
$tsql .= ($id_opd==0) ? "" : " AND OPDID='".$id_opd."'";
$tsql .= ($id_status==0) ? " AND StatusID>0" : " AND StatusID='".$id_status."'";
// proses rekap database
Report_Empty("mus_opd");
$db->Query("INSERT INTO rep_mus_opd SELECT T.Tahun,T.KecID,T.OPDID,T.KelID,SUM(T.Rupiah2),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.OPDID");
$db->Query("SELECT T.*,K.K_Lokasi K_Kec,K.N_Lokasi N_Kec,D.N_Lokasi N_Desa,CONCAT(IF(T.JU=3,'KEC',K.K_Lokasi),'.',T.Kode) Kode_Usul,CONCAT(T.Volume2,' ',S.N_Satuan) Vol_Satuan,O.S_OPD,O.K_OPD,O.N_OPD,F.ForumID,F.N_Forum,A.K_Status,A.S_Status,RO.* FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T LEFT JOIN para_lokasi K ON (K.LokasiID=T.KecID AND K.Level=1) LEFT JOIN para_lokasi D ON (D.LokasiID=T.KelID AND D.Level=2) LEFT JOIN para_satuan S ON (S.SatuanID=T.SatuanID2) LEFT JOIN para_status A ON (A.StatusID=T.StatusID) LEFT JOIN para90_opd O ON (O.OPDID=T.OPDID) LEFT JOIN para_forum F ON (F.ForumID=O.ForumID) LEFT JOIN rep_mus_opd RO ON (T.OPDID=RO.OPDID AND T.Tahun=RO.Tahun AND RO.UserID='".user_id()."' AND RO.Unix='".user_unix()."') ORDER BY O.ForumID,O.K_OPD,T.Prio,T.JU DESC,T.Kode");
}
if ( $data == "pdf" ) {
$html = '<p class="judul">Hasil Pembahasan Usulan Kegiatan Pembangunan<br>Pada Forum OPD Untuk Penyusunan Renja '.($tahun).'</p>';
$footer = '<htmlpagefooter name="RepFoot%s"><table class="footer"><tr><td width="33%%">eForum - 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>No. Prio</th><th>Usulan Kegiatan</th><th>Kode Rincian</th><th>Volume</th><th>Lokasi</th><th>Jumlah</th><th colspan="2">Lokasi (Desa/Kec)</th><th colspan="2">Keterangan</th></tr></thead><tbody>';
$t_foot = '</tbody></table></div>';
$t_ttd = 'Sambas, '.tgl_panjang().'<br><br><table class="ttd"><thead><tr><th>Nama</th><th>OPD</th><th style="width:20%;">Paraf</th></tr></thead><tbody><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr></tbody></table>';
$_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>%s</td><td>%s</td><td style="width:2%%;">%s</td><td>%s</td></tr>';
$_sub = '<tr class="%s"><td colspan="5" class="b">%s</td><td class="r b">%s</td><td colspan="4" class="b">&nbsp;</td></tr>';
$body = $t_head;
$kfor = ""; $kopd = ""; $n_opd = "";
while ($db->Next()) {
$n_opd = $db->Row("N_OPD");
if ($kopd == "") {
$html .= sprintf($footer, $db->Row("K_OPD"), $n_opd);
$body .= sprintf($_setfoot, $db->Row("K_OPD"));
}
if ($kfor <> $db->Row("ForumID")) {
if ($kfor <> "") {
$body .= $t_foot;
$body .= '<pagebreak orientation="landscape" />';
$html .= sprintf($footer, "ttd", "Halaman Tanda Tangan OPD");
$body .= sprintf($_setfoot, "ttd");
$body .= $t_ttd . $cat_status;
$body .= '<pagebreak orientation="landscape" />';
$body .= $t_head;
}
$body .= sprintf($_sub, "forum", $db->Row("N_Forum"), "&nbsp;");
$kfor = $db->Row("ForumID");
}
if ($kopd <> $db->Row("K_OPD")) {
if ($kopd <> "") {
$body .= $t_foot;
$body .= '<pagebreak orientation="landscape" />';
$body .= $t_head;
$html .= sprintf($footer, $db->Row("K_OPD"), $n_opd);
$body .= sprintf($_setfoot, $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("Prio"), $db->Row("Usulan2"), $db->Row("Kode_Usul"), $db->Row("Vol_Satuan"), $db->Row("Lokasi2"), rupiah($db->Row("Rupiah2")), $db->Row("N_Desa"), $db->Row("N_Kec"), $db->Row("K_Status"), ($db->Row("S_Status")==""?"&nbsp;":$db->Row("S_Status")));
}
$body .= sprintf($t_foot);
if ($kfor <> "") {
$body .= '<pagebreak orientation="landscape" />';
$html .= sprintf($footer, "ttd", "Halaman Tanda Tangan OPD");
$body .= sprintf($_setfoot, "ttd");
$body .= $t_ttd . $cat_status;
}
$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/forum.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("Hasil Forum ".$nama_forum);
$mpdf->Output("Hasil Forum ".$nama_forum.".pdf", \Mpdf\Output\Destination::INLINE);
} else if ( $data == "option-opd" ) {
$aoption = array('type' => "option", 'id' => "OPDID", 'value' => 0, 'avalue' => array());
$db->Query("SELECT * FROM vi_para90_opd WHERE Aktif=1 AND ForumID='".$id_forum."'".($_SESSION['__WEB_USER']['Level']==3?" AND OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")":""));
if ($db->RecordCount()<>1) $aoption['avalue'][] = array('value'=>0, 'html'=>"");
while ($db->Next()) {
if ($db->RecordCount()==1) $aoption['value'] = $db->Row("OPDID");
$aoption['avalue'][] = array('value'=>$db->Row("OPDID"), 'html'=>$db->Row("Nama_OPD"));
}
$ajson[] = $aoption;
} else if ( $data == "default") {
$form = new Form($db);
$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']."'");
$tforum = $form->option_db("_", "ForumID", 0, true, true, "para_forum", array("ForumID","N_Forum"), "Aktif=1 ORDER BY ForumID", array(0,"&nbsp;"), null, "RepoHasilForumJS.oc_Forum()");
$topd = $form->option("_", "OPDID", 0, true, true, array(0 => "&nbsp;"));
$tstatus = $form->option_db("_", "StatusID", 0, true, true, "vi_para_status", array("StatusID","Nama_Status"), "Aktif=1 ORDER BY K_Status", array(0,"SEMUA STATUS"));
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="ForumID">Nama Forum</label>
<div class="col-sm-8 col-lg-9">'.$tforum.'</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="StatusID">Nama Status</label>
<div class="col-sm-8 col-lg-9">'.$tstatus.'</div>
</div>';
}
send_json($ajson);
?>
+132
View File
@@ -0,0 +1,132 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/repo/hasil_opd.php
Desc. : PHP - Cetak Hasil Forum / OPD
Created By : Siau Pheng ([email protected]).
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_opd = Param::Get("OPDID", 0);
$id_status = Param::Get("StatusID", 0);
if ( $data == "pdf" || $data == "print") {
$nama_opd = "Semua OPD";
if ($id_opd > 0) {
$db->Query("SELECT N_OPD FROM para90_opd WHERE OPDID='".$id_opd."' LIMIT 1");
if ($db->Next()) $nama_opd = $db->Row("N_OPD");
}
$tsql = " Tahun='".$tahun."'";
$tsql .= ($id_opd==0) ? "" : " AND OPDID='".$id_opd."'";
$tsql .= ($id_status==0) ? " AND StatusID>0" : " AND StatusID='".$id_status."'";
// proses rekap database
Report_Empty("mus_opd");
Report_Empty("mus_stat");
$db->Query("INSERT INTO rep_mus_opd SELECT T.Tahun,T.KecID,T.OPDID,T.KelID,SUM(T.Rupiah2),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.OPDID");
$db->Query("INSERT INTO rep_mus_stat SELECT T.Tahun,T.KecID,T.OPDID,T.StatusID,SUM(T.Rupiah2),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.OPDID,T.StatusID");
$db->Query("SELECT T.*,K.K_Lokasi K_Kec,K.N_Lokasi N_Kec,D.N_Lokasi N_Desa,CONCAT(IF(T.JU=3,'KEC',K.K_Lokasi),'.',T.Kode) Kode_Usul,CONCAT(T.Volume2,' ',S.N_Satuan) Vol_Satuan,O.S_OPD,O.K_OPD,O.N_OPD,A.K_Status,A.S_Status,A.N_Status,RO.*,RS.* FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T LEFT JOIN para_lokasi K ON (K.LokasiID=T.KecID AND K.Level=1) LEFT JOIN para_lokasi D ON (D.LokasiID=T.KelID AND D.Level=2) LEFT JOIN para_satuan S ON (S.SatuanID=T.SatuanID2) LEFT JOIN para_status A ON (A.StatusID=T.StatusID) LEFT JOIN para90_opd O ON (O.OPDID=T.OPDID) LEFT JOIN rep_mus_opd RO ON (T.OPDID=RO.OPDID AND T.Tahun=RO.Tahun AND RO.UserID='".user_id()."' AND RO.Unix='".user_unix()."') LEFT JOIN rep_mus_stat RS ON (T.OPDID=RS.OPDID AND T.StatusID=RS.StatusID AND T.Tahun=RS.Tahun AND RS.UserID='".user_id()."' AND RS.Unix='".user_unix()."') ORDER BY O.K_OPD,A.K_Status,T.Prio,T.JU DESC,T.Kode");
}
if ( $data == "pdf" ) {
$html = '<p class="judul">Hasil Pembahasan Usulan Kegiatan Pembangunan<br>Pada Forum OPD Untuk Penyusunan Renja '.($tahun).'</p>';
$footer = '<htmlpagefooter name="RepFoot%s"><table class="footer"><tr><td width="33%%">eForum - 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>No. Prio</th><th>Usulan Kegiatan</th><th>Kode Rincian</th><th>Volume</th><th>Lokasi</th><th>Jumlah</th><th colspan="2">Lokasi (Desa/Kec)</th><th colspan="2">Keterangan</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>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>';
$_sub = '<tr class="%s"><td colspan="5" class="b">%s</td><td class="r b">%s</td><td colspan="4" class="b">&nbsp;</td></tr>';
$body = $t_head;
$kopd = ""; $kstat = ""; $n_opd = "";
while ($db->Next()) {
$n_opd = $db->Row("N_OPD");
if ($kopd == "") {
$html .= sprintf($footer, $db->Row("K_OPD"), $n_opd);
$body .= sprintf($_setfoot, $db->Row("K_OPD"));
}
if ($kopd <> $db->Row("K_OPD")) {
if ($kopd <> "") {
$body .= $t_foot;
$body .= '<pagebreak orientation="landscape" />';
$body .= $t_head;
$html .= sprintf($footer, $db->Row("K_OPD"), $n_opd);
$body .= sprintf($_setfoot, $db->Row("K_OPD"));
}
$body .= sprintf($_sub, "opd", $db->Row("N_OPD"), rupiah($db->Row("OPD_RUPIAH")));
$kopd = $db->Row("K_OPD");
}
if ($kstat <> $db->Row("K_Status")) {
$body .= sprintf($_sub, "forum", $db->Row("N_Status"), rupiah($db->Row("STAT_RUPIAH")));
$kstat = $db->Row("K_Status");
}
$body .= sprintf($_line, $db->Row("Prio"), $db->Row("Usulan2"), $db->Row("Kode_Usul"), $db->Row("Vol_Satuan"), $db->Row("Lokasi2"), rupiah($db->Row("Rupiah2")), $db->Row("N_Desa"), $db->Row("N_Kec"), $db->Row("K_Status"), ($db->Row("S_Status")==""?"&nbsp;":$db->Row("S_Status")));
}
$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/forum.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("Hasil OPD ".$nama_opd);
$mpdf->Output("Hasil OPD ".$nama_opd.".pdf", \Mpdf\Output\Destination::INLINE);
} else if ( $data == "default") {
$q_opd = ($_SESSION['__WEB_USER']['Level']==3) ? " AND OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")" : "";
$form = new Form($db);
$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']."'");
$topd = $form->option_db("_", "OPDID", 0, true, true, "vi_para90_opd", array("OPDID","Nama_OPD"), "Aktif=1 AND IK=0".$q_opd." ORDER BY K_OPD", array(0,"&nbsp;"));
$tstatus = $form->option_db("_", "StatusID", 0, true, true, "vi_para_status", array("StatusID","Nama_Status"), "Aktif=1 ORDER BY K_Status", array(0,"SEMUA STATUS"));
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="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="StatusID">Nama Status</label>
<div class="col-sm-8 col-lg-9">'.$tstatus.'</div>
</div>';
}
send_json($ajson);
?>
+133
View File
@@ -0,0 +1,133 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/repo/hasil_status.php
Desc. : PHP - Cetak Hasil Forum / Status
Created By : Siau Pheng ([email protected]).
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_opd = Param::Get("OPDID", 0);
$id_status = Param::Get("StatusID", 0);
if ( $data == "pdf" || $data == "print") {
$nama_status = "Semua Status";
if ($id_status > 0) {
$db->Query("SELECT N_Status FROM para_status WHERE StatusID='".$id_status."' LIMIT 1");
if ($db->Next()) $nama_status = $db->Row("N_Status");
}
$tsql = " Tahun='".$tahun."'";
$tsql .= ($id_opd==0) ? "" : " AND OPDID='".$id_opd."'";
$tsql .= ($id_status==0) ? " AND StatusID>0" : " AND StatusID='".$id_status."'";
// proses rekap database
Report_Empty("mus_stat");
Report_Empty("mus_opd");
$db->Query("INSERT INTO rep_mus_stat SELECT T.Tahun,T.KecID,T.OPDID,T.StatusID,SUM(T.Rupiah2),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.StatusID");
$db->Query("INSERT INTO rep_mus_opd SELECT T.Tahun,T.StatusID,T.OPDID,T.KelID,SUM(T.Rupiah2),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.StatusID,T.OPDID");
$db->Query("SELECT T.*,K.K_Lokasi K_Kec,K.N_Lokasi N_Kec,D.N_Lokasi N_Desa,CONCAT(IF(T.JU=3,'KEC',K.K_Lokasi),'.',T.Kode) Kode_Usul,CONCAT(T.Volume2,' ',S.N_Satuan) Vol_Satuan,O.S_OPD,O.K_OPD,O.N_OPD,A.K_Status,A.S_Status,A.N_Status,RO.*,RS.* FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T LEFT JOIN para_lokasi K ON (K.LokasiID=T.KecID AND K.Level=1) LEFT JOIN para_lokasi D ON (D.LokasiID=T.KelID AND D.Level=2) LEFT JOIN para_satuan S ON (S.SatuanID=T.SatuanID2) LEFT JOIN para_status A ON (A.StatusID=T.StatusID) LEFT JOIN para90_opd O ON (O.OPDID=T.OPDID) LEFT JOIN rep_mus_opd RO ON (T.StatusID=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_stat RS ON (T.StatusID=RS.StatusID AND T.Tahun=RS.Tahun AND RS.UserID='".user_id()."' AND RS.Unix='".user_unix()."') ORDER BY A.K_Status,O.K_OPD,T.Prio,T.JU DESC,T.Kode");
}
if ( $data == "pdf" ) {
$html = '<p class="judul">Hasil Pembahasan Usulan Kegiatan Pembangunan<br>Pada Forum OPD Untuk Penyusunan Renja '.($tahun).'</p>';
$footer = '<htmlpagefooter name="RepFoot%s"><table class="footer"><tr><td width="33%%">eForum - 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>No. Prio</th><th>Usulan Kegiatan</th><th>Kode Rincian</th><th>Volume</th><th>Lokasi</th><th>Jumlah</th><th colspan="2">Lokasi (Desa/Kec)</th><th colspan="2">Keterangan</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>%s</td><td>%s</td><td style="width:2%%;">%s</td><td>%s</td></tr>';
$_sub = '<tr class="%s"><td colspan="5" class="b">%s</td><td class="r b">%s</td><td colspan="4" class="b">&nbsp;</td></tr>';
$_sub_stat = '<tr class="%s"><td class="c b bg-blue">%s</td><td colspan="4" class="b">%s</td><td class="r b">%s</td><td colspan="4" class="b">&nbsp;</td></tr>';
$body = $t_head;
$kstat = ""; $kopd = ""; $n_stat = "";
while ($db->Next()) {
$n_stat = $db->Row("N_Status");
if ($kstat == "") {
$html .= sprintf($footer, $db->Row("K_Status"), $n_stat);
$body .= sprintf($_setfoot, $db->Row("K_Status"));
}
if ($kstat <> $db->Row("K_Status")) {
if ($kstat <> "") {
$body .= $t_foot;
$body .= '<pagebreak orientation="landscape" />';
$body .= $t_head;
$html .= sprintf($footer, $db->Row("K_Status"), $n_stat);
$body .= sprintf($_setfoot, $db->Row("K_Status"));
}
$body .= sprintf($_sub_stat, "forum", $db->Row("K_Status"), $db->Row("N_Status"), rupiah($db->Row("STAT_RUPIAH")));
$kstat = $db->Row("K_Status");
}
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("Prio"), $db->Row("Usulan2"), $db->Row("Kode_Usul"), $db->Row("Vol_Satuan"), $db->Row("Lokasi2"), rupiah($db->Row("Rupiah2")), $db->Row("N_Desa"), $db->Row("N_Kec"), $db->Row("K_Status"), ($db->Row("S_Status")==""?"&nbsp;":$db->Row("S_Status")));
}
$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/forum.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("Hasil Status ".$nama_status);
$mpdf->Output("Hasil Status ".$nama_status.".pdf", \Mpdf\Output\Destination::INLINE);
} else if ( $data == "default") {
$q_opd = ($_SESSION['__WEB_USER']['Level']==3) ? " AND OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")" : "";
$form = new Form($db);
$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']."'");
$topd = $form->option_db("_", "OPDID", 0, true, true, "vi_para90_opd", array("OPDID","Nama_OPD"), "Aktif=1 AND IK=0".$q_opd." ORDER BY K_OPD", ($_SESSION['__WEB_USER']['Level']==3?null:array(0,"SEMUA OPD")));
$tstatus = $form->option_db("_", "StatusID", 0, true, true, "vi_para_status", array("StatusID","Nama_Status"), "Aktif=1 ORDER BY K_Status", 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="StatusID">Nama Status</label>
<div class="col-sm-8 col-lg-9">'.$tstatus.'</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>';
}
send_json($ajson);
?>
+52
View File
@@ -0,0 +1,52 @@
<?php
/*******************************************************************
Module : /apps/php/sys/chpasswd.php
Desc. : PHP - Perubahan Password Operator
Created By : Siau Pheng ([email protected]).
Created Date : December 7th, 2008.
Last Modified : April 25th, 2020.
(c) 2008 - 2020, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
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);
?>
+289
View File
@@ -0,0 +1,289 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/usul/desa2.php
Desc. : PHP - Input Usulan Desa Susulan
Created By : Siau Pheng ([email protected]).
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");
$efor_enable = 1; //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 < 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-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.*,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(Rupiah2) TOT_RUPIAH 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->set_field_order("N_Lokasi", "A");
$obj->add_row_btn("save", "Desa", "FUsulDesa2JS.kec_select");
$obj->set_func_navi("FUsulDesa2JS.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(Rupiah2) 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", "FUsulDesa2JS.kel_select");
$obj->set_func_navi("FUsulDesa2JS.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(Rupiah2) 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", "FUsulDesa2JS.bel_select");
$obj->set_func_navi("FUsulDesa2JS.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("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("FUbah", 1); //update oleh forum
$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->add_param("JU", 1); //jenis usulan tambahan
$sql->add_param_stamp();
$sql->add_param_userid();
$sql->InsertDB();
} else if ( $mode_detail == "update" ) {
$sql->add_param_stamp("Update_Stamp");
$sql->add_param_userid("Update_UserID");
$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=1");
}
}
$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.SatuanID=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");
$obj->set_row_control("JU", 1);
if ($efor_enable) {
$obj->add_row_btn("clipboard", "Ubah", "FUsulDesa2JS.keg_ubah");
$obj->add_row_btn("trash", "Hapus", "FUsulDesa2JS.keg_hapus", "KelID", $id_kel);
$obj->set_func_btn("FUsulDesa2JS.keg_tambah", "+ Usulan");
} else {
$obj->add_row_btn("clipboard", "Detail", "FUsulDesa2JS.keg_ubah");
}
$obj->set_func_navi("FUsulDesa2JS.data_query('tabel-keg')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEG");
} else if ( $data == "detail-keg" ) {
$enable = ($efor_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;"]);
$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="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 Desa (Susulan) - 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);
?>
+236
View File
@@ -0,0 +1,236 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/usul/kec.php
Desc. : PHP - Usulan Kecamatan
Created By : Siau Pheng ([email protected]).
Created Date : October 28th, 2011.
Last Modified : January 13th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
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");
$efor_enable = 1; //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.*,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 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->set_field_order("N_Lokasi", "A");
$obj->add_row_btn("save", "Usulan", "FUsulKecJS.kec_select");
$obj->set_func_navi("FUsulKecJS.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_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->add_param("JU", 3);//jenis usulan kecamatan
$sql->add_param_stamp();
$sql->add_param_userid();
$sql->InsertDB();
} else if ( $mode_detail == "update" ) {
$sql->add_param_stamp("Update_Stamp");
$sql->add_param_userid("Update_UserID");
$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 ($efor_enable) {
$obj->add_row_btn("clipboard", "Ubah", "FUsulKecJS.keg_ubah");
$obj->add_row_btn("trash", "Hapus", "FUsulKecJS.keg_hapus", "KecID", $id_kec);
$obj->set_func_btn("FUsulKecJS.keg_tambah", "+ Usulan");
} else {
$obj->add_row_btn("clipboard", "Detail", "FUsulKecJS.keg_ubah");
}
$obj->set_func_navi("FUsulKecJS.data_query('tabel-keg')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEG");
} else if ( $data == "detail-keg" ) {
$enable = ($efor_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="formUsulKec" 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);
?>