maskurir/app/Http/Controllers/PresenceController.php

46 lines
1.3 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Location;
use App\Models\User;
use Carbon\Carbon;
class PresenceController extends Controller
{
public function index()
{
// Ambil semua data presensi (upload lokasi)
$presences = Location::with('user')
->select('user_id', 'created_at')
->orderBy('created_at')
->get();
// Mapping data menjadi [tanggal => [nama kurir, ...]]
$presenceData = [];
foreach ($presences as $presence) {
$date = Carbon::parse($presence->created_at)->toDateString();
$name = $presence->user->name;
// Hindari duplikat nama di tanggal yang sama
if (!isset($presenceData[$date])) {
$presenceData[$date] = [];
}
if (!in_array($name, $presenceData[$date])) {
$presenceData[$date][] = $name;
}
$today = now()->format('Y-m-d');
$presensiRecords = Location::with('user')
->select('user_id', Location::raw('MIN(created_at) as check_in_time'))
->whereDate('created_at', $today)
->groupBy('user_id')
->get();
}
return view('presensi.index', compact('presenceData', 'presensiRecords'));
}
}