@extends('layouts.app') @section('title', 'Detail Pelanggaran') @push('styles') @endpush @section('content') @php $handleColors = [ 'unhandled' => ['from' => '#dc2626', 'to' => '#b91c1c'], 'in_progress' => ['from' => '#d97706', 'to' => '#b45309'], 'resolved' => ['from' => '#16a34a', 'to' => '#15803d'], ]; $handleLabels = [ 'unhandled' => 'Belum Ditangani', 'in_progress' => 'Dalam Proses', 'resolved' => 'Selesai', ]; $hcolor = $handleColors[$violation->handling_status] ?? ['from' => '#6b7280', 'to' => '#4b5563']; @endphp
{{-- ===== HEADER HERO ===== --}}
{{ strtoupper(substr($violation->student->full_name ?? '?', 0, 1)) }}

{{ $violation->student->full_name ?? '-' }}

{{ $violation->student->nisn ?? '—' }} {{ $violation->student->class_name ?? '—' }} @if($violation->student->department_name) {{ $violation->student->department_name }} @endif {{ $handleLabels[$violation->handling_status] ?? ucfirst($violation->handling_status ?? 'unhandled') }}
@if(!$violation->is_verified)
@csrf
@endif
@csrf @method('DELETE')
{{-- ===== NOTIFIKASI ORANG TUA/WALI ===== --}} @php $lastNotif = $violation->notifications()->latest('id')->first(); @endphp

Notifikasi Orang Tua/Wali

Kabarkan pelanggaran ini via WhatsApp — pesan otomatis terisi

@if ($lastNotif) Sudah dikirim {{ $lastNotif->created_at->format('d M Y H:i') }} oleh {{ $lastNotif->user?->name ?? '-' }} @endif

No. HP Orang Tua/Wali

@if ($violation->student?->parent_phone)

{{ $violation->student->parent_phone }}

@else

Belum diisi

@endif
@if ($violation->student?->parent_phone) {{ $lastNotif ? 'Kirim Ulang' : 'Kirim WA ke Orang Tua' }} @else Isi HP Orang Tua @endif
{{-- ===== KOLOM KIRI ===== --}}
{{-- Stat Row --}}
{{-- Total Poin --}}

Total Poin

{{ $violation->student->total_points }}

akumulasi siswa

{{-- Poin Pelanggaran --}}

Poin Pelanggaran

+{{ $violation->points }}

pelanggaran ini

{{-- Kategori --}}

Kategori

{{ $violation->violationType?->category?->name ?? '-' }}

tingkat pelanggaran

{{-- Status Penanganan --}}

Penanganan

{{ $handleLabels[$violation->handling_status] ?? '-' }}

{{ $violation->handlings->count() }} catatan @if($violation->handled_at) • {{ $violation->handled_at->format('d/m') }} @endif

{{-- ===== PENANGANAN (fitur utama) ===== --}}
{{-- Header kartu --}}

Riwayat Penanganan

Alur tindak lanjut pelanggaran siswa

@if($violation->handlings->count() > 0 && $violation->isInProgress())
@csrf
@endif
{{-- Timeline --}}
@forelse($violation->handlings as $h) @php $ht = $handlingTypeMap[$h->handling_type] ?? null; $htColor = $ht->color ?? '#f59e0b'; $htIcon = $ht->icon ?? 'fa-clipboard-list'; @endphp
{{-- Dot ikon --}}
{{-- Header --}}

{{ $h->handling_type }}

{{ $h->handling_date->format('d M Y') }}

@if($h->location){{ $h->location }}@endif @if($h->location && $h->creator) • @endif @if($h->creator)oleh {{ $h->creator->name }}@endif

@csrf @method('DELETE')
{{-- Deskripsi --}} @if($h->description)

{{ $h->description }}

@endif {{-- Peserta --}} @if($h->participants->count() > 0)

Yang Menangani

@foreach($h->participants as $p) {{ strtoupper(substr($p->user->name ?? '?', 0, 1)) }} {{ $p->user->name ?? '-' }} @if($p->role) {{ $p->role }} @endif @endforeach
@endif {{-- Footer row --}}
@if($h->evidence) Lihat Bukti @endif

@if($h->created_at != $h->updated_at) Diubah {{ $h->updated_at->diffForHumans() }} @else {{ $h->created_at->diffForHumans() }} @endif

@empty

Belum Ada Penanganan

Mulai tindak lanjut pelanggaran ini dengan menekan tombol di atas

@endforelse
{{-- Modal Tambah Penanganan --}}
{{-- Detail Info Card --}}
{{-- Header --}}

Informasi Pelanggaran

Detail lengkap pelanggaran yang tercatat

{{ $violation->violationType?->category?->name ?? '-' }}
Jenis Pelanggaran

{{ $violation->violationType->name ?? '-' }}

Poin Pelanggaran

+{{ $violation->points }}

Tanggal

{{ $violation->violation_date->format('d M Y') }} @if($violation->violation_time) • {{ \Carbon\Carbon::parse($violation->violation_time)->format('H:i') }} @endif

Sanksi

{{ $violation->sanction ?? '—' }}

Lokasi

{{ $violation->location ?? '—' }}

Dicatat Oleh
@if($violation->recorder)
{{ strtoupper(substr($violation->recorder->name, 0, 1)) }}

{{ $violation->recorder->name }}

@else

E-Jurnal (Sinkron Otomatis)

@endif
{{-- Deskripsi --}} @if($violation->description)

Catatan / Deskripsi

{{ $violation->description }}

@endif
{{-- ===== KOLOM KANAN ===== --}}
{{-- Status Card --}}

Status

Riwayat siklus pelanggaran

@if($violation->is_verified) @else @endif

{{ $violation->is_verified ? 'Terverifikasi' : 'Menunggu Verifikasi' }}

@if($violation->is_verified)

oleh {{ $violation->verifier->name ?? '-' }} @if($violation->verified_at) • {{ $violation->verified_at->format('d M Y H:i') }} @endif

@else

Belum diverifikasi oleh petugas BK

@endif

{{ $violation->is_verified ? 'Diverifikasi' : 'Menunggu Verifikasi' }}

@if($violation->is_verified)

{{ $violation->verified_at ? $violation->verified_at->format('d M Y H:i') : '' }}

@endif

Dibuat

{{ $violation->created_at->format('d M Y H:i') }}

@if($violation->updated_at != $violation->created_at)

Terakhir Diubah

{{ $violation->updated_at->format('d M Y H:i') }}

@endif
{{-- Evidence Photos --}} @if($violation->evidences->count() > 0)

Bukti Foto

{{ $violation->evidences->count() }}
@endif {{-- Link to Student Profile --}}

Lihat Profil Siswa

{{ $violation->student->full_name ?? '' }}

{{-- Back to List --}} Kembali ke Data Pelanggaran
@endsection