@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
| Nama Debitur |
CSL |
Keputusan |
|
@foreach($batchPengajuan as $bp)
@php
$bpCsl = $bp->cslScoring;
$bpKf = $bp->keputusanFinal;
@endphp
| {{ $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
|
@endforeach
@if($isEditable && $semuaSudahDicek)
@endif
@endif
{{-- ─── DIVIDER: 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
| Bulan |
Qty (kg) |
Harga/kg |
Total |
@forelse($produksi->sortBy('bulan') as $pb)
| {{ $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, ',', '.') }} |
@empty
| Belum ada data produksi |
@endforelse
| 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
| No. |
Jenis Pohon |
Keliling (cm) |
Tinggi (m) |
Volume (m³) |
Nilai Pohon |
@forelse($pohonList as $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, ',', '.') }} |
@empty
| Belum ada data pohon |
@endforelse
| 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
| Item Biaya |
Nilai per Siklus |
@foreach($pengajuan->biayaUsaha as $bu)
| {{ $bu->nama_item ?? '—' }} |
Rp {{ number_format($bu->total ?? 0, 0, ',', '.') }} |
@endforeach
| 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
| Item | Nilai / Bulan |
@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)
| {{ $label }} |
Rp {{ number_format($bh->$field, 0, ',', '.') }} |
@endif
@endforeach
| 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
| # |
Nama Dokumen |
Status |
|
@foreach($dokLabels as $key => $label)
@php $dok = $dokMap->get($key); @endphp
| {{ $loop->iteration }} |
{{ $label }} |
{{ $dok ? 'Ada' : 'Belum' }}
|
@if($dok)
Lihat
@endif
|
@endforeach
{{-- 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
| Item Verifikasi |
Sesuai? |
Hasil Validasi Lapangan |
@foreach($fa->a_kondisi_umum as $item)
| {{ $item['item'] ?? '—' }} |
@if(($item['sesuai'] ?? null) === true)
Sesuai
@elseif(($item['sesuai'] ?? null) === false)
Tidak Sesuai
@else
—
@endif
|
{{ $item['data_hasil_validasi'] ?? '—' }} |
@endforeach
@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'] }}
| Item |
Sesuai? |
Catatan |
@foreach($sec['data'] as $item)
| {{ $item['item'] ?? '—' }} |
@if($item['sesuai'] ?? false)
@else
@endif
|
{{ $item['data_hasil_validasi'] ?? '—' }} |
@endforeach
@endif
@endforeach
@endif
{{-- SECTION L — FA: Dokumentasi Foto --}}
@if($fa && $fa->foto && $fa->foto->isNotEmpty())
@foreach($fa->foto as $foto)
@if($foto->file_path)
 }})
@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
| Parameter |
Hasil |
@foreach($cpParams as $param)
| {{ $param['label'] }} |
@if($csl->{$param['field']})
Accepted
@else
Rejected
@endif
|
@endforeach
@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 ──────────────────────────────────────────── --}}
@if($isEditable)
@else
{{-- Read-only: A79 --}}
@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 --}}
{{ 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