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.
373 lines
18 KiB
PHP
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">
|
|
|
|
</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')
|