@extends('layouts.app') @section('title', 'Field Analysis — ' . $pengajuan->debitur->nama) @push('styles') @endpush @section('content')
@php $fa = $pengajuan->fieldAnalysis; $isSubmitted = $fa?->submitted_at !== null; $isPl = $pengajuan->status->value === \App\Core\Enums\PengajuanStatus::Fa->value; $isReview = $pengajuan->status->value === \App\Core\Enums\PengajuanStatus::WaitingReviewFa->value; $isDone = $pengajuan->status->value === \App\Core\Enums\PengajuanStatus::WaitingKeputusan->value; $csl = $pengajuan->cslScoring; @endphp @if($isSubmitted && !$isPl) FA disubmit PL pada {{ $fa->submitted_at->format('d M Y H:i') }}. @if($isReview) Menunggu review Penelaah. @endif @endif {{-- ═══════════════════════════════════════════════════════════ PANEL BATCH STATUS (Penelaah) ═══════════════════════════════════════════════════════════ --}} @if(($isReview || $isDone) && $batchPengajuan->isNotEmpty())
@foreach($batchPengajuan as $bp) @endforeach
Debitur Status CSL Dihitung Skor Layak
{{ $bp->debitur->nama }} @if($bp->cslScoring) {{ $bp->cslScoring->dihitung_pada?->format('d/m H:i') }} @else @endif {{ $bp->cslScoring ? number_format($bp->cslScoring->skor_total, 1) : '—' }} @if($bp->cslScoring) @if($bp->cslScoring->status_layak) Layak @else Tidak Layak @endif @else @endif @if($bp->id !== $pengajuan->id) Buka @else Saat ini @endif
@endif {{-- ═══════════════════════════════════════════════════════════ PANEL DATA PEFINDO DARI DA (Penelaah review) ═══════════════════════════════════════════════════════════ --}} @if(($isReview || $isDone) && $pengajuan->deskAnalysisPenelaah) @php $da = $pengajuan->deskAnalysisPenelaah; @endphp
@php $hasilMap = [ 'layak' => ['label' => 'Layak', 'class' => 'bg-success'], 'tidak_layak' => ['label' => 'Tidak Layak', 'class' => 'bg-danger'], 'layak_dengan_catatan'=> ['label' => 'Layak dengan Catatan','class' => 'bg-warning text-dark'], ]; $hasilInfo = $hasilMap[$da->bm_hasil_penilaian ?? ''] ?? ['label' => '—', 'class' => 'bg-secondary']; @endphp

Hasil Penilaian DA (BM)

