71 lines
4.7 KiB
PHP
71 lines
4.7 KiB
PHP
@extends('layouts.app')
|
|
@section('title', 'Laporan')
|
|
|
|
@section('content')
|
|
@php
|
|
$exportBtns = fn($type) => '<div class="btn-group btn-group-sm">'
|
|
.'<a href="'.route('reports.export',$type).'?format=xlsx" class="btn btn-outline-teal"><i class="bi bi-file-earmark-excel"></i> Excel</a>'
|
|
.'<a href="'.route('reports.export',$type).'?format=pdf" class="btn btn-outline-secondary"><i class="bi bi-file-earmark-pdf"></i> PDF</a></div>';
|
|
@endphp
|
|
|
|
<ul class="nav nav-tabs mb-3" role="tablist">
|
|
<li class="nav-item"><button class="nav-link active" data-bs-toggle="tab" data-bs-target="#tab-winners">Pemenang ({{ $winners->count() }})</button></li>
|
|
<li class="nav-item"><button class="nav-link" data-bs-toggle="tab" data-bs-target="#tab-undrawn">Belum Dicabut ({{ $undrawn->count() }})</button></li>
|
|
<li class="nav-item"><button class="nav-link" data-bs-toggle="tab" data-bs-target="#tab-cancelled">Dibatalkan ({{ $cancelled->count() }})</button></li>
|
|
<li class="nav-item"><button class="nav-link" data-bs-toggle="tab" data-bs-target="#tab-attendance">Kehadiran</button></li>
|
|
</ul>
|
|
|
|
<div class="tab-content">
|
|
<div class="tab-pane fade show active" id="tab-winners">
|
|
<div class="card"><div class="card-body">
|
|
<div class="d-flex justify-content-between mb-2"><h6 class="fw-bold mb-0">Senarai Pemenang Disahkan</h6>{!! $exportBtns('winners') !!}</div>
|
|
<div class="table-responsive"><table class="table table-koipb table-hover align-middle">
|
|
<thead><tr><th>Susunan</th><th>Hadiah</th><th>Pemenang</th><th>No Pekerja</th><th>Jabatan</th><th>Masa Disahkan</th></tr></thead>
|
|
<tbody>
|
|
@forelse($winners as $w)
|
|
<tr><td><span class="badge bg-gold">#{{ $w->prize->draw_order }}</span></td>
|
|
<td>{{ $w->prize->nama_hadiah }}</td><td class="fw-semibold">{{ $w->member->nama }}</td>
|
|
<td>{{ $w->member->no_pekerja }}</td><td>{{ $w->member->jabatan }}</td>
|
|
<td><small>{{ $w->confirmed_at?->format('d/m/Y H:i') }}</small></td></tr>
|
|
@empty<tr><td colspan="6" class="text-center text-muted py-3">Belum ada pemenang.</td></tr>@endforelse
|
|
</tbody></table></div>
|
|
</div></div>
|
|
</div>
|
|
|
|
<div class="tab-pane fade" id="tab-undrawn">
|
|
<div class="card"><div class="card-body">
|
|
<div class="d-flex justify-content-between mb-2"><h6 class="fw-bold mb-0">Hadiah Belum Dicabut</h6>{!! $exportBtns('undrawn') !!}</div>
|
|
<div class="table-responsive"><table class="table table-koipb table-hover align-middle">
|
|
<thead><tr><th>Susunan</th><th>Kod</th><th>Hadiah</th><th>Kategori</th><th>Status</th></tr></thead>
|
|
<tbody>
|
|
@forelse($undrawn as $p)
|
|
<tr><td><span class="badge bg-dark2">#{{ $p->draw_order }}</span></td><td>{{ $p->kod_hadiah }}</td>
|
|
<td>{{ $p->nama_hadiah }}</td><td>{{ $p->kategori }}</td><td><span class="pill pill-belum">{{ $p->statusLabel() }}</span></td></tr>
|
|
@empty<tr><td colspan="5" class="text-center text-muted py-3">Semua hadiah telah dicabut.</td></tr>@endforelse
|
|
</tbody></table></div>
|
|
</div></div>
|
|
</div>
|
|
|
|
<div class="tab-pane fade" id="tab-cancelled">
|
|
<div class="card"><div class="card-body">
|
|
<div class="d-flex justify-content-between mb-2"><h6 class="fw-bold mb-0">Cabutan Dibatalkan</h6>{!! $exportBtns('cancelled') !!}</div>
|
|
<div class="table-responsive"><table class="table table-koipb table-hover align-middle">
|
|
<thead><tr><th>Hadiah</th><th>Nama</th><th>No Pekerja</th><th>Sebab</th><th>Cubaan</th><th>Masa</th></tr></thead>
|
|
<tbody>
|
|
@forelse($cancelled as $c)
|
|
<tr><td>{{ $c->prize->nama_hadiah }}</td><td>{{ $c->member->nama }}</td><td>{{ $c->member->no_pekerja }}</td>
|
|
<td>{{ $c->sebab_batal }}</td><td>#{{ $c->attempt_number }}</td><td><small>{{ $c->cancelled_at?->format('d/m/Y H:i') }}</small></td></tr>
|
|
@empty<tr><td colspan="6" class="text-center text-muted py-3">Tiada cabutan dibatalkan.</td></tr>@endforelse
|
|
</tbody></table></div>
|
|
</div></div>
|
|
</div>
|
|
|
|
<div class="tab-pane fade" id="tab-attendance">
|
|
<div class="card"><div class="card-body">
|
|
<div class="d-flex justify-content-between mb-2"><h6 class="fw-bold mb-0">Senarai Kehadiran</h6>{!! $exportBtns('attendance') !!}</div>
|
|
<p class="text-muted">Lihat senarai penuh & penapis di <a href="{{ route('attendance.index') }}">Senarai Kehadiran</a>. Butang di atas untuk eksport.</p>
|
|
</div></div>
|
|
</div>
|
|
</div>
|
|
@endsection
|