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

@@ -1,45 +1,41 @@
<div class="w-full rounded-lg shadow-md card border-agi-100">
<div class="card-header light:bg-agi-50">
@php
$title = $title ?? 'Form Inspeksi';
@endphp
<h3 class="uppercase card-title">
{{ $title }}
</h3>
<div class="flex gap-2 items-center">
@php
use Illuminate\Support\Facades\Route;
// dd(request('header'));
@endphp
@if (isset($id))
<h3 class="uppercase card-title">
{{ $title ?? 'Form Inspeksi' }}
</h3>
<div class="flex gap-2 items-center">
@if (isset($id) && isset($backLink))
<a href="{{ route($backLink, ['id' => $id]) }}" class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Back
</a>
@else
@if (Auth::user()->hasAnyRole(['administrator', 'senior-officer', 'EO Appraisal', 'DD Appraisal']) &&
Request::is('otorisator/*'))
<a href="{{ route('otorisator.show', ['id' => $permohonan->id, 'type' => request('header') ?? 'Pelaporan']) }}"
class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Back
</a>
@elseif (Auth::user()->hasAnyRole(['administrator', 'surveyor', 'penilai']))
@if (Request::is('surveyor/inspeksi/*/create') && request()->has('documentId') && request()->has('jenis_jaminan'))
<a href="{{ route('surveyor.show', $permohonan->id) }}" class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Back
</a>
@elseif (Request::is('penilai/*/*'))
<a href="{{ route('penilai.show', $permohonan->id) }}" class="btn btn-xs btn-info">
@if (Auth::check() && Auth::user()->hasAnyRole(['administrator', 'senior-officer', 'EO Appraisal', 'DD Appraisal']) && request()->is('otorisator/*'))
@if (isset($permohonan))
<a href="{{ route('otorisator.show', ['id' => $permohonan->id, 'type' => request('header') ?? 'Pelaporan']) }}" class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Back
</a>
@endif
@elseif (Auth::check() && Auth::user()->hasAnyRole(['administrator', 'surveyor', 'penilai']))
@if (request()->is('surveyor/inspeksi/*/create') && request()->has('documentId') && request()->has('jenis_jaminan'))
@if (isset($permohonan))
<a href="{{ route('surveyor.show', $permohonan->id) }}" class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Back
</a>
@endif
@elseif (request()->is('penilai/*/*'))
@if (isset($permohonan))
<a href="{{ route('penilai.show', $permohonan->id) }}" class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Back
</a>
@endif
@endif
@endif
@endif
{{-- <a href="{{ route('surveyor.show', ['id' => request('inspeksi')]) }}" class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Back
</a> --}}
</div>
</div>
<div class="card-body">
<div class="grid grid-cols-2 gap-5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
@@ -53,7 +49,7 @@
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Tanggal Survey</label>
<div class="flex flex-wrap w-full items-base line">
<p class="text-gray-700 text-2sm">{{ $permohonan->created_at->format('d/m/Y') }}</p>
<p class="text-gray-700 text-2sm">{{ optional($permohonan->created_at)->format('d/m/Y') }}</p>
</div>
</div>
@@ -80,7 +76,6 @@
<label class="form-label max-w-56">Debitur/Perwakilan</label>
@if (isset($forminspeksi['asset']['debitur_perwakilan']) && !empty($forminspeksi['asset']['debitur_perwakilan']))
<div id="perwakilan" class="flex flex-wrap gap-5 items-baseline w-full">
@foreach ($forminspeksi['asset']['debitur_perwakilan'] as $key => $item)
<div class="flex flex-wrap gap-2 items-baseline w-full perwakilan">
@@ -109,7 +104,6 @@
<em id="error-debitur_perwakilan" class="text-sm alert text-danger"></em>
</div>
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap" style="margin-top: 20px">
<label class="form-label max-w-56">Pihak Bank (Selain Appraisal)</label>
<div id="perwakilan" class="flex gap-5 items-baseline w-full">
@@ -128,8 +122,6 @@
<h1 class="font-medium text-gray-900 uppercase text-md">Nama Cadeb/Debitur</h1>
</div>
<div class="card-body">
<div class="grid gap-5">
<div class="flex flex-wrap gap-2.5 items-baseline lg:flex-nowrap">
<label class="form-label max-w-56">Nama</label>
@@ -143,7 +135,6 @@
</div>
</div>
<div class="w-full rounded-lg border shadow-md card border-agi-100">
<div class="card-header light:bg-agi-50">
<h1 class="font-medium text-gray-900 uppercase text-md">Deskripsi Aset jaminan</h1>
@@ -223,7 +214,6 @@
{{ formatAlamat($dokumen) }}
</span>
<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">
@@ -240,7 +230,6 @@
</label>
</div>
<em id="error-alamat_sesuai" class="text-sm alert text-danger"></em>
<em id="error-alamat_sesuai" class="text-sm alert text-danger"></em>
</div>
@php
@@ -254,8 +243,6 @@
</div>
</div>
</div>
</div>
</div>
</div>