@extends('layouts.app') @section('title', 'Keputusan Final — ' . ($pengajuan->debitur->nama ?? '')) @section('content')
@php $pk = $pengajuan->pengajuanKelompok; $d = $pengajuan->debitur; $pl = $pengajuan->deskAnalysisPl; $pen = $pengajuan->deskAnalysisPenelaah; $ada = $pengajuan->approvalDa; $fa = $pengajuan->fieldAnalysis; $csl = $pengajuan->cslScoring; $kf = $pengajuan->keputusanFinal; $isEditable = $pengajuan->status->value === \App\Core\Enums\PengajuanStatus::WaitingKeputusan->value; $total = $batchPengajuan->count(); $dicekCount = $batchPengajuan->filter(fn($p) => $p->keputusanFinal !== null)->count(); $belumCount = $total - $dicekCount; @endphp {{-- Conditional alerts --}} @if(!$isEditable && $kf)
Keputusan sudah final. Form ditampilkan read-only.
@elseif($isEditable && $belumCount > 0)
{{ $belumCount }} debitur lain belum dicek. Tombol Finalisasi Batch aktif setelah semua debitur selesai.
@endif {{-- Panel Batch (collapsible, default collapsed) --}} @if($batchPengajuan->isNotEmpty()) @php $pct = $total > 0 ? round($dicekCount / $total * 100) : 0; @endphp
Progress {{ $dicekCount }}/{{ $total }} sudah dicek
@foreach($batchPengajuan as $bp) @php $bpCsl = $bp->cslScoring; $bpKf = $bp->keputusanFinal; @endphp @endforeach
Nama Debitur CSL Keputusan
{{ $bp->debitur->nama ?? '—' }} @if($bpCsl) @php $s = $bpCsl->skor_total; $bc = $s >= 75 ? 'bg-success' : ($s >= 50 ? 'bg-warning text-dark' : 'bg-danger'); @endphp {{ number_format($s, 1) }} @else @endif @if($bpKf) {{ ucfirst($bpKf->keputusan) }} @else Belum dicek @endif @if($bp->id !== $pengajuan->id) Buka @else Saat ini @endif
@if($isEditable && $semuaSudahDicek)
@csrf
@endif
@endif {{-- ─── DIVIDER: DATA TAHAP 3–5 (DA) ─────────────────────────────────── --}}
Data Tahap 3–5 (DA)

Buka section untuk memeriksa data sebelum memberi keputusan.

