TIF_E41201209/Siketas_map_FIX/app/Http/Controllers/DaerahRawanController.php

64 lines
2.0 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Jalan;
use App\Models\Kecelakaan;
use App\Models\DaerahRawan;
class DaerahRawanController extends Controller
{
public function index()
{
$jalan = Jalan::all();
$kecelakaan = Kecelakaan::all();
$groupedKecelakaan = $kecelakaan->groupBy('id_jalan');
$data = [];
foreach ($jalan as $j) {
$id_jalan = $j->id;
$kejadian = $groupedKecelakaan->get($id_jalan, collect());
$jumlah_aman = $kejadian->where('tingkat_kerawanan', 'Aman')->count();
$jumlah_rawan = $kejadian->where('tingkat_kerawanan', 'Rawan')->count();
$jumlah_sangat_rawan = $kejadian->where('tingkat_kerawanan', 'Sangat Rawan')->count();
$jumlah_status = [
'Sangat Rawan' => $jumlah_sangat_rawan,
'Rawan' => $jumlah_rawan,
'Aman' => $jumlah_aman,
];
$max_value = max($jumlah_status);
$status_kerawanan = array_search($max_value, $jumlah_status);
$data[] = [
'nama_jalan' => $j->nama_jalan,
'jumlah_aman' => $jumlah_aman,
'jumlah_rawan' => $jumlah_rawan,
'jumlah_sangat_rawan' => $jumlah_sangat_rawan,
'status_kerawanan' => $status_kerawanan
];
// Simpan ke database
DaerahRawan::updateOrCreate(
['id_jalan' => $id_jalan],
[
'jumlah_aman' => $jumlah_aman,
'jumlah_rawan' => $jumlah_rawan,
'jumlah_sangat_rawan' => $jumlah_sangat_rawan,
'status_kerawanan' => $status_kerawanan
]
);
}
return view('dashboard.daerah_rawan.index',
[
'data' => $data,
'jalan' => $jalan,
'kecelakaan' => $kecelakaan
]);
}
}