upgrade mengikuti dalev
This commit is contained in:
@@ -0,0 +1,220 @@
|
||||
<?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 : February 3rd, 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" 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);
|
||||
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" 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;
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user