{{-- SECTION A — Identitas Pemohon --}}
@if($d->nama_pasangan)
@endif
{{-- SECTION B — Data Permohonan --}}
Rp {{ number_format($pengajuan->plafond ?? 0, 0, ',', '.') }}
{{-- SECTION C — Tallysheet & Nilai Jaminan --}} @php $jenis = $pengajuan->jenis_layanan; @endphp @if($jenis === 'multi_usaha_kehutanan' && $pengajuan->tallysheetMuk) @php $muk = $pengajuan->tallysheetMuk; $produksi = $muk->produksiBulanan ?? collect(); $totalKg = $produksi->sum('qty_panen_kg'); $totalRp = $produksi->sum('total_harga'); $nilaiJam = $totalRp * 0.5; $rasio = ($pengajuan->plafond ?? 0) > 0 ? round($nilaiJam / $pengajuan->plafond * 100) : 0; $bln = ['Jan','Feb','Mar','Apr','Mei','Jun','Jul','Agu','Sep','Okt','Nov','Des']; @endphp
Tallysheet MUK — Produksi Bulanan
@forelse($produksi->sortBy('bulan') as $pb) @empty @endforelse
Bulan Qty (kg) Harga/kg Total
{{ $bln[($pb->bulan - 1)] ?? $pb->bulan }} {{ number_format($pb->qty_panen_kg, 2, ',', '.') }} Rp {{ number_format($pb->harga_per_kg, 0, ',', '.') }} Rp {{ number_format($pb->total_harga, 0, ',', '.') }}
Belum ada data produksi
Total {{ number_format($totalKg, 2, ',', '.') }} kg Rp {{ number_format($totalRp, 0, ',', '.') }}
Rp {{ number_format($totalRp, 0, ',', '.') }}
Rp {{ number_format($nilaiJam, 0, ',', '.') }}
{{ $rasio }}%
@elseif($jenis === 'tunda_tebang' && $pengajuan->tallysheetTundaTebang->isNotEmpty()) @foreach($pengajuan->tallysheetTundaTebang as $tt) @php $pohonList = $tt->pohon ?? collect(); $totalNilai = $pohonList->sum('nilai_pohon'); $rasioTT = ($pengajuan->plafond ?? 0) > 0 ? round($totalNilai / $pengajuan->plafond * 100) : 0; @endphp
Tallysheet Tunda Tebang
@forelse($pohonList as $pohon) @empty @endforelse
No. Jenis Pohon Keliling (cm) Tinggi (m) Volume (m³) Nilai Pohon
{{ $pohon->no_pohon }} {{ $pohon->jenis_pohon }} {{ $pohon->keliling_batang_cm }} {{ $pohon->tinggi_pohon_m }} {{ number_format($pohon->volume, 3, ',', '.') }} Rp {{ number_format($pohon->nilai_pohon, 0, ',', '.') }}
Belum ada data pohon
Total Nilai Jaminan Rp {{ number_format($totalNilai, 0, ',', '.') }}
Rp {{ number_format($totalNilai, 0, ',', '.') }}
Rp {{ number_format($pengajuan->plafond ?? 0, 0, ',', '.') }}
{{ $rasioTT }}%
@endforeach @else @endif
{{-- SECTION D — Biaya Usaha & Pendapatan (SAK) --}} @if($pengajuan->biayaUsaha->isNotEmpty())
Biaya Siklus Usaha Utama
@foreach($pengajuan->biayaUsaha as $bu) @endforeach
Item Biaya Nilai per Siklus
{{ $bu->nama_item ?? '—' }} Rp {{ number_format($bu->total ?? 0, 0, ',', '.') }}
Total Biaya Produksi Rp {{ number_format($pengajuan->biayaUsaha->sum('total'), 0, ',', '.') }}
@else @endif @php $pl2 = $pengajuan->pendapatanLainnya; @endphp
Pendapatan Lainnya
Rp {{ number_format($pl2?->pendapatan_usaha_lain_per_bulan ?? 0, 0, ',', '.') }}
Rp {{ number_format($pl2?->pendapatan_pasangan_per_bulan ?? 0, 0, ',', '.') }}
@if($pengajuan->biayaHidup) @php $bh = $pengajuan->biayaHidup; @endphp
Biaya Hidup
@foreach([ 'rumah_tangga' => 'Rumah Tangga', 'listrik_air' => 'Listrik & Air', 'transportasi' => 'Transportasi', 'pendidikan' => 'Pendidikan', 'kesehatan' => 'Kesehatan', 'cicilan' => 'Cicilan / Angsuran', 'lainnya' => 'Lainnya', ] as $field => $label) @if($bh->$field ?? null) @endif @endforeach
ItemNilai / Bulan
{{ $label }} Rp {{ number_format($bh->$field, 0, ',', '.') }}
Total Biaya Hidup Rp {{ number_format($bh->total ?? $bh->totalPerBulan(), 0, ',', '.') }}
@endif
{{-- SECTION F — Checklist DA PL --}} @if($pl) @php $bool = fn($val) => $val ? 'Ya' : 'Tidak'; @endphp
{!! $bool($pl->pencaharian_utama_bukan) !!}
{!! $bool($pl->pendapatan_wajar_prospek) !!}
{!! $bool($pl->pendapatan_wajar_kemampuan) !!}
{!! $bool($pl->legalitas_dok_lahan) !!}
{!! $bool($pl->harga_wajar) !!}
{{ $pl->penyesuaian_pinjaman_prospek ? 'Rp ' . number_format($pl->penyesuaian_pinjaman_prospek, 0, ',', '.') : 'Tidak ada penyesuaian' }}
{{ $pl->penyesuaian_angsuran ? 'Rp ' . number_format($pl->penyesuaian_angsuran, 0, ',', '.') : 'Tidak ada penyesuaian' }}
@endif {{-- SECTION G — Dokumen Debitur --}} @php $dokLabels = [ 'ktp_pemohon' => 'KTP Pemohon', 'ktp_pasangan' => 'KTP Pasangan', 'kartu_keluarga' => 'Kartu Keluarga', 'formulir_permohonan_perorangan' => 'Formulir Permohonan Perorangan', 'dokumen_penguasaan_lahan' => 'Dokumen Penguasaan Lahan', 'surat_permohonan_fdb' => 'Surat Permohonan FDB', ]; $dokMap = $pengajuan->dokumen->keyBy('jenis'); @endphp
@foreach($dokLabels as $key => $label) @php $dok = $dokMap->get($key); @endphp @endforeach
# Nama Dokumen Status
{{ $loop->iteration }} {{ $label }} {{ $dok ? 'Ada' : 'Belum' }} @if($dok) Lihat @endif
{{-- SECTION H — Hasil DA Penelaah --}} @if($pen)
Rp {{ number_format($pen->bg_tunggakan_outstanding ?? 0, 0, ',', '.') }}
{{ $pen->bk_pod !== null ? number_format($pen->bk_pod * 100, 2) . '%' : '—' }}
@php $bmBadge = match($pen->bm_hasil_penilaian) { 'layak' => ['Layak', 'bg-success'], 'layak_dengan_catatan' => ['Layak dg Catatan', 'bg-warning text-dark'], 'tidak_layak' => ['Tidak Layak', 'bg-danger'], default => [ucfirst($pen->bm_hasil_penilaian ?? '—'), 'bg-secondary'], }; @endphp {{ $bmBadge[0] }}
@endif {{-- SECTION I — Keputusan Approval DA --}} @if($ada)
{{ ucfirst($ada->keputusan) }}
@if($ada->catatan)
@endif
@endif {{-- ─── DIVIDER: DATA TAHAP 6–7 (FA + CSL) ──────────────────────────── --}}
Data Tahap 6–7 (FA + CSL)
{{-- Fallback jika tidak ada data FA maupun CSL --}} @if(!$fa && !$csl)
Data Field Analysis dan CSL Scoring belum tersedia untuk debitur ini.
@endif {{-- SECTION J — FA: Identitas Permohonan (Section A) --}} @if($fa && $fa->a_kondisi_umum)
@if($fa->nama_wilayah_gps)
@endif @if($fa->latitude && $fa->longitude)
@endif @if($fa->luas_polygon_ha)
@endif
@foreach($fa->a_kondisi_umum as $item) @endforeach
Item Verifikasi Sesuai? Hasil Validasi Lapangan
{{ $item['item'] ?? '—' }} @if(($item['sesuai'] ?? null) === true) Sesuai @elseif(($item['sesuai'] ?? null) === false) Tidak Sesuai @else @endif {{ $item['data_hasil_validasi'] ?? '—' }}
@endif {{-- SECTION K — FA: Biaya & Pendapatan (Sections B–E) --}} @if($fa && ($fa->b_kondisi_kebun || $fa->c_jaminan || $fa->d_sosial_lingkungan || $fa->e_rekomendasi)) @php $faSections = [ ['data' => $fa->b_kondisi_kebun, 'title' => 'Section B — Kondisi Kebun', 'icon' => 'bi-tree'], ['data' => $fa->c_jaminan, 'title' => 'Section C — Jaminan / Lahan', 'icon' => 'bi-geo-alt'], ['data' => $fa->d_sosial_lingkungan, 'title' => 'Section D — Sosial & Lingkungan', 'icon' => 'bi-people'], ['data' => $fa->e_rekomendasi, 'title' => 'Section E — Rekomendasi PL', 'icon' => 'bi-clipboard2-check'], ]; @endphp @foreach($faSections as $sec) @if($sec['data'])
{{ $sec['title'] }}
@foreach($sec['data'] as $item) @endforeach
Item Sesuai? Catatan
{{ $item['item'] ?? '—' }} @if($item['sesuai'] ?? false) @else @endif {{ $item['data_hasil_validasi'] ?? '—' }}
@endif @endforeach
@endif {{-- SECTION L — FA: Dokumentasi Foto --}} @if($fa && $fa->foto && $fa->foto->isNotEmpty())
@foreach($fa->foto as $foto)
@if($foto->file_path) {{ $foto->tipe ?? 'Foto' }} @else
@endif
@if($foto->tipe)
{{ ucfirst(str_replace('_', ' ', $foto->tipe)) }}
@endif @if($foto->keterangan)
{{ $foto->keterangan }}
@endif
@endforeach
@endif {{-- SECTION M — CSL Compliance Parameter (8 parameter boolean) --}} @if($csl) @php $cpParams = [ ['label' => 'Status Anggota KTH', 'field' => 'cp_status_anggota'], ['label' => 'Usia Pemohon', 'field' => 'cp_usia'], ['label' => 'Nilai Jaminan (≥125%)', 'field' => 'cp_jaminan'], ['label' => 'Karakter (Pefindo)', 'field' => 'cp_karakter'], ['label' => 'Profesi / Sektor Usaha', 'field' => 'cp_profesi'], ['label' => 'Lama Tempat Tinggal', 'field' => 'cp_tempat_tinggal'], ['label' => 'Status Tempat Tinggal', 'field' => 'cp_status_tempat_tinggal'], ['label' => 'Status Kepemilikan Usaha','field' => 'cp_status_usaha'], ]; $adaRejected = collect($cpParams)->contains(fn($p) => !$csl->{$p['field']}); @endphp @if($adaRejected)
Ada compliance parameter yang tidak terpenuhi.
@endif
@foreach($cpParams as $param) @endforeach
Parameter Hasil
{{ $param['label'] }} @if($csl->{$param['field']}) Accepted @else Rejected @endif
@if(!$csl->semua_compliance_accepted)
Tidak semua compliance parameter terpenuhi. Perlu perhatian khusus sebelum memberi keputusan.
@endif
@endif {{-- SECTION N — CSL Scoring Breakdown --}} @if($csl) @php $st = $csl->skor_total; $sc = $st >= 75 ? 'bg-success' : ($st >= 50 ? 'bg-warning text-dark' : 'bg-danger'); @endphp
{{ number_format($st, 1) }}
Skor Total
{{ $csl->kategori_risiko }}
@if($csl->status_layak)
Layak
@else
Tidak Layak
@endif
@if($csl->rasio_rpc !== null)
{{ number_format($csl->rasio_rpc * 100, 1) }}%
Rasio RPC
@endif
Komponen Bobot Skor
Eksternal — Pefindo 35% {{ number_format($csl->skor_eksternal, 1) }}
Financial — Kemampuan RPC 45% {{ number_format($csl->skor_financial, 1) }}
Non-Financial (10 parameter) 20% {{ number_format($csl->skor_non_financial, 1) }}
TOTAL CSL SCORE {{ number_format($st, 1) }}
@endif {{-- ─── KEPUTUSAN VERIFIKATOR ──────────────────────────────────────────── --}}
Keputusan Verifikator
@if($isEditable)
@csrf {{-- A79 --}}
Kesimpulan Verifikasi (A79) — 5 Item

