From b28dc2f936fd12448a207f816ee7af089df4d018 Mon Sep 17 00:00:00 2001 From: Siau Pheng Date: Tue, 15 Sep 2026 12:27:07 +0700 Subject: [PATCH] validasi kinerja --- apps/cfg/assets.php | 4 +- apps/js/mon/kinerja.js | 80 ++++++ apps/js/valid/faktor_opd.js | 155 ++++++++++ apps/js/valid/kinerja.js | 288 +++++++++++++++++++ apps/php/mon/kinerja.php | 42 ++- apps/php/valid/faktor_opd.php | 157 ++++++++++ apps/php/valid/kinerja.php | 528 ++++++++++++++++++++++++++++++++++ 7 files changed, 1251 insertions(+), 3 deletions(-) create mode 100644 apps/js/valid/faktor_opd.js create mode 100644 apps/js/valid/kinerja.js create mode 100644 apps/php/valid/faktor_opd.php create mode 100644 apps/php/valid/kinerja.php diff --git a/apps/cfg/assets.php b/apps/cfg/assets.php index 3788fa1..39c64cc 100644 --- a/apps/cfg/assets.php +++ b/apps/cfg/assets.php @@ -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", diff --git a/apps/js/mon/kinerja.js b/apps/js/mon/kinerja.js index 1dea6ff..58107c7 100644 --- a/apps/js/mon/kinerja.js +++ b/apps/js/mon/kinerja.js @@ -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 "'+nama+'" ?', () => { + 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 = $('
'); + 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 = ''; + 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, diff --git a/apps/js/valid/faktor_opd.js b/apps/js/valid/faktor_opd.js new file mode 100644 index 0000000..58d2fed --- /dev/null +++ b/apps/js/valid/faktor_opd.js @@ -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 (siaupheng@3fonia.com). + 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 = $('
'); + 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 = '
    '; + api.columns().every(function(){ + var kol = this.header(); + if (kol.className.indexOf('dtr-hidden') != -1){ + tampil += '
  • ' + kol.textContent + '' + row.data()[ind] + '
  • '; + } + ind++; + }) + tampil += '
'; + row.child(tampil).show(); + tr.addClass('dt-hasChild parent'); + } + }); + } + + $('#divMATRIK').html(ajson.html) + var otabel = $('#tabelMatrik').DataTable(opsi); + } + }).send(); + } + } + +}; diff --git a/apps/js/valid/kinerja.js b/apps/js/valid/kinerja.js new file mode 100644 index 0000000..baf248f --- /dev/null +++ b/apps/js/valid/kinerja.js @@ -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 (siaupheng@3fonia.com). + 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 = $('
'); + 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 = '
    '; + api.columns().every(function(){ + var kol = this.header(); + if (kol.className.indexOf('dtr-hidden') != -1){ + tampil += '
  • ' + kol.textContent + '' + row.data()[ind] + '
  • '; + } + ind++; + }) + tampil += '
