@extends('layouts.app', ['class' => 'g-sidenav-show bg-gray-100']) {{-- section content --}} @section('content') @include('layouts.navbars.auth.topnav', ['title' => ''])
| No | {{-- set table header --}} @foreach ($table_result as $result) @php $sAsArray = array_keys((array) $result); $i = 0; @endphp @endforeach @foreach ($sAsArray as $header) @if ($header == 'tanggal_tanpa_keterangan') {{-- Skip header ini --}} @elseif (substr($header, 0, 3) == 'IMG'){{ substr($header, 4) }} | @elseif (substr($header, 0, 3) == 'CDT'){{ substr($header, 6) . '-' . substr($header, 3, 2) }} | @elseif (substr($header, 0, 3) == 'CST'){{ substr($header, 4) }} | @else{{ $header }} | @endif @php $i++; @endphp @endforeachAbsensi Progress | |
|---|---|---|---|---|---|---|
| {{ $loop->iteration }} | @foreach ($table_result as $result) @php $field = array_keys((array) $result); $i = 0; @endphp @endforeach @foreach ($field as $header) @php $string = $header; $img_id = ''; $characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; for ($i = 0; $i < 10; $i++) { $img_id .= $characters[mt_rand(0, strlen($characters) - 1)]; } @endphp @if (substr($string, 0, 3) == 'IMG')
|
@elseif (substr($string, 0, 3) == 'CDT')
{{ $detail->$string }} | @elseif (substr($string, 0, 3) == 'CST'){{ $detail->$string }} | @else @if ($string == 'tanpa_keterangan')
@if ($detail->$string > 0 && isset($detail->tanggal_tanpa_keterangan))
{{ $detail->$string }} hari
|
@elseif ($string == 'tanggal_tanpa_keterangan')
{{-- Skip kolom ini, sudah ditampilkan di modal --}}
@else
{{ $detail->$string }} | @endif @endif @php $i++; @endphp @endforeach
@php
$total_hari_kerja = $detail->total_hari_kerja ?? 0;
$hari_kerja_berjalan = $detail->hari_kerja_berjalan ?? 0;
$wfo = $detail->WFO ?? 0;
$wfh = $detail->WFH ?? 0;
$izin = $detail->izin ?? 0;
$sakit = $detail->sakit ?? 0;
$pending = $detail->absen_pending ?? 0;
$belum_absen =
$hari_kerja_berjalan -
$pending -
$wfo -
$wfh -
$izin -
$sakit;
$tanpa_keterangan =
$total_hari_kerja -
($wfo + $wfh + $izin + $sakit + $pending + $belum_absen);
if ($tanpa_keterangan < 0) {
$tanpa_keterangan = 0;
}
// Hitung persentase untuk progress bar
$pct_wfo =
$total_hari_kerja > 0
? round(($wfo / $total_hari_kerja) * 100, 1)
: 0;
$pct_wfh =
$total_hari_kerja > 0
? round(($wfh / $total_hari_kerja) * 100, 1)
: 0;
$pct_izin =
$total_hari_kerja > 0
? round(($izin / $total_hari_kerja) * 100, 1)
: 0;
$pct_sakit =
$total_hari_kerja > 0
? round(($sakit / $total_hari_kerja) * 100, 1)
: 0;
$pct_pending =
$total_hari_kerja > 0
? round(($pending / $total_hari_kerja) * 100, 1)
: 0;
$pct_blmabsen =
$total_hari_kerja > 0
? round(($belum_absen / $total_hari_kerja) * 100, 1)
: 0;
$pct_tanpa =
$total_hari_kerja > 0
? round(
($tanpa_keterangan / $total_hari_kerja) * 100,
1,
)
: 0;
// (kalau total pembulatan > 100, kecilkan segmen terakhir)
$sum =
$pct_wfo +
$pct_wfh +
$pct_sakit +
$pct_izin +
$pct_pending +
$pct_blmabsen +
$pct_tanpa;
if ($sum > 100) {
$pct_tanpa = max(0, $pct_tanpa - ($sum - 100));
}
@endphp
{{-- WFO --}}
{{-- WFH --}}
{{-- Sakit --}}
{{-- Izin --}}
{{-- Pending --}}
{{-- Belum Absen --}}
{{-- Tanpa Keterangan (tampilkan abu-abu terang + teks gelap) --}}
|
Keterangan Status Absensi: