@extends('layouts.app') @section('title', 'DA Penelaah — ' . $pengajuan->debitur->nama) @push('styles') @endpush @section('content') @php $d = $pengajuan->debitur; $pk = $pengajuanKelompok; $da = $pengajuan->deskAnalysisPenelaah; $pl9 = $pengajuan->deskAnalysisPl; $muk = $pengajuan->tallysheetMuk; $tts = $pengajuan->tallysheetTundaTebang; // collection $bh = $pengajuan->biayaHidup; $pl = $pengajuan->pendapatanLainnya; $dokumen = $pengajuan->dokumen; // collection of DokumenDebitur $namaKelompok = $pk->kelompok->nama ?? '—'; $rondeLabel = $pk->created_at->translatedFormat('M Y'); $headerSubtitle = "Desk Analysis — {$namaKelompok}, Ronde {$rondeLabel}"; $daSelesaiCount = $batchPengajuan->filter(fn($p) => $p->deskAnalysisPenelaah?->submitted_at !== null)->count(); $batchTotal = $batchPengajuan->count(); $progressPct = $batchTotal > 0 ? round($daSelesaiCount / $batchTotal * 100) : 0; $boolText = fn($v) => match($v) { true => 'Ya', false => 'Tidak', default => '—', }; $rp = fn($v) => 'Rp ' . number_format((int)$v, 0, ',', '.'); $kemampuanBayarTahunan = ($rpcData['kemampuan_bayar_bulanan'] ?? 0) * 12; $kemampuanCukup = ($rpcData['kemampuan_bayar_bulanan'] ?? 0) * ($pengajuan->jangka_waktu_bulan ?? 0) > ($pengajuan->nilai_permohonan ?? 0); $alamatLengkap = collect([$d->alamat, $d->dusun, $d->rt_rw, $d->kelurahan, $d->kecamatan, $d->kabupaten]) ->filter()->implode(', '); // Field L — Domisili dengan 3 opsi $lDomisiliLabel = match(true) { !$d->alamat_ktp_berbeda => 'Ya, domisili sesuai dengan KTP', $d->lama_menempati_tahun >= 1 => 'Tidak, domisili tidak sesuai KTP, namun tinggal lebih dari 1 tahun', default => 'Tidak, domisili tidak sesuai KTP, namun tinggal kurang dari 1 tahun', }; // Section B prospek kalkulasi (MUK-based, fallback ke NATS fields jika tidak ada MUK) $produksiBulanan = $muk?->produksiBulanan ?? collect(); $totalProduksiTahun = $produksiBulanan->sum('total_harga'); $panenPerTahun = max(1, (int)($muk?->panen_per_tahun ?? 1)); $pendapatanPerSiklus = $produksiBulanan->isNotEmpty() ? (int) round($totalProduksiTahun / $panenPerTahun) : ($pengajuan->estimated_income_per_cycle ?? 0); $avgHargaKg = $produksiBulanan->isNotEmpty() ? $produksiBulanan->avg('harga_per_kg') : null; // U — Harga Jual: pakai MUK avg harga atau fallback NATS sales_per_cycle $hargaJualPerSiklus = $pengajuan->sales_per_cycle ?? null; // W — Biaya: pakai RPC biaya_usaha_tahunan jika ada MUK, else NATS cost_per_cycle $biayaUsahaPerSiklus = $produksiBulanan->isNotEmpty() ? ($rpcData['biaya_usaha_tahunan'] ?? 0) : ($pengajuan->cost_per_cycle ?? 0); $netProspekPerSiklus = $pendapatanPerSiklus - $biayaUsahaPerSiklus; // Y — Siklus: MUK siklus atau NATS income_cycle_months $siklusUsahaBulan = $muk?->siklus_usaha_bulan ?? $pengajuan->income_cycle_months; $totalProduksiKg = $produksiBulanan->sum('qty_panen_kg'); // Section B sub-blok 4: AC penyesuaian prospek $acKalkulasi = min($pengajuan->nilai_permohonan ?? 0, $netProspekPerSiklus); // Section C: AH/AJ/AM $rpc = $rpcData; $angsuran = $rpc['angsuran_total'] ?? 0; $amKalkulasi = (int) (floor(min($acKalkulasi, $rpc['maks_plafond'] ?? 0) / 1_000_000) * 1_000_000); // Section D: AT value for valuasi $atMuk = $muk?->nilai_jaminan; $atTt = $tts->sum('total_nilai_jaminan'); $atVal = $atMuk ?? ($atTt > 0 ? $atTt : null); // Section C sub-blok 1: pendapatan lainnya $tanamanLain = $pengajuan->pendapatanTanamanLain ?? collect(); $aePendapatanUsahaLainBulanan = $pl?->pendapatan_usaha_lain_per_bulan ?? 0; // Section D sub-blok 1: jenis tanaman for MUK $jenisTanaman = $pengajuan->jenisTanaman ?? collect(); $namaJenisPohon = $jenisTanaman->pluck('nama_pohon')->filter()->implode(', '); $jumlahPohon = $jenisTanaman->sum('jumlah_pohon'); // Dokumen debitur labels $dokumenLabels = [ 'ktp_pemohon' => 'KTP Pemohon', 'ktp_pasangan' => 'KTP Pasangan', 'kartu_keluarga' => 'Kartu Keluarga', 'formulir_permohonan' => 'Formulir Permohonan Perorangan', 'dok_penguasaan_lahan' => 'Dokumen Penguasaan Lahan', 'surat_permohonan_fdb' => 'Surat Permohonan FDB', ]; $dokumenByJenis = $dokumen->keyBy('jenis'); $dokumenAdaCount = $dokumen->count(); @endphp
{{-- Flash alert --}} {{-- Validation error summary --}} @if($errors->any()) @endif {{-- ── Page Header ──────────────────────────────────────────────────────── --}} {{-- ── Banner: waiting_approval_da ────────────────────────────────────── --}} @if($isReadOnly) @endif {{-- ── BATCH PANEL ─────────────────────────────────────────────────────── --}}
{{ $daSelesaiCount }}/{{ $batchTotal }} selesai DA
@foreach($batchPengajuan as $bp) @php $bpDa = $bp->deskAnalysisPenelaah; $isCurrent = $bp->id === $pengajuan->id; $statusLabel = match(true) { $bpDa?->submitted_at !== null => ['label' => 'Selesai', 'class' => 'bg-success'], $bpDa !== null => ['label' => 'Draft', 'class' => 'bg-warning text-dark'], default => ['label' => 'Belum', 'class' => 'bg-secondary'], }; @endphp @endforeach
Nama Debitur Status DA Hasil Aksi
{{ $bp->debitur->nama ?? '—' }} @if($isCurrent)Ini@endif {{ $statusLabel['label'] }} @if($bpDa?->bm_hasil_penilaian) {{ $bpDa->bm_hasil_penilaian }} @else @endif @if(! $isCurrent) Buka @else @endif
@if($batchSelesai && ! $isReadOnly)
@csrf
@endif
{{-- ── DOKUMEN DEBITUR ─────────────────────────────────────────────────── --}} @if($dokumen->isNotEmpty())
{{ $dokumenAdaCount }}/{{ count($dokumenLabels) }} dokumen ada
@foreach($dokumenLabels as $jenis => $label) @php $dok = $dokumenByJenis->get($jenis); @endphp @endforeach {{-- Extra dokumen not in known list --}} @foreach($dokumen->whereNotIn('jenis', array_keys($dokumenLabels)) as $dok) @endforeach
# Dokumen Status File
{{ $loop->iteration }} {{ $label }} @if($dok) ✓ Ada @else Belum @endif @if($dok?->file_path) @else @endif
{{ $dok->jenis }} ✓ Ada @if($dok->file_path) @else @endif
@else
Belum ada dokumen diunggah oleh PL.
@endif
{{-- ══════════════════════════════════════════════════════════════════════ DIVIDER: REVIEW DATA PL ══════════════════════════════════════════════════════════════════════ --}}
Review Data PL