{{ $hasilInfo['label'] }}
@endif {{-- ═══════════════════════════════════════════════════════════ FORM PL — Section A–E + GPS + Polygon (PL mode only) ═══════════════════════════════════════════════════════════ --}} @if($isPl)
@csrf {{-- Section A: Kondisi Umum (Identitas) --}}
@foreach($sectionAItems as $i => $item) @endforeach
Item Nilai dari DA Sesuai? Data Hasil Validasi di Lapangan
{{ $item['item'] }} {{ $item['nilai_da'] ?? '—' }}
{{-- Section B: Kondisi Kebun --}} @php $bItems = [ 'Luas kebun sesuai DA', 'Tahun tanam sesuai DA', 'Kondisi tanaman baik/produktif', 'Biaya produksi wajar vs survey harga', 'Estimasi produksi wajar', ]; $existingB = collect($fa?->b_kondisi_kebun ?? [])->keyBy('item'); @endphp
@foreach($bItems as $idx => $label) @php $ex = $existingB->get($label); @endphp @endforeach
ItemSesuai?Catatan
{{ $label }}
{{-- Section C: Jaminan --}} @php $cItems = [ 'Lokasi lahan sesuai dokumen', 'Batas-batas lahan jelas', 'Luas lahan di lapangan sesuai DA', 'Tidak ada sengketa lahan', 'Dokumen penguasaan lahan valid', ]; $existingC = collect($fa?->c_jaminan ?? [])->keyBy('item'); @endphp
@foreach($cItems as $idx => $label) @php $ex = $existingC->get($label); @endphp @endforeach
ItemSesuai?Catatan
{{ $label }}
{{-- Section D: Sosial & Lingkungan --}} @php $dItems = [ 'Tidak ada konflik sosial di sekitar lahan', 'Usaha ramah lingkungan', 'Ada dukungan keluarga untuk usaha', 'Karakter pemohon dinilai baik', ]; $existingD = collect($fa?->d_sosial_lingkungan ?? [])->keyBy('item'); @endphp
@foreach($dItems as $idx => $label) @php $ex = $existingD->get($label); @endphp @endforeach
ItemSesuai?Catatan
{{ $label }}
{{-- Section E: Rekomendasi PL --}} @php $eItems = [ 'Pemohon layak diproses lebih lanjut', 'Nilai pinjaman sesuai kapasitas', 'Jaminan lahan memadai', ]; $existingE = collect($fa?->e_rekomendasi ?? [])->keyBy('item'); @endphp
@foreach($eItems as $idx => $label) @php $ex = $existingE->get($label); @endphp @endforeach
ItemRekomendasi?Catatan
{{ $label }}
{{-- GPS + Polygon (PL) --}}
@if($fa?->nama_wilayah_gps)
{{ $fa->nama_wilayah_gps }}
@endif
@if($fa?->luas_polygon_ha)
Luas terdeteksi: {{ number_format($fa->luas_polygon_ha, 4) }} Ha
@endif
{{-- Submit PL --}}
Kembali
@endif {{-- ═══════════════════════════════════════════════════════════ READ-ONLY VIEW — Sections A–E (Penelaah / Done mode) ═══════════════════════════════════════════════════════════ --}} @if($isReview || $isDone) {{-- Section A read-only --}}
@foreach($sectionAItems as $item) @endforeach
Item Nilai dari DA Sesuai? Hasil Validasi Lapangan
{{ $item['item'] }} {{ $item['nilai_da'] ?? '—' }} @if($item['sesuai'] === true) Sesuai @elseif($item['sesuai'] === false) Tidak Sesuai @else @endif {{ $item['data_hasil_validasi'] ?? '—' }}
{{-- Section B read-only --}} @if($fa?->b_kondisi_kebun)
@foreach($fa->b_kondisi_kebun as $item) @endforeach
ItemSesuai?Catatan
{{ $item['item'] }} @if($item['sesuai'] ?? false) @else @endif {{ $item['data_hasil_validasi'] ?? '—' }}
@endif {{-- Section C read-only --}} @if($fa?->c_jaminan)
@foreach($fa->c_jaminan as $item) @endforeach
ItemSesuai?Catatan
{{ $item['item'] }} @if($item['sesuai'] ?? false) @else @endif {{ $item['data_hasil_validasi'] ?? '—' }}
@endif {{-- Section D read-only --}} @if($fa?->d_sosial_lingkungan)
@foreach($fa->d_sosial_lingkungan as $item) @endforeach
ItemSesuai?Catatan
{{ $item['item'] }} @if($item['sesuai'] ?? false) @else @endif {{ $item['data_hasil_validasi'] ?? '—' }}
@endif {{-- Section E read-only --}} @if($fa?->e_rekomendasi)
@foreach($fa->e_rekomendasi as $item) @endforeach
ItemRekomendasi?Catatan
{{ $item['item'] }} @if($item['sesuai'] ?? false) @else @endif {{ $item['data_hasil_validasi'] ?? '—' }}
@endif {{-- Section F: Foto Lapangan --}} @if($fa?->foto?->isNotEmpty()) @php $fotoByTipe = $fa->foto->groupBy('tipe'); $tipeLabel = [ 'pemohon' => 'Foto Pemohon', 'lahan' => 'Foto Lahan', 'usaha' => 'Foto Usaha', 'rumah' => 'Foto Rumah', ]; @endphp @foreach($tipeLabel as $tipe => $label) @if($fotoByTipe->has($tipe))
{{ $label }}
@foreach($fotoByTipe[$tipe] as $foto)
{{ $label }} @if($foto->exif_taken_at || $foto->exif_latitude)
@if($foto->exif_taken_at) {{ $foto->exif_taken_at->format('d/m/Y H:i') }}
@endif @if($foto->exif_latitude) {{ number_format($foto->exif_latitude, 5) }}, {{ number_format($foto->exif_longitude, 5) }} @endif
@endif
@endforeach
@endif @endforeach
@endif {{-- Peta Polygon Lahan (read-only) --}} @if($fa?->nama_wilayah_gps)

{{ $fa->nama_wilayah_gps }} @if($fa->luas_polygon_ha)  ·  Luas: {{ number_format($fa->luas_polygon_ha, 4) }} Ha @endif