'; + row.child(tampil).show(); + tr.addClass('dt-hasChild parent'); + } + }); + } + + $('#divEviden').html(ajson.html) + var otabel = $('#tabelEviden').DataTable(opsi); + } + }).send(); + } + } + +}; diff --git a/apps/php/mon/kinerja.php b/apps/php/mon/kinerja.php index c620357..5a6dc7b 100644 --- a/apps/php/mon/kinerja.php +++ b/apps/php/mon/kinerja.php @@ -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 = ''; + $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 = ''; + } else if ($afile[1]=="pdf") { + $evi_link = ''; + } else { + $evi_link = ''; + } + if ((int) $db->Row("B_Valid", 0) == 0) { + $evi_link .= 'Row("Eviden_Name").'\');">'; + } + $ctt_bpd = (empty($db->Row("B_Catatan"))) ? '' : '
Catatan Baperida: '.$db->Row("B_Catatan").''; + $tbl_evi .= sprintf('', $db->Row("DPAEvidenID"), $db->Row("TW"), $db->Row("Eviden_Name"), $db->Row("Eviden_Name").$ctt_bpd, $db->Row("Eviden_Size"), $evi_link); + } + $tbl_evi .= '
IDTWDokumen EvidenUkuranAksi
%s%s%s%s%s
'; + $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" ) {
'.$tcatat.'
+
+ +
'.$tcatatbpd.'
+
@@ -484,6 +517,13 @@ if ( $data == "tabel-opd" ) { echo '
+
+

+
+
+
+
+

diff --git a/apps/php/valid/faktor_opd.php b/apps/php/valid/faktor_opd.php new file mode 100644 index 0000000..7df54b1 --- /dev/null +++ b/apps/php/valid/faktor_opd.php @@ -0,0 +1,157 @@ +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 = ''; + $db->Query("SELECT * FROM dpa_dalev_renja_matrik WHERE ".$qsql." AND Aktif=1"); + while ($db->Next()){ + $mat_link = ''; + $mat_link .= ''; + $tbl_mat .= sprintf('', $db->Row("DalevMatrikID"), $db->Row("TW"), $db->Row("Matrik_Name"), $db->Row("Matrik_Name"), $db->Row("Matrik_Size"), $mat_link); + } + $tbl_mat .= '
IDTWDokumen MatrikUkuranAksi
%s%s%s%s%s
'; + $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'] = ' +
+
+ +
'.$tcatat.'
+
+
+ +
'.$tvalid.'
+
+
+ +
'; + +} 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 ' +
+
Validasi Data Faktor Pendukung OPD // Tahun Anggaran '.$thn_data.'
+
+
+
+ + + + + + +
+
+
+
 
+
 
+
+
'; +} + +send_json($ajson); +?> diff --git a/apps/php/valid/kinerja.php b/apps/php/valid/kinerja.php new file mode 100644 index 0000000..d7ab567 --- /dev/null +++ b/apps/php/valid/kinerja.php @@ -0,0 +1,528 @@ +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 = ''; + $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 = ''; + } else if ($afile[1]=="pdf") { + $evi_link = ''; + } else { + $evi_link = ''; + } + $evi_link .= ''; + $tbl_evi .= sprintf('', $db->Row("DPAEvidenID"), $db->Row("TW"), $db->Row("Eviden_Name"), $db->Row("Eviden_Name"), $db->Row("Eviden_Size"), $evi_link); + } + $tbl_evi .= '
IDTWDokumen EvidenUkuranAksi
%s%s%s%s%s
'; + $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 ' +
+ +
+
+
+
Capaian Indikator Program
+
'; + + $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 ' +
+

Belum ada Indikator Program

+
'; + } + 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 = ''; + $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 ' +
+
+ +
'.$tindi.'
+
+
+ +
'.$ttarget.'
+
Status Indikator'.$tstatus.'
+
+
+ +
TW 1'.$treal1.'
+
TW 3'.$treal3.'
+
+
+ +
TW 2'.$treal2.'
+
TW 4'.$treal4.'
+
+
+ +
'.$tsumb.'
+
+
+ +
'.$tcatat.'
+
+
+ +
'.$tbcatat.'
+
+
'; + } + echo ''; + +} 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 ' +
+ +
'.$tkode.'
+
+
+ +
'.$tsub.'
+
'; + + $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 ' +

+
+ +
'.$tindi.'
+
+
+ +
'.$tsasar.'
+
+
+ +
'.$ttarget.'
+
Status Output'.$tstatus.'
+
+
+ +
TW 1'.$treal1.'
+
TW 3'.$treal3.'
+
+
+ +
TW 2'.$treal2.'
+
TW 4'.$treal4.'
+
+
+ +
'.$tcatatan.'
+
+

+
+
'.$tinfo.'
+ + + '; + +} 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'] = ' +
+
+ +
'.$tcatat.'
+
+
+ +
'.$tvalid.'
+
+
+ +
'; + +} else if ( $data === "default" ) { + echo ' +
+
Validasi Data Realisasi Kinerja Renja OPD // Bulan '.bulan_array()[$bln_data].' '.$thn_data.'
+
+
+
+ + + + + + +
+
+
+
+
+
+ + + +
+
+
+
+
+
+ + + +
+
+
+
 
+
 
+
 
+
 
+
+
'; +} + +send_json($ajson); +?>