@extends('layouts.admin') @section('title', isset($jurusan) ? 'Edit Jurusan' : 'Tambah Jurusan') @section('content') ← Kembali ke Daftar Jurusan
{{ isset($jurusan) ? '✏️ Edit Jurusan' : '➕ Tambah Jurusan' }}
{{ isset($jurusan) ? 'Perbarui data jurusan beserta bobot setiap kriteria untuk perhitungan SPK metode SAW.' : 'Tambahkan jurusan baru beserta bobot setiap kriteria agar dapat langsung digunakan dalam perhitungan SPK metode SAW.' }}
@csrf @if(isset($jurusan)) @method('PUT') @endif {{-- Data Jurusan --}}

Data Jurusan

@error('nama_jurusan')
{{ $message }}
@enderror
@error('is_active')
{{ $message }}
@enderror
{{-- Bobot Kriteria --}}

Bobot Kriteria

Isi bobot setiap kriteria. Total bobot ideal adalah 1.00.

Total Bobot
0.00
@if ($errors->has('bobot') || $errors->has('bobot.*'))
Terdapat kesalahan pada input bobot. Pastikan semua bobot telah diisi dengan benar.
@endif @if ($errors->has('wajib_lolos.*') || $errors->has('nilai_min.*') || $errors->has('nilai_max.*') || $errors->has('penyakit_larangan'))
Terdapat kesalahan pada aturan wajib lolos C5/C6/C8. Pastikan pengaturan sudah diisi dengan benar.
@endif
@forelse($kriterias as $kriteria) @php $defaultBobot = $bobotMap[$kriteria->id] ?? 0; $nilaiBobot = old("bobot.{$kriteria->id}", $defaultBobot); $aturan = $aturanMap[$kriteria->id] ?? null; // Perluas kriteria yang bisa wajib lolos $isAturanWajib = in_array($kriteria->kode_kriteria, ['C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8'], true); $isPenyakit = $kriteria->kode_kriteria === 'C8'; $isFisik = $kriteria->kode_kriteria === 'C5'; $isButaWarna = $kriteria->kode_kriteria === 'C6'; $wajibLolos = old("wajib_lolos.{$kriteria->id}", $aturan?->wajib_lolos ? 1 : 0); $nilaiMin = old("nilai_min.{$kriteria->id}", $aturan?->nilai_min); $nilaiMax = old("nilai_max.{$kriteria->id}", $aturan?->nilai_max); $nilaiMaxInput = $isButaWarna ? 1 : 100; $nilaiStepInput = $isButaWarna ? 1 : 1; @endphp @empty @endforelse
Kode Nama Kriteria Atribut Bobot Aturan Wajib Lolos
{{ $kriteria->kode_kriteria }} {{ $kriteria->nama_kriteria }} benefit @error("bobot.$kriteria->id")
{{ $message }}
@enderror
@if($isAturanWajib)
@if($isPenyakit)
Jika wajib lolos aktif, siswa dengan penyakit yang dipilih di bawah akan didiskualifikasi.
@elseif($isFisik) {{-- Dropdown untuk Fisik --}}
@error("nilai_min.$kriteria->id")
{{ $message }}
@enderror
Pilih batas minimal kategori fisik yang diperbolehkan.
@elseif($isButaWarna) {{-- Buta Warna tidak perlu input lagi, cukup checkbox di atas --}}
⚠️ Jika Wajib Lolos aktif, siswa yang buta warna akan didiskualifikasi (Hard Constraint). Jika nonaktif, maka diperbolehkan tanpa pinalti.
@else
@error("nilai_min.$kriteria->id")
{{ $message }}
@enderror
{{-- Field Max disembunyikan sesuai permintaan --}}
Gunakan skala 0-100 untuk nilai rapor / minat bakat.
@endif
@else Tidak tersedia @endif
Belum ada data kriteria aktif.

Aturan Penyakit

Pilih penyakit yang tidak cocok untuk jurusan ini. Aturan ini dipakai oleh kriteria C8.

@error('penyakit_larangan')
{{ $message }}
@enderror
@forelse($penyakits as $penyakit) @empty
Belum ada data penyakit aktif. Tambahkan dari menu Data Penyakit.
@endforelse
{{-- Actions --}}
Batal
@endsection