Files
prn2026/resources/views/admin/management/penempatan/show.blade.php
2026-06-03 08:51:22 +08:00

147 lines
8.4 KiB
PHP

@extends('layouts.app')
@section('title', 'Penempatan — ' . $pusat->name)
@section('content')
<div class="page-heading">
<div class="eyebrow">Admin · <a href="{{ route('admin.dashboard') }}">Dashboard</a></div>
<div class="d-flex justify-content-between flex-column flex-lg-row gap-3">
<div>
<h1 class="h3 mb-1">Penempatan Petugas</h1>
<p class="text-secondary mb-0">
{{ $pusat->code }} {{ $pusat->name }}
@if ($pusat->dun) · DUN {{ $pusat->dun->code }} @endif
@if ($ppm) · PPM: {{ $ppm->application?->name }} @endif
</p>
</div>
<div class="d-flex gap-2 align-items-start">
<a href="{{ route('admin.dashboard') }}" class="btn btn-outline-secondary">Kembali</a>
<a href="{{ route('admin.management.applications.index', ['pusat_mengundi_id' => $pusat->id]) }}"
class="btn btn-outline-primary">
<i class="bi bi-file-earmark-person me-1"></i>Permohonan Pusat Ini
</a>
</div>
</div>
</div>
@include('admin.management._nav')
@forelse ($sections as $section)
<div class="content-panel p-0 overflow-hidden mb-4">
{{-- Section header --}}
<div class="p-3 border-bottom d-flex justify-content-between align-items-center">
<h2 class="h6 mb-0 fw-semibold">
@if ($section['saluran'])
<i class="bi bi-signpost me-2 text-primary"></i>{{ $section['label'] }}
<span class="text-secondary fw-normal small ms-2">{{ $section['saluran']->voter_count ?? 0 }} pengundi</span>
@else
<i class="bi bi-building me-2 text-secondary"></i>{{ $section['label'] }}
@endif
</h2>
@php
$sectionFilled = $section['entries']->sum(fn($e) => $e['assignments']->count());
$sectionQuota = $section['entries']->sum(fn($e) => $e['quota']->quota);
$sectionVacant = $section['entries']->sum(fn($e) => $e['vacant']);
@endphp
<span class="badge {{ $sectionVacant > 0 ? 'text-bg-warning' : 'text-bg-success' }}">
{{ $sectionFilled }} / {{ $sectionQuota }} diisi
</span>
</div>
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead class="table-light">
<tr>
<th>Jawatan</th>
<th>Nama Petugas</th>
<th>No. KP</th>
<th>Telefon</th>
<th>Bank</th>
<th>No. Akaun</th>
<th class="text-end">Tindakan</th>
</tr>
</thead>
<tbody>
@forelse ($section['entries'] as $entry)
{{-- Filled slots --}}
@foreach ($entry['assignments'] as $assignment)
<tr>
@if ($loop->first)
<td rowspan="{{ $entry['assignments']->count() + $entry['vacant'] }}"
class="fw-semibold align-top pt-3">
{{ $entry['position']?->code }}
<div class="small text-secondary fw-normal">{{ $entry['position']?->name }}</div>
<div class="small text-secondary">Kuota: {{ $entry['quota']->quota }}</div>
</td>
@endif
@php $app = $assignment->application; @endphp
<td>
<div class="fw-semibold">{{ $app?->name ?? $assignment->user?->name ?? 'Tanpa nama' }}</div>
<span class="badge text-bg-success small">Aktif</span>
</td>
<td class="small text-secondary">{{ $app?->ic_number ?? '-' }}</td>
<td class="small text-secondary">{{ $app?->phone_number ?? '-' }}</td>
<td class="small">{{ $app?->bank_name ?? '-' }}</td>
<td class="small text-secondary">
{{ $app?->bank_account_number ? \App\Support\SensitiveData::maskAccount($app->bank_account_number) : '-' }}
</td>
<td class="text-end">
<a href="{{ route('admin.management.penempatan.pindah.form', [$pusat, $assignment]) }}"
class="btn btn-sm btn-outline-secondary">
<i class="bi bi-arrow-left-right"></i> Pindah
</a>
<form method="POST"
action="{{ route('admin.management.penempatan.lepas', [$pusat, $assignment]) }}"
class="d-inline"
onsubmit="return confirm('Lepaskan {{ addslashes($app?->name ?? 'petugas') }} dari tugasan ini?')">
@csrf
<button class="btn btn-sm btn-outline-danger">
<i class="bi bi-person-dash"></i> Lepas
</button>
</form>
</td>
</tr>
@endforeach
{{-- Vacant slots --}}
@for ($i = 0; $i < $entry['vacant']; $i++)
<tr class="table-warning">
@if ($entry['assignments']->isEmpty() && $i === 0)
<td rowspan="{{ $entry['vacant'] }}"
class="fw-semibold align-top pt-3">
{{ $entry['position']?->code }}
<div class="small text-secondary fw-normal">{{ $entry['position']?->name }}</div>
<div class="small text-secondary">Kuota: {{ $entry['quota']->quota }}</div>
</td>
@endif
<td colspan="5" class="text-secondary fst-italic small"> Slot kosong </td>
<td class="text-end">
<a href="{{ route('admin.management.applications.index', [
'pusat_mengundi_id' => $pusat->id,
'position_id' => $entry['position']?->id,
'status' => 'approved',
]) }}"
class="btn btn-sm btn-success">
<i class="bi bi-person-plus me-1"></i>Assign
</a>
</td>
</tr>
@endfor
@empty
<tr>
<td colspan="7" class="text-center text-secondary py-3">Tiada kuota ditetapkan untuk bahagian ini.</td>
</tr>
@endforelse
</tbody>
</table>
</div>
</div>
@empty
<div class="content-panel p-4 text-center text-secondary">
<i class="bi bi-info-circle fs-3 d-block mb-2"></i>
Tiada kuota ditetapkan untuk pusat ini. <a href="{{ route('admin.setup.pusat.saluran.index', $pusat) }}">Tetapkan kuota</a>.
</div>
@endforelse
@endsection