Grafikkkkbackup
Grafikkkkbackup
<!DOCTYPE html>
<html lang="en">
<body>
<?= $this->include('layout/headbar'); ?>
<div class="pagetitle">
<h1>Dashboard</h1>
<nav>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="index.html">Home</a></li>
<li class="breadcrumb-item active">Dashboard</li>
</ol>
</nav>
</div><!-- End Page Title -->
<li><a class="dropdown-item"
href="#">January</a></li>
<li><a class="dropdown-item"
href="#">February</a></li>
<li><a class="dropdown-item"
href="#">March</a></li>
<li><a class="dropdown-item"
href="#">April</a></li>
<li><a class="dropdown-item"
href="#">May</a></li>
<li><a class="dropdown-item"
href="#">June</a></li>
<li><a class="dropdown-item"
href="#">July</a></li>
<li><a class="dropdown-item"
href="#">August</a></li>
<li><a class="dropdown-item"
href="#">September</a></li>
<li><a class="dropdown-item"
href="#">October</a></li>
<li><a class="dropdown-item"
href="#">November</a></li>
<li><a class="dropdown-item"
href="#">December</a></li>
</ul>
</div>
<div class="card-body">
<h5 class="card-title">Monthly
<span>/Report</span></h5>
<script>
document.addEventListener("DOMContentLoaded", () => {
fetch('<?=
base_url('ChartController/getChartData') ?>')
.then(response => response.json())
.then(data => {
if (data && data.dates &&
data.planOrderMonth !== null && data.dailyData) {
console.log(data);
var options = {
series: [{
name: 'Actual',
type: 'column',
data:
data.dailyData.map(item => item.total_konsumsi),
}, {
name: 'Planning',
type: 'line',
data:
Array(data.dates.length).fill(data.planOrderMonth),
}],
chart: {
height: 350,
type: 'line',
stacked: false,
},
stroke: {
width: [0, 2],
curve: 'smooth'
},
plotOptions: {
bar: {
columnWidth:
'50%'
}
},
colors: ['#ff771d',
'#4154f1', '#2eca6a'],
fill: {
opacity: [0.85, 1],
},
labels: data.dates,
markers: {
size: [0, 4]
},
xaxis: {
type: 'category'
},
yaxis: {
min: 0,
max: 1000,
tickAmount: 10,
labels: {
formatter:
function(val) {
return
val.toFixed(1) + ' kg';
}
},
title: {
text: 'Weight
(kg)'
}
},
tooltip: {
shared: true,
intersect: false,
x: {
format:
'dd/MM/yyyy'
},
y: {
formatter:
function(val) {
return
val.toFixed(1) + ' kg';
}
}
}
};
</div>
</div>
</div><!-- End Reports -->
<!-- End Website Traffic -->
</div>
<div class="filter">
<a class="icon" href="#" data-bs-
toggle="dropdown"><i class="bi bi-three-dots"></i></a>
<ul class="dropdown-menu dropdown-menu-end
dropdown-menu-arrow">
<li class="dropdown-header text-start">
<h6>Filter</h6>
</li>
<li><a class="dropdown-item"
href="#">Today</a></li>
<li><a class="dropdown-item" href="#">This
Month</a></li>
<li><a class="dropdown-item" href="#">This
Year</a></li>
</ul>
</div>
<div class="card-body">
<h5 class="card-title">Recent Sales <span>|
Today</span></h5>
<div id="mixedChart"></div>
</div>
</div>
</div>
</div> -->
</section>
</main>
<!-- End #main -->
<a href="#" class="back-to-top d-flex align-items-center justify-content-
center"><i class="bi bi-arrow-up-short"></i></a>
</body>
</html>
controller :
<?php
namespace App\Controllers;
use App\Controllers\BaseController;
use CodeIgniter\HTTP\ResponseInterface;
use App\Models\ChartModel;
use App\Models\UsersDataModel;
use App\Models\UserAccessModel;
use App\Models\UserModel;
use CodeIgniter\Pager\Pager;
use CodeIgniter\API\ResponseTrait;
use App\Models\WorkPlansModel;
use App\Models\KalkulasiPlanningModel;
use App\Models\DailyKonsumsiModel;
if (!$user) {
return redirect()->to('/profile')->with('error', 'Pengguna tidak
ditemukan.');
}
if (!$userData) {
return redirect()->to('/profile')->with('error', 'Pengguna tidak
ditemukan.');
}
$lineData = $this->usersData->getLineOptions();
$data = [
'title' => 'CPL',
'lineData' => $lineData,
'user' => $userData,
'userId' => $user
];
return view('dashboard/index', $data);
}