@endif
@endif {{-- ═══════════════════════════════════════════════════════════ CSL BREAKDOWN (Penelaah / Done — setelah CSL dihitung) ═══════════════════════════════════════════════════════════ --}} @if(($isReview || $isDone) && $csl) {{-- Compliance Parameters --}} @if(!$csl->semua_compliance_accepted) Ada parameter Rejected! Debitur tidak layak diproses tanpa perlu menghitung skor lebih lanjut. @else Semua 8 compliance parameter Accepted. Lanjut ke scoring. @endif @php $cpItems = [ ['label' => 'Status Anggota', 'evidence' => 'Kelompok berdiri ≥2 tahun', 'value' => $csl->cp_status_anggota], ['label' => 'Usia', 'evidence' => 'Usia 20–65 tahun saat jatuh tempo', 'value' => $csl->cp_usia], ['label' => 'Jaminan', 'evidence' => 'Nilai jaminan ≥ 100% plafond', 'value' => $csl->cp_jaminan], ['label' => 'Karakter', 'evidence' => 'Tidak ada tunggakan bermasalah (Pefindo BG/BH)', 'value' => $csl->cp_karakter], ['label' => 'Profesi', 'evidence' => 'Bukan TNI/APH', 'value' => $csl->cp_profesi], ['label' => 'Tempat Tinggal', 'evidence' => 'Berdomisili >1 tahun', 'value' => $csl->cp_tempat_tinggal], ['label' => 'Status Tempat Tinggal', 'evidence' => 'Milik sendiri / orang tua / saudara', 'value' => $csl->cp_status_tempat_tinggal], ['label' => 'Status Usaha', 'evidence' => 'Usaha milik sendiri / keluarga / partner', 'value' => $csl->cp_status_usaha], ]; @endphp
@foreach($cpItems as $cp) @endforeach
Parameter Kondisi Diperiksa Status
{{ $cp['label'] }} {{ $cp['evidence'] }} @if($cp['value']) Accepted @else Rejected @endif
{{-- Scoring Indicators --}} @if($csl->semua_compliance_accepted)
{{-- I. Eksternal --}}
I. Eksternal — Pefindo (bobot 0.35)
@php $ekRaw = (int) $csl->skor_eksternal_raw; $ekMap = [ 100 => ['Low Risk', 'bg-success'], 50 => ['Moderate Risk', 'bg-warning text-dark'], 0 => ['High Risk', 'bg-danger'], ]; $ekInfo = $ekMap[$ekRaw] ?? ['—', 'bg-secondary']; @endphp
Skor Mentah Pefindo
{{ $ekInfo[0] }} ({{ $ekRaw }})
Kontribusi ke Skor Total
{{ number_format((float)$csl->skor_eksternal * 100, 2) }} poin (maks 35)
{{-- II. Financial --}}
II. Internal Financial — RPC (bobot 0.45)
@php $rasioRpc = (float) $csl->rasio_rpc; @endphp
RPC Tahunan
Rp {{ number_format((int)$csl->rpc_tahunan) }}
Angsuran per Tahun
Rp {{ number_format((int)$csl->angsuran_per_tahun) }}
Rasio RPC / Angsuran
{{ number_format($rasioRpc, 2) }}× @if($rasioRpc > 1.5) Low Risk @elseif($rasioRpc >= 1.0) Moderate Risk @else High Risk @endif
Kontribusi ke Skor Total
{{ number_format((float)$csl->skor_financial * 100, 2) }} poin (maks 45)
{{-- III. Non-Financial --}}
III. Internal Non-Financial (0.03 × 10 item)
@if($csl->params_non_financial)
@foreach($csl->params_non_financial as $nf) @php $nfSkor = (int)($nf['skor'] ?? 0); $nfBadge = match($nfSkor) { 100 => 'bg-success', 50 => 'bg-warning text-dark', default => 'bg-danger', }; @endphp @endforeach
Parameter Nilai Skor
{{ $nf['nama'] }} {{ $nf['nilai'] ?? '—' }} {{ $nfSkor }}
@endif
Kontribusi: {{ number_format((float)$csl->skor_non_financial * 100, 2) }} poin (maks 30)
{{-- Total Score --}}
{{ number_format((float)$csl->skor_total, 1) }}
{!! $csl->kategoriRisikoBadge !!}
Skor Total (maks ≈ 110)
Dihitung: {{ $csl->dihitung_pada?->format('d M Y H:i') }}
@if($csl->status_layak) LAYAK @else TIDAK LAYAK @endif
@endif @endif {{-- ═══════════════════════════════════════════════════════════ REVIEW FORM — Catatan + Tombol Aksi (Penelaah only) ═══════════════════════════════════════════════════════════ --}} @if($isReview)
@csrf @method('PUT')
Kosongkan untuk tidak mengubah catatan BL8 yang sudah ada.
@if(!$csl)
CSL belum dihitung untuk debitur ini. Klik "Hitung CSL" untuk menghitung.
@endif
Kembali ke Kelompok @if($batchSelesai) @else @endif
@endif {{-- Done: info sudah submit --}} @if($isDone) Field Analysis telah disubmit ke Verifikator untuk Keputusan Final. @endif
@endsection @push('scripts') @endpush