Files
emonev/apps/php/func/emonev.php
T

222 lines
8.3 KiB
PHP

<?php
/*******************************************************************
App. Name : SISTEM INFORMASI MONITORING DAN EVALUASI
Module : /apps/php/func/emonev.php
Desc. : PHP - Fungsi SiMONEv
Created By : Siau Pheng ([email protected]).
Created Date : May 15th, 2012.
Last Modified : September 7th, 2026.
(c) 2012 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\DB\SQL;
$fdb = new MySQL();
function tahun_ang($t_extra = "") {//oke
global $fdb;
$atahun = [];
$fdb->Query("SELECT Tahun FROM para_periode WHERE Tahun IN (SELECT Tahun FROM dpa_prog) ORDER BY Tahun");
while ($fdb->Next()){
$atahun[$fdb->Row("Tahun")] = $t_extra . $fdb->Row("Tahun");
}
return $atahun;
}
function map_tahun_submap($thn_map = 0) {//oke
$amap = [2021 => 2022, 2024 => 2025];
return $amap[$thn_map] ?? $thn_map;
}
function map_tahun_akun($thn_map = 0) {//oke
if ($thn_map < 2025) $thn_map = 2025;
$amap = [2025 => 2025];
return $amap[$thn_map] ?? $thn_map;
}
function Kendali_ID($tahun = 0) {
global $fdb;
$ino = 0;
$fdb->Query("SELECT MAX(ID) Nomor FROM kendali_detail WHERE Tahun='".$tahun."'");
if ($fdb->Next()) $ino = $fdb->Row("Nomor", 0);
return ($ino+1);
}
function RKA_Baru($k_tahun = "", $k_upt="", $tipe = "renja_usul") {
global $fdb;
$tno = $k_tahun . "-" . $k_upt . "-";
$ino = 0;
$fdb->Query("SELECT MAX(RIGHT(K_RKA,6)) Nomor FROM ".$tipe."_detail WHERE LEFT(K_RKA,".strlen($tno).")='".$tno."'");
if ($fdb->Next()) $ino = $fdb->Row("Nomor", 0);
$tno .= isi_nol($ino+1, 6);
return $tno;
}
function Kode_Keg_Baru($k_tahun = "", $id_upt=0, $id_prog=0) {
global $fdb;
$ino = 0;
$fdb->Query("SELECT MAX(K_Keg) Nomor FROM sippd_kalbar.renja_detail WHERE Tahun='".$k_tahun."' AND UPTID='".$id_upt."' AND ProgID='".$id_prog."'");
if ($fdb->Next()) $ino = $fdb->Row("Nomor", 0);
return isi_nol($ino+1, 2);
}
function Renstra_KegID($id_rpjmd = 0) {
global $fdb;
$ino = 0;
$fdb->Query("SELECT MAX(RKegID) Nomor FROM sippd_kalbar.renstra_detail WHERE RPJMDID='".$id_rpjmd."'");
if ($fdb->Next()) $ino = $fdb->Row("Nomor", 0);
return ($ino+1);
}
/*************** TIPE DATA INDIKATOR ***************/
// 0 : numeric / 1 : range / 2 : rasio / * : enum_v2
function tipedata_query() {
return "SELECT TipeDataID,CONCAT(N_Tipe,IF(TipeDataID<3,'',CONCAT(' - ',JSON_UNQUOTE(JSON_EXTRACT(P_Input,'$.*'))))) Nama_Tipe FROM para_tipedata WHERE Aktif=1 ORDER BY TipeDataID";
}
function tipedata_select($id_target = "Target_Indi", $id_tipe = 0, $val_target = "", $bol_en = false, $a_input = [], $tcss = "") {
$ttarget = '<input type="double" class="form-control double '.$tcss.'" id="'.$id_target.'" value="'.floatval($val_target).'"'.($bol_en?'':' readonly').' required="true" />';
if ($id_tipe == 2) { // rasio
$atarget = ($val_target == "") ? [0,0] : explode(":", $val_target);
$vtarget = '';
for ($i = 0; $i < 10; $i++) $vtarget .= array_merge(range('a','z'),range('A','Z'))[rand(0,51)];
$ttarget = '<div class="input-group '.$tcss.'"><input type="number" class="form-control" id="'.$vtarget.'_b" value="'.$atarget[0].'"'.($bol_en?'':' readonly').' required=true onchange="$(\'#'.$id_target.'\').val(($(\'#'.$vtarget.'_b\').val()||\'0\')+\':\'+($(\'#'.$vtarget.'_a\').val()||\'0\'));" /><span class="input-group-text">:<input type="hidden" id="'.$id_target.'" value="'.$val_target.'"></span><input type="number" class="form-control" id="'.$vtarget.'_a" value="'.$atarget[1].'"'.($bol_en?'':' readonly').' required=true onchange="$(\'#'.$id_target.'\').val(($(\'#'.$vtarget.'_b\').val()||\'0\')+\':\'+($(\'#'.$vtarget.'_a\').val()||\'0\'));" /></div>';
} else if ($id_tipe > 2) { // enum_v2
$ttarget = '<select class="form-select '.$tcss.'" id="'.$id_target.'" name="'.$id_target.'"'.($bol_en?'':' disabled=true').'>';
//$ttarget .= '<option value="">-</option>'; option-tags
foreach($a_input as $_key => $_val) {
$ttarget .= '<option value="'.$_key.'"'.($_key==$val_target?' selected="selected"':'').'>'.$_val.'</option>';
}
$ttarget .= '</select>';
}
return $ttarget;
}
function tipedata_status($id_target = "Status_Indi", $id_tipe = 0, $val_target = "", $bol_en = false) {
$astatus = ['komulatif' => "Komulatif", 'positif' => "Positif", 'negatif' => "Negatif", 'rata-rata' => "Rata-rata"];
if ($id_tipe >= 2) { // rasio + enum_v2
array_shift($astatus);
array_pop($astatus);
}
$ttarget = '<select class="form-select" id="'.$id_target.'" name="'.$id_target.'"'.($bol_en?'':' disabled=true').'>';
foreach($astatus as $_key => $_val) {
$ttarget .= '<option value="'.$_key.'"'.($_key==$val_target?' selected="selected"':'').'>'.$_val.'</option>';
}
$ttarget .= '</select>';
return $ttarget;
}
function tipedata_poin($val_target = "") {
$thasil = $val_target;
if (strpos($val_target, ":") !== false) { // rasio
$atmp = explode(":", $val_target);
$thasil = (in_array(0, $atmp)) ? "" : $atmp[0] / $atmp[1];
}
return $thasil;
}
/*function tipedata_poin($id_tipe = 0, $val_target = "") {
$thasil = $val_target;
if ($id_tipe == 2) { // rasio
if (strpos($val_target, ":") !== false) {
$atmp = explode(":", $val_target);
$thasil = (in_array(0, $atmp, true)) ? "" : $atmp[0] / $atmp[1];
} else $thasil = "";
}
return $thasil;
}*/
function tipedata_tipe($id_tipe = 0) {
$atipe = [ 0 => "Numeric", 1 => "Range", 2 => "Rasio" ];
if ($atipe[$id_tipe]) return $atipe[$id_tipe];
return "Enum_v2";
}
/*************** RENJA ***************/
function Keg_Baru($id_prog = 0) {
global $fdb;
$ino = 0;
$fdb->Query("SELECT MAX(K_Keg) Nomor FROM para_kegiatan WHERE ProgID='".$id_prog."'");
if ($fdb->Next()) $ino = $fdb->Row("Nomor", 0);
$tno = isi_nol($ino+1, 2);
return $tno;
}
/*************** USULAN KAB/KOTA ***************/
function Kode_Keg_Kab_Baru($k_tahun = "", $id_kab=0, $id_prog=0) {
global $fdb;
$ino = 0;
$fdb->Query("SELECT MAX(K_Keg) Nomor FROM renja_kab_detail WHERE Tahun='".$k_tahun."' AND KabID='".$id_kab."' AND ProgID='".$id_prog."'");
if ($fdb->Next()) $ino = $fdb->Row("Nomor", 0);
return isi_nol($ino+1, 2);
}
/*************** USULAN DPRD ***************/
function Kode_Keg_DPRD_Baru($k_tahun = "", $id_dprd=0, $id_prog=0) {
global $fdb;
$ino = 0;
$fdb->Query("SELECT MAX(K_Keg) Nomor FROM renja_dprd_detail WHERE Tahun='".$k_tahun."' AND DPRDID='".$id_dprd."' AND ProgID='".$id_prog."'");
if ($fdb->Next()) $ino = $fdb->Row("Nomor", 0);
return isi_nol($ino+1, 2);
}
/*************** API ***************/
function API_Request($url = "", $apost = array()) {
$curl_array = array(
CURLOPT_URL => $url ."?". http_build_query($apost),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_HTTPHEADER => array(
"Accept: application/json"
),
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_SSL_VERIFYPEER => false
);
$curl = curl_init();
curl_setopt_array($curl, $curl_array);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
$aresult[] = $err;
} else {
$aresult = json_decode($response, true);
}
return $aresult;
}
/*************** REPORT ***************/
function Report_Empty($ltabel = "") {
global $fdb;
if ($ltabel == "") return false;
$fdb->Query("DELETE FROM rep_".$ltabel." WHERE (Unix='".user_unix()."' OR Unix<'".(user_unix()-604800)."') AND UserID='".user_id()."'");
}
function Report_Header($tlapor="", $tperiod="") {
$thasil = '<div style="text-align:center;font-size:12pt;"><b>'.strtoupper($_SESSION['__WEB_APP']['REG_NAME']);
$thasil .= (($tlapor=="") ? "" : '<br>'.$tlapor) . '</b>';
$thasil .= ($tperiod=="") ? "" : '<br><span style="font-size:11pt;">'.$tperiod.'</span>';
$thasil .= '</div><br>';
echo $thasil;
}
?>