first commit
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
<?php
|
||||
|
||||
/*******************************************************************
|
||||
|
||||
Module : /apps/php/index.php
|
||||
Desc. : PHP - Halaman Utama Desktop
|
||||
Created By : Siau Pheng ([email protected]).
|
||||
Created Date : May 24th, 2010.
|
||||
Last Modified : March 21st, 2023.
|
||||
|
||||
(c) 2010 - 2023, 3FONIA Software; WWW.3FONIA.COM.
|
||||
|
||||
*******************************************************************/
|
||||
|
||||
require_once(__DIR__."/../../../../vendor/autoload.php");
|
||||
|
||||
use siaupheng\fonia3\DB\MySQL;
|
||||
use siaupheng\fonia3\Web\Param;
|
||||
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 = (is_resource($db)) ? $db : new MySQL();
|
||||
$ajson = [];
|
||||
$data = Param::Get("data");
|
||||
|
||||
if ( $data == "jual-chart" ) {
|
||||
$agrup = [];
|
||||
$db->Query("SELECT * FROM inv_produk_grup WHERE Aktif=1 ORDER BY Grup_InvID");
|
||||
while ($db->Next()) $agrup[$db->Row("Grup_InvID")] = $db->Row("Kode_Grup");
|
||||
|
||||
$db->Query("SELECT A.*,P.Grup_InvID FROM (SELECT CONCAT(YEAR(Tgl_Ref),'-',LPAD(MONTH(Tgl_Ref),2,'0')) Thn_Bln,InvID,SUM(-Qty*Harga_Jual) Jumlah FROM inv_detail WHERE NotaID=5 AND Tgl_Ref>=(LAST_DAY((SELECT Tgl_Jual FROM inv_jual ORDER BY Tgl_Jual DESC LIMIT 1)) + INTERVAL 1 DAY - INTERVAL 6 MONTH) GROUP BY YEAR(Tgl_Ref),MONTH(Tgl_Ref),InvID) A LEFT JOIN inv_produk P ON (P.InvID=A.InvID) ORDER BY A.Thn_Bln,P.Grup_InvID");
|
||||
|
||||
$ajson['tipe'] = "chart";
|
||||
$adata['datasets'] = [];
|
||||
$adata['labels'] = ["Belum Ada Penjualan"];
|
||||
if ($db->RecordCount()>0) {
|
||||
$adata['labels'] = [];
|
||||
}
|
||||
$ajual = []; $abln = [];
|
||||
while ($db->Next()){
|
||||
$ajual[$db->Row("Grup_InvID")][$db->Row("Thn_Bln")] = $db->Row("Jumlah", 0) / 1000000;
|
||||
if (!in_array($db->Row("Thn_Bln"), $abln, true)) array_push($abln, $db->Row("Thn_Bln"));
|
||||
}
|
||||
asort($abln);
|
||||
foreach ($abln as $_val) {
|
||||
$adata['labels'][] = bulan_array()[intval(explode("-",$_val)[1])];
|
||||
}
|
||||
|
||||
foreach ($agrup as $id_grup => $n_grup) {
|
||||
$atmp = [];
|
||||
foreach ($abln as $_val) {
|
||||
$atmp[] = $ajual[$id_grup][$_val] ?? 0;
|
||||
}
|
||||
$adata['datasets'][] = ['data'=>$atmp, 'label'=>$n_grup, 'backgroundColor'=>random_color(), 'datalabels'=>['align'=>"end", 'anchor'=>"end", 'color'=>"#36A2EB"]];
|
||||
}
|
||||
|
||||
$ajson['chart'] = ['type' => "bar",
|
||||
'data' => $adata,
|
||||
'options' => [
|
||||
'responsive' => true,
|
||||
'aspectRatio' => 1.5,
|
||||
'plugins' => [
|
||||
'legend' => ['position' => "bottom"],
|
||||
'title' => ['display' => true, 'font' => ['size' => 20, 'weight' => 'normal'], 'text' => 'Penjualan 6 Bulan Terakhir'],
|
||||
'subtitle' => ['display' => true, 'position' => "top", 'text' => '(dalam jutaan)']
|
||||
],
|
||||
'scales' => ['y' => ['min' => 0, 'ticks' => ['stepSize' => 1], 'title' => ['display' => true, 'font' => ['size' => 16], 'text' => "Nilai Penjualan"]]],
|
||||
'layout' => ['padding' => ['top' => 10]]
|
||||
]
|
||||
];
|
||||
|
||||
} else if ( $data == "default" ) {
|
||||
$aapp = $_SESSION['__WEB_APP'];
|
||||
$ajson['content'] = '
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-6 d-flex align-items-stretch">
|
||||
<div class="card w-100 h-100"><div class="card-body d-flex flex-column" id="divHome1">
|
||||
<div class="my-auto text-center"><img class="img-fluid" src="'.$aapp['WEB_PATH'].'assets/images/logo300.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>
|
||||
<div class="col-sm-12 col-md-6 d-flex align-items-stretch">
|
||||
<div class="card w-100 h-100"><div class="card-body d-flex flex-column" id="divHome2">
|
||||
<div class="chart-wrapper pb-2">
|
||||
<canvas id="barChart"></canvas>
|
||||
</div>
|
||||
</div></div>
|
||||
</div>
|
||||
</div>
|
||||
';
|
||||
}
|
||||
|
||||
send_json($ajson);
|
||||
?>
|
||||
Reference in New Issue
Block a user