Buka section yang ingin diperiksa. Semua field di bawah adalah read-only.

{{-- ── SECTION A — Informasi Data Pemohon ─────────────────────────────── --}}
@if($d->nik_pasangan || $d->nama_pasangan)
@endif
{{-- ── SECTION B — Prospek Usaha yang Dibiayai ────────────────────────── --}} {{-- Sub-blok 1: Personal Debitur --}}

Personal Debitur

@php $usiaPermohonan = $d->tanggal_lahir ? (int) $d->tanggal_lahir->diffInYears($pengajuan->created_at) : null; $kUsiaProduktif = $usiaPermohonan !== null ? ($usiaPermohonan >= 20 && $usiaPermohonan <= 65) : null; $lDomisiliOk = $d->alamat_ktp_berbeda === false || $d->alamat_ktp_berbeda === null ? true : ($d->lama_menempati_tahun !== null && $d->lama_menempati_tahun >= 1); @endphp
{{ $boolText($kUsiaProduktif) }} @if($usiaPermohonan !== null) ({{ $usiaPermohonan }} tahun) @endif
{{ $lDomisiliLabel }}
{{-- Sub-blok 2: Permohonan Pembiayaan --}}

Permohonan Pembiayaan

{{ $pl9?->pencaharian_utama_bukan === null ? '—' : ($pl9->pencaharian_utama_bukan ? 'Bukan pencaharian utama' : 'Pencaharian utama') }}
{{-- Sub-blok 3: Prospek Usaha --}}

