Files
lpj/resources/views/penilai/lampiran.blade.php
Daeng Deni Mardaeni 0d5b6b1529 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.
2025-11-09 21:19:58 +07:00

117 lines
5.6 KiB
PHP

@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render(request()->route()->getName()) }}
@endsection
@section('content')
<div class="grid gap-5 mx-auto w-full lg:gap-7.5">
@if (Auth::user()->hasAnyRole(['senior-officer', 'administrator','DD Appraisal', 'EO Appraisal']) && Request::is('penilai/lampiran'))
@include('lpj::component.detail-jaminan', [
'backLink' => 'otorisator.view-laporan',
'queryParams' => [
'permohonanId' => request()->query('permohonanId'),
'documentId' => request()->query('documentId'),
'inspeksiId' => request()->query('inspeksiId'),
'jaminanId' => request()->query('jaminanId'),
'statusLpj' => 1,
'header' => request('header'),
],
'title' => 'Paparan dokument',
])
@else
@include('lpj::component.detail-jaminan', [
'backLink' => 'penilai.show',
'id' => $permohonan->id,
'title' => 'Lampiran foto dan dokumen',
])
@endif
@include('lpj::penilai.components.foto-lampiran')
@if (isset($formDenah['denahs']) && is_array($formDenah['denahs']) && count($formDenah['denahs']) > 0)
<div class="card">
<div class="uppercase card-header bg-agi-50">
Denah
</div>
@foreach ($formDenah['denahs'] as $index => $denah)
<div class="card-body">
<div class="grid gap-5 w-full">
<!-- Preview Container -->
<div class="preview-container-{{ $index }}" class="flex items-center">
@if (isset($denah['foto_denah']))
@php
$fileExtension = pathinfo($denah['foto_denah'], PATHINFO_EXTENSION);
@endphp
@if (in_array($fileExtension, ['jpg', 'jpeg', 'png']))
<img src="{{ asset('storage/' . $denah['foto_denah']) }}" class="object-contain max-w-full max-h-screen">
@elseif($fileExtension === 'pdf')
<embed src="{{ asset('storage/' . $denah['foto_denah']) }}" type="application/pdf"
width="100%" height="500px">
@endif
@endif
</div>
<div class="flex flex-wrap gap-4 w-full lg:flex-nowrap text-start">
<div class="w-full">
<div class="flex flex-wrap gap-4">
<div class="flex gap-4 justify-start items-center w-full">
<label class="form-label max-w-56">
<span class="form-label">Nama Denah</span>
</label>
<p class="text-gray-700 text-md">
{{ isset($denah['nama_denah']) ? $denah['nama_denah'] : '' }}</p>
</div>
</div>
<div class="flex flex-wrap gap-4">
<div class="flex gap-4 justify-start items-center w-full">
<label class="form-label max-w-56">
<span class="form-label">Total Luas</span>
</label>
<p class="text-gray-700 text-md">
{{ isset($denah['luas_denah']) ? $denah['luas_denah'] . ' m²' : '' }}</p>
</div>
</div>
</div>
</div>
</div>
<div class="mt-5 border-b border-b-gray-200"></div>
</div>
@endforeach
</div>
@endif
@if ($penilai && $penilai->kertas_kerja)
<div class="card">
<div class="uppercase card-header bg-agi-50">
Kertas Kerja
</div>
<div class="flex justify-between items-center card-body">
@php
$url = '';
$fileName = '';
if ($penilai && $penilai->kertas_kerja) {
$url = asset('storage/' . $penilai->kertas_kerja);
$fileName = basename($penilai->kertas_kerja);
}
@endphp
@if ($penilai && $penilai->kertas_kerja)
<button type="button" class="btn btn-primary"
onclick="window.open('{{ $url }}', '_blank')">
<i class="ki-outline ki-cloud-download"></i>
Lihat Kertas Kerja</button>
<p class="text-gray-700 text-2sm">{{ $fileName }}</p>
@else
<p class="text-gray-700 text-2sm">Belum ada kertas kerja</p>
@endif
</div>
</div>
@endif
</div>
@endsection