150 lines
5.8 KiB
PHP
150 lines
5.8 KiB
PHP
<?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);
|
|
?>
|