184 lines
7.7 KiB
PHP
184 lines
7.7 KiB
PHP
@extends('admin.layouts.app')
|
|
@section('title', 'Proses SAW')
|
|
|
|
@section('content')
|
|
<div class="container-fluid">
|
|
<!-- Breadcrumb -->
|
|
<nav aria-label="breadcrumb" class="mb-4">
|
|
<ol class="breadcrumb">
|
|
<li class="breadcrumb-item"><a href="{{ route('admin.dashboard') }}">Dashboard</a></li>
|
|
<li class="breadcrumb-item active">Proses SAW</li>
|
|
</ol>
|
|
</nav>
|
|
|
|
<!-- Header -->
|
|
<div class="d-flex justify-content-between align-items-center mb-4">
|
|
<div>
|
|
<h2 class="mb-1"><i class="bi bi-calculator me-2"></i>Proses SAW</h2>
|
|
<p class="text-muted mb-0">Periode: <strong>{{ $periode->nama }}</strong></p>
|
|
</div>
|
|
<a href="{{ route('admin.dashboard') }}" class="btn btn-outline-secondary">
|
|
<i class="bi bi-arrow-left me-2"></i>Kembali
|
|
</a>
|
|
</div>
|
|
|
|
|
|
<!-- Info Periode -->
|
|
<div class="row mb-4">
|
|
<div class="col-md-3">
|
|
<div class="card shadow-sm border-0">
|
|
<div class="card-body text-center">
|
|
<i class="bi bi-people-fill text-primary display-4"></i>
|
|
<h3 class="mt-2 mb-0">{{ $wargaDinilai->count() }}</h3>
|
|
<small class="text-muted">Warga Dinilai</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-3">
|
|
<div class="card shadow-sm border-0">
|
|
<div class="card-body text-center">
|
|
<i class="bi bi-list-check text-success display-4"></i>
|
|
<h3 class="mt-2 mb-0">{{ $kriteria->count() }}</h3>
|
|
<small class="text-muted">Kriteria</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-3">
|
|
<div class="card shadow-sm border-0">
|
|
<div class="card-body text-center">
|
|
<i class="bi bi-trophy-fill text-warning display-4"></i>
|
|
<h3 class="mt-2 mb-0">{{ $periode->kuota_penerima }}</h3>
|
|
<small class="text-muted">Kuota Penerima</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-3">
|
|
<div class="card shadow-sm border-0">
|
|
<div class="card-body text-center">
|
|
@if($sudahDihitung)
|
|
<i class="bi bi-check-circle-fill text-success display-4"></i>
|
|
<h5 class="mt-2 mb-0">Sudah Dihitung</h5>
|
|
@else
|
|
<i class="bi bi-hourglass-split text-secondary display-4"></i>
|
|
<h5 class="mt-2 mb-0">Belum Dihitung</h5>
|
|
@endif
|
|
<small class="text-muted">Status</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Action Buttons -->
|
|
<div class="card shadow-sm border-0 mb-4">
|
|
<div class="card-body">
|
|
<div class="d-flex justify-content-between align-items-center">
|
|
<div>
|
|
<h5 class="mb-1">Langkah Selanjutnya</h5>
|
|
<p class="text-muted mb-0 small">
|
|
@if($sudahDihitung)
|
|
Perhitungan SAW sudah dilakukan. Anda bisa melihat hasil atau menghitung ulang.
|
|
@else
|
|
Data penilaian sudah siap. Klik tombol "Hitung SAW" untuk memulai perhitungan.
|
|
@endif
|
|
</p>
|
|
</div>
|
|
<div class="d-flex gap-2">
|
|
@if($sudahDihitung)
|
|
<a href="{{ route('admin.saw.hasil', $periode) }}" class="btn btn-primary">
|
|
<i class="bi bi-trophy me-2"></i>Lihat Hasil & Ranking
|
|
</a>
|
|
<form action="{{ route('admin.saw.hitung', $periode) }}" method="POST" class="d-inline" onsubmit="return confirm('Yakin ingin menghitung ulang? Data hasil sebelumnya akan dihapus.')">
|
|
@csrf
|
|
<button type="submit" class="btn btn-warning">
|
|
<i class="bi bi-arrow-clockwise me-2"></i>Hitung Ulang
|
|
</button>
|
|
</form>
|
|
@else
|
|
<form action="{{ route('admin.saw.hitung', $periode) }}" method="POST" class="d-inline">
|
|
@csrf
|
|
<button type="submit" class="btn btn-success btn-lg">
|
|
<i class="bi bi-calculator me-2"></i>Hitung SAW
|
|
</button>
|
|
</form>
|
|
@endif
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Preview Data Penilaian -->
|
|
<div class="card shadow-sm border-0">
|
|
<div class="card-header bg-white py-3">
|
|
<h5 class="mb-0">Preview Data Penilaian</h5>
|
|
</div>
|
|
<div class="card-body p-0">
|
|
@if($wargaDinilai->isEmpty())
|
|
<div class="text-center py-5">
|
|
<i class="bi bi-inbox display-1 text-muted"></i>
|
|
<h5 class="mt-3">Belum Ada Data Penilaian</h5>
|
|
<p class="text-muted">Silakan input penilaian warga terlebih dahulu</p>
|
|
<a href="{{ route('admin.penilaian.create') }}" class="btn btn-success mt-2">
|
|
<i class="bi bi-plus-circle me-2"></i>Tambah Penilaian
|
|
</a>
|
|
</div>
|
|
@else
|
|
<div class="table-responsive">
|
|
<table class="table table-hover table-striped mb-0">
|
|
<thead class="table-success">
|
|
<tr>
|
|
<th width="50" class="text-center">#</th>
|
|
<th>Nama Warga</th>
|
|
<th>Dusun/RW</th>
|
|
@foreach($kriteria as $k)
|
|
<th width="80" class="text-center" title="{{ $k->nama }}">{{ $k->kode }}</th>
|
|
@endforeach
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach($wargaDinilai as $index => $warga)
|
|
@if($warga) {{-- ✅ NULL CHECK --}}
|
|
<tr>
|
|
<td class="text-center">{{ $index + 1 }}</td>
|
|
<td>
|
|
<strong>{{ $warga->nama ?? 'N/A' }}</strong>
|
|
<br>
|
|
<small class="text-muted">
|
|
NIK: {{ $warga->nik ? $warga->nik : 'N/A' }}
|
|
</small>
|
|
</td>
|
|
<td>{{ $warga->dusun ?? '-' }}, RW {{ $warga->rw ?? '-' }}</td>
|
|
|
|
@foreach($kriteria as $k)
|
|
@php
|
|
$penilaianItem = $warga->penilaian->where('kriteria_id', $k->id)->first();
|
|
@endphp
|
|
<td class="text-center">
|
|
@if($penilaianItem)
|
|
<span class="badge {{ $k->jenis == 'benefit' ? 'bg-primary' : 'bg-warning text-dark' }}">
|
|
{{ $penilaianItem->nilai }}
|
|
</span>
|
|
@else
|
|
<span class="text-muted">-</span>
|
|
@endif
|
|
</td>
|
|
@endforeach
|
|
</tr>
|
|
@endif
|
|
@endforeach
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
@endif
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
@push('styles')
|
|
<style>
|
|
.table th {
|
|
font-weight: 600;
|
|
white-space: nowrap;
|
|
}
|
|
</style>
|
|
@endpush
|
|
@endsection |