Prospek Usaha

@if($avgHargaKg) Rp {{ number_format((int)$avgHargaKg, 0, ',', '.') }}/kg @elseif($hargaJualPerSiklus) Rp {{ number_format($hargaJualPerSiklus, 0, ',', '.') }} @else — @endif
@if($pendapatanPerSiklus > 0) {{ $rp($netProspekPerSiklus) }}
= V − W
@else @endif
{{-- Sub-blok 4: Prospek Usaha Konfirmasi --}}

Prospek Usaha Konfirmasi

{{ $boolText($pl9?->pencaharian_utama_bukan) }}
@php $aaLamaUsahaCukup = $d->lama_usaha_tahun !== null ? $d->lama_usaha_tahun >= 2 : null; @endphp
{{ $boolText($aaLamaUsahaCukup) }} @if($d->lama_usaha_tahun !== null) ({{ $d->lama_usaha_tahun }} tahun) @endif
{{ $boolText($pl9?->pendapatan_wajar_prospek) }}
@if($acKalkulasi > 0) {{ $rp($acKalkulasi) }}
= MIN(nilai permohonan, net per siklus)
@else @endif
{{-- ── SECTION C — Kemampuan Membayar ─────────────────────────────────── --}} {{-- Sub-blok 1: Pendapatan Lainnya --}}

Pendapatan Lainnya

@if($tanamanLain->isNotEmpty())
@foreach($tanamanLain as $tl) @endforeach
AD — Tanaman / Usaha Lain Pendapatan / Tahun
{{ $tl->nama_tanaman }} Rp {{ number_format($tl->pendapatan_per_tahun, 0, ',', '.') }}
Total Pendapatan Lainnya / tahun Rp {{ number_format($tanamanLain->sum('pendapatan_per_tahun'), 0, ',', '.') }}
@endif
@if($pl?->other_business_type)
@endif
{{-- Sub-blok 2: Pengeluaran --}}

Pengeluaran

{{-- Sub-blok 3: Kemampuan Bayar Konfirmasi --}}

Kemampuan Bayar Konfirmasi

AH — Est. Total Pendapatan / bulan
{{ $rp($rpc['pendapatan_total_bulanan'] ?? 0) }}
AJ — Est. Besaran Kemampuan Bayar (per Bulan)
{{ $rp($rpc['kemampuan_bayar_bulanan'] ?? 0) }}
AJ(2) — Estimasi Besaran Kemampuan Bayar (per Tahun)
{{ $rp($kemampuanBayarTahunan ?? 0) }}
AK — Nilai pendapatan wajar (kemampuan bayar)
{{ $boolText($pl9?->pendapatan_wajar_kemampuan) }}
AL — Punya kemampuan bayar sesuai nilai permohonan
{{ $kemampuanCukup ? 'Ya' : 'Tidak' }}
AM — Penyesuaian nilai pinjaman (kemampuan bayar)
@if($amKalkulasi > 0)
{{ $rp($amKalkulasi) }}
ROUNDDOWN(MIN(AC, maks plafond), jutaan)
@else
@endif
{{-- ── SECTION D — Penguasaan Lahan ───────────────────────────────────── --}} {{-- Sub-blok 1: Dokumen & Lahan --}}

Dokumen & Lahan

{{-- Sub-blok 2: Data Tallysheet + Valuasi --}}

Data Tallysheet

