Files
lpj/resources/views/component/detail-jaminan.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

373 lines
18 KiB
PHP

@if (!isset($status))
<div class="card border border-agi-100 {{ isset($hidePermohonan) ? 'hidden' : '' }}">
<div class="card-header bg-agi-50" id="advanced_settings_appearance">
@php
$title = $title ?? 'Data Permohonan';
@endphp
<h3 class="card-title">
{{ $title }}
</h3>
<div class="flex gap-2 items-center">
{!! $customlink ?? "" !!}
@if (isset($id))
@php
$parameters = isset($id) ? ['id' => $id] : [];
if (isset($type)) {
$parameters['type'] = $type;
}
if (isset($additionalParam)) {
$parameters['additional'] = $additionalParam;
}
@endphp
<a href="{{ route($backLink, $parameters) }}" class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Back
</a>
@else
<a href="{{ route($backLink, $queryParams ?? []) }}" class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Back
</a>
@endif
</div>
</div>
<div class="grid grid-cols-3 card-body lg:py-7.5">
<div class="mb-5">
<h3 class="font-medium text-gray-900 text-md">
Nomor Register Permohonan:
</h3>
<span class="text-gray-700 text-2sm">
{{ $permohonan->nomor_registrasi }}
</span>
</div>
<div class="mb-5">
<h3 class="font-medium text-gray-900 text-md">
Pemohon:
</h3>
<span class="text-gray-700 text-2sm">
{{ $permohonan->user->nik ?? '' }} | {{ $permohonan->user->name ?? '' }} | {{ $permohonan->user->branch->name ?? '' }}
</span>
</div>
@if(isset($penawaran))
<div class="mb-5">
<h3 class="font-medium text-gray-900 text-md">
Nomor Penawaran:
</h3>
<span class="text-gray-700 text-2sm">
{{ $penawaran->code }}
</span>
</div>
<div class="mb-5">
<h3 class="font-medium text-gray-900 text-md">
Nomor Penawaran:
</h3>
<span class="text-gray-700 text-2sm">
{{ $penawaran->tujuanPenilaianKjpp->name }}
</span>
</div>
@else
<div class="mb-5">
<h3 class="font-medium text-gray-900 text-md">
Tujan Permohonan:
</h3>
<span class="text-gray-700 text-2sm">
{{ $permohonan->tujuanPenilaian->name }}
</span>
</div>
<div class="mb-5">
<h3 class="font-medium text-gray-900 text-md">
Nilai Plafond:
</h3>
<span class="text-gray-700 text-2sm">
{{ $permohonan->nilaiPlafond->name ?? '' }}
</span>
</div>
<div class="mb-5">
<h3 class="font-medium text-gray-900 text-md">
Status Bayar:
</h3>
<span
class="text-md font-bold {{ $permohonan->status_bayar === 'belum_bayar' ? 'text-red-600' : 'text-green-600' }} uppercase">
{{ str_replace('_', ' ', $permohonan->status_bayar) }}
</span>
</div>
@endif
</div>
</div>
<div class="min-w-full border card border-agi-100">
<div class="card-header light:bg-agi-50">
<h3 class="card-title">
Detail Debitur
</h3>
</div>
<div class="pb-3 card-table scrollable-x-auto">
<div class="grid grid-cols-1 gap-5 xl:grid-cols-2 lg:gap-7.5">
<div class="col-span-1">
<table class="table text-sm text-gray-500 align-middle">
<tr>
<td class="py-2 font-normal text-gray-600">
Nama
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
{{ $permohonan->debiture->name ?? '' }}
</td>
</tr>
<tr>
<td class="py-3">
Email
</td>
<td class="py-3 font-normal text-gray-700 text-2sm">
{{ $permohonan->debiture->email ?? '' }}
</td>
</tr>
<tr>
<td class="py-3">
No Hp
</td>
<td class="py-3 font-normal text-gray-700 text-2sm">
{{ $permohonan->debiture->phone ?? '' }}
</td>
</tr>
<tr>
<td class="py-3 font-normal text-gray-600">
Alamat
</td>
<td class="py-3 text-sm font-normal text-gray-700">
{{ $permohonan->debiture->address ?? '' }}
</td>
</tr>
<tr>
<td class="py-3 font-normal text-gray-600">
&nbsp;
</td>
<td class="py-3 text-sm font-normal text-gray-700">
{{ $permohonan->debiture->village->name ?? '' }},
{{ $permohonan->debiture->district->name ?? '' }},
{{ $permohonan->debiture->city->name ?? '' }},
{{ $permohonan->debiture->province->name ?? '' }} -
{{ $permohonan->debiture->village->postal_code ?? '' }}
</td>
</tr>
</table>
</div>
<div class="col-span-1">
<table class="table text-sm text-gray-500 align-middle">
<tr>
<td class="py-3 font-normal text-gray-600">
Cabang
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
{{ $permohonan->debiture->branch->name ?? '' }}
</td>
</tr>
<tr>
<td class="py-3 font-normal text-gray-600">
CIF
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
{{ $permohonan->debiture->cif ?? '' }}
</td>
</tr>
<tr>
<td class="py-3 font-normal text-gray-600">
Nomor Rekening
</td>
<td class="py-3 text-sm font-normal text-gray-700">
{{ $permohonan->debiture->nomor_rekening ?? '' }}
</td>
</tr>
<tr>
<td class="py-3">
NPWP
</td>
<td class="py-3 font-normal text-gray-700 text-2sm">
{{ $permohonan->debiture->npwp ?? '' }}
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
<div class="min-w-full border card border-agi-100">
<div class="card-header light:bg-agi-50">
<h3 class="card-title">
Data Jaminan
</h3>
</div>
@endif
<div data-accordion="true">
@foreach ($permohonan->documents as $dokumen)
<div class="accordion-item {{ count($permohonan->documents) == 1 ? 'active' : '' }} [&:not(:last-child)]:border-b border-b-gray-200"
data-accordion-item="true" id="accordion_detail_jaminan">
<button @class(['accordion-toggle py-4 group', 'mx-8' => !isset($status)])"
data-accordion-toggle="#accordion_detail_jaminan_{{ $loop->index }}">
<span class="text-base font-medium text-gray-900">
@if (count($permohonan->documents) > 1)
Jaminan {{ $loop->index + 1 }}
@else
Jaminan
@endif
</span>
<i class="block text-gray-600 ki-outline ki-plus text-2sm accordion-active:hidden">
</i>
<i class="hidden text-gray-600 ki-outline ki-minus text-2sm accordion-active:block">
</i>
</button>
<div class="accordion-content {{ count($permohonan->documents) > 1 ? 'hidden' : '' }}"
id="accordion_detail_jaminan_{{ $loop->index }}">
@if (!isset($status))
<div class="grid grid-cols-2 card-body lg:py-7.5">
<div class="mb-5">
<h3 class="font-medium text-gray-900 text-md">
Pemilik Jaminan:
</h3>
<span class="text-gray-700 text-2sm">
{{ $dokumen->pemilik->name ?? '' }}
</span>
</div>
<div class="mb-5">
<h3 class="font-medium text-gray-900 text-md">
Jenis Jaminan:
</h3>
<span class="text-gray-700 text-2sm">
{{ $dokumen->jenisJaminan->name ?? '' }}
</span>
</div>
<div class="mb-5">
<h3 class="font-medium text-gray-900 text-md">
Hubungan Pemilik Jaminan:
</h3>
<span class="text-gray-700 text-2sm">
{{ $dokumen->pemilik->hubungan_pemilik->name ?? '' }}
</span>
</div>
<div class="mb-5">
<h3 class="font-medium text-gray-900 text-md">
Alamat Jaminan:
</h3>
<span class="text-gray-700 text-2sm">
{{ formatAlamat($dokumen) }}
</span>
</div>
</div>
@endif
<div class="pb-3 card-table scrollable-x-auto">
<a href="{{ route('debitur.jaminan.bulk.download', ['id' => $permohonan->debiture->id, 'jaminan' => $dokumen->id]) }}"
class="ml-6 btn btn-dark dark:btn-light">
<i class="ki-outline ki-cloud-download"></i> Download Semua Dokumen
</a>
<table class="table text-sm text-gray-500 align-middle">
@php $document = $dokumen; @endphp
@foreach ($document->detail as $detail)
@if (isset($detail->dokumen_jaminan))
<tr>
<td colspan="2">
<strong class="text-gray-600 uppercase text-2xs">
{{ $loop->index + 1 }}. {{ $detail->jenisLegalitasJaminan->name }}
</strong>
</td>
</tr>
@if (isset($detail->dokumen_jaminan))
@php
$dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan))
? json_decode($detail->dokumen_jaminan)
: [$detail->dokumen_jaminan];
$dokumen_nomor = is_array(json_decode($detail->dokumen_nomor))
? json_decode($detail->dokumen_nomor)
: ($detail->dokumen_nomor
? [$detail->dokumen_nomor]
: []);
@endphp
@foreach ($dokumen_jaminan as $index => $dokumen)
<tr>
<td>
<span class="pl-3 text-gray-600 uppercase text-2xs">
{{ $loop->index + 1 }}. Nomor : {{ $dokumen_nomor[$index] }}
</span>
</td>
<td class="text-left">
@if (in_array(Auth::user()->roles[0]->name, [
'administrator',
'pemohon-eo',
'surveyor',
'senior-officer',
'EO Appraisal',
'DD Appraisal',
]))
<a href="{{ route('debitur.jaminan.download', ['id' => $permohonan->debiture->id, 'dokumen' => $detail->id, 'index' => $index]) }}"
class="flex-none mt-2 mr-2 badge badge-sm badge-outline">
{{ basename($dokumen) }}
<i class="ki-filled ki-cloud-download"></i>
</a>
@endif
<span class="mt-2 badge badge-sm badge-outline badge-warning"
onclick="viewPDF('{{ Storage::url($dokumen_jaminan[$index]) }}')">
<i class="mr-2 ki-filled ki-eye"></i>Preview
</span>
</td>
</tr>
@if (isset($detail->details) && isset(json_decode($detail->details)[$index]))
@foreach (json_decode($detail->details)[$index] as $key => $value)
<tr>
<td>
<span class="pl-3 text-gray-600 uppercase text-2xs">
- {{ str_replace('_', ' ', $key) ?? '' }}
</span>
</td>
<td class="text-left">
<p class="text-2xs text-gray-600 max-w-[250px]">
{{ $value }}
</p>
</td>
</tr>
@endforeach
@endif
@endforeach
@endif
<tr>
<td>
<span class="pl-3 text-gray-600 uppercase text-2xs">
- keterangan
</span>
</td>
<td class="text-right">
<p class="text-2xs text-gray-600 max-w-[250px]">
{{ $detail->keterangan }}
</p>
</td>
</tr>
@endif
@endforeach
</table>
</div>
</div>
</div>
@endforeach
</div>
@if (!isset($status))
</div>
@include('lpj::component.lampiran-dokumen')
@include('lpj::component.history-permohonan')
@endif
@include('lpj::component.pdfviewer')