validasi kinerja

This commit is contained in:
2026-09-15 12:27:07 +07:00
parent ec23a94764
commit b28dc2f936
7 changed files with 1251 additions and 3 deletions
+2 -2
View File
@@ -29,7 +29,7 @@ if (!user_logged()) {
$A_CSS[] = "select2/select2-bootstrap-5-theme.css";
$A_CSS[] = "bootstrap/bootstrap.datepicker.css";
//$A_CSS[] = "simplebar.css";
//$A_CSS[] = "lightbox.css";
$A_CSS[] = "lightbox.css";
//$A_CSS[] = "codemirror.css";
//$A_CSS[] = "summernote-bs4.css";
$A_CSS[] = "default.css";
@@ -58,7 +58,7 @@ if (!user_logged()) {
"chart/chart.js",
//"chart/chartjs-plugin-datalabels.js",
//"simplebar.js",
//"lightbox.js",
"lightbox.js",
//"summernote-bs4.js",
//"html5-qrcode.js",
"fonia3.js",
+80
View File
@@ -196,6 +196,7 @@ var KinerjaJS = {
}
});
});
this.data_query('tabel-eviden');
});
}
}).send();
@@ -238,6 +239,31 @@ var KinerjaJS = {
}).send();
},
eviden_open_doc: function(nfile){
FoniaJS.showConfirm('Konfirmasi', 'Yakin akan buka file Dokumen ?', () => {
window.open(nfile);
}, 'info');
},
eviden_open_pdf: function(nfile){
var dpdf = new cPDF(nfile);
dpdf.set_zoom(100);
dpdf.showPDF();
},
eviden_hapus: function(id, nama){
FoniaJS.showConfirm('Konfirmasi', 'Yakin akan hapus <b>"'+nama+'"</b> ?', () => {
new Request.JSON({
url: this.PHP,
sendParam: ['data=tabel-eviden','mode_detail=delete','ORGID','OPDID','ProgID','KegID','SubID','DPASubID','DPAEvidenID='+id],
onSuccess: (ajson) => {
FoniaJS.showInfo('Proses hapus file sukses!');
this.create_Eviden_Table(ajson);
}
}).send();
}, 'danger');
},
akun_ubah: function(acell){
new Request({
url: this.PHP,
@@ -291,6 +317,54 @@ var KinerjaJS = {
}).send();
},
create_Eviden_Table: function(ajson) {
var opsi = { responsive: true, columnDefs: [{responsivePriority:1,targets:0}, {responsivePriority:2,targets:-1}, {orderable:false,targets:-1}], dom: 'r<"row"<"col-sm-12"t>><"row"<"col-sm-12 col-md-6"<"toolbar">><"col-sm-12 col-md-6"p>>', autoWidth: false, processing: true, searching: false };
opsi.drawCallback = function(){
$('#tabelEviden tbody').on('click', '.fon-tabel-dt', (e) => {
var tr = $(e.currentTarget).closest('tr');
var row = otabel.row(tr);
if (row.child.isShown()){
row.child.hide();
tr.removeClass('shown');
}else{
if (otabel.row('.shown').length){
$('.fon-tabel-dt', otabel.row('.shown').node()).click();
}
var _dt_id = $('<div id="TD_Fonia_' + parseInt(Math.random() * 99999999) + '" class="fon-tabel-child" />');
row.child(_dt_id).show();
tr.addClass('shown');
ValidKinerjaJS.eviden_form(row.data(), _dt_id);
}
});
$('#tabelEviden tbody').on('click', 'td.dtr-control', (e) => {
var tr = $(e.currentTarget).closest('tr');
var row = otabel.row(tr);
if (row.child.isShown()){
row.child.hide();
tr.removeClass('dt-hasChild parent');
}else{
var ind = 0;
var tampil = '<ul class="list-unstyled">';
api.columns().every(function(){
var kol = this.header();
if (kol.className.indexOf('dtr-hidden') != -1){
tampil += '<li class="py-1"><span class="d-inline-block" style="min-width:100px;">' + kol.textContent + '</span><span class="text-break">' + row.data()[ind] + '</span></li>';
}
ind++;
})
tampil += '</ul>';
row.child(tampil).show();
tr.addClass('dt-hasChild parent');
}
});
}
$('#divEviden').html(ajson.html)
var otabel = $('#tabelEviden').DataTable(opsi);
},
data_query: function(tipe, mode){
if (tipe=="tabel-opd"){
new Request.JSONF({
@@ -312,6 +386,12 @@ var KinerjaJS = {
url: this.PHP,
sendParam: ['data=tabel-sub','Hak_Bln','ORGID','OPDID','ProgID','KegID']
}).send();
} else if (tipe=="tabel-eviden"){
new Request.JSON({
url: this.PHP,
sendParam: ['data=tabel-eviden','Hak_Bln','ORGID','OPDID','ProgID','KegID','SubID','DPASubID'],
onSuccess: (ajson) => this.create_Eviden_Table(ajson)
}).send();
} else if (tipe=="tabel-akun"){
new Request.JSONF({
url: this.PHP,
+155
View File
@@ -0,0 +1,155 @@
/*******************************************************************
App. Name : SISTEM INFORMASI MONITORING DAN EVALUASI
Module : /apps/js/valid/faktor_opd.js
Desc. : JS - Validasi Faktor Pendukung OPD
Created By : Siau Pheng ([email protected]).
Created Date : December 7th, 2011.
Last Modified : September 15th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var ValidFaktorOPDJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butOPD').click(() => {
if ($('#OPDID').val()>0) this.show_hide(1);
});
this.show_hide(1);
},
show_hide: function(no){
$('#divOPD').addClass('d-none'); $('#butOPD').removeClass('btn-secondary').addClass('btn-info');
$('#divMATRIK').addClass('d-none');
if (no == 1) {
$('#OPDID').val(0);
$('#ORGID').val(0);
$('#Nama_OPD').val('');
$('#Hak_Real').val(1);
$('#K_OPD').val('');
}
if (no <= 1) {
$('#butOPD').removeClass('btn-info').addClass('btn-secondary');
}
if (no == 1) { $('#divOPD').removeClass('d-none'); this.data_query('tabel-opd'); }
if (no == 2) { $('#divMATRIK').removeClass('d-none'); this.data_query('tabel-matrik'); }
},
opd_select: function(acell){
$('#OPDID').val(acell[0]);
$('#ORGID').val(acell[1]);
$('#Nama_OPD').val(acell[2]);
$('#Hak_Real').val(acell[3]);
$('#K_OPD').val(acell[4]);
this.show_hide(2);
},
matrik_form: function(acell, div){
new Request.JSON({
url: this.PHP,
sendParam: ['data=detail-matrik','ORGID','OPDID','DalevMatrikID='+acell[0]],
onSuccess: (adata) => {
$(div).html(adata.html);
$(div)
.find('#butSimpanMatrik').click(() => this.matrik_save()).end()
.find('#butBatalMatrik').click(() => this.matrik_batal());
}
}).send();
},
matrik_batal: function(){
var dt = $('#tabelMatrik').DataTable(), tr, l_row;
tr = $('#butBatalMatrik').closest('tr');
l_row = dt.row(tr.prev('tr'));
if (l_row.child.isShown()) l_row.nodes().to$().find('.fon-tabel-dt').click();
if (l_row.data()[0]=='0') l_row.remove().draw(true);
},
matrik_save: function(){
if ($('#B_Catatan').val() == ''){
FoniaJS.showInfo('Mohon lengkapi Catatan & Status Validasi !');
return false;
}
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-matrik','mode_detail=update','ORGID','OPDID','DalevMatrikID','B_Catatan','B_Valid'],
onSuccess: () => FoniaJS.showInfo('Sukses menyimpan Validasi Matrik.')
}).send();
},
matrik_download: function(id) {
var dload = new cEXPORT({
url: this.PHP,
//filename: file_matrik,
});
dload.add_param('data', 'matrik-download');
dload.add_param('DalevMatrikID', id);
dload.download();
},
data_query: function(tipe, mode){
if (tipe=="tabel-opd"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-opd']
}).send();
} else if (tipe=="tabel-matrik"){
new Request.JSON({
url: this.PHP,
sendParam: ['data=tabel-matrik','ORGID','OPDID'],
onSuccess: (ajson) => {
var opsi = { responsive: true, columnDefs: [{responsivePriority:1,targets:0}, {responsivePriority:2,targets:-1}, {orderable:false,targets:-1}], dom: 'r<"row"<"col-sm-12"t>><"row"<"col-sm-12 col-md-6"<"toolbar">><"col-sm-12 col-md-6"p>>', autoWidth: false, processing: true, searching: false };
opsi.drawCallback = function(){
$('#tabelMatrik tbody').on('click', '.fon-tabel-dt', (e) => {
var tr = $(e.currentTarget).closest('tr');
var row = otabel.row(tr);
if (row.child.isShown()){
row.child.hide();
tr.removeClass('shown');
}else{
if (otabel.row('.shown').length){
$('.fon-tabel-dt', otabel.row('.shown').node()).click();
}
var _dt_id = $('<div id="TD_Fonia_' + parseInt(Math.random() * 99999999) + '" class="fon-tabel-child" />');
row.child(_dt_id).show();
tr.addClass('shown');
ValidFaktorOPDJS.matrik_form(row.data(), _dt_id);
}
});
$('#tabelMatrik tbody').on('click', 'td.dtr-control', (e) => {
var tr = $(e.currentTarget).closest('tr');
var row = otabel.row(tr);
if (row.child.isShown()){
row.child.hide();
tr.removeClass('dt-hasChild parent');
}else{
var ind = 0;
var tampil = '<ul class="list-unstyled">';
api.columns().every(function(){
var kol = this.header();
if (kol.className.indexOf('dtr-hidden') != -1){
tampil += '<li class="py-1"><span class="d-inline-block" style="min-width:100px;">' + kol.textContent + '</span><span class="text-break">' + row.data()[ind] + '</span></li>';
}
ind++;
})
tampil += '</ul>';
row.child(tampil).show();
tr.addClass('dt-hasChild parent');
}
});
}
$('#divMATRIK').html(ajson.html)
var otabel = $('#tabelMatrik').DataTable(opsi);
}
}).send();
}
}
};
+288
View File
@@ -0,0 +1,288 @@
/*******************************************************************
App. Name : SISTEM INFORMASI MONITORING DAN EVALUASI
Module : /apps/js/valid/kinerja.js
Desc. : JS - Validasi Realisasi Kinerja OPD
Created By : Siau Pheng ([email protected]).
Created Date : December 7th, 2011.
Last Modified : September 7th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var ValidKinerjaJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butOPD').click(() => {
if ($('#OPDID').val()>0) this.show_hide(1);
});
$('#butPROG').click(() => {
if ($('#ProgID').val()>0) this.show_hide(2);
});
$('#butKEG').click(() => {
if ($('#KegID').val()>0) this.show_hide(3);
});
this.show_hide(1);
},
show_hide: function(no){
$('#divOPD').addClass('d-none'); $('#butOPD').removeClass('btn-secondary').addClass('btn-info');
$('#divPROG').addClass('d-none'); $('#butPROG').removeClass('btn-secondary').addClass('btn-info');
$('#divKEG').addClass('d-none'); $('#butKEG').removeClass('btn-secondary').addClass('btn-info');
$('#divSUB').addClass('d-none');
if (no == 1) {
$('#OPDID').val(0);
$('#ORGID').val(0);
$('#Nama_OPD').val('');
$('#Hak_Bln').val(1);
$('#Hak_Tw').val(1);
}
if (no <= 1) {
$('#ProgID').val(0);
$('#Nama_PROG').val('');
$('#butOPD').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 2) {
$('#KegID').val(0);
$('#Nama_KEG').val('');
$('#butPROG').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 3) {
$('#butKEG').removeClass('btn-info').addClass('btn-secondary');
}
if (no == 1) { $('#divOPD').removeClass('d-none'); this.data_query('tabel-opd'); }
if (no == 2) { $('#divPROG').removeClass('d-none'); this.data_query('tabel-prog'); }
if (no == 3) { $('#divKEG').removeClass('d-none'); this.data_query('tabel-keg'); }
if (no == 4) { $('#divSUB').removeClass('d-none'); this.data_query('tabel-sub'); }
},
opd_select: function(acell){
$('#OPDID').val(acell[0]);
$('#ORGID').val(acell[1]);
$('#Nama_OPD').val(acell[2]);
$('#Hak_Bln').val(acell[3]);
$('#Hak_Tw').val(acell[4]);
this.show_hide(2);
},
prog_select: function(acell){
$('#ProgID').val(acell[1]);
$('#Nama_PROG').val(acell[2]);
this.show_hide(3);
},
prog_real: function(acell){
$('#ProgID').val(acell[1]);
new Request({
url: this.PHP,
sendParam: ['data=detail-prog','Hak_Tw','ORGID','OPDID','ProgID','DPAProgID='+acell[0]],
onSuccess: (txt) => {
const tombol = [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}];
if ($('#Hak_Tw').val()==0) tombol.pop();
this.winProg = FoniaJS.showWindow('Prog', 'Detail Capaian Program', txt, 'xl', tombol, () => {
$('#winProg').find('#butWSimpan').click(() => this.prog_save());
});
}
}).send();
},
prog_save: function(){
var _param = ['data=tabel-prog','mode_detail=update','Hak_Tw','ORGID','OPDID','ProgID','DPAProgID'];
$(':input[id^="B_Catat_TW_"]').each((i,e) => { _param.push(e.id); });
new Request.JSONF({
url: this.PHP,
sendParam: _param,
onSuccess: () => {
FoniaJS.closeWindow(this.winProg);
FoniaJS.showInfo('Sukses menyimpan Capaian Program.');
}
}).send();
},
keg_select: function(acell){
$('#KegID').val(acell[1]);
$('#Nama_KEG').val(acell[2]);
this.show_hide(4);
},
/*sub_select: function(acell){
$('#SubID').val(acell[1]);
$('#Nama_SUB').val(acell[2]);
this.show_hide(5);
},*/
sub_ubah: function(acell){
$('#SubID').val(acell[1]);
new Request({
url: this.PHP,
sendParam: ['data=detail-sub','Hak_Bln','ORGID','OPDID','ProgID','KegID','SubID='+acell[1],'DPASubID='+acell[0]],
onSuccess: (txt) => {
this.winDSub = FoniaJS.showWindow('DSub', 'Kinerja dan Informasi Sub Kegiatan', txt, 'xl', '', () => {
this.data_query('tabel-eviden');
});
}
}).send();
},
sub_save: function(){
var _kosong = 0;
var _evi = $('#Real_TW').val();
if (_evi && _evi.trim() !== '' && parseFloat(_evi) > 0) {
var _dok = $('#LabelEviden1');
_dok.removeClass("btn-outline-success btn-outline-danger")
if (parseInt($('#Eviden_TW').val()) === 0) {
_kosong++;
_dok.addClass("btn-outline-danger");
} else {
_dok.addClass("btn-outline-success")
}
var _catat = $('#Real_Catatan');
_catat.removeClass("is-valid is-invalid")
if (_catat.val() === '') {
_kosong++;
_catat.addClass("is-invalid").focus();
} else {
_catat.addClass("is-valid")
}
}
if (_kosong > 0) {
FoniaJS.showError('Tolong lengkapi Eviden / Catatan.');
return false;
}
var _param = ['data=tabel-sub','Hak_Bln','ORGID','OPDID','ProgID','KegID','SubID','DPASubID','Real_Catatan','Real_No_Kontrak','Real_Pelaksana','DPASubOutputID','Real_TW','mode_detail=update'];
new Request.JSONF({
url: this.PHP,
sendParam: _param,
onSuccess: () => {
FoniaJS.closeWindow(this.winDSub);
FoniaJS.showInfo('Sukses menyimpan Kinerja Sub Kegiatan.');
}
}).send();
},
eviden_form: function(acell, div){
new Request.JSON({
url: this.PHP,
sendParam: ['data=detail-eviden','Hak_Bln','ORGID','OPDID','DPAEvidenID='+acell[0]],
onSuccess: (adata) => {
$(div).html(adata.html);
$(div)
.find('#butSimpanEviden').click(() => this.eviden_save()).end()
.find('#butBatalEviden').click(() => this.eviden_batal());
}
}).send();
},
eviden_batal: function(){
var dt = $('#tabelEviden').DataTable(), tr, l_row;
tr = $('#butBatalEviden').closest('tr');
l_row = dt.row(tr.prev('tr'));
if (l_row.child.isShown()) l_row.nodes().to$().find('.fon-tabel-dt').click();
if (l_row.data()[0]=='0') l_row.remove().draw(true);
},
eviden_save: function(){
if ($('#B_Catatan').val() == ''){
FoniaJS.showInfo('Mohon lengkapi Catatan & Status Validasi !');
return false;
}
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-eviden','mode_detail=update','Hak_Bln','ORGID','OPDID','DPAEvidenID','B_Catatan','B_Valid'],
onSuccess: () => FoniaJS.showInfo('Sukses menyimpan Validasi Eviden.')
}).send();
},
eviden_open_doc: function(nfile){
FoniaJS.showConfirm('Konfirmasi', 'Yakin akan buka file Dokumen ?', () => {
window.open(nfile);
}, 'info');
},
eviden_open_pdf: function(nfile){
var dpdf = new cPDF(nfile);
dpdf.set_zoom(100);
dpdf.showPDF();
},
data_query: function(tipe, mode){
if (tipe=="tabel-opd"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-opd']
}).send();
} else if (tipe=="tabel-prog"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-prog','Hak_Tw','ORGID','OPDID']
}).send();
} else if (tipe=="tabel-keg"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','Hak_Bln','ORGID','OPDID','ProgID']
}).send();
} else if (tipe=="tabel-sub"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-sub','Hak_Bln','ORGID','OPDID','ProgID','KegID']
}).send();
} else if (tipe=="tabel-eviden"){
new Request.JSON({
url: this.PHP,
sendParam: ['data=tabel-eviden','Hak_Bln','ORGID','OPDID','ProgID','KegID','SubID','DPASubID'],
onSuccess: (ajson) => {
var opsi = { responsive: true, columnDefs: [{responsivePriority:1,targets:0}, {responsivePriority:2,targets:-1}, {orderable:false,targets:-1}], dom: 'r<"row"<"col-sm-12"t>><"row"<"col-sm-12 col-md-6"<"toolbar">><"col-sm-12 col-md-6"p>>', autoWidth: false, processing: true, searching: false };
opsi.drawCallback = function(){
$('#tabelEviden tbody').on('click', '.fon-tabel-dt', (e) => {
var tr = $(e.currentTarget).closest('tr');
var row = otabel.row(tr);
if (row.child.isShown()){
row.child.hide();
tr.removeClass('shown');
}else{
if (otabel.row('.shown').length){
$('.fon-tabel-dt', otabel.row('.shown').node()).click();
}
var _dt_id = $('<div id="TD_Fonia_' + parseInt(Math.random() * 99999999) + '" class="fon-tabel-child" />');
row.child(_dt_id).show();
tr.addClass('shown');
ValidKinerjaJS.eviden_form(row.data(), _dt_id);
}
});
$('#tabelEviden tbody').on('click', 'td.dtr-control', (e) => {
var tr = $(e.currentTarget).closest('tr');
var row = otabel.row(tr);
if (row.child.isShown()){
row.child.hide();
tr.removeClass('dt-hasChild parent');
}else{
var ind = 0;
var tampil = '<ul class="list-unstyled">';
api.columns().every(function(){
var kol = this.header();
if (kol.className.indexOf('dtr-hidden') != -1){
tampil += '<li class="py-1"><span class="d-inline-block" style="min-width:100px;">' + kol.textContent + '</span><span class="text-break">' + row.data()[ind] + '</span></li>';
}
ind++;
})
tampil += '</ul>';
row.child(tampil).show();
tr.addClass('dt-hasChild parent');
}
});
}
$('#divEviden').html(ajson.html)
var otabel = $('#tabelEviden').DataTable(opsi);
}
}).send();
}
}
};
+41 -1
View File
@@ -42,7 +42,7 @@ $id_akun = Param::Get("AkunID", 0);
$id_dpa_prog = Param::Get("DPAProgID", 0);
$id_dpa_sub = Param::Get("DPASubID", 0);
if ( in_array($data, ["tabel-opd","tabel-prog","tabel-keg","tabel-sub","tabel-akun","detail-prog","detail-keg","detail-sub"]) ) {
if ( in_array($data, ["tabel-opd","tabel-prog","tabel-keg","tabel-sub","tabel-eviden","tabel-akun","detail-prog","detail-keg","detail-sub"]) ) {
$qsql = " Tahun='".$thn_data."'";
if ( $data == "tabel-opd" ) {
@@ -55,6 +55,8 @@ if ( in_array($data, ["tabel-opd","tabel-prog","tabel-keg","tabel-sub","tabel-ak
$qsql .= " AND OPDID='".$id_opd."' AND ProgID='".$id_prog."' AND KegID='".$id_keg."'";
} else if ( $data == "tabel-akun" || $data == "detail-sub" ) {
$qsql .= " AND OPDID='".$id_opd."' AND ProgID='".$id_prog."' AND KegID='".$id_keg."' AND SubID='".$id_sub."'";
} else if ( $data == "tabel-eviden" ) {
$qsql .= " AND OPDID='".$id_opd."' AND DPASubID='".$id_dpa_sub."'";
}
if ($bln_data == 1) {
@@ -318,6 +320,32 @@ if ( $data == "tabel-opd" ) {
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divAKUN");
} else if ( $data == "tabel-eviden" ) {
if ($mode_detail=="delete") {
$db->Query("UPDATE dpa_sub_eviden SET Aktif=0 WHERE Tahun='".$thn_data."' AND OPDID='".$id_opd."' AND DPAEvidenID='".Param::Get("DPAEvidenID",0)."' LIMIT 1");
}
$tbl_evi = '<table id="tabelEviden" class="table table-striped table-bordered table-hover" data-order=\'[[0,"asc"]]\'><thead><tr><th class="hid">ID</th><th>TW</td><th>Dokumen Eviden</th><th>Ukuran</th><th class="sorting_disabled">Aksi</th></tr></thead><tbody>';
$db->Query("SELECT * FROM dpa_sub_eviden WHERE ".$qsql." AND Aktif=1");
while ($db->Next()){
$afile = explode(".", $db->Row("Eviden_File"));
if (in_array($afile[1], ["png","jpg","jpeg"])) {
$evi_link = '<a class="table-icon" title="Dokumen" href="'.$_SESSION['__WEB_APP']['WEB_PATH'].'dokumen/'.$db->Row("Eviden_File").'" data-lightbox="dokumen"><i class="bi-file-image"></i></a>';
} else if ($afile[1]=="pdf") {
$evi_link = '<a class="table-icon" title="Dokumen" onclick="KinerjaJS.eviden_open_pdf(\''.$_SESSION['__WEB_APP']['WEB_PATH'].'dokumen/'.$db->Row("Eviden_File").'\');"><i class="bi-file-pdf"></i></a>';
} else {
$evi_link = '<a class="table-icon" title="Dokumen" onclick="KinerjaJS.eviden_open_doc(\''.$_SESSION['__WEB_APP']['WEB_PATH'].'dokumen/'.$db->Row("Eviden_File").'\');"><i class="bi-file-x"></i></a>';
}
if ((int) $db->Row("B_Valid", 0) == 0) {
$evi_link .= '<a class="table-icon" title="Hapus" onclick="KinerjaJS.eviden_hapus('.$db->Row("DPAEvidenID").',\''.$db->Row("Eviden_Name").'\');"><i class="bi-trash"></i></a>';
}
$ctt_bpd = (empty($db->Row("B_Catatan"))) ? '' : '<br><strong>Catatan Baperida: </strong><i>'.$db->Row("B_Catatan").'</i>';
$tbl_evi .= sprintf('<tr><td class="hid">%s</td><td class="c">%s</td><td class="l" title="%s">%s</td><td class="c">%s</td><td class="c">%s</td></tr>', $db->Row("DPAEvidenID"), $db->Row("TW"), $db->Row("Eviden_Name"), $db->Row("Eviden_Name").$ctt_bpd, $db->Row("Eviden_Size"), $evi_link);
}
$tbl_evi .= '</tbody></table>';
$ajson['html'] = $tbl_evi;
$ajson['toolbar'] = "";
} else if ( $data == "detail-prog" ) {
$arec = [];
$db->Query("SELECT * FROM dpa_prog WHERE Tahun='".$thn_data."' AND DPAProgID='".$id_dpa_prog."' LIMIT 1");
@@ -356,6 +384,7 @@ if ( $data == "tabel-opd" ) {
$tstatus = $form->textbox('_', "Status_Indi", ucfirst($arec['Status_Indi']), false, false);
$tsumb = $form->textbox('_', 'Sumber_TW_'.$tw_data.'_'.$arec['DPAProgIndiID'], $arec['Sumber_Data'], $tw_en, true, 'text', 'sumber data capaian / link / informasi pendukung');
$tcatat = $form->textbox('_', 'Catat_TW_'.$tw_data.'_'.$arec['DPAProgIndiID'], $arec['Catatan'], $tw_en, true, 'text', 'catatan atau kendala, jika ada');
$tcatatbpd = $form->textbox('_', 'CatatB_TW_'.$tw_data.'_'.$arec['DPAProgIndiID'], $arec['B_Catatan'], false, false, 'text');
$tcapaian = "";
for ($_tw = 1; $_tw < $tw_data; $_tw++) {
$tcapaian .= ' / TW'.$_tw.' : '.$db->Row("Real_TW".$_tw);
@@ -384,6 +413,10 @@ if ( $data == "tabel-opd" ) {
<label class="col-sm-4 col-lg-2 col-form-label" for="Catat_TW_'.$tw_data.'_'.$arec['DPAProgIndiID'].'">Catatan / Kendala</label>
<div class="col">'.$tcatat.'</div>
</div>
<div class="row'.(empty($arec['B_Catatan'])?' d-none':'').'">
<label class="col-sm-4 col-lg-2 col-form-label">Catatan Bapperida</label>
<div class="col">'.$tcatatbpd.'</div>
</div>
<div class="row'.($tw_data==1?' d-none':'').'">
<label class="col-sm-4 col-lg-2 col-form-label">Histori Capaian</label>
<div class="col"><input type="text" class="form-control" value="'.substr($tcapaian,3).'" readonly=""></div>
@@ -484,6 +517,13 @@ if ( $data == "tabel-opd" ) {
echo '
</div></div></div>
<div class="accordion-item">
<h2 class="accordion-header" id="flush-two"><button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-coll-two" aria-controls="flush-coll-two" aria-expanded="false">Daftar Dokumen Eviden</button></h2>
<div id="flush-coll-two" class="accordion-collapse collapse" aria-labelledby="flush-head-two" data-bs-parent="#accorDPAReal">
<div class="accordion-body">
<div id="divEviden"></div>
</div></div></div>
<div class="accordion-item">
<h2 class="accordion-header" id="flush-tri"><button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-coll-tri" aria-controls="flush-coll-tri" aria-expanded="false">Nomor Kontrak & Nama Pelaksana&nbsp;<i>(jika informasi tersedia)</i></button></h2>
<div id="flush-coll-tri" class="accordion-collapse collapse" aria-labelledby="flush-head-tri" data-bs-parent="#accorDPAReal">
+157
View File
@@ -0,0 +1,157 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI MONITORING DAN EVALUASI
Module : /apps/php/valid/faktor_opd.php
Desc. : PHP - Validasi Faktor Pendukung OPD
Created By : Siau Pheng ([email protected]).
Created Date : December 7th, 2011.
Last Modified : September 15th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/emonev.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\DB\SQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Table;
use siaupheng\fonia3\Web\Form;
$db = $db ?? new MySQL();
$ajson = [];
$data = Param::Get("data");
$mode = Param::Get("mode");
$mode_detail = Param::Get("mode_detail");
$emon_en = Param::Get("Hak_Real", 0);
$id_rpjmd = $_SESSION['__WEB_APP']['REAL_RPJMDID'];
$thn_data = $_SESSION['__WEB_APP']['REAL_THN'];
$tw_data = $_SESSION['__WEB_APP']['REAL_TW'];
$id_org = Param::Get("ORGID", 0);
$id_opd = Param::Get("OPDID", 0);
$k_opd = Param::Get("K_OPD", "");
$id_matrik = Param::Get("DalevMatrikID", 0);
if ( in_array($data, ["tabel-opd","tabel-matrik"]) ) {
$qsql = " Tahun='".$thn_data."'";
$msql = "M.Aktif=1";
if ( $data == "tabel-opd" ) {
if (in_array($_SESSION['__WEB_USER']['Level'],[1,3,4])) {
$qsql .= " AND OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")";
$msql .= " AND M.OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")";
}
} else if ( $data == "tabel-matrik" ) {
$qsql .= " AND OPDID='".$id_opd."'";
}
}
if ( $data == "tabel-opd" ) {
$f_tw = (in_array($_SESSION['__WEB_USER']['Level'],[0,1])) ? "1" : "0";
if (in_array($_SESSION['__WEB_USER']['Level'],[3,4])) {
$f_tw = "IFNULL(H.Hak_Kin_T".$tw_data.",1)";
}
$obj = new Table($db);
$obj->set_query("SELECT M.OPDID,M.ORGID,M.K_OPD,M.N_OPD,M.Nama_OPD,".$f_tw." Hak_Tw FROM vi_para90_opd M LEFT JOIN (SELECT * FROM sippd_akses_mon WHERE Tahun='".$thn_data."') H ON (H.OPDID=M.OPDID) WHERE ".$msql);
$obj->add_field("OPDID", "OPD", "hid");
$obj->add_field("ORGID", "ORG", "hid");
$obj->add_field("Nama_OPD", "Nama OPD", "hid");
$obj->add_field("Hak_Tw", "Hak Tw", "hid");
$obj->add_field("K_OPD", "Kode", "c");
$obj->add_field("N_OPD", "Nama Perangkat Daerah", "awr");
//$obj->add_field("TGL", "Update", "c nwr", "sqljams", "", "val-tgljams");
$obj->set_field_order("K_OPD", "A");
$obj->add_row_btn("folder", "Matrik", "ValidFaktorOPDJS.opd_select");
$obj->set_func_navi("ValidFaktorOPDJS.data_query('tabel-opd')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divOPD");
} else if ( $data == "tabel-matrik" ) {
if ($mode_detail === "update") {
$sql = new SQL($db);
$sql->set_table("dpa_dalev_renja_matrik");
$sql->add_param("B_Catatan");
$sql->add_param("B_Valid");
$sql->add_where("Tahun", $thn_data);
$sql->add_where("DalevMatrikID");
$sql->UpdateDB();
}
$tbl_mat = '<table id="tabelMatrik" class="table table-striped table-bordered table-hover" data-order=\'[[0,"asc"]]\'><thead><tr><th class="hid">ID</th><th>TW</td><th>Dokumen Matrik</th><th>Ukuran</th><th class="sorting_disabled">Aksi</th></tr></thead><tbody>';
$db->Query("SELECT * FROM dpa_dalev_renja_matrik WHERE ".$qsql." AND Aktif=1");
while ($db->Next()){
$mat_link = '<a class="table-icon" title="Dokumen" onclick="ValidFaktorOPDJS.matrik_download(\''.$db->Row("DalevMatrikID").'\');"><i class="bi-filetype-xlsx"></i></a>';
$mat_link .= '<a class="table-icon fon-tabel-dt" title="Validasi"><i class="bi-check2"></i></a>';
$tbl_mat .= sprintf('<tr><td class="hid">%s</td><td class="c">%s</td><td class="l" title="%s">%s</td><td class="c">%s</td><td class="c">%s</td></tr>', $db->Row("DalevMatrikID"), $db->Row("TW"), $db->Row("Matrik_Name"), $db->Row("Matrik_Name"), $db->Row("Matrik_Size"), $mat_link);
}
$tbl_mat .= '</tbody></table>';
$ajson['html'] = $tbl_mat;
$ajson['toolbar'] = "";
} else if ( $data == "detail-matrik" ) {
$arec = [];
if ($id_matrik > 0) {
$db->Query("SELECT * FROM dpa_dalev_renja_matrik WHERE DalevMatrikID='".$id_matrik."' LIMIT 1");
if ($db->Next()) $arec = $db->AllRow();
}
$form = new Form($db);
$tcatat = $form->textarea("_", "B_Catatan", $arec['B_Catatan'], true, true, 1);
$tvalid = $form->checkbox("_", "B_Valid", $arec['B_Valid'], true, true, [1,0]);
$ajson['html'] = '
<div class="card"><div class="card-body">
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label" for="B_Catatan">Catatan Bapperinda</label>
<div class="col">'.$tcatat.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label" for="B_Valid">Status Validasi</label>
<div class="col-sm-6 col-lg-4 col-form-label">'.$tvalid.'</div>
<div class="col text-end"><button type="button" class="btn btn-warning me-2" id="butBatalMatrik">Batal</button><button type="button" class="btn btn-success" id="butSimpanMatrik">Simpan</button></div>
</div>
<input type="hidden" id="DalevMatrikID" value="'.$arec['DalevMatrikID'].'">
</div></div>';
} else if ( $data == "matrik-download") {
if ($id_matrik > 0) {
$adata = [];
$db->Query("SELECT * FROM dpa_dalev_renja_matrik WHERE DalevMatrikID='".$id_matrik."' LIMIT 1");
if ($db->Next()) $adata = $db->AllRow();
$_file = $_SESSION['__WEB_APP']['REAL_PATH'] . 'dokumen/' . $adata['Matrik_File'];
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment; filename="' . $adata['Matrik_Name'] . '"');
echo file_get_contents($_file);
exit;
}
} else if ( $data === "default") {
echo '
<div class="fade-in">
<div class="card"><div class="card-header custom-style">Validasi Data Faktor Pendukung OPD // Tahun Anggaran '.$thn_data.'</div><div class="card-body">
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_OPD" placeholder="Nama Perangkat Daerah" type="text" readonly>
<input id="ORGID" type="hidden" value="0">
<input id="OPDID" type="hidden" value="0">
<input id="K_OPD" type="hidden" value="">
<input id="Hak_Real" type="hidden" value="1">
<button class="btn btn-info btn-ganti" type="button" id="butOPD"><span><i class="bi-arrow-left-right"></span></i>OPD</button>
</div>
</div>
</div>
<div id="divOPD">&nbsp;</div>
<div id="divMATRIK">&nbsp;</div>
</div></div>
</div>';
}
send_json($ajson);
?>
+528
View File
@@ -0,0 +1,528 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI MONITORING DAN EVALUASI
Module : /apps/php/valid/kinerja.php
Desc. : PHP - Validasi Realisasi Kinerja OPD
Created By : Siau Pheng ([email protected]).
Created Date : December 7th, 2011.
Last Modified : September 7th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/emonev.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\DB\SQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Table;
use siaupheng\fonia3\Web\Form;
$db = $db ?? new MySQL();
$ajson = [];
$data = Param::Get("data");
$mode = Param::Get("mode");
$mode_detail = Param::Get("mode_detail");
$bln_en = Param::Get("Hak_Bln", 0);
$tw_en = Param::Get("Hak_Tw", 0);
$id_rpjmd = $_SESSION['__WEB_APP']['REAL_RPJMDID'];
$thn_data = $_SESSION['__WEB_APP']['REAL_THN'];
$tw_data = $_SESSION['__WEB_APP']['REAL_TW'];
$bln_data = $_SESSION['__WEB_APP']['REAL_BLN'];
$id_org = Param::Get("ORGID", 0);
$id_opd = Param::Get("OPDID", 0);
$id_prog = Param::Get("ProgID", 0);
$id_keg = Param::Get("KegID", 0);
$id_sub = Param::Get("SubID", 0);
$id_akun = Param::Get("AkunID", 0);
$id_dpa_prog = Param::Get("DPAProgID", 0);
$id_dpa_sub = Param::Get("DPASubID", 0);
if ( in_array($data, ["tabel-opd","tabel-prog","tabel-keg","tabel-sub","tabel-eviden","detail-prog","detail-sub"]) ) {
$qsql = " Tahun='".$thn_data."'";
if ( $data == "tabel-opd" ) {
$qsql .= (in_array($_SESSION['__WEB_USER']['Level'],[1,3,4])) ? " AND OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")": "";
} else if ( $data == "tabel-prog" ) {
$qsql .= " AND OPDID='".$id_opd."'";
} else if ( $data == "tabel-keg" || $data == "detail-prog" ) {
$qsql .= " AND OPDID='".$id_opd."' AND ProgID='".$id_prog."'";
} else if ( $data == "tabel-sub" ) {
$qsql .= " AND OPDID='".$id_opd."' AND ProgID='".$id_prog."' AND KegID='".$id_keg."'";
} else if ( $data == "detail-sub" ) {
$qsql .= " AND OPDID='".$id_opd."' AND ProgID='".$id_prog."' AND KegID='".$id_keg."' AND SubID='".$id_sub."'";
} else if ( $data == "detail-eviden" ) {
$qsql .= " AND OPDID='".$id_opd."' AND DPASubID='".$id_dpa_sub."'";
}
if ($bln_data == 1) {
$q_keu_lalu = "(0)";
$q_keu_ini = "(A.RealK_B1)";
$q_fis_ini = "(A.RealF_B1,0)";
$q_non_ini = "(A.RealN_B1,0)";
}
if ($bln_data == 2) {
$q_keu_lalu = "(A.RealK_B1)";
$q_keu_ini = "(A.RealK_B1+A.RealK_B2)";
$q_fis_ini = "(A.RealF_B1,A.RealF_B2)";
$q_non_ini = "(A.RealN_B1,A.RealN_B2)";
}
if ($bln_data == 3) {
$q_keu_lalu = "(A.RealK_B1+A.RealK_B2)";
$q_keu_ini = "(A.RealK_B1+A.RealK_B2+A.RealK_B3)";
$q_fis_ini = "(A.RealF_B1,A.RealF_B2,A.RealF_B3)";
$q_non_ini = "(A.RealN_B1,A.RealN_B2,A.RealN_B3)";
}
if ($bln_data == 4) {
$q_keu_lalu = "(A.RealK_B1+A.RealK_B2+A.RealK_B3)";
$q_keu_ini = "(A.RealK_B1+A.RealK_B2+A.RealK_B3+A.RealK_B4)";
$q_fis_ini = "(A.RealF_B1,A.RealF_B2,A.RealF_B3,A.RealF_B4)";
$q_non_ini = "(A.RealN_B1,A.RealN_B2,A.RealN_B3,A.RealN_B4)";
}
if ($bln_data == 5) {
$q_keu_lalu = "(A.RealK_B1+A.RealK_B2+A.RealK_B3+A.RealK_B4)";
$q_keu_ini = "(A.RealK_B1+A.RealK_B2+A.RealK_B3+A.RealK_B4+A.RealK_B5)";
$q_fis_ini = "(A.RealF_B1,A.RealF_B2,A.RealF_B3,A.RealF_B4,A.RealF_B5)";
$q_non_ini = "(A.RealN_B1,A.RealN_B2,A.RealN_B3,A.RealN_B4,A.RealN_B5)";
}
if ($bln_data == 6) {
$q_keu_lalu = "(A.RealK_B1+A.RealK_B2+A.RealK_B3+A.RealK_B4+A.RealK_B5)";
$q_keu_ini = "(A.RealK_B1+A.RealK_B2+A.RealK_B3+A.RealK_B4+A.RealK_B5+A.RealK_B6)";
$q_fis_ini = "(A.RealF_B1,A.RealF_B2,A.RealF_B3,A.RealF_B4,A.RealF_B5,A.RealF_B6)";
$q_non_ini = "(A.RealN_B1,A.RealN_B2,A.RealN_B3,A.RealN_B4,A.RealN_B5,A.RealN_B6)";
}
if ($bln_data == 7) {
$q_keu_lalu = "(A.RealK_B1+A.RealK_B2+A.RealK_B3+A.RealK_B4+A.RealK_B5+A.RealK_B6)";
$q_keu_ini = "(A.RealK_B1+A.RealK_B2+A.RealK_B3+A.RealK_B4+A.RealK_B5+A.RealK_B6+A.RealK_B7)";
$q_fis_ini = "(A.RealF_B1,A.RealF_B2,A.RealF_B3,A.RealF_B4,A.RealF_B5,A.RealF_B6,A.RealF_B7)";
$q_non_ini = "(A.RealN_B1,A.RealN_B2,A.RealN_B3,A.RealN_B4,A.RealN_B5,A.RealN_B6,A.RealN_B7)";
}
if ($bln_data == 8) {
$q_keu_lalu = "(A.RealK_B1+A.RealK_B2+A.RealK_B3+A.RealK_B4+A.RealK_B5+A.RealK_B6+A.RealK_B7)";
$q_keu_ini = "(A.RealK_B1+A.RealK_B2+A.RealK_B3+A.RealK_B4+A.RealK_B5+A.RealK_B6+A.RealK_B7+A.RealK_B8)";
$q_fis_ini = "(A.RealF_B1,A.RealF_B2,A.RealF_B3,A.RealF_B4,A.RealF_B5,A.RealF_B6,A.RealF_B7,A.RealF_B8)";
$q_non_ini = "(A.RealN_B1,A.RealN_B2,A.RealN_B3,A.RealN_B4,A.RealN_B5,A.RealN_B6,A.RealN_B7,A.RealN_B8)";
}
if ($bln_data == 9) {
$q_keu_lalu = "(A.RealK_B1+A.RealK_B2+A.RealK_B3+A.RealK_B4+A.RealK_B5+A.RealK_B6+A.RealK_B7+A.RealK_B8)";
$q_keu_ini = "(A.RealK_B1+A.RealK_B2+A.RealK_B3+A.RealK_B4+A.RealK_B5+A.RealK_B6+A.RealK_B7+A.RealK_B8+A.RealK_B9)";
$q_fis_ini = "(A.RealF_B1,A.RealF_B2,A.RealF_B3,A.RealF_B4,A.RealF_B5,A.RealF_B6,A.RealF_B7,A.RealF_B8,A.RealF_B9)";
$q_non_ini = "(A.RealN_B1,A.RealN_B2,A.RealN_B3,A.RealN_B4,A.RealN_B5,A.RealN_B6,A.RealN_B7,A.RealN_B8,A.RealN_B9)";
}
if ($bln_data == 10) {
$q_keu_lalu = "(A.RealK_B1+A.RealK_B2+A.RealK_B3+A.RealK_B4+A.RealK_B5+A.RealK_B6+A.RealK_B7+A.RealK_B8+A.RealK_B9)";
$q_keu_ini = "(A.RealK_B1+A.RealK_B2+A.RealK_B3+A.RealK_B4+A.RealK_B5+A.RealK_B6+A.RealK_B7+A.RealK_B8+A.RealK_B9+A.RealK_B10)";
$q_fis_ini = "(A.RealF_B1,A.RealF_B2,A.RealF_B3,A.RealF_B4,A.RealF_B5,A.RealF_B6,A.RealF_B7,A.RealF_B8,A.RealF_B9,A.RealF_B10)";
$q_non_ini = "(A.RealN_B1,A.RealN_B2,A.RealN_B3,A.RealN_B4,A.RealN_B5,A.RealN_B6,A.RealN_B7,A.RealN_B8,A.RealN_B9,A.RealN_B10)";
}
if ($bln_data == 11) {
$q_keu_lalu = "(A.RealK_B1+A.RealK_B2+A.RealK_B3+A.RealK_B4+A.RealK_B5+A.RealK_B6+A.RealK_B7+A.RealK_B8+A.RealK_B9+A.RealK_B10)";
$q_keu_ini = "(A.RealK_B1+A.RealK_B2+A.RealK_B3+A.RealK_B4+A.RealK_B5+A.RealK_B6+A.RealK_B7+A.RealK_B8+A.RealK_B9+A.RealK_B10+A.RealK_B11)";
$q_fis_ini = "(A.RealF_B1,A.RealF_B2,A.RealF_B3,A.RealF_B4,A.RealF_B5,A.RealF_B6,A.RealF_B7,A.RealF_B8,A.RealF_B9,A.RealF_B10,A.RealF_B11)";
$q_non_ini = "(A.RealN_B1,A.RealN_B2,A.RealN_B3,A.RealN_B4,A.RealN_B5,A.RealN_B6,A.RealN_B7,A.RealN_B8,A.RealN_B9,A.RealN_B10,A.RealN_B11)";
}
if ($bln_data == 12) {
$q_keu_lalu = "(A.RealK_B1+A.RealK_B2+A.RealK_B3+A.RealK_B4+A.RealK_B5+A.RealK_B6+A.RealK_B7+A.RealK_B8+A.RealK_B9+A.RealK_B10+A.RealK_B11)";
$q_keu_ini = "(A.RealK_B1+A.RealK_B2+A.RealK_B3+A.RealK_B4+A.RealK_B5+A.RealK_B6+A.RealK_B7+A.RealK_B8+A.RealK_B9+A.RealK_B10+A.RealK_B11+A.RealK_B12)";
$q_fis_ini = "(A.RealF_B1,A.RealF_B2,A.RealF_B3,A.RealF_B4,A.RealF_B5,A.RealF_B6,A.RealF_B7,A.RealF_B8,A.RealF_B9,A.RealF_B10,A.RealF_B11,A.RealF_B12)";
$q_non_ini = "(A.RealN_B1,A.RealN_B2,A.RealN_B3,A.RealN_B4,A.RealN_B5,A.RealN_B6,A.RealN_B7,A.RealN_B8,A.RealN_B9,A.RealN_B10,A.RealN_B11,A.RealN_B12)";
}
}
if ( $data == "tabel-opd" ) {
$f_bln = "0"; $f_tw = "0";
if (in_array($_SESSION['__WEB_USER']['Level'],[0,1])) {
$f_bln = "1"; $f_tw = "1";
} else if (in_array($_SESSION['__WEB_USER']['Level'],[3,4])) {
$f_bln = "IFNULL(H.Hak_Kin_B".isi_nol($bln_data,2).",1)"; $f_tw = "IFNULL(H.Hak_Kin_T".$tw_data.",1)";
}
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.ORGID,M.K_OPD,M.N_OPD,M.Nama_OPD,".$f_bln." Hak_Bln,".$f_tw." Hak_Tw FROM (SELECT A.OPDID,SUM(A.Renc_Keu) TOT_PAGU,SUM".$q_keu_lalu." REAL_LALU,SUM".$q_keu_ini." REAL_TOTAL,(SUM".$q_keu_ini."/SUM(A.Renc_Keu))*100 REAL_PSN,SUM(GREATEST".$q_fis_ini."*A.Renc_Keu/B.TOT_PAGU) REAL_FISIK,SUM(GREATEST".$q_non_ini."*A.Renc_Keu/B.TOT_PAGU) REAL_NON,MAX(A.Real_Stamp) TGL FROM (SELECT * FROM dpa_akun WHERE".$qsql.") A LEFT JOIN (SELECT OPDID,SUM(Renc_Keu) TOT_PAGU FROM dpa_akun WHERE".$qsql." GROUP BY OPDID) B ON (B.OPDID=A.OPDID) GROUP BY A.OPDID) K LEFT JOIN (SELECT * FROM sippd_akses_mon WHERE Tahun='".$thn_data."') H ON (H.OPDID=K.OPDID) LEFT JOIN vi_para90_opd M ON (M.OPDID=K.OPDID) WHERE M.Aktif=1");
$obj->set_query_footer("SELECT 1 OPDID,SUM(A.Renc_Keu) TOT_PAGU,SUM".$q_keu_lalu." REAL_LALU,SUM".$q_keu_ini." REAL_TOTAL,(SUM".$q_keu_ini."/SUM(A.Renc_Keu))*100 REAL_PSN,SUM(GREATEST".$q_fis_ini."*A.Renc_Keu/B.TOT_PAGU) REAL_FISIK,SUM(GREATEST".$q_non_ini."*A.Renc_Keu/B.TOT_PAGU) REAL_NON FROM (SELECT * FROM dpa_akun WHERE".$qsql.") A LEFT JOIN (SELECT 1 OPDID,SUM(Renc_Keu) TOT_PAGU FROM dpa_akun WHERE".$qsql.") B ON (B.OPDID=A.OPDID)");
$obj->add_field("OPDID", "OPD", "hid");
$obj->add_field("ORGID", "ORG", "hid");
$obj->add_field("Nama_OPD", "Nama OPD", "hid");
$obj->add_field("Hak_Bln", "Hak Bln", "hid");
$obj->add_field("Hak_Tw", "Hak Tw", "hid");
$obj->add_field("K_OPD", "Kode", "c");
$obj->add_field("N_OPD", "Nama Perangkat Daerah", "awr");
//$obj->add_field("TOT_PAGU", "Jumlah Pagu", "r", "rupiah", "rupiah");
//$obj->add_field("REAL_TOTAL", "Real s/d ".substr(bulan_array()[$bln_data],0,3), "r", "rupiah", "rupiah");
$obj->add_field("REAL_PSN", "Keu. %", "r", "rupiah2", "rupiah2");
$obj->add_field("REAL_FISIK", "Fisik %", "r", "rupiah2", "rupiah2");
$obj->add_field("REAL_NON", "N-Fisik %", "r", "rupiah2", "rupiah2");
$obj->add_field("TGL", "Update", "c nwr", "sqljams", "", "val-tgljams");
$obj->set_field_order("K_OPD", "A");
$obj->add_row_btn("folder", "Program", "ValidKinerjaJS.opd_select");
$obj->set_func_navi("ValidKinerjaJS.data_query('tabel-opd')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divOPD");
} else if ( $data == "tabel-prog" ) {
if ($mode_detail=="update") {
$aparam = Param::Get_Array(); $_sql = [];
foreach($aparam as $key => $val) {
if (strpos($key, "B_Catat_TW_") !== false) {
$aid = explode("_", str_replace("B_Catat_TW_","",$key));
$_sql[$aid[1]][] = 'B_Catatan=\''.$val.'\'';
}
}
if (count($_sql) > 0) {
foreach ($_sql as $id => $val) {
$db->Query("UPDATE dpa_prog_indi SET ".implode(',', $val)." WHERE Tahun='".$thn_data."' AND DPAProgIndiID='".$id."' LIMIT 1");
}
}
}
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.N_Prog,CONCAT('(',M.K_Prog,') ',M.N_Prog) Nama_Prog FROM (SELECT C.DPAProgID,C.K_Prog,A.ProgID,SUM(A.Renc_Keu) TOT_PAGU,SUM".$q_keu_lalu." REAL_LALU,SUM".$q_keu_ini." REAL_TOTAL,(SUM".$q_keu_ini."/SUM(A.Renc_Keu))*100 REAL_PSN,SUM(GREATEST".$q_fis_ini."*A.Renc_Keu/B.TOT_PAGU) REAL_FISIK,SUM(GREATEST".$q_non_ini."*A.Renc_Keu/B.TOT_PAGU) REAL_NON,MAX(A.Real_Stamp) TGL,IF(IFNULL(I.Indi_Text,0)=0 OR IFNULL(C.Kinerja_Ini,0)=0,2,IF(IFNULL(I.Indi_Text,0)=IFNULL(I.Indi_Target,0) AND IFNULL(I.Indi_Text,0)=IFNULL(I.Indi_Real,0),0,1)) CSS_INDI FROM (SELECT * FROM dpa_akun WHERE".$qsql.") A LEFT JOIN (SELECT ProgID,SUM(IF(Text_Indi='',0,1)) Indi_Text,SUM(IF(Poin_Target=0,0,1)) Indi_Target,SUM(IF(Poin_TW".$tw_data."=0,0,1)) Indi_Real FROM dpa_prog_indi WHERE ".$qsql." GROUP BY ProgID) I ON (I.ProgID=A.ProgID) LEFT JOIN (SELECT ProgID,SUM(Renc_Keu) TOT_PAGU FROM dpa_akun WHERE".$qsql." GROUP BY ProgID) B ON (B.ProgID=A.ProgID) LEFT JOIN (SELECT *,Real_TW".$tw_data." Kinerja_Ini FROM dpa_prog WHERE".$qsql.") C ON (C.ProgID=A.ProgID) GROUP BY A.ProgID) K LEFT JOIN (SELECT * FROM para90_submap WHERE Tahun='".$_SESSION['__WEB_APP']['SUBMAP_TAHUN']."' GROUP BY ProgID) M ON (M.ProgID=K.ProgID)");
$obj->set_query_footer("SELECT SUM(A.Renc_Keu) TOT_PAGU,SUM".$q_keu_lalu." REAL_LALU,SUM".$q_keu_ini." REAL_TOTAL,(SUM".$q_keu_ini."/SUM(A.Renc_Keu))*100 REAL_PSN,SUM(GREATEST".$q_fis_ini."*A.Renc_Keu/B.TOT_PAGU) REAL_FISIK,SUM(GREATEST".$q_non_ini."*A.Renc_Keu/B.TOT_PAGU) REAL_NON FROM (SELECT * FROM dpa_akun WHERE".$qsql.") A LEFT JOIN (SELECT OPDID,SUM(Renc_Keu) TOT_PAGU FROM dpa_akun WHERE".$qsql." GROUP BY OPDID) B ON (B.OPDID=A.OPDID)");
$obj->add_field("DPAProgID", "PID", "hid");
$obj->add_field("ProgID", "ID", "hid");
$obj->add_field("Nama_Prog", "Nama PROG", "hid");
$obj->add_field("K_Prog", "Kode", "c", null, null, "dom-nomen");
$obj->add_field("N_Prog", "Nama Program", "awr");
//$obj->add_field("TOT_PAGU", "Jumlah Pagu", "r", "rupiah", "rupiah");
//$obj->add_field("REAL_TOTAL", "Real s/d ".substr(bulan_array()[$bln_data],0,3), "r nwr", "rupiah", "rupiah");
$obj->add_field("REAL_PSN", "Keu. %", "r", "rupiah2", "rupiah2");
$obj->add_field("REAL_FISIK", "Fisik %", "r", "rupiah2", "rupiah2");
$obj->add_field("REAL_NON", "N-Fisik %", "r", "rupiah2", "rupiah2");
$obj->add_field("TGL", "Update", "c nwr", "sqljams", "", "val-tgljams");
$obj->set_field_order("K_Prog", "A");
//$obj->add_row_btn("clipboard", "Capaian", "ValidKinerjaJS.prog_real", "", "", "CSS_INDI", [1=>"warning",2=>"danger"]);
$obj->add_row_btn("check-circle", "Validasi", "ValidKinerjaJS.prog_real");
$obj->add_row_btn("folder", "Kegiatan", "ValidKinerjaJS.prog_select");
$obj->set_func_navi("ValidKinerjaJS.data_query('tabel-prog')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divPROG");
} else if ( $data == "tabel-keg" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,KR.DPAKegID,KR.K_Keg,M.N_Keg,CONCAT('(',M.K_Keg,') ',M.N_Keg) Nama_Keg FROM (SELECT A.KegID,SUM(A.Renc_Keu) TOT_PAGU,SUM".$q_keu_lalu." REAL_LALU,SUM".$q_keu_ini." REAL_TOTAL,(SUM".$q_keu_ini."/SUM(A.Renc_Keu))*100 REAL_PSN,SUM(GREATEST".$q_fis_ini."*A.Renc_Keu/B.TOT_PAGU) REAL_FISIK,SUM(GREATEST".$q_non_ini."*A.Renc_Keu/B.TOT_PAGU) REAL_NON,MAX(A.Real_Stamp) TGL FROM (SELECT * FROM dpa_akun WHERE".$qsql.") A LEFT JOIN (SELECT KegID,SUM(Renc_Keu) TOT_PAGU FROM dpa_akun WHERE".$qsql." GROUP BY KegID) B ON (B.KegID=A.KegID) GROUP BY A.KegID) K LEFT JOIN (SELECT * FROM dpa_keg WHERE".$qsql.") KR ON (KR.KegID=K.KegID) LEFT JOIN (SELECT * FROM para90_submap WHERE Tahun='".$_SESSION['__WEB_APP']['SUBMAP_TAHUN']."' AND ProgID='".$id_prog."' GROUP BY KegID) M ON (M.KegID=K.KegID)");
$obj->set_query_footer("SELECT SUM(A.Renc_Keu) TOT_PAGU,SUM".$q_keu_lalu." REAL_LALU,SUM".$q_keu_ini." REAL_TOTAL,(SUM".$q_keu_ini."/SUM(A.Renc_Keu))*100 REAL_PSN,SUM(GREATEST".$q_fis_ini."*A.Renc_Keu/B.TOT_PAGU) REAL_FISIK,SUM(GREATEST".$q_non_ini."*A.Renc_Keu/B.TOT_PAGU) REAL_NON FROM (SELECT * FROM dpa_akun WHERE".$qsql.") A LEFT JOIN (SELECT ProgID,SUM(Renc_Keu) TOT_PAGU FROM dpa_akun WHERE".$qsql." GROUP BY ProgID) B ON (B.ProgID=A.ProgID)");
$obj->add_field("DPAKegID", "KID", "hid");
$obj->add_field("KegID", "ID", "hid");
$obj->add_field("Nama_Keg", "Nama KEG", "hid");
$obj->add_field("K_Keg", "Kode", "c", null, null, "dom-nomen");
$obj->add_field("N_Keg", "Nama Kegiatan", "awr");
//$obj->add_field("TOT_PAGU", "Jumlah Pagu", "r", "rupiah", "rupiah");
//$obj->add_field("REAL_TOTAL", "Real s/d ".substr(bulan_array()[$bln_data],0,3), "r", "rupiah", "rupiah");
$obj->add_field("REAL_PSN", "Keu. %", "r", "rupiah2", "rupiah2");
$obj->add_field("REAL_FISIK", "Fisik %", "r", "rupiah2", "rupiah2");
$obj->add_field("REAL_NON", "N-Fisik %", "r", "rupiah2", "rupiah2");
$obj->add_field("TGL", "Update", "c nwr", "sqljams", "", "val-tgljams");
$obj->set_field_order("K_Keg", "A");
$obj->add_row_btn("folder", "Sub Kegiatan", "ValidKinerjaJS.keg_select");
$obj->set_func_navi("ValidKinerjaJS.data_query('tabel-keg')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEG");
} else if ( $data == "tabel-sub" ) {
/*if ($mode_detail=="update") {
$sql = new SQL($db);
$sql->set_table("dpa_sub");
$sql->add_param("Real_Catatan");
$sql->add_param("Real_No_Kontrak");
$sql->add_param("Real_Pelaksana");
$sql->add_param_stamp("Real_Stamp");
$sql->add_param_userid("Real_UserID");
$sql->add_where("Tahun", $thn_data);
$sql->add_where("DPASubID", $id_dpa_sub);
$sql->UpdateDB();
$db->Query("UPDATE dpa_sub_output SET Real_TW".$tw_data."='".Param::Get("Real_TW")."' WHERE Tahun='".$thn_data."' AND DPASubOutputID='".Param::Get("DPASubOutputID")."' LIMIT 1");
}*/
$obj = new Table($db);
$obj->set_query("SELECT K.*,SR.DPASubID,SR.K_Sub,M.N_Sub,CONCAT('(',M.K_Sub,') ',M.N_Sub) Nama_Sub FROM (SELECT A.SubID,SUM(A.Renc_Keu) TOT_PAGU,SUM".$q_keu_lalu." REAL_LALU,SUM".$q_keu_ini." REAL_TOTAL,(SUM".$q_keu_ini."/SUM(A.Renc_Keu))*100 REAL_PSN,SUM(GREATEST".$q_fis_ini."*A.Renc_Keu/B.TOT_PAGU) REAL_FISIK,SUM(GREATEST".$q_non_ini."*A.Renc_Keu/B.TOT_PAGU) REAL_NON,MAX(A.Real_Stamp) TGL,IF(IFNULL(I.Indi_Text,0)=0,2,IF(IFNULL(I.Indi_Text,0)=IFNULL(I.Indi_Target,0) AND B.Real_KF>0,0,1)) CSS_INDI FROM (SELECT * FROM dpa_akun WHERE".$qsql.") A LEFT JOIN (SELECT SubID,SUM(IF(Text_Output='',0,1)) Indi_Text,SUM(IF(Target_Output=0,0,1)) Indi_Target FROM dpa_sub_output WHERE ".$qsql." GROUP BY SubID) I ON (I.SubID=A.SubID) LEFT JOIN (SELECT SubID,SUM(Renc_Keu) TOT_PAGU,GREATEST(RealK_TW".$tw_data.",RealF_TW".$tw_data.") Real_KF FROM dpa_sub WHERE".$qsql." GROUP BY SubID) B ON (B.SubID=A.SubID) GROUP BY A.SubID) K LEFT JOIN (SELECT * FROM dpa_sub WHERE".$qsql.") SR ON (SR.SubID=K.SubID) LEFT JOIN (SELECT * FROM para90_submap WHERE Tahun='".$_SESSION['__WEB_APP']['SUBMAP_TAHUN']."' AND KegID='".$id_keg."') M ON (M.SubID=K.SubID)");
$obj->set_query_footer("SELECT SUM(A.Renc_Keu) TOT_PAGU,SUM".$q_keu_lalu." REAL_LALU,SUM".$q_keu_ini." REAL_TOTAL,(SUM".$q_keu_ini."/SUM(A.Renc_Keu))*100 REAL_PSN,SUM(GREATEST".$q_fis_ini."*A.Renc_Keu/B.TOT_PAGU) REAL_FISIK,SUM(GREATEST".$q_non_ini."*A.Renc_Keu/B.TOT_PAGU) REAL_NON FROM (SELECT * FROM dpa_akun WHERE".$qsql.") A LEFT JOIN (SELECT KegID,SUM(Renc_Keu) TOT_PAGU FROM dpa_akun WHERE".$qsql." GROUP BY KegID) B ON (B.KegID=A.KegID)");
$obj->add_field("DPASubID", "SID", "hid");
$obj->add_field("SubID", "ID", "hid");
$obj->add_field("Nama_Sub", "Nama SUB", "hid");
$obj->add_field("K_Sub", "Kode", "c", null, null, "dom-nomen");
$obj->add_field("N_Sub", "Nama Sub Kegiatan", "awr");
//$obj->add_field("TOT_PAGU", "Jumlah Pagu", "r", "rupiah", "rupiah");
//$obj->add_field("REAL_TOTAL", "Real s/d ".substr(bulan_array()[$bln_data],0,3), "r", "rupiah", "rupiah");
$obj->add_field("REAL_PSN", "Keu. %", "r", "rupiah2", "rupiah2");
$obj->add_field("REAL_FISIK", "Fisik %", "r", "rupiah2", "rupiah2");
$obj->add_field("REAL_NON", "N-Fisik %", "r", "rupiah2", "rupiah2");
$obj->add_field("TGL", "Update", "c nwr", "sqljams", "", "val-tgljams");
$obj->set_field_order("K_Sub", "A");
//$obj->add_row_btn("clipboard", "Kinerja", "ValidKinerjaJS.sub_ubah", "", "", "CSS_INDI", [0=>"success",1=>"warning",2=>"danger"]);
//$obj->add_row_btn("folder", "Akun", "ValidKinerjaJS.sub_select");
$obj->add_row_btn("check-circle", "Validasi", "ValidKinerjaJS.sub_ubah");
$obj->set_func_navi("ValidKinerjaJS.data_query('tabel-sub')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divSUB");
} else if ( $data == "tabel-eviden" ) {
if ($mode_detail === "update") {
$sql = new SQL($db);
$sql->set_table("dpa_sub_eviden");
$sql->add_param("B_Catatan");
$sql->add_param("B_Valid");
$sql->add_where("Tahun", $thn_data);
$sql->add_where("DPAEvidenID");
$sql->UpdateDB();
}
$tbl_evi = '<table id="tabelEviden" class="table table-striped table-bordered table-hover" data-order=\'[[0,"asc"]]\'><thead><tr><th class="hid">ID</th><th>TW</td><th>Dokumen Eviden</th><th>Ukuran</th><th class="sorting_disabled">Aksi</th></tr></thead><tbody>';
$db->Query("SELECT * FROM dpa_sub_eviden WHERE ".$qsql." AND Aktif=1");
while ($db->Next()){
$afile = explode(".", $db->Row("Eviden_File"));
if (in_array($afile[1], ["png","jpg","jpeg"])) {
$evi_link = '<a class="table-icon" title="Dokumen" href="'.$_SESSION['__WEB_APP']['WEB_PATH'].'dokumen/'.$db->Row("Eviden_File").'" data-lightbox="dokumen"><i class="bi-file-image"></i></a>';
} else if ($afile[1]=="pdf") {
$evi_link = '<a class="table-icon" title="Dokumen" onclick="ValidKinerjaJS.eviden_open_pdf(\''.$_SESSION['__WEB_APP']['WEB_PATH'].'dokumen/'.$db->Row("Eviden_File").'\');"><i class="bi-file-pdf"></i></a>';
} else {
$evi_link = '<a class="table-icon" title="Dokumen" onclick="ValidKinerjaJS.eviden_open_doc(\''.$_SESSION['__WEB_APP']['WEB_PATH'].'dokumen/'.$db->Row("Eviden_File").'\');"><i class="bi-file-x"></i></a>';
}
$evi_link .= '<a class="table-icon fon-tabel-dt" title="Validasi"><i class="bi-check2"></i></a>';
$tbl_evi .= sprintf('<tr><td class="hid">%s</td><td class="c">%s</td><td class="l" title="%s">%s</td><td class="c">%s</td><td class="c">%s</td></tr>', $db->Row("DPAEvidenID"), $db->Row("TW"), $db->Row("Eviden_Name"), $db->Row("Eviden_Name"), $db->Row("Eviden_Size"), $evi_link);
}
$tbl_evi .= '</tbody></table>';
$ajson['html'] = $tbl_evi;
$ajson['toolbar'] = "";
} else if ( $data == "detail-prog" ) {
$arec = [];
$db->Query("SELECT * FROM dpa_prog WHERE Tahun='".$thn_data."' AND DPAProgID='".$id_dpa_prog."' LIMIT 1");
if ($db->Next()) $arec = $db->AllRow();
if ($arec['ProgID'] > 0) {
$db->Query("SELECT N_Prog FROM para90_submap WHERE Tahun='".$_SESSION['__WEB_APP']['SUBMAP_TAHUN']."' AND ProgID='".$arec['ProgID']."' LIMIT 1");
if ($db->Next()) $arec = array_merge($arec, $db->AllRow());
}
echo '
<div class="row mb-2">
<label class="col-sm-4 col-lg-2 col-form-label">Nama Program</label>
<div class="col"><textarea class="form-control" disabled="true" rows="2">'.$arec['N_Prog'].'</textarea></div>
</div>
<div class="row mb-1">
<div class="col"><h5 class="text-center">Capaian Indikator Program</h5></div>
</div>';
$db->Query("SELECT I.*,IFNULL(T.P_Input,'{}') P_Input FROM (SELECT *,func_tipedata(TipeDataID,Target_Indi) Target_Indi2 FROM dpa_prog_indi WHERE ".$qsql.") I LEFT JOIN para_tipedata T ON (T.TipeDataID=I.TipeDataID)");
if ($db->RecordCount()==0) {
echo '
<div class="card"><div class="card-body">
<div class="row mb-2"><div class="col text-center"><h3>Belum ada Indikator Program</h3></div></div>
</div></div>';
}
while ($db->Next()) {
$arec = $db->AllRow();
$_p_input = (($arec['TipeDataID'] ?? 0) > 0) ? json_decode($arec['P_Input'] ?? '{}', true) : [];
$_val_cap1 = $arec['Real_TW1'];
$_val_cap2 = $arec['Real_TW2'];
$_val_cap3 = $arec['Real_TW3'];
$_val_cap4 = $arec['Real_TW4'];
$tcss1 = 'border '.(empty($_val_cap1)?'border-danger':'border-success').' rounded';
$tcss2 = 'border '.(empty($_val_cap2)?'border-danger':'border-success').' rounded';
$tcss3 = 'border '.(empty($_val_cap3)?'border-danger':'border-success').' rounded';
$tcss4 = 'border '.(empty($_val_cap4)?'border-danger':'border-success').' rounded';
$form = new Form($db);
$tindi = $form->textarea('_', 'Text_Indi', $arec['Text_Indi']." (".$arec['Satuan_Indi'].')', false, false, 2);
$ttarget = '<input type="text" class="form-control" value="'.$db->Row("Target_Indi2").'" readonly="">';
$treal1 = tipedata_select("Prog_TW_1_".$arec['DPAProgIndiID'], $arec['TipeDataID'], $_val_cap1, false, $_p_input, $tcss1);
$treal2 = tipedata_select("Prog_TW_2_".$arec['DPAProgIndiID'], $arec['TipeDataID'], $_val_cap2, false, $_p_input, $tcss2);
$treal3 = tipedata_select("Prog_TW_3_".$arec['DPAProgIndiID'], $arec['TipeDataID'], $_val_cap3, false, $_p_input, $tcss3);
$treal4 = tipedata_select("Prog_TW_4_".$arec['DPAProgIndiID'], $arec['TipeDataID'], $_val_cap4, false, $_p_input, $tcss4);
$tstatus = $form->textbox('_', "Status_Indi", ucfirst($arec['Status_Indi']), false, false);
$tsumb = $form->textbox('_', 'Sumber_TW_'.$tw_data.'_'.$arec['DPAProgIndiID'], $arec['Sumber_Data'], false, false, 'text');
$tcatat = $form->textbox('_', 'Catat_TW_'.$tw_data.'_'.$arec['DPAProgIndiID'], $arec['Catatan'], false, false, 'text');
$tbcatat = $form->textbox('_', 'B_Catat_TW_'.$tw_data.'_'.$arec['DPAProgIndiID'], $arec['B_Catatan'], true, true, 'text', 'catatan dari bapperida');
echo '
<div class="card mb-2"><div class="card-body">
<div class="row mb-2">
<label class="col-sm-4 col-lg-2 col-form-label">Tolok Ukur</label>
<div class="col">'.$tindi.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label">Target Indikator</label>
<div class="col-sm-6 col-lg-4">'.$ttarget.'</div>
<div class="col"><div class="input-group"><span class="input-group-text">Status Indikator</span>'.$tstatus.'</div></div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label">Capaian Indikator</label>
<div class="col-sm-4 col-lg-4"><div class="form-group"><div class="input-group"><span class="input-group-text">TW 1</span>'.$treal1.'</div></div></div>
<div class="col-sm-4 col-lg-4"><div class="form-group"><div class="input-group"><span class="input-group-text">TW 3</span>'.$treal3.'</div></div></div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label">&nbsp;</label>
<div class="col-sm-4 col-lg-4"><div class="form-group"><div class="input-group"><span class="input-group-text">TW 2</span>'.$treal2.'</div></div></div>
<div class="col-sm-4 col-lg-4"><div class="form-group"><div class="input-group"><span class="input-group-text">TW 4</span>'.$treal4.'</div></div></div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label" for="Sumber_TW_'.$tw_data.'_'.$arec['DPAProgIndiID'].'">Sumber Data / Eviden</label>
<div class="col">'.$tsumb.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label" for="Catat_TW_'.$tw_data.'_'.$arec['DPAProgIndiID'].'">Catatan / Kendala</label>
<div class="col">'.$tcatat.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label" for="B_Catat_TW_'.$tw_data.'_'.$arec['DPAProgIndiID'].'">Catatan Bapperida</label>
<div class="col">'.$tbcatat.'</div>
</div>
</div></div>';
}
echo '<input type="hidden" id="DPAProgID" value="'.$id_dpa_prog.'">';
} else if ( $data == "detail-sub" ) {
$adetail = [];
$db->Query("SELECT *,(RealK_TW1+RealK_TW2+RealK_TW3+RealK_TW4) Tot_Real FROM dpa_sub WHERE Tahun='".$thn_data."' AND DPASubID='".$id_dpa_sub."' LIMIT 1");
if ($db->Next()) $adetail = $db->AllRow();
$db->Query("SELECT N_Sub FROM para90_submap WHERE Tahun='".$_SESSION['__WEB_APP']['SUBMAP_TAHUN']."' AND SubID='".$id_sub."' LIMIT 1");
if ($db->Next()) $adetail = array_merge($adetail, $db->AllRow());
$db->Query("SELECT Username Update_User FROM app_operator WHERE UserID='".$adetail['Update_UserID']."' LIMIT 1");
if ($db->Next()) $adetail = array_merge($adetail, $db->AllRow());
$db->Query("SELECT Username Real_User FROM app_operator WHERE UserID='".$adetail['Real_UserID']."' LIMIT 1");
if ($db->Next()) $adetail = array_merge($adetail, $db->AllRow());
$form = new Form($db);
$tkode = $form->textbox("_", "K_Sub", $adetail['K_Sub'], false, false);
$tsub = $form->textarea("_", "N_Sub", $adetail['N_Sub'], false, false, 2);
$tcatatan = $form->textarea("_", "Real_Catatan", $adetail['Real_Catatan'], false, true, 1);
$tinfo = $form->textbox("_", "Informasi", "Diperbaharui oleh : ".($adetail['Real_User'] ?? $adetail['Update_User']).", pada : ".tgl_sql2str(($adetail['Real_Stamp'] ?? $adetail['Update_Stamp']), true), false, false);
echo '
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label">Kode Sub Kegiatan</label>
<div class="col-sm-6 col-lg-4">'.$tkode.'</div>
</div>
<div class="row mb-2">
<label class="col-sm-4 col-lg-2 col-form-label">Nama Sub Kegiatan</label>
<div class="col">'.$tsub.'</div>
</div>';
$aoutput = ['DPASubOutputID'=>0, 'Text_Output'=>"", 'Sasaran_Output'=>"", 'Status_Output'=>"", 'Target_Output'=>"", 'Satuan_Output'=>""];
$db->Query("SELECT * FROM dpa_sub_output WHERE ".$qsql);
if ($db->Next()) $aoutput = array_merge($aoutput, $db->AllRow());
foreach ($aoutput as $key => &$val) {
if (strpos($key, "Real_TW")!==false) $val = (int) $val;
}
unset($val);
$aoutput["Real_TW1"] = (empty($aoutput["Real_TW1"])) ? '-' : (string) $aoutput["Real_TW1"]." ".$aoutput['Satuan_Output'];
$aoutput["Real_TW2"] = (empty($aoutput["Real_TW2"])) ? '-' : (string) $aoutput["Real_TW2"]." ".$aoutput['Satuan_Output'];
$aoutput["Real_TW3"] = (empty($aoutput["Real_TW3"])) ? '-' : (string) $aoutput["Real_TW3"]." ".$aoutput['Satuan_Output'];
$aoutput["Real_TW4"] = (empty($aoutput["Real_TW4"])) ? '-' : (string) $aoutput["Real_TW4"]." ".$aoutput['Satuan_Output'];
$tindi = $form->textarea("_", "Text_Indi", $aoutput['Text_Output'], false, false, 1);
$tsasar = $form->textbox("_", "Sasaran_Output", $aoutput['Sasaran_Output'], false, false, "text");
$tstatus = $form->textbox("_", "Status_Indi", ucfirst($aoutput['Status_Output']), false, false, "text");
$ttarget = $form->textbox("_", "Target_Indi", (int) $aoutput['Target_Output']." ".$aoutput['Satuan_Output'], false, false, "text");
$treal1 = $form->textbox("_", "Real_TW1", $aoutput["Real_TW1"], false, false, "text");
$treal2 = $form->textbox("_", "Real_TW2", $aoutput["Real_TW2"], false, false, "text");
$treal3 = $form->textbox("_", "Real_TW3", $aoutput["Real_TW3"], false, false, "text");
$treal4 = $form->textbox("_", "Real_TW4", $aoutput["Real_TW4"], false, false, "text");
echo '
<div class="row mb-1"><div class="col"><hr class="my-1"></div></div>
<div class="row mb-2">
<label class="col-sm-4 col-lg-2 col-form-label">Tolok Ukur Output</label>
<div class="col">'.$tindi.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label" for="Sasaran_Output">Kelompok Sasaran</label>
<div class="col">'.$tsasar.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label">Target</label>
<div class="col-sm-6 col-lg-4">'.$ttarget.'</div>
<div class="col-sm-8 col-lg-4"><div class="form-group"><div class="input-group"><span class="input-group-text">Status Output</span>'.$tstatus.'</div></div></div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label">Realisasi</label>
<div class="col-sm-4 col-lg-4"><div class="form-group"><div class="input-group"><span class="input-group-text">TW 1</span>'.$treal1.'</div></div></div>
<div class="col-sm-4 col-lg-4"><div class="form-group"><div class="input-group"><span class="input-group-text">TW 3</span>'.$treal3.'</div></div></div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label">&nbsp;</label>
<div class="col-sm-4 col-lg-4"><div class="form-group"><div class="input-group"><span class="input-group-text">TW 2</span>'.$treal2.'</div></div></div>
<div class="col-sm-4 col-lg-4"><div class="form-group"><div class="input-group"><span class="input-group-text">TW 4</span>'.$treal4.'</div></div></div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label">Catatan / Kendala</label>
<div class="col">'.$tcatatan.'</div>
</div>
<div class="row mb-1"><div class="col"><hr class="my-1"></div></div>
<div id="divEviden"></div>
<div class="row mt-2"><div class="col">'.$tinfo.'</div></div>
<input type="hidden" id="SubID" value="'.$adetail['SubID'].'">
<input type="hidden" id="DPASubID" value="'.$adetail['DPASubID'].'">
<input type="hidden" id="DPASubOutputID" value="'.$aoutput['DPASubOutputID'].'">';
} else if ( $data == "detail-eviden" ) {
$arec = [];
$id_dpa_eviden = Param::Get("DPAEvidenID", 0);
if ($id_dpa_eviden > 0) {
$db->Query("SELECT * FROM dpa_sub_eviden WHERE DPAEvidenID='".$id_dpa_eviden."' LIMIT 1");
if ($db->Next()) $arec = $db->AllRow();
}
$form = new Form($db);
$tcatat = $form->textarea("_", "B_Catatan", $arec['B_Catatan'], true, true, 1);
$tvalid = $form->checkbox("_", "B_Valid", $arec['B_Valid'], true, true, [1,0]);
$ajson['html'] = '
<div class="card"><div class="card-body">
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label" for="B_Catatan">Catatan Bapperinda</label>
<div class="col">'.$tcatat.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-2 col-form-label" for="B_Valid">Status Validasi</label>
<div class="col-sm-6 col-lg-4 col-form-label">'.$tvalid.'</div>
<div class="col text-end"><button type="button" class="btn btn-warning me-2" id="butBatalEviden">Batal</button><button type="button" class="btn btn-success" id="butSimpanEviden">Simpan</button></div>
</div>
<input type="hidden" id="DPAEvidenID" value="'.$arec['DPAEvidenID'].'">
</div></div>';
} else if ( $data === "default" ) {
echo '
<div class="fade-in">
<div class="card"><div class="card-header custom-style">Validasi Data Realisasi Kinerja Renja OPD // Bulan '.bulan_array()[$bln_data].' '.$thn_data.'</div><div class="card-body">
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_OPD" placeholder="Nama Perangkat Daerah" type="text" readonly>
<input id="ORGID" type="hidden" value="0">
<input id="OPDID" type="hidden" value="0">
<input id="Hak_Bln" type="hidden" value="1">
<input id="Hak_Tw" type="hidden" value="1">
<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_PROG" placeholder="Nama Program" type="text" readonly>
<input id="ProgID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butPROG"><span><i class="bi-arrow-left-right"></span></i>Program</button>
</div>
</div>
</div>
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_KEG" placeholder="Nama Kegiatan" type="text" readonly>
<input id="KegID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butKEG"><span><i class="bi-arrow-left-right"></span></i>Kegiatan</button>
</div>
</div>
</div>
<div id="divOPD">&nbsp;</div>
<div id="divPROG">&nbsp;</div>
<div id="divKEG">&nbsp;</div>
<div id="divSUB">&nbsp;</div>
</div></div>
</div>';
}
send_json($ajson);
?>