@if($muk)
MUK
@elseif($tts->isNotEmpty())
Tunda Tebang @foreach($tts as $tt)
Persil: {{ $tt->no_persil ?? '—' }}{{ $tt->blok ? ' / Blok ' . $tt->blok : '' }}
@if($tt->pohon->isNotEmpty())
@foreach($tt->pohon as $pohon) @endforeach
Jenis Pohon Volume (m³) Nilai (Rp)
{{ $pohon->jenis_pohon ?? '—' }} {{ number_format($pohon->volume ?? 0, 2, ',', '.') }} Rp {{ number_format($pohon->nilai_pohon ?? 0, 0, ',', '.') }}
AT — Nilai Jaminan Persil Ini Rp {{ number_format($tt->total_nilai_jaminan ?? 0, 0, ',', '.') }}
@endif
@endforeach @if($atTt > 0)
@endif
@else @endif {{-- Tabel Valuasi --}} @if($atVal) @php $au = $atVal * 0.10; $av = $atVal * 0.20; $aw = $atVal * 0.50; $r = $pengajuan->nilai_permohonan ?? 0; @endphp
Valuasi Nilai Jaminan (Rp) Threshold 125% (Rp) Penyesuaian MIN(threshold, R)
AU — 10% dari AT {{ $rp($au) }} {{ $rp($au * 1.25) }} {{ $rp(min($au * 1.25, $r)) }}
AV — 20% dari AT {{ $rp($av) }} {{ $rp($av * 1.25) }} {{ $rp(min($av * 1.25, $r)) }}
AW — 50% dari AT {{ $rp($aw) }} {{ $rp($aw * 1.25) }} {{ $rp(min($aw * 1.25, $r)) }}
@elseif($muk || $tts->isNotEmpty()) @endif {{-- Sub-blok 3: Konfirmasi Penguasaan Lahan --}}

Konfirmasi Penguasaan Lahan

{{ $boolText($pl9?->legalitas_dok_lahan) }}
{{ $boolText($pl9?->harga_wajar) }}
{{-- ── SECTION TALLYSHEET ───────────────────────────────────────────────── --}} @if($muk)
MUK
@if($produksiBulanan->isNotEmpty())
@foreach($produksiBulanan as $pb) @endforeach
Bulan Qty (kg) Harga/kg (Rp) Total (Rp)
{{ $pb->bulan }} {{ number_format($pb->qty_panen_kg, 1, ',', '.') }} {{ number_format($pb->harga_per_kg, 0, ',', '.') }} {{ number_format($pb->total_harga, 0, ',', '.') }}
Total Produksi Tahunan Rp {{ number_format($totalProduksiTahun, 0, ',', '.') }}
@else @endif @elseif($tts->isNotEmpty())
Tunda Tebang
@foreach($tts as $tt)
Persil {{ $tt->no_persil ?? $loop->iteration }}{{ $tt->blok ? ' — Blok ' . $tt->blok : '' }} ({{ $tt->luas_lahan_m2 ? number_format($tt->luas_lahan_m2 / 10000, 2, ',', '.') . ' ha' : '—' }})
@if($tt->pohon->isNotEmpty())
@foreach($tt->pohon as $pohon) @endforeach
Jenis Pohon Volume (m³) Nilai Pohon (Rp)
{{ $pohon->jenis_pohon ?? '—' }} {{ number_format($pohon->volume ?? 0, 2, ',', '.') }} {{ number_format($pohon->nilai_pohon ?? 0, 0, ',', '.') }}
Total Nilai Jaminan Persil Rp {{ number_format($tt->total_nilai_jaminan ?? 0, 0, ',', '.') }}
@else

Belum ada data pohon untuk persil ini.

@endif
@endforeach @else @endif
{{-- ══════════════════════════════════════════════════════════════════════ DIVIDER: INPUT PENILAIAN PENELAAH ══════════════════════════════════════════════════════════════════════ --}}
Input Penilaian Penelaah

Isi berdasarkan hasil query Pefindo dan review data di atas. Data Pefindo diinput manual dari portal.

