MIF_E31231754/resources/views/admin/penilaian/edit.blade.php

198 lines
9.3 KiB
PHP

@extends('admin.layouts.app')
@section('title', 'Edit Penilaian Warga')
@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"><a href="{{ route('admin.penilaian.index') }}">Penilaian Warga</a></li>
<li class="breadcrumb-item active">Edit Penilaian</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-pencil-square me-2"></i>Edit Penilaian Warga</h2>
<p class="text-muted mb-0">Ubah nilai kriteria untuk: <strong>{{ $warga->nama }}</strong></p>
</div>
<a href="{{ route('admin.penilaian.index') }}" class="btn btn-outline-secondary">
<i class="bi bi-arrow-left me-2"></i>Kembali
</a>
</div>
@if ($errors->any())
<div class="alert alert-danger alert-dismissible fade show" role="alert">
<i class="bi bi-exclamation-triangle-fill me-2"></i>
<strong>Terdapat kesalahan:</strong>
<ul class="mb-0 mt-2">
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
<button type="button" class="btn-close" data-bs-dismiss="alert"></button>
</div>
@endif
@if ($periodeAktif && \Carbon\Carbon::parse($periodeAktif->tanggal_selesai)->endOfDay()->isPast())
<div class="alert alert-warning border-warning shadow-sm mb-4">
<i class="bi bi-exclamation-triangle-fill me-2 text-warning"></i>
<strong>Perhatian:</strong> Masa aktif periode seleksi <strong>{{ $periodeAktif->nama }}</strong> telah berakhir pada {{ \Carbon\Carbon::parse($periodeAktif->tanggal_selesai)->format('d/m/Y') }}. Anda masih dapat menyesuaikan penilaian warga sebelum penerima ditetapkan secara final pada menu Proses SAW.
</div>
@endif
<!-- Form Card -->
<div class="card shadow-sm border-0">
<div class="card-header bg-warning">
<h5 class="mb-0"><i class="bi bi-pencil-square me-2"></i>Form Edit Penilaian</h5>
</div>
<div class="card-body">
<form action="{{ route('admin.penilaian.update', $warga->id) }}" method="POST">
@csrf
@method('PUT')
<!-- Info Warga & Periode -->
<div class="row mb-4">
<div class="col-md-6">
<div class="alert alert-primary">
<h6 class="mb-2"><i class="bi bi-person-fill me-2"></i>Data Warga</h6>
<table class="table table-sm table-borderless mb-0">
<tr>
<td width="100">Nama</td>
<td>: <strong>{{ $warga->nama }}</strong></td>
</tr>
<tr>
<td>NIK</td>
<td>: {{ $warga->nik }}</td>
</tr>
<tr>
<td>Alamat</td>
<td>: {{ $warga->alamat }}</td>
</tr>
<tr>
<td>Dusun/RW</td>
<td>: {{ $warga->dusun }}, RW {{ $warga->rw }}</td>
</tr>
</table>
</div>
</div>
<div class="col-md-6">
<div class="alert alert-info">
<h6 class="mb-2"><i class="bi bi-calendar-event me-2"></i>Periode Seleksi</h6>
<table class="table table-sm table-borderless mb-0">
<tr>
<td width="100">Nama</td>
<td>: <strong>{{ $periodeAktif->nama }}</strong></td>
</tr>
<tr>
<td>Periode</td>
<td>: {{ \Carbon\Carbon::parse($periodeAktif->tanggal_mulai)->format('d/m/Y') }} -
{{ \Carbon\Carbon::parse($periodeAktif->tanggal_selesai)->format('d/m/Y') }}
</td>
</tr>
<tr>
<td>Kuota</td>
<td>: {{ $periodeAktif->kuota_penerima }} penerima</td>
</tr>
</table>
</div>
</div>
</div>
<hr class="my-4">
<!-- Nilai Kriteria Header -->
<div class="mb-4">
<h5 class="text-warning">
<i class="bi bi-list-check me-2"></i>Nilai Kriteria (skala 1-5)
</h5>
<p class="text-muted mb-0">Ubah nilai untuk setiap kriteria sesuai kondisi warga</p>
</div>
<!-- Grid Kriteria 2 Kolom -->
<div class="row g-4">
@foreach ($kriteria as $k)
@php
$currentNilai = $penilaian->has($k->id) ? $penilaian[$k->id]->nilai : old('nilai.'.$k->id);
@endphp
<div class="col-md-6">
<div class="card h-100 {{ $k->jenis == 'benefit' ? 'border-primary' : 'border-warning' }}">
<div class="card-body">
<!-- Header Kriteria -->
<div class="d-flex justify-content-between align-items-start mb-3">
<div>
<h6 class="mb-1">{{ $k->kode }} {{ $k->nama }}</h6>
<span class="badge {{ $k->jenis == 'benefit' ? 'bg-primary' : 'bg-warning text-dark' }}">
{{ $k->jenis }}
</span>
</div>
<span class="badge bg-secondary">Bobot: {{ number_format($k->bobot, 2) }}</span>
</div>
<!-- Dropdown Nilai -->
<select name="nilai[{{ $k->id }}]" class="form-select form-select-lg @error('nilai.'.$k->id) is-invalid @enderror" required>
<option value="">-- Pilih Nilai --</option>
@if ($k->subKriteria->isNotEmpty())
@foreach ($k->subKriteria as $sub)
<option value="{{ $sub->nilai }}" {{ $currentNilai == $sub->nilai ? 'selected' : '' }}>
{{ $sub->nilai }} - {{ $sub->keterangan }}
</option>
@endforeach
@else
<option value="1" {{ $currentNilai == 1 ? 'selected' : '' }}>1 - Sangat Kurang / Rendah</option>
<option value="2" {{ $currentNilai == 2 ? 'selected' : '' }}>2 - Kurang / Rendah</option>
<option value="3" {{ $currentNilai == 3 ? 'selected' : '' }}>3 - Cukup / Sedang</option>
<option value="4" {{ $currentNilai == 4 ? 'selected' : '' }}>4 - Baik / Tinggi</option>
<option value="5" {{ $currentNilai == 5 ? 'selected' : '' }}>5 - Sangat Baik / Tinggi</option>
@endif
</select>
@error('nilai.'.$k->id)
<div class="invalid-feedback d-block">{{ $message }}</div>
@enderror
</div>
</div>
</div>
@endforeach
</div>
<!-- Buttons -->
<div class="d-flex justify-content-between mt-5 pt-4 border-top">
<a href="{{ route('admin.penilaian.index') }}" class="btn btn-lg btn-outline-secondary">
<i class="bi bi-x-circle me-2"></i>Batal
</a>
<button type="submit" class="btn btn-lg btn-warning px-5">
<i class="bi bi-check-circle me-2"></i>Update Penilaian
</button>
</div>
</form>
</div>
</div>
</div>
@push('styles')
<style>
.card {
transition: all 0.3s ease;
}
.card:hover {
transform: translateY(-2px);
box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
}
.form-select-lg {
font-size: 1rem;
padding: 0.75rem 1rem;
}
.table-borderless td {
padding: 0.25rem 0;
}
</style>
@endpush
@endsection