@php
// ==============================================
// FILTER DOKUMEN BERDASARKAN JUMLAH LANTAI & FUNGSI
// ==============================================
// 1. DOKUMEN UTAMA (semua wajib)
$checklistUtama = [
'Site Plan (Skala 1:200/1:500/1:1000)',
'Denah dan Perletakan Septictank (Skala 1:100/1:200)',
'Tampak Depan (Skala 1:100/1:200)',
'Tampak Samping (Skala 1:100/1:200)',
'Tampak Belakang (Skala 1:100/1:200)',
'Potongan Melintang (Skala 1:100/1:200)',
'Potongan Memanjang (Skala 1:100/1:200)',
'Portal Pembesian (Skala 1:50/1:100)',
'Detail Pembesian (Skala 1:20/1:25)',
'Potongan Tangga dan Detail (Skala 1:20/1:25)',
'Penulangan Lantai dan Detail (Skala 1:20/1:25)',
'Denah Pondasi (Skala 1:100/1:200)',
'Detail Pondasi (Skala 1:20/1:25)',
'Detail Septictank (Skala 1:20/1:25)',
'Detail Stop Kontak dan Detail Penerangan (Skala 1:100/1:200)',
'Denah APAR Untuk 3 Lantai Ke Atas (Skala 1:100/1:200)',
'Skei Lokasi',
'Surat Pertanggung Jawaban Konstruksi',
'KTP Kedua Belah Pihak (Pemilik dan Perencana)',
'Surat Kuasa (jika Pemohon berbeda dengan Pemilik)',
];
// Item yang tampil hanya untuk lantai 1
$lantai1Items = [1,2,3,4,5,6,7,12,13,14,15,17,18,19,20];
// 2. FILTER BERDASARKAN JUMLAH LANTAI
$jumlahLantai = $pengajuan->jumlah_lantai ?? 1;
$checklistUtamaFiltered = [];
foreach ($checklistUtama as $index => $doc) {
$itemId = $index + 1;
if ($jumlahLantai >= 2) {
// Tampilkan semua
$checklistUtamaFiltered[] = $doc;
} else {
// Lantai 1: hanya tampilkan item yang ada di $lantai1Items
if (in_array($itemId, $lantai1Items)) {
$checklistUtamaFiltered[] = $doc;
}
}
}
// 3. DOKUMEN PERUMAHAN (jika fungsi = Hunian)
$checklistPerumahan = [];
if ($pengajuan->fungsi_bangunan === 'Hunian') {
$checklistPerumahan = [
'Denah/Skema Perletakan IPAL (Skala 1:200/1:500/1:1000)',
'Detail IPAL (Skala 1:20/1:25)',
];
}
// 4. DOKUMEN FASUM (jika fungsi bukan Hunian)
$checklistFasum = [];
if ($pengajuan->fungsi_bangunan && $pengajuan->fungsi_bangunan !== 'Hunian') {
$checklistFasum = [
'Rencana Jaringan Air Bersih (Skala 1:100/1:200)',
'Rencana Jaringan Air Kotor (Skala 1:100/1:200)',
'Rencana Jaringan Listrik (Skala 1:100/1:200)',
'Rencana Drainase (Skala 1:100/1:200)',
'Rencana Persampahan (Skala 1:100/1:200)',
'Rencana Fasilitas Parkir (Skala 1:100/1:200)',
'Rencana Ruang Terbuka Hijau/RTH (Skala 1:100/1:200)',
];
}
// 5. GABUNGKAN SEMUA DOKUMEN YANG SUDAH DIFILTER
$requiredDocs = array_merge($checklistUtamaFiltered, $checklistPerumahan, $checklistFasum);
// 6. AMBIL DOKUMEN YANG SUDAH DIUPLOAD
$uploadedDocs = $pengajuan->dokumen->keyBy('nama_dokumen');
// 7. DOKUMEN TAMBAHAN (opsional)
$extraDocs = $pengajuan->dokumen->filter(function($d) use ($requiredDocs) {
return !in_array($d->nama_dokumen, $requiredDocs);
});
// 8. GABUNGKAN SEMUA UNTUK DITAMPILKAN
$allDocs = collect($requiredDocs)->map(function($nama) use ($uploadedDocs) {
return (object)[
'nama_dokumen' => $nama,
'uploaded' => $uploadedDocs->has($nama),
'dokumen' => $uploadedDocs->get($nama)
];
})->concat($extraDocs->map(function($d) {
return (object)[
'nama_dokumen' => $d->nama_dokumen,
'uploaded' => true,
'dokumen' => $d
];
}));
@endphp
@if(in_array($pengajuan->status, ['ditugaskan', 'diperiksa']))
@foreach($allDocs as $i => $item)
{{ $i + 1 }}. {{ $item->nama_dokumen }}
@if($item->uploaded)
{{ strtoupper($item->dokumen->tipe_file) }}
@else
Belum Diupload
@endif
@if($item->uploaded && session('revisi_dokumen_ids') && in_array($item->dokumen->id, session('revisi_dokumen_ids')))
Direvisi
@endif
@if($item->uploaded)
Lihat File
@endif
@if($item->uploaded)
Tersimpan
@else
Pemohon belum mengunggah dokumen ini.
@endif
@endforeach
@else
@foreach($allDocs as $i => $item)
{{ $i+1 }}. {{ $item->nama_dokumen }}
@if($item->uploaded)
{{ strtoupper($item->dokumen->tipe_file) }}
@else
Belum Diupload
@endif
@if($item->uploaded)
Lihat
@endif
@if($item->uploaded && $item->dokumen->pemeriksaan)
{{ $item->dokumen->pemeriksaan->status_label }}
@if($item->dokumen->pemeriksaan->keterangan)
{{ $item->dokumen->pemeriksaan->keterangan }}
@endif
@endif
@endforeach
@endif