{{-- ══════════════════════════════════════════════════════════════════════ FORM INPUT (disabled jika read-only) ══════════════════════════════════════════════════════════════════════ --}}
@csrf @if($isReadOnly)
@endif {{-- ── Personal Debitur Confirmation ────────────────────────────────── --}}
@error('menjadi_anggota_kelompok')
{{ $message }}
@enderror
{{-- ── SECTION E — Scoring Pefindo (BF–BK) ───────────────────────────── --}}
@error('bf_jumlah_fasilitas_aktif')
{{ $message }}
@enderror
@error('bh_tunggakan_hari_12_bln')
{{ $message }}
@enderror
@error('bi_skor_pefindo')
{{ $message }}
@enderror
Low/Very Low = 100 poin · Average/Moderate = 50 poin · High/Very High = 25 poin
@error('bj_tingkat_kelayakan')
{{ $message }}
@enderror
@error('bk_pod')
{{ $message }}
@enderror
@error('status_sumber_pendapatan_lain')
{{ $message }}
@enderror
@if($da?->dokumen_pefindo_path) @endif @if($da?->dokumen_pefindo_path)
Kosongkan jika tidak ingin mengganti dokumen yang sudah ada.
@endif @error('dokumen_pefindo')
{{ $message }}
@enderror
{{-- ── SECTION G — CSL Preview (Read-Only) ───────────────────────────── --}} @php $deb = $pengajuan->debitur; $umur = $deb?->umur; $nfParams = [ [ 'nama' => 'Usia', 'nilai' => $umur !== null ? "{$umur} tahun" : '—', 'skor' => $umur === null ? null : match (true) { $umur >= 25 && $umur <= 45 => 100, $umur > 45 && $umur <= 55 => 50, default => 25, }, ], [ 'nama' => 'Status Perkawinan', 'nilai' => $deb?->status_kawin ?? '—', 'skor' => match ($deb?->status_kawin) { 'kawin' => 100, 'belum_kawin' => 50, default => $deb?->status_kawin !== null ? 25 : null, }, ], [ 'nama' => 'Tanggungan', 'nilai' => $deb?->tanggungan !== null ? "{$deb->tanggungan} orang" : '—', 'skor' => $deb?->tanggungan === null ? null : match (true) { $deb->tanggungan >= 1 && $deb->tanggungan <= 2 => 100, $deb->tanggungan === 3 => 50, default => 25, }, ], [ 'nama' => 'Status Tempat Tinggal', 'nilai' => $deb?->status_tempat_tinggal ?? '—', 'skor' => match ($deb?->status_tempat_tinggal) { 'milik_sendiri', 'milik_keluarga' => 100, 'sewa' => 25, default => null, }, ], [ 'nama' => 'Lama Menetap', 'nilai' => $deb?->lama_menempati_tahun !== null ? "{$deb->lama_menempati_tahun} tahun" : '—', 'skor' => $deb?->lama_menempati_tahun === null ? null : match (true) { $deb->lama_menempati_tahun > 10 => 100, $deb->lama_menempati_tahun >= 5 => 50, default => 25, }, ], [ 'nama' => 'Status Usaha', 'nilai' => $deb?->status_kepemilikan_usaha ?? '—', 'skor' => in_array($deb?->status_kepemilikan_usaha, ['milik_sendiri', 'milik_keluarga', 'partner']) ? 100 : ($deb?->status_kepemilikan_usaha !== null ? 25 : null), ], [ 'nama' => 'Status Tempat Usaha', 'nilai' => $deb?->status_tempat_usaha ?? '—', 'skor' => match ($deb?->status_tempat_usaha) { 'milik_sendiri', 'milik_keluarga' => 100, 'sewa' => 25, default => null, }, ], [ 'nama' => 'Lama Usaha', 'nilai' => $deb?->lama_usaha_tahun !== null ? "{$deb->lama_usaha_tahun} tahun" : '—', 'skor' => $deb?->lama_usaha_tahun === null ? null : match (true) { $deb->lama_usaha_tahun > 5 => 100, $deb->lama_usaha_tahun >= 3 => 50, default => 25, }, ], [ 'nama' => 'Jaminan', 'nilai' => $cslPreview['coverPct'] !== null ? $cslPreview['coverPct'].'%' : '—', 'skor' => $cslPreview['coverPct'] === null ? null : match (true) { $cslPreview['coverPct'] > 150 => 100, $cslPreview['coverPct'] >= 120 => 50, default => 25, }, ], [ 'nama' => 'Sumber Pendapatan', 'nilai' => match ($da?->status_sumber_pendapatan_lain) { 'stabil' => 'Memiliki — Stabil', 'tidak_stabil' => 'Memiliki — Tidak Stabil', 'tidak_ada' => 'Tidak Ada', default => '—', }, 'skor' => match ($da?->status_sumber_pendapatan_lain) { 'stabil' => 100, 'tidak_stabil' => 50, 'tidak_ada' => 25, default => null, }, ], ]; $nfScores = collect($nfParams)->pluck('skor')->filter(fn ($s) => $s !== null); $nfTotal = $nfScores->sum(); $nfLengkap = $nfScores->count() === 10; $skorNf = $nfLengkap ? round($nfTotal * 0.03, 2) : null; $skorTotal = ($cslPreview['skorEk'] !== null && $cslPreview['skorFin'] !== null && $skorNf !== null) ? round($cslPreview['skorEk'] + $cslPreview['skorFin'] + $skorNf, 2) : null; @endphp {{-- Compliance Parameters --}}
Compliance Parameters
@if($cslPreview['hasWarning'])
Beberapa data belum tersedia — status "Perlu Cek" dikonfirmasi saat Field Analysis.
@endif
@foreach($cslPreview['compliance'] as $param => $cp) @endforeach
Parameter Syarat Nilai Status
{{ $param }} {{ $cp['syarat'] }} {{ $cp['nilai'] ?? '—' }} @if($cp['status'] === 'accepted') Accepted @elseif($cp['status'] === 'rejected') Rejected @else Perlu Cek @endif