Centang item yang terverifikasi / terpenuhi.

@php $a79Items = [ ['field' => 'a79_kesesuaian_data', 'label' => 'A79-1: Identitas pemohon terverifikasi sesuai dokumen'], ['field' => 'a79_kelengkapan_dokumen', 'label' => 'A79-2: Prospek usaha terverifikasi dan prospektif'], ['field' => 'a79_hasil_csl_layak', 'label' => 'A79-3: Hasil scoring CSL dinyatakan layak'], ['field' => 'a79_tidak_ada_sengketa', 'label' => 'A79-4: Lahan & jaminan terverifikasi, tidak ada sengketa'], ['field' => 'a79_rekomendasi_pl', 'label' => 'A79-5: Rekomendasi PL: pemohon layak dilanjutkan'], ]; @endphp @foreach($a79Items as $item) @php $checked = $kf ? $kf->{$item['field']} : false; @endphp
@endforeach
{{-- Keputusan Final + Catatan --}}
Keputusan Final
keputusan ?? '') === 'disetujui' ? 'checked' : '' }} required>
keputusan ?? '') === 'ditolak' ? 'checked' : '' }}>
@error('keputusan')
{{ $message }}
@enderror
@error('catatan')
{{ $message }}
@enderror
@if($semuaSudahDicek) @else @endif
@else {{-- Read-only: A79 --}}
Kesimpulan Verifikasi (A79) — Read Only
@php $a79ReadItems = [ 'a79_kesesuaian_data' => 'A79-1: Identitas pemohon terverifikasi sesuai dokumen', 'a79_kelengkapan_dokumen' => 'A79-2: Prospek usaha terverifikasi dan prospektif', 'a79_hasil_csl_layak' => 'A79-3: Hasil scoring CSL dinyatakan layak', 'a79_tidak_ada_sengketa' => 'A79-4: Lahan & jaminan terverifikasi, tidak ada sengketa', 'a79_rekomendasi_pl' => 'A79-5: Rekomendasi PL: pemohon layak dilanjutkan', ]; @endphp @foreach($a79ReadItems as $field => $label)
@if($kf?->{$field}) @else @endif {{ $label }}
@endforeach
{{-- Read-only: Keputusan --}}
Keputusan Final — Read Only
{{ ucfirst($kf?->keputusan ?? '—') }} Diputuskan pada {{ $kf?->decided_at?->format('d M Y H:i') ?? '—' }}
@if($kf?->catatan)
{{ $kf->catatan }}
@endif
@endif
@push('scripts') @endpush @endsection