feat(lpj-module): tambah tampilan laporan inspeksi & refactor detail lokasi

Ringkasan:
- Menambahkan halaman hasil inspeksi dan tampilan cetak laporan.
- Mengekstrak komponen detail lokasi ke partial baru agar reusable.
- Menambahkan null-safe access dan perbaikan binding data di view.
- Merapikan tombol cetak dan navigasi agar konsisten antar halaman.

Perubahan utama:
1. activitydetail.blade.php → ubah tombol print jadi route, tambah null-safe user/branch.
2. detail-lokasi.blade.php (baru) → komponen reusable untuk detail lokasi dengan formatLabel & tanggal.
3. form-penilai.blade.php → refactor luas menggunakan match, hapus fungsi debug & Swal loading.
4. print-out-dokument.blade.php → gunakan partial lpj::component.detail-lokasi untuk detail lokasi.
5. show-laporan-inspeksi.blade.php (baru) → tab 'Laporan' & 'Hasil Inspeksi' + tombol cetak dan back.
6. print-out-sederhana / print-out-standar → penyesuaian tampilan & binding data.
7. signature-approval.blade.php → perbaikan layout area tanda tangan.
8. surveyor/components/* → normalisasi tampilan, validasi gambar, dan penyelarasan fakta/lingkungan.
9. routes/web.php → tambah dan ubah rute untuk laporan inspeksi dan cetak laporan.

Catatan:
- Tidak ada perubahan query database; semua modifikasi bersifat tampilan.
- Logging tambahan untuk observabilitas proses render laporan.
This commit is contained in:
Daeng Deni Mardaeni
2025-11-09 21:19:58 +07:00
parent 535be2cff3
commit 0d5b6b1529
31 changed files with 2193 additions and 1865 deletions

View File

@@ -4,6 +4,7 @@
Analisa Tanah
</h3>
</div>
<div class="card-body">
<div class="grid gap-5">
<!-- Luas tanah -->
@@ -13,7 +14,7 @@
@if (isset($permohonan->documents))
@foreach ($permohonan->documents as $item)
@php
@php
$total_luas_tanah = 0;
$jenis_legalitas_jaminan_id = 0;
if (isset($item->detail)) {
@@ -28,8 +29,8 @@
<p class="text-gray-700 text-2sm">{{ $total_luas_tanah }} m<sup>2</sup></p>
@endforeach
@endif
<div class="flex-wrap items-stretch">
<div class="flex-wrap items-stretch">
<div class="grid grid-cols-3 gap-4 mt-2 md:grid-cols-3">
<label class="flex gap-3 items-center form-label text-nowrap">
<input type="radio" class="radio" name="luas_tanah" value="sesuai"
@@ -57,10 +58,10 @@
</div>
</div>
<em id="error-luas_tanah" class="text-sm alert text-danger"></em>
</div>
</div>
</div>
<!-- Hadap Mata Angin -->
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<input type="hidden" name="hadap_mata_angin_sesuai" class="input" value="sesuai">
@@ -111,6 +112,7 @@
</div>
</div>
</div>
<!-- Bentuk Tanah -->
<div class="flex flex-wrap gap-2.5 items-stretch lg:flex-nowrap">
<label class="form-label max-w-56">Bentuk Tanah</label>
@@ -164,6 +166,7 @@
<em id="error-kontur_tanah" class="text-sm alert text-danger"></em>
</div>
</div>
<!-- Beda Ketinggian Dengan Jalan -->
<div class="flex flex-wrap gap-2.5 items-stretch lg:flex-nowrap">
<label class="form-label max-w-56">Beda Ketinggian Dengan Jalan</label>
@@ -201,6 +204,7 @@
<em id="error-ketinggian_jalan" class="text-sm alert text-danger"></em>
</div>
</div>
<!-- Kontur Jalan Depan Objek -->
<div class="flex flex-wrap gap-2.5 items-stretch lg:flex-nowrap">
<label class="form-label max-w-56">Kontur Jalan Depan Objek</label>
@@ -224,7 +228,6 @@
</div>
<em id="error-kontur_jalan" class="text-sm alert text-danger"></em>
</div>
</div>
<div class="flex flex-wrap gap-2.5 items-stretch lg:flex-nowrap">
@@ -242,6 +245,7 @@
$forminspeksi['tanah']['posisi_kavling']['lainnya'] ?? '',
);
@endphp
@foreach ($basicData['posisiKavling'] as $item)
<div class="flex items-center">
<label class="flex gap-2.5 items-center form-label text-nowrap">
@@ -281,11 +285,13 @@
$statusKey = isset($forminspeksi['tanah']['tusuk_sate']['Ya']) ? 'Ya' : 'Tidak';
$selectedData = $forminspeksi['tanah']['tusuk_sate'][$statusKey] ?? null;
@endphp
<input id="tusuk_sate_ya" class="input" name="tusuk_sate_ya"
placeholder="Masukkan Tusuk Sate..."
value="{{ old('tusuk_sate_ya', isset($selectedData) ? $selectedData : '') }}"
style="{{ $statusKey == 'Ya' ? '' : 'display: none;' }}">
</label>
<label class="flex gap-2.5 items-center form-label text-nowrap">
<input onclick="toggleFieldVisibility('tusuk_sate', 'tusuk_sate_ya', ['Ya'])"
type="radio" class="radio" name="tusuk_sate" value="Tidak"
@@ -347,7 +353,6 @@
<em id="error-kondisi_fisik_tanah" class="text-sm alert text-danger"></em>
</div>
</div>
</div>
</div>
</div>