Status keseluruhan: @if($cslPreview['hasWarning']) Data Belum Lengkap @elseif($cslPreview['allAccepted']) Compliance @else Not Compliance @endif

{{-- Scoring Indicators --}} @if($cslPreview['hasRejected'])
Skor tidak dihitung — ada parameter compliance yang Rejected.
@else
Scoring Indicators
I. Eksternal — Pefindo Scoring (bobot 40%)
Tingkat Kelayakan: {{ $cslPreview['bj'] ?? '—' }} @if($cslPreview['nilaiEk'] !== null) → {{ $cslPreview['nilaiEk'] }} poin × 40% = {{ $cslPreview['skorEk'] }} @else Isi BJ (Tingkat Kelayakan) dulu @endif
II. Internal Financial — RPC Capacity (bobot 30%)
RPC Tahunan: Rp {{ $cslPreview['rpcTahunan'] ? number_format($cslPreview['rpcTahunan']) : '—' }} / Angsuran/Tahun: Rp {{ $cslPreview['angsuranTahunan'] ? number_format($cslPreview['angsuranTahunan']) : '—' }}
Rasio: {{ $cslPreview['rasioRpc'] !== null ? $cslPreview['rasioRpc'].'×' : '—' }} @if($cslPreview['nilaiFin'] !== null) → {{ $cslPreview['nilaiFin'] }} poin × 30% = {{ $cslPreview['skorFin'] }} @else Data kemampuan bayar belum lengkap @endif
III. Internal Non-Financial — 10 Parameter (bobot 30%, 3% each)
@foreach($nfParams as $nf) @endforeach
Parameter Nilai Skor
{{ $nf['nama'] }} {{ $nf['nilai'] }} @if($nf['skor'] !== null) {{ $nf['skor'] }} @else @endif
Kontribusi: {{ $nfTotal }} × 0.03 = {{ $skorNf ?? '—' }} @if(! $nfLengkap) ({{ $nfScores->count() }}/10 data tersedia) @endif

I. Eksternal (40%)
{{ $cslPreview['skorEk'] ?? '—' }}
dari maks 40
II. Financial (30%)
{{ $cslPreview['skorFin'] ?? '—' }}
dari maks 30
III. Non-Financial (30%)
{{ $skorNf ?? '—' }}
dari maks 30
@if($skorTotal !== null)
{{ $skorTotal }}
Total / 100
{{ $skorTotal >= 75 ? 'Low Risk' : ($skorTotal >= 50 ? 'Moderate Risk' : 'High Risk') }}
{{ $skorTotal >= 50 ? 'Layak Diproses' : 'Tidak Layak Diproses' }}
@else
Data belum lengkap
@endif
@endif
{{-- ── SECTION F — Penilaian ───────────────────────────────────────────── --}}
@error('bm_hasil_penilaian')
{{ $message }}
@enderror
@error('catatan_revisi')
{{ $message }}
@enderror
@if($isReadOnly)
@endif {{-- ── Action Buttons ──────────────────────────────────────────────────── --}} @if(! $isReadOnly)
@if($da?->submitted_at) Sudah Diselesaikan @else @endif
@else
Form terkunci — DA sudah disubmit ke Verifikator.
@endif
@endsection