Files
emonev/apps/php/mon/faktor_opd.php
T

194 lines
9.7 KiB
PHP

<?php
/*******************************************************************
App. Name : SISTEM INFORMASI MONITORING DAN EVALUASI
Module : /apps/php/mon/faktor_opd.php
Desc. : PHP - Kelola Faktor Pendukung 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\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_faktor = Param::Get("DalevRenjaID", 0);
if ( in_array($data, ["tabel-opd","detail-faktor"]) ) {
$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 == "detail-faktor" ) {
$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", "Faktor Pendukung", "FaktorOPDJS.opd_select");
$obj->set_func_navi("FaktorOPDJS.data_query('tabel-opd')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divOPD");
} else if ( $data == "simpan-faktor" ) {
$pdor = Param::Get("Pendorong_TWX", "");
$pham = Param::Get("Penghambat_TWX", "");
//$pla1 = Param::Get("Lanjut_TWX", "");
$pla2 = Param::Get("Lanjut_RKPD_TWX", "");
//$db->Query("REPLACE INTO dpa_dalev_renja (DalevRenjaID,RPJMDID,Tahun,ORGID,OPDID,K_OPD,Pendorong_TW".$tw_data.",Penghambat_TW".$tw_data.",Lanjut_TW".$tw_data.",Lanjut_RKPD_TW".$tw_data.") VALUES ('".$id_faktor."','".$id_rpjmd."','".$thn_data."','".$id_org."','".$id_opd."','".$k_opd."','".$pdor."','".$pham."','".$pla1."','".$pla2."')");
$db->Query("REPLACE INTO dpa_dalev_renja (DalevRenjaID,RPJMDID,Tahun,ORGID,OPDID,K_OPD,Pendorong_TW".$tw_data.",Penghambat_TW".$tw_data.",Lanjut_RKPD_TW".$tw_data.") VALUES ('".$id_faktor."','".$id_rpjmd."','".$thn_data."','".$id_org."','".$id_opd."','".$k_opd."','".$pdor."','".$pham."','".$pla2."')");
} else if ( $data == "detail-faktor" ) {
$arec = [];
$db->Query("SELECT * FROM dpa_dalev_renja WHERE Tahun='".$thn_data."' AND OPDID='".$id_opd."' LIMIT 1");
if ($db->Next()) $arec = array_merge($arec, $db->AllRow());
$db->Query("SELECT K_OPD FROM para90_opd WHERE OPDID='".$id_opd."' LIMIT 1");
if ($db->Next()) $arec = array_merge($arec, $db->AllRow());
$db->Query("SELECT SUM(IF(TW='".$tw_data."',1,0)) Matrik_TW,IF(TW='".$tw_data."',Matrik_Name,'') Matrik_Name FROM dpa_dalev_renja_matrik WHERE Tahun='".$arec['Tahun']."' AND DalevRenjaID='".$arec['DalevRenjaID']."' AND Aktif=1");
if ($db->Next()) $arec = array_merge($arec, $db->AllRow());
if ((int) $arec['Matrik_TW'] === 0) {
$arec['Matrik_TW'] = 0;
$arec['Matrik_Name'] = 'belum ada file matrik';
}
$arec['Matrik_Template'] = $arec['K_OPD'] .'-'. $thn_data .'-'. isi_nol($tw_data,2) .'.xls';
$form = new Form($db);
$tdor = $form->textarea("_", "Pendorong_TWX", $arec['Pendorong_TW'.$tw_data], $emon_en, true, 3);
$tham = $form->textarea("_", "Penghambat_TWX", $arec['Penghambat_TW'.$tw_data], $emon_en, true, 3);
//$tla1 = $form->textarea("_", "Lanjut_TWX", $arec['Lanjut_TW'.$tw_data], $emon_en, true, 3);
$tla2 = $form->textarea("_", "Lanjut_RKPD_TWX", $arec['Lanjut_RKPD_TW'.$tw_data], $emon_en, true, 3);
$ajson['html'] = '
<div class="row my-2">
<div class="col"><h5 class="text-center">Faktor dan Tindak Lanjut&nbsp;<strong>Triwulan '.romawi($tw_data).'</strong></h5></div>
</div>
<div class="row mb-1">
<label class="col-sm-5 col-lg-3 col-form-label" for="Pendorong_TWX">Faktor Pendukung Keberhasilan Kinerja</label>
<div class="col">'.$tdor.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-5 col-lg-3 col-form-label" for="Penghambat_TWX">Faktor Penghambat Pencapaian Kinerja</label>
<div class="col">'.$tham.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-5 col-lg-3 col-form-label" for="Lanjut_TWX">Matrik Tindak Lanjut untuk Pencapaian Triwulan Berikutnya</label>
<div class="col-sm-7 col-lg-4">
<div class="input-group">
<button class="btn btn-outline-warning" id="butMatrikDown"><i class="bi-cloud-download me-1"></i>Download</button>
<label class="form-control">'.$arec['Matrik_Template'].'</label>
</div>
</div>
<div class="col-sm-7 col-lg-5">
<div class="input-group">
<label class="btn '.((int) $arec['Matrik_TW']===0?'btn-outline-danger':'btn-outline-success').'" id="LabelMatrik1" for="FileMatrik1"><i class="bi-cloud-upload me-1"></i>Upload<input type="file" name="FileMatrik1" id="FileMatrik1" class="d-none" accept=".xls, .xlsx"></label>
<label class="form-control" id="Matrik_Name" for="FileMatrik1">'.$arec['Matrik_Name'].'</label>
</div>
</div>
</div>
<div class="row mb-1">
<label class="col-sm-5 col-lg-3 col-form-label" for="Lanjut_RKPD_TWX">Tindak Lanjut yang Diperlukan Dalam RKPD Berikutnya</label>
<div class="col">'.$tla2.'</div>
</div>
'.($emon_en?'<div class="row mt-2"><div class="col text-end"><button type="button" class="btn btn-warning me-2" id="butBatalFaktor">Batal</button><button type="button" class="btn btn-success" id="butSimpanFaktor">Simpan</button></div></div>':'').'
<input type="hidden" id="DalevRenjaID" value="'.$arec['DalevRenjaID'].'">
<input type="hidden" id="Matrik_Template" value="'.$arec['Matrik_Template'].'">
<input type="hidden" id="Matrik_TW" value="'.$arec['Matrik_TW'].'">';
} else if ( $data == "matrik-download") {
$_file = $_SESSION['__WEB_APP']['REAL_PATH'] . 'assets/dokumen/template_matrik.xlsx';
$_name = Param::Get('Matrik_Template', '');
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
//header('Content-Disposition: attachment; filename="' . $_name . '"');
echo file_get_contents($_file);
exit;
} else if ( $data === "matrik-upload") {
$file1_ok = false;
$file1_name = $_FILES['Matrik1']['name'];
$file1_size = $_FILES['Matrik1']['size'];
$file1_ext = pathinfo($file1_name, PATHINFO_EXTENSION);
$ajson['result'] = 0;
if ($file1_size < 20480000) {
$file1_ok = true;
} else {
$ajson['message'] = "Ukuran file diatas 20MB !";
}
if ($file1_ok === true) {
$saveas = md5("EMONEVMPW-F" . $thn_data . $id_faktor ."1". time()) .".". $file1_ext;
if (!is_dir($_SESSION['__WEB_APP']['REAL_PATH'].'dokumen')) mkdir($_SESSION['__WEB_APP']['REAL_PATH'].'dokumen', 0775, true);
if (move_uploaded_file($_FILES['Matrik1']['tmp_name'], $_SESSION['__WEB_APP']['REAL_PATH'].'dokumen/'.$saveas)) {
$db->Query("INSERT INTO dpa_dalev_renja_matrik SET Tahun='".$thn_data."',DalevRenjaID='".$id_faktor."',ORGID='".$id_org."',OPDID='".$id_opd."',TW='".$tw_data."',Matrik_Name='".$file1_name."',Matrik_File='".$saveas."',Matrik_Size='".format_bytes($file1_size)."',UserID='".user_id()."'");
$ajson['result'] = 1;
$ajson['Matrik_Name'] = $file1_name;
$ajson['Matrik_TW'] = 1;
}
}
} else if ( $data === "default") {
echo '
<div class="fade-in">
<div class="card"><div class="card-header custom-style">Kelola 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="divFAKTOR">&nbsp;</div>
</div></div>
</div>';
}
send_json($ajson);
?>