MIF_E31212366/app/Charts/MonthlyDBDChart.php

49 lines
1.5 KiB
PHP

<?php
namespace App\Charts;
use ArielMejiaDev\LarapexCharts\LarapexChart;
class MonthlyDBDChart
{
protected $chart;
protected $dataByYear;
protected $year;
public function __construct($dataByYear, $year)
{
$this->chart = new LarapexChart;
$this->dataByYear = $dataByYear;
$this->year = $year;
}
public function build(): \ArielMejiaDev\LarapexCharts\LineChart
{
$monthlyData = []; // Inisialisasi array kosong untuk data bulanan
// Jika ada data untuk tahun tertentu
if ($this->dataByYear->isNotEmpty()) {
// Loop melalui setiap data untuk mengumpulkan jumlah kasus per bulan
foreach ($this->dataByYear as $data) {
// Jika belum ada data untuk bulan tersebut, tambahkan ke array
if (!isset($monthlyData[$data->bulan])) {
$monthlyData[$data->bulan] = $data->jumlah_kasus;
} else {
// Jika sudah ada data untuk bulan tersebut, tambahkan jumlah kasus ke data yang sudah ada
$monthlyData[$data->bulan] += $data->jumlah_kasus;
}
}
}
// Pisahkan label bulan dan data jumlah kasus dari array asosiatif
$labels = array_keys($monthlyData);
$jumlahKasus = array_values($monthlyData);
// Bangun chart dengan data yang dikumpulkan
return $this->chart->lineChart()
->addData('Jumlah Kasus', $jumlahKasus)
->setXAxis($labels)
->setHeight(220);
}
}