first commit

This commit is contained in:
2026-05-03 13:08:18 +07:00
commit 3d1b44628f
50 changed files with 4028 additions and 0 deletions
+149
View File
@@ -0,0 +1,149 @@
<?php
/*******************************************************************
Module : /apps/php/index.php
Desc. : PHP - Halaman Utama Desktop
Created By : Siau Pheng ([email protected]).
Created Date : May 24th, 2010.
Last Modified : April 19th, 2026.
(c) 2010 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../vendor/autoload.php");
require_once(__DIR__."/func/esapipd.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Form;
use siaupheng\fonia3\Web\Register;
function random_color($trans = "0.6") {
$col_r = mt_rand( 0, 255 );
$col_g = mt_rand( 0, 255 );
$col_b = mt_rand( 0, 255 );
return "rgba(".$col_r.",".$col_g.",".$col_b.",".$trans.")";
}
$db = $db ?? new MySQL();
$ajson = [];
$data = Param::Get("data");
$tahun = $_SESSION['__WEB_APP']['REAL_THN'] ?? 0;
$aapp = $_SESSION['__WEB_APP'];
if ( $data == "periode-show" ) {
$ajson = ['aktif'=>1, 'html'=>""];
if ($tahun == 0 || Param::Get("reset", 0) == 1) {
$form = new Form($db);
$lthn = $form->option("_", "OPTION_THN", $tahun, true, false, tahun_ang());
$ajson['aktif'] = 0;
$ajson['html'] = '
<div class="row mb-1">
<label class="col-sm-5 col-lg-4 col-form-label" for="OPTION_THN">Tahun Anggaran</label>
<div class="col">'.$lthn.'</div>
</div>';
}
} else if ( $data == "periode-simpan" ) {
// penyimpanan periode tahun dan bulan login !
$alogin = $_SESSION['__WEB_APP'];
$alogin['REAL_THN'] = Param::Get("OPTION_THN", $alogin['REAL_THN']);
// mapping tahun nomenklatur submap
$alogin['SUBMAP_TAHUN'] = map_tahun_submap($alogin['REAL_THN']);
$_SESSION['__WEB_APP'] = $alogin;
$ajson['sukses'] = 1;
} else if ( $data == "periode-info") {
$ajson = ['html'=>'<a class="nav-link" onclick="IndexJS.periode_show(1);"><i class="icon bi-calendar"></i></a>'];
if ($tahun > 0) {
$txtinfo = "TA " . $tahun;
$ajson['html'] = '<a class="nav-link text-info fw-bolder" title="'.$txtinfo.'" onclick="IndexJS.periode_show(1);"><i class="icon me-2 bi-calendar-check"></i>'.$txtinfo.'</a>';
}
} else if ( $data == "json-map" ) {
$amap = json_decode(file_get_contents(__DIR__."/../../assets/json/map_mempawah.json"), true);
echo json_encode($amap);
exit;
} else if ( $data == "chart-map" ) {
$tot_pagu = 0; $ajson['data'] = [];
$db->Query("SELECT SUM(Rupiah) Pagu FROM sapi_keg WHERE Tahun='".$tahun."'");
if ($db->Next()) $tot_pagu = $db->Row("Pagu", 0);
$db->Query("SELECT IFNULL(L.LokasiID,0) LokasiID,A.Pagu FROM (SELECT KecID,SUM(Rupiah) Pagu FROM sapi_keg WHERE Tahun='".$tahun."' GROUP BY KecID) A LEFT JOIN para_lokasi L ON (L.LokasiID=A.KecID)");
while ($db->Next()) {
if ($db->Row("LokasiID", 0) == 0) continue;
$ajson['data'][] = ['id_kec'=>$db->Row("LokasiID"), 'value'=>uang2($db->Row("Pagu",0)>0?$tot_pagu/$db->Row("Pagu",0):0)];
}
} else if ( $data == "chart-bar" ) {
$ajson['tipe'] = "chart";
$db->Query("SELECT IFNULL(L.LokasiID,0) LokasiID,L.N_Lokasi,S.* FROM (SELECT KecID,SUM(IF(Jenis=1,Rupiah,0)) POK,SUM(IF(Jenis=2,Rupiah,0)) MUS FROM sapi_keg WHERE Tahun='".$tahun."' GROUP BY KecID) S LEFT JOIN para_lokasi L ON (L.LokasiID=S.KecID) ORDER BY L.K_Lokasi");
$adata['datasets'] = [];
$adata['labels'] = [];
$atmp1 = [0]; $atmp2 = [0];
$adata['labels'][] = "Belum Ada Data Usulan";
if ($db->RecordCount()>0) {
$atmp1 = []; $atmp2 = [];
$adata['labels'] = [];
}
while ($db->Next()){
if ($db->Row("LokasiID", 0) == 0) continue;
$atmp1[] = round($db->Row("MUS"), 2);
$atmp2[] = round($db->Row("POK"), 2);
$adata['labels'][] = $db->Row("N_Lokasi");
}
$adata['datasets'][] = ['data'=>$atmp1, 'label'=>"Asmas", 'backgroundColor'=>random_color(), 'order'=>1, 'datalabels'=>['align'=>"end", 'anchor'=>"end", 'color'=>"#36A2EB"]];
$adata['datasets'][] = ['data'=>$atmp2, 'label'=>"Pokir", 'backgroundColor'=>random_color(), 'order'=>2, 'datalabels'=>['align'=>"end", 'anchor'=>"end", 'color'=>"#36A2EB"]];
$ajson['chart'] = ['type' => "bar",
'data' => $adata,
'options' => [
'plugins' => [
'title' => ['display' => true, 'text' => 'Penyebaran Pagu di Kecamatan', 'font' => [ 'size' => 20 ]],
'legend' => ['position' => "bottom"],
'tooltip' => [ 'mode' => 'index' ],
],
'responsive' => true,
'aspectRatio' => 1.5,
'layout' => ['padding' => ['top' => 10]],
]
];
} else if ( $data == "default" ) {
$aapp = $_SESSION['__WEB_APP'];
$ajson['content'] = '
<div class="fade-in">
<div class="row">
<div class="col-sm-12 col-md-6">
<div class="card" style="min-height:calc(100vh - 140px);">
<div class="card-body pb-0 text-center" id="divHome1">
<img src="'.$aapp['WEB_PATH'].'assets/images/logo150.png" title="'.$aapp['REG_NAME'].'">
<p class="mt-2">'.$aapp['REG_ADDRESS'].'<br>
'.$aapp['REG_CITY'].' '.$aapp['REG_POSTCODE'].'</p>
<p class="mt-3 mb-3"><i>Register ID : '.Register::reg_id().'</i></p>
<p>'.$aapp['APP_NAMES'].'<br>'.$aapp['APP_NAME'].' Ver. '.$aapp['APP_VER'].'<br>
Updated : '.$aapp['APP_UPDATED'].'</p>
</div>
</div>
</div>
<div class="col-sm-12 col-md-6">
<div class="card" style="min-height:calc(100vh - 140px);">
<div class="card-body pb-0" id="divHome2">
<div class="c-chart-wrapper pb-2">
<canvas id="canvasChart2"></canvas>
</div>
</div>
</div>
</div>
</div>
</div>
';
}
send_json($ajson);
?>