feat(lpj): perbaikan controller & view penilai, validasi, dan MIG toggle

- Controllers: DokumenJaminan tangani array kosong saat diff legalitas.
- Controllers: Laporan sederhanakan query status list laporan.
- Controllers: PersetujuanPenawaran simpan NOC ke variabel $noc.
- Requests: DebitureRequest longgarkan 'nomor_rekening' max 50.
- Views: Informasi & Lingkungan tampilkan array/string aman dan rapi.
- Views: Header rapikan CSS page-break, nonaktifkan blok PHP komentar.
- Views: Foto Jaminan/Lampiran tambah link unduh & perbaikan layout.
- Views: LPJ sederhana: tombol kondisional saat MIG, include analisa.
- Views: Print-out sederhana kirim parameter ke signature-approval.
This commit is contained in:
Daeng Deni Mardaeni
2025-11-10 20:01:06 +07:00
parent 45f0d387fd
commit 42d6e06a48
13 changed files with 798 additions and 475 deletions

View File

@@ -406,7 +406,9 @@
// Remove values from $legalitasJaminan that are in $currentLegalitasJaminan
$legalitasJaminan = array_diff($legalitasJaminan, $currentLegalitasJaminan->pluck('code')->toArray());
$legalitasJaminan = is_array($legalitasJaminan)
? array_diff($legalitasJaminan, $currentLegalitasJaminan->pluck('code')->toArray())
: [];
$legalitas = JenisLegalitasJaminan::whereIn('code', $legalitasJaminan)->get();
}

View File

@@ -16,7 +16,6 @@ class LaporanController extends Controller
* Display a listing of the resource.
*/
public function __construct(PenilaiController $penilaiController){
$this->penilaiController = $penilaiController;
}
@@ -76,14 +75,8 @@ class LaporanController extends Controller
}
// Retrieve data from the database
$query = Permohonan::query()->whereIn('status',['proses-laporan','done', 'paparan', 'proses-paparan'])
->whereNotNull('approval_so_at');
/*->whereNotNull('approval_eo_at')
->where(function ($q) {
$q->whereIn('nilai_plafond_id', [1,4])
->whereNotNull('approval_dd_at')
->orWhereIn('nilai_plafond_id', [2,3]);
});*/
$query = Permohonan::query()
->whereIn('status',['proses-laporan','done', 'paparan', 'proses-paparan']);
if (Auth::user()->hasAnyRole(['pemohon-ao','pemohon-eo'])) {
$query = $query->where('branch_id', Auth::user()->branch_id);

View File

@@ -72,7 +72,7 @@
// Save NOC
try {
Noc::updateOrCreate([
$noc = Noc::updateOrCreate([
'permohonan_id' => $persetujuanPenawaran->permohonan_id,
'persetujuan_penawaran_id' => $persetujuanPenawaran->id
],[

View File

@@ -20,7 +20,7 @@
'city_code' => 'nullable|exists:cities,code',
'district_code' => 'nullable|exists:districts,code',
'village_code' => 'nullable|exists:villages,code',
'nomor_rekening' => 'nullable|string|max:10',
'nomor_rekening' => 'nullable|string|max:50',
'name' => 'required',
'registered_at' => 'nullable|date',
'npwp' => 'nullable|string|min:15|max:16',

View File

@@ -1,6 +1,57 @@
<div class="no-break">
<table style="width: 100%">
<tr>
@if($permohonan->is_mig)
@if (!empty($forminspeksi['fakta']['keterangan']))
@foreach ($forminspeksi['fakta']['keterangan'] as $key => $item)
<table class="judul" style="width: 100%; ">
<tr>
<td style="width: 100%; border: 1px solid #000; text-align: center;">
{{ $key }}
</td>
</tr>
</table>
<table class="judul" style="width: 100%; ">
<tr>
<td style="width: 100%; text-align: left;">
@if (is_array($item))
@foreach ($item as $data_)
{!! nl2br(e($data_)) !!}<br>
@endforeach
@else
{!! nl2br(e($item)) !!}
@endif
</td>
</tr>
</table>
@endforeach
@endif
@if (!empty($forminspeksi['fakta']['saran']))
@foreach ($forminspeksi['fakta']['saran'] as $key => $item)
<table class="judul" style="width: 100%; ">
<tr>
<td style="width: 100%; border: 1px solid #000; text-align: center;">
SARAN
</td>
</tr>
</table>
<table class="judul" style="width: 100%; ">
<tr>
<td style="width: 100%; text-align: left;">
@if (is_array($item))
@foreach ($item as $data_)
{!! nl2br(e($data_)) !!}<br>
@endforeach
@else
{!! nl2br(e($item)) !!}
@endif
</td>
</tr>
</table>
@endforeach
@endif
@else
<tr>
<td width="25%" style="vertical-align: top;">Informasi Dinas Tata Ruang
</td>
<td width="1%" style="vertical-align: top;">:</td>

View File

@@ -35,41 +35,50 @@
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">{{ $lingkungan['lebar_perkerasan_jalan'] ?? '-' }} m</td>
</tr>
{{-- mulai --}}
<tr>
<td style="padding: 2px; vertical-align: top;">Perkerasan Jalan</td>
<td style="padding: 2px; vertical-align: top;">:
</td>
<td style="padding: 2px; vertical-align: top;">
{{ implode(', ', $lingkungan['perkerasan_jalan']['perkerasan_jalan'] ?? ['-']) }}
{{ implode(', ', $lingkungan['perkerasan_jalan']['perkerasan_jalan'] ?? $lingkungan['perkerasan_jalan'] ?? ['-']) }}
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Lalu Lintas</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">{{ implode(', ', $lingkungan['lalu_lintas'] ?? ['-']) }}
<td style="padding: 2px; vertical-align: top;">{{
$lingkungan['lalu_lintas']
? (is_array($lingkungan['lalu_lintas'])
? implode(', ', $lingkungan['lalu_lintas'])
: $lingkungan['lalu_lintas'])
: '-'
}}
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Golongan Masyarakat Sekitar</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">{{ implode(', ', $lingkungan['gol_mas_sekitar'] ?? ['-']) }}
<td style="padding: 2px; vertical-align: top;">{{ implode(', ', $lingkungan['gol_mas_sekitar'] ?? $lingkungan['gol_mas_sekitar'] ?? ['-']) }}
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Tingkat Keramaian</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ implode(', ', $lingkungan['tingkat_keramaian'] ?? ['-']) }}
{{ implode(', ', $lingkungan['tingkat_keramaian']['tingkat_keramaian'] ?? $lingkungan['tingkat_keramaian'] ?? ['-']) }}
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Terletak di Area</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ implode(', ', $lingkungan['terletak_diarea']['terletak_diarea'] ?? ['-']) }}
{{ implode(', ', $lingkungan['terletak_diarea']['terletak_diarea'] ?? $lingkungan['terletak_diarea'] ?? ['-']) }}
</td>
</tr>
{{-- batas --}}
<tr>
<td style="padding: 2px; vertical-align: top;">Kondisi Bangunan Sekitar</td>
<td style="padding: 2px; vertical-align: top;">:</td>

View File

@@ -271,25 +271,22 @@
<label for="nilai-pasar-1" class="form-label max-w-56">Nilai Pasar Wajar (NPW)</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="nilai-pasar-1" name="nilai_pasar_kjpp"
class="w-full input nilai-pasar currency-format" placeholder="Masukkan likuidasi"
value="{{ $callReport['nilai_pasar_kjpp'] ?? '' }}">
class="w-full input nilai-pasar currency-format" placeholder="Masukkan likuidasi" value="{{ $callReport['nilai_pasar_kjpp'] ?? '' }}">
</div>
</div>
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="likuidasi-1" class="form-label max-w-56">Nilai Likuidasi(%)</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="likuidasi-1" name="persentase_likuidasi_kjpp"
class="w-full input likuidasi" placeholder="Masukkan likuidasi dalam bentuk persen"
onkeyup="calculateTotal(this)" data-group="1"
value="{{ $callReport['persentase_likuidasi_kjpp'] ?? '' }}">
<input type="text" id="likuidasi-1" name="persentase_likuidasi_kjpp" class="w-full input likuidasi"
placeholder="Masukkan likuidasi dalam bentuk persen" onkeyup="calculateTotal(this)"
data-group="1" value="{{ $callReport['persentase_likuidasi_kjpp'] ?? '' }}">
</div>
</div>
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="total-likuidasi-1" class="form-label max-w-56">Total Nilai Likuidasi (NL)</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="total-likuidasi-1" name="hasil_nilai_likuidasi_kjpp"
class="w-full input total-likuidasi currency-format" placeholder="Hasil perhitungan"
value="{{ $callReport['hasil_nilai_likuidasi_kjpp'] ?? '' }}">
class="w-full input total-likuidasi currency-format" placeholder="Hasil perhitungan" value="{{ $callReport['hasil_nilai_likuidasi_kjpp'] ?? '' }}">
</div>
</div>
</div>
@@ -312,25 +309,22 @@
<label for="nilai-pasar-2" class="form-label max-w-56">Nilai Pasar Wajar (NPW)</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="nilai-pasar-2" name="nilai_pasar_internal"
class="w-full input nilai-pasar currency-format" placeholder="Masukkan likuidasi"
value="{{ $callReport['nilai_pasar_internal'] ?? '' }}">
class="w-full input nilai-pasar currency-format" placeholder="Masukkan likuidasi" value="{{ $callReport['nilai_pasar_internal'] ?? '' }}">
</div>
</div>
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="likuidasi-2" class="form-label max-w-56">Nilai Likuidasi(%)</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="likuidasi-2" name="persentase_likuidasi_internal"
class="w-full input likuidasi" placeholder="Masukkan likuidasi dalam bentuk persen"
onkeyup="calculateTotal(this)" data-group="2"
value="{{ $callReport['persentase_likuidasi_internal'] ?? '' }}">
<input type="text" id="likuidasi-2" name="persentase_likuidasi_internal" class="w-full input likuidasi"
placeholder="Masukkan likuidasi dalam bentuk persen" onkeyup="calculateTotal(this)"
data-group="2" value="{{ $callReport['persentase_likuidasi_internal'] ?? '' }}">
</div>
</div>
<div class="flex flex-wrap gap-2.5 items-baseline w-full lg:flex-nowrap">
<label for="total-likuidasi-2" class="form-label max-w-56">Total Nilai Likuidasi (NL)</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="total-likuidasi-2" name="hasil_nilai_likuidasi_internal"
class="w-full input total-likuidasi currency-format" placeholder="Hasil perhitungan"
value="{{ $callReport['hasil_nilai_likuidasi_internal'] ?? '' }}">
class="w-full input total-likuidasi currency-format" placeholder="Hasil perhitungan" value="{{ $callReport['hasil_nilai_likuidasi_internal'] ?? '' }}">
</div>
</div>
</div>
@@ -363,7 +357,7 @@
<label for="penilai" class="form-label max-w-56">Pihak KJPP</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="penilai" name="pihak_kjjpp" class="w-full input"
value="{{ $callReport['pihak_kjjpp'] ?? ($forminspeksi['signature']['kjjp']['name'] ?? '') }}"
value="{{ $callReport['pihak_kjjpp'] ?? ($forminspeksi['signature']['kjjp']['name'] ?? '') }}"
placeholder="Masukkan Nama KJPP">
</div>
</div>
@@ -511,8 +505,7 @@
<div class="flex gap-2 justify-end" style="margin-right: 20px; margin-top: 20px">
@if (Auth::user()->hasAnyRole(['senior-officer', 'surveyor', 'administrator']))
<button type="button" class="btn btn-primary" id="saveButton" onclick="submitData()"
{{ $permohonan->status == 'proses-paparan' || ($permohonan->status == 'proses-laporan' && Auth::user()->hasAnyRole(['surveyor'])) ? 'disabled' : '' }}>
<button type="button" class="btn btn-primary" id="saveButton" onclick="submitData()" {{ $permohonan->status == 'proses-paparan' || $permohonan->status == 'proses-laporan' && Auth::user()->hasAnyRole(['surveyor']) ? 'disabled' : '' }}>
<i class="ki-filled ki-save-2"></i>
<span id="saveButtonText">Simpan</span>
</button>
@@ -571,25 +564,19 @@
jsonData.lelang_kjpp = document.querySelector('input[name="lelang_kjpp"]')?.value.trim() || "";
// Ambil nilai lainnya
jsonData.nilai_pasar_kjpp = cleanCurrencyValue(document.querySelector('input[name="nilai_pasar_kjpp"]')?.value
.trim() ||
jsonData.nilai_pasar_kjpp = cleanCurrencyValue(document.querySelector('input[name="nilai_pasar_kjpp"]')?.value.trim() ||
"");
jsonData.persentase_likuidasi_kjpp = cleanCurrencyValue(document.querySelector(
'input[name="persentase_likuidasi_kjpp"]')?.value
jsonData.persentase_likuidasi_kjpp = cleanCurrencyValue(document.querySelector('input[name="persentase_likuidasi_kjpp"]')?.value
.trim() || "");
jsonData.hasil_nilai_likuidasi_kjpp = cleanCurrencyValue(document.querySelector(
'input[name="hasil_nilai_likuidasi_kjpp"]')
jsonData.hasil_nilai_likuidasi_kjpp = cleanCurrencyValue(document.querySelector('input[name="hasil_nilai_likuidasi_kjpp"]')
?.value.trim() || "");
jsonData.lelang_internal = document.querySelector('input[name="lelang_internal"]')?.value.trim() || "";
jsonData.nilai_pasar_internal = cleanCurrencyValue(document.querySelector('input[name="nilai_pasar_internal"]')
?.value.trim() ||
jsonData.nilai_pasar_internal = cleanCurrencyValue(document.querySelector('input[name="nilai_pasar_internal"]')?.value.trim() ||
"");
jsonData.persentase_likuidasi_internal = cleanCurrencyValue(document.querySelector(
'input[name="persentase_likuidasi_internal"]')?.value
jsonData.persentase_likuidasi_internal = cleanCurrencyValue(document.querySelector('input[name="persentase_likuidasi_internal"]')?.value
.trim() || "");
jsonData.hasil_nilai_likuidasi_internal = cleanCurrencyValue(document.querySelector(
'input[name="hasil_nilai_likuidasi_internal"]')
jsonData.hasil_nilai_likuidasi_internal = cleanCurrencyValue(document.querySelector('input[name="hasil_nilai_likuidasi_internal"]')
?.value.trim() || "");
return jsonData;

View File

@@ -19,6 +19,7 @@
</td>
</tr>
</table>
@if ($inspeksi->is_mig != 1)
<table style="width: 100%; ">
<tr>
<td style="border: 1px solid #000; text-align: center;">
@@ -38,18 +39,19 @@
];
$customLabels = [
'upload_gs' => 'Gambar Situasi',
'foto_sentuh_tanahku' => 'Sentuh Tanahku',
'foto_gistaru' => 'Gistaru',
'foto_bhumi' => 'Bhumi',
'foto_argis_region' => 'Blad Tata Ruang ',
'foto_tempat' => 'Peta Lokasi',
];
// Memindahkan foto_tempat ke depan jika ada
if (($key = array_search('upload_gs', $fotoTypes)) !== false) {
unset($fotoTypes[$key]);
array_unshift($fotoTypes, 'upload_gs');
}
'upload_gs' => 'Gambar Situasi',
'foto_sentuh_tanahku' => 'Sentuh Tanahku',
'foto_gistaru' => 'Gistaru',
'foto_bhumi' => 'Bhumi',
'foto_argis_region' => 'Blad Tata Ruang ',
'foto_tempat' => 'Peta Lokasi',
];
// Memindahkan foto_tempat ke depan jika ada
if (($key = array_search('upload_gs', $fotoTypes)) !== false) {
unset($fotoTypes[$key]);
array_unshift($fotoTypes, 'upload_gs');
}
// Filter fotoTypes untuk memastikan hanya yang memiliki imagePath valid
$validPhotoTypes = array_filter($fotoTypes, function ($type) use ($forminspeksi) {
@@ -79,9 +81,8 @@
@endforeach
</table>
</div>
<div class="page-break"></div>
@endif
<table style="width: 100%; ">
<tr>
<td style="border: 1px solid #000; text-align: center;">

View File

@@ -30,6 +30,8 @@
/* Image Styling */
.photo-item img {
display: block;
margin: auto;
width: auto;
max-width: 100%;
height: auto;
@@ -79,6 +81,32 @@
$groupedPhotos = collect($photos)->groupBy('category');
$mainPhotos = $groupedPhotos->filter(fn($_, $key) => strtolower($key) !== 'lainnya');
// Definisikan urutan yang diinginkan
$desiredOrder = [
'PETA LOKASI',
'GAMBAR SITUASI / SURAT UKUR',
'BLAD TATA KOTA',
'FOTO JAMINAN',
'DOKUMEN PENDUKUNG'
];
// Urutkan ulang $mainPhotos sesuai urutan yang diinginkan
$orderedMainPhotos = collect();
foreach ($desiredOrder as $category) {
if ($mainPhotos->has($category)) {
$orderedMainPhotos->put($category, $mainPhotos->get($category));
}
}
// Tambahkan kategori lain yang tidak ada dalam urutan yang diinginkan
foreach ($mainPhotos as $category => $photos) {
if (!in_array($category, $desiredOrder)) {
$orderedMainPhotos->put($category, $photos);
}
}
$mainPhotos = $orderedMainPhotos;
$otherPhotos = $groupedPhotos->get('lainnya', collect());
@endphp
@@ -86,6 +114,9 @@
<p class="text-gray-500">Tidak ada foto yang tersedia.</p>
@else
@foreach ($mainPhotos as $category => $photos)
@if($category=='DOKUMEN PENDUKUNG')
@php continue; @endphp
@endif
@php
$groupedBySubcategory = $photos->groupBy('sub');
@endphp
@@ -93,36 +124,117 @@
@foreach ($groupedBySubcategory as $subcategory => $subPhotos)
@if (count($subPhotos) > 0)
@foreach ($subPhotos->chunk(2) as $chunkedPhotos)
@if(!$loop->first)
<div class="page-break"></div>
@endif
<table width="100%" border="0"
style="align-content: center; text-align: center; margin-bottom: 20px">
@foreach ($chunkedPhotos as $item)
@php
$imagePath = storage_path('app/public/' . $item['path']);
// Logika fallback untuk path file
$originalPath = $item['path'];
$fallbackPath = null;
// Jika file asli tidak ditemukan, buat fallback path
if ($statusLpj == 1) {
$fullOriginalPath = storage_path('app/public/' . $originalPath);
if (!file_exists($fullOriginalPath)) {
// Ekstrak bagian akhir path (contoh: 251051/251051_2_2.png)
$pathParts = explode('/', $originalPath);
if (count($pathParts) >= 2) {
$lastTwoParts = array_slice($pathParts, -2);
$fallbackPath = 'surveyor/001/' . implode('/', $lastTwoParts);
}
}
}
// Tentukan path yang akan digunakan
$pathToUse = ($fallbackPath && $statusLpj == 1 && file_exists(storage_path('app/public/' . $fallbackPath)))
? $fallbackPath
: $originalPath;
$filePath =
$statusLpj == 1
? storage_path('app/public/' . $pathToUse)
: asset('storage/' . $pathToUse);
$extension = strtolower(pathinfo($pathToUse, PATHINFO_EXTENSION));
$isImage = in_array($extension, [
'jpg',
'jpeg',
'png',
'gif',
'bmp',
'svg',
'webp',
'tiff',
]);
$isPdf = $extension === 'pdf';
@endphp
<tr>
<td style="width: 100%; padding: 10px;" class="photo-item border">
<p style="font-weight: medium; font-size: 10px">{{ $category }} -
@isset($subcategory)
@if (trim($subcategory) !== '')
{{ $subcategory }} -
@if ($statusLpj == 1)
@if ($isImage && $filePath)
<tr>
<td style="width: 100%; padding: 10px; align-content: center; text-align: center"
class="border photo-item">
<p style="font-weight: medium; font-size: 10px">{{ $category }} -
@isset($subcategory)
@if (trim($subcategory) !== '')
{{ $subcategory }} -
@endif
@endisset
{{ $item['name'] ?? '' }}
</p>
<img src="{{ $filePath }}" alt="{{ $pathToUse }}" class="photo-image"
style="align-content: center; text-align: center; max-width: 100%; height: auto;">
</td>
</tr>
@endif
@elseif ($statusLpj != 1)
<tr>
<td style="width: 100%; padding: 10px; align-content: center; text-align: center"
class="border photo-item">
<p style="font-weight: medium; font-size: 10px">{{ $category }} -
@isset($subcategory)
@if (trim($subcategory) !== '')
{{ $subcategory }} -
@endif
@endisset
{{ $item['name'] ?? '' }}
</p>
@if ($statusLpj || file_exists(public_path('storage/' . $item['path'])))
@if ($isImage)
<img src="{{ $filePath }}" alt="{{ $item['path'] }}"
class="photo-image"
style="align-content: center; text-align: center;">
@elseif ($isPdf)
<a href="{{ $filePath }}" download="{{ basename($filePath) }}"
style="font-size:12px; color:#1a73e8; text-decoration: underline;">
⬇️ Unduh File PDF
</a>
@else
<a href="{{ $filePath }}" download="{{ basename($filePath) }}"
style="font-size:12px; color:#1a73e8; text-decoration: underline;">
⬇️ Unduh File
</a>
@endif
@endif
@isset($item['description'])
<p style="font-size:9px">{{ $item['description'] }}</p>
@endisset
{{ $item['name'] ?? '' }}
</p>
@if ($statusLpj || file_exists($imagePath))
<img src="{{ $imagePath }}" alt="{{ $item['path'] }}" class="photo-image">
@endif
@isset($item['description'])
<p style="font-size:9px">{{ $item['description'] }}</p>
@endisset
</td>
</tr>
</td>
</tr>
@endif
@endforeach
@if (count($chunkedPhotos) < 2)
<tr style="width: 100%;"></tr>
@endif
</table>
<div class="page-break"></div>
@endforeach
@endif
@endforeach
@@ -136,27 +248,78 @@
style="align-content: center; text-align: center; margin-bottom: 20px">
@foreach ($chunkedPhotos as $item)
@php
$imagePath = storage_path('app/public/' . $item['path']);
$filePath =
$statusLpj == 1
? storage_path('app/public/' . $item['path'])
: asset('storage/' . $item['path']);
$extension = strtolower(pathinfo($item['path'], PATHINFO_EXTENSION));
$isImage = in_array($extension, [
'jpg',
'jpeg',
'png',
'gif',
'bmp',
'svg',
'webp',
'tiff',
]);
$isPdf = $extension === 'pdf';
@endphp
<tr>
<td style="width: 100%; padding: 10px;" class="photo-item border">
<p style="font-weight: medium; font-size: 10px">Lainnya -
@isset($subcategory)
@if (trim($subcategory) !== '')
{{ $subcategory }} -
@if ($statusLpj == 1)
@if ($isImage && $filePath)
<tr>
<td style="width: 100%; padding: 10px; align-content: center; text-align: center"
class="border photo-item">
<p style="font-weight: medium; font-size: 10px">{{ $category }} -
@isset($subcategory)
@if (trim($subcategory) !== '')
{{ $subcategory }} -
@endif
@endisset
{{ $item['name'] ?? '' }}
</p>
<img src="{{ $filePath }}" alt="{{ $item['path'] }}" class="photo-image"
style="align-content: center; text-align: center; max-width: 100%; height: auto;">
</td>
</tr>
@endif
@elseif ($statusLpj != 1)
<tr>
<td style="width: 100%; padding: 10px;" class="border photo-item">
<p style="font-weight: medium; font-size: 10px">Lainnya -
@isset($subcategory)
@if (trim($subcategory) !== '')
{{ $subcategory }} -
@endif
@endisset
{{ $item['name'] ?? '' }}
</p>
@if ($statusLpj || file_exists(public_path('storage/' . $item['path'])))
@if ($isImage)
<img src="{{ $filePath }}" alt="{{ $item['path'] }}"
class="photo-image" style="text-align: center;">
@elseif ($isPdf)
<a href="{{ $filePath }}" download="{{ basename($filePath) }}"
style="font-size:12px; color:#1a73e8; text-decoration: underline;">
⬇️ Unduh File PDF
</a>
@else
<a href="{{ $filePath }}" download="{{ basename($filePath) }}"
style="font-size:12px; color:#1a73e8; text-decoration: underline;">
⬇️ Unduh File
</a>
@endif
@endif
@isset($item['description'])
<p style="font-size:9px">{{ $item['description'] }}</p>
@endisset
{{ $item['name'] ?? '' }}
</p>
@if ($statusLpj || file_exists($imagePath))
<img src="{{ $imagePath }}" alt="{{ $item['path'] }}" class="photo-image">
@endif
@isset($item['description'])
<p style="font-size:9px">{{ $item['description'] }}</p>
@endisset
</td>
</td>
</tr>
@endif
@endforeach
</tr>
@if (count($chunkedPhotos) < 2)
<tr style="width: 100%;"></tr>
@endif

View File

@@ -109,7 +109,7 @@
@php
$fotoTypes = ['upload_gs', 'foto_sentuh_tanahku', 'foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat'];
$fotoTypes = ['upload_gs','foto_sentuh_tanahku','foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat'];
$customLabels = [
'upload_gs' => 'Gambar Situasi',

View File

@@ -8,95 +8,101 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Laporan Penilai Jaminan</title>
<style>
* {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
}
@if ($statusLpj == 1)
<style>
* {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
}
/** Define the header rules **/
@page {
margin-top: 100px;
margin-bottom: 50px;
/** Define the header rules **/
@page {
margin-top: 100px;
margin-bottom: 50px;
}
#header {
position: fixed;
top: -80px;
left: 0;
right: 0;
height: 50px;
text-align: center;
padding-bottom: 10px;
}
.header-logo {
position: absolute;
left: 20px;
top: 10px;
max-height: 80px;
max-width: 150px;
}
.header-title {
margin-top: 20px;
}
#footer {
position: fixed;
bottom: -50px;
left: 0;
right: 0;
height: 50px;
text-align: center;
border-top: 1px solid #ddd;
padding-top: 10px;
font-size: 12px;
}
.page-number:after {
content: counter(page) " dari " counter(pages);
}
.content {
margin-top: 10px;
}
.page-break {
page-break-after: always;
}
#footer {
position: fixed;
bottom: -50px;
left: 0;
right: 0;
height: 50px;
text-align: left;
border-top: 1px solid #ddd;
padding-top: 10px;
}
body {
margin-top: 3cm;
margin-bottom: 120px;
position: relative;
z-index: 1;
}
.break-before {
page-break-before: always;
break-before: page;
}
.border {
border: 1px solid #000;
}
.no-break {
page-break-inside: avoid;
page-break-before: auto;
page-break-after: auto;
}
#header {
position: fixed;
top: -80px;
left: 0;
right: 0;
height: 50px;
text-align: center;
padding-bottom: 10px;
}
.header-logo {
position: absolute;
left: 20px;
top: 10px;
max-height: 80px;
max-width: 150px;
}
.header-title {
margin-top: 20px;
}
#footer {
position: fixed;
bottom: -50px;
left: 0;
right: 0;
height: 50px;
text-align: center;
border-top: 1px solid #ddd;
padding-top: 10px;
font-size: 12px;
}
.page-number:after {
content: counter(page) " dari " counter(pages);
}
.content {
margin-top: 10px;
}
.page-break {
page-break-after: always;
}
#footer {
position: fixed;
bottom: -50px;
left: 0;
right: 0;
height: 50px;
text-align: left;
border-top: 1px solid #ddd;
padding-top: 10px;
}
body {
margin-top: 3cm;
margin-bottom: 120px;
position: relative;
z-index: 1;
}
.border {
border: 1px solid #000;
}
.no-break {
page-break-inside: avoid;
page-break-before: auto;
page-break-after: auto;
}
</style>
</style>
@endif
</head>
@php
{{-- @php
$data = '';
foreach ($permohonan->documents as $dokumen) {
$data .= $dokumen->jenisJaminan->name . ', ';
@@ -126,7 +132,7 @@
$penilaiUser = User::where('id', $penilai->userPenilaiTeam->id)->first();
$data = rtrim($data, ', ');
@endphp
@endphp --}}
<body style="width: 90%; margin: auto;">

View File

@@ -44,26 +44,31 @@
</div>
</div>
<div class="flex gap-5 justify-end card-footer">
@if (Auth::user()->hasAnyRole(['senior-officer', 'surveyor', 'administrator', 'penilai']))
<button type="button" class="btn btn-primary" id="saveButton" onclick="saveLpjSederhanadanStandard()"
{{ $permohonan->status == 'proses-paparan' || ($permohonan->status == 'proses-laporan' && Auth::user()->hasAnyRole(['surveyor'])) ? 'disabled' : '' }}>
<i class="ki-filled ki-save-2"></i>
<span id="saveButtonText">Simpan</span>
</button>
@if (Auth::user()->hasAnyRole(['senior-officer', 'surveyor', 'administrator']))
<button type="button" class="btn btn-primary" id="saveButton" onclick="saveLpjSederhanadanStandard()" {{ $permohonan->status == 'proses-paparan' || $permohonan->status == 'proses-laporan' && Auth::user()->hasAnyRole(['surveyor']) ? 'disabled' : '' }}>
<i class="ki-filled ki-save-2"></i>
<span id="saveButtonText">Simpan</span>
</button>
@endif
@if (Auth::user()->hasAnyRole(['senior-officer', 'EO Appraisal', 'DD Appraisal', 'administrator']))
<a class="btn btn-info"
href="{{ route('penilai.lampiran') }}?permohonanId={{ $permohonan->id }}&documentId={{ request('documentId') }}&jaminanId={{ request('jaminanId') }}&statusLpj=1">
Lampiran Foto dan Dokumen
</a>
<a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => request('documentId'), 'jenis_jaminan_id' => request('jaminanId')]) }}"
class="btn btn-light">
<i class="ki-filled ki-printer"></i> Cetak Hasil Inspeksi
</a>
<a class="btn btn-success"
onclick="checkLaporan('{{ $permohonan->id }}', '{{ request('documentId') }}', {{ request('jaminanId') }}, 0)">
<i class="ki-filled ki-printer"></i> Cetak Laporan
</a>
@if($permohonan->is_mig)
<a class="btn btn-success" href="penilai/show-laporan-inspeksi/{{ $permohonan->id }}/{{ request('documentId') }}/{{ request('jaminanId') }}?type=detail-penilai">
<i class="ki-filled ki-eye"></i> Lihat Laporan dan Inspeksi
</a>
@else
<a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => request('documentId'), 'jenis_jaminan_id' => request('jaminanId')]) }}"
class="btn btn-light">
<i class="ki-filled ki-printer"></i> Cetak Hasil Inspeksi
</a>
<a class="btn btn-success"
onclick="checkLaporan('{{ $permohonan->id }}', '{{ request('documentId') }}', {{ request('jaminanId') }}, 0)">
<i class="ki-filled ki-printer"></i> Cetak Laporan
</a>
@endif
@endif
</div>
</form>

View File

@@ -99,28 +99,47 @@
}
@endphp
<tr>
<td style="padding: 2px; vertical-align: top;">User</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">{{ $penilai->user->name ?? '' }}</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Pemeriksa</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">{{ $senior_officer->name ?? '' }}</td>
<td style="padding: 2px; vertical-align: top;">{{ $senior_officer->name ?? $permohonan->approveSo->name ?? '' }}</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Menyetujui</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">{{ $senior_officer->name ?? '' }}</td>
<td style="padding: 2px; vertical-align: top;">{{ $senior_officer->name ?? $permohonan->approveSo->name ?? '' }}</td>
</tr>
@if($permohonan->is_mig)
<tr>
<td style="padding: 2px; vertical-align: top;">No Laporan</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ $permohonan_migrasi->mig_mst_lpj_nomor_lpj ?? '-' }}
</td>
</tr>
@endif
<tr>
<td style="padding: 2px; vertical-align: top;">Tanggal Laporan</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ formatTanggalIndonesia($tanggalLaporan) ?? '' }}</td>
{{ formatTanggalIndonesia($tanggalLaporan) ?? '' }}
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Waktu Penyelesaian</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ hitungHariKerja($permohonan->penilaian->tanggal_kunjungan, $tanggalLaporan) }}</td>
<td>
@if($permohonan->is_mig)
{{ hitungHariKerja($permohonan->penilaian->tanggal_kunjungan, \Carbon\Carbon::createFromFormat('d/m/Y H:i:s', $permohonan_migrasi->mig_mst_jaminan_tgl_oto)->format('Y-m-d H:i:s'))-1 }}
@else
{{ hitungHariKerja($permohonan->penilaian->tanggal_kunjungan, $tanggalLaporan) }}
@endif
</td>
</tr>
</table>
</td>
@@ -144,46 +163,86 @@
<td style=" padding: 2px; vertical-align: top;">{{ $permohonan->tujuanPenilaian->name ?? '' }}
</td>
</tr>
<tr>
<td style=" padding: 2px; vertical-align: top;">Terletak di</td>
<td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px; vertical-align: top;">{{ $alamat['address'] ?? '' }}</td>
</tr>
<tr>
<td style=" padding: 2px; vertical-align: top;">Desa/Kelurahan</td>
<td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px; vertical-align: top;">{{ $alamat['village_code'] ?? '' }}</td>
</tr>
<tr>
<td style=" padding: 2px; vertical-align: top;">Kecamatan</td>
<td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px; vertical-align: top;">{{ $alamat['district_code'] ?? '' }}</td>
</tr>
<tr>
<td style=" padding: 2px; vertical-align: top;">Kabupaten/Kota</td>
<td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px; vertical-align: top;">{{ $alamat['city_code'] ?? '' }}</td>
</tr>
<tr>
<td style=" padding: 2px; vertical-align: top;">Provinsi</td>
<td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px; vertical-align: top;">{{ $alamat['province_code'] ?? '' }}</td>
</tr>
@if ($permohonan->is_mig)
@php
$data = json_decode($inspeksi->mig_detail_data_jaminan, true);
@endphp
@foreach ($data as $key => $item)
@if ($key == 'address')
@php $key = 'Terletak di'; @endphp
@endif
@php
// Remove suffix _2, _3, _4, _5 from key
$key = preg_replace('/_([2-5])$/', '', $key);
@endphp
<tr>
<td style=" padding: 2px; vertical-align: top;">{{ $key }}</td>
<td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px; vertical-align: top;">{{ $item }}</td>
</tr>
@endforeach
@else
@if (@isset($dokumen))
@foreach ($dokumen->detail as $detail)
@if (!empty($detail->name) && isset($detail->details) && !empty($detail->dokumen_jaminan))
<tr>
<td width="25%"><strong>{{ $detail->name ?? '' }}</strong></td>
</tr>
@endif
@if (isset($detail->details) && $detail->name == 'LOKASI JAMINAN')
@php
$details = json_decode($detail->details, true);
@endphp
@include('lpj::component.detail-lokasi', ['details' => $details])
@endif
@endforeach
@endif
<tr>
<td style=" padding: 2px; vertical-align: top;">Terletak di</td>
<td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px; vertical-align: top;">{{ $alamat['address'] ?? '' }}</td>
</tr>
<tr>
<td style=" padding: 2px; vertical-align: top;">Desa/Kelurahan</td>
<td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px; vertical-align: top;">{{ $alamat['village_code'] ?? '' }}</td>
</tr>
<tr>
<td style=" padding: 2px; vertical-align: top;">Kecamatan</td>
<td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px; vertical-align: top;">{{ $alamat['district_code'] ?? '' }}</td>
</tr>
<tr>
<td style=" padding: 2px; vertical-align: top;">Kabupaten/Kota</td>
<td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px; vertical-align: top;">{{ $alamat['city_code'] ?? '' }}</td>
</tr>
<tr>
<td style=" padding: 2px; vertical-align: top;">Provinsi</td>
<td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px; vertical-align: top;">{{ $alamat['province_code'] ?? '' }}</td>
</tr>
@include('lpj::component.print-out-dokument')
@if (isset($forminspeksi['asset']['nomor_nib']))
@if (isset($forminspeksi['asset']['nomor_nib']))
<tr>
<td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px; vertical-align: top;">
{{ $forminspeksi['asset']['nomor_nib'] ?? '' }}</td>
</tr>
@endif
<tr>
<td style=" padding: 2px; vertical-align: top;">Atas Nama</td>
<td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px; vertical-align: top;">
{{ $forminspeksi['asset']['nomor_nib'] ?? '' }}</td>
<td style=" padding: 2px;">{{ $permohonan->debiture->name ?? '' }}</td>
</tr>
@endif
<tr>
<td style=" padding: 2px; vertical-align: top;">Atas Nama</td>
<td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px;">{{ $permohonan->debiture->name ?? '' }}</td>
</tr>
</table>
</td>
@@ -191,190 +250,238 @@
</table>
<div class="no-break">
@php $mig_detail_legalitas_jaminan = json_decode($inspeksi->mig_detail_legalitas_jaminan, true); @endphp
<table width="100%">
<tr>
<td style="width: 50%; border: 1px solid #000;">
STATUS KEPEMILIKAN, HUBUNGAN DAN PENGHUNI
</td>
<table>
<tr>
<td style="width: 50%; border: 1px solid #000;">
STATUS KEPEMILIKAN, HUBUNGAN DAN PENGHUNI
</td>
<td style="width: 50%; border: 1px solid #000;">
SARANA PELENGKAP DAN LINGKUNGAN
</td>
</tr>
<tr>
<td style="vertical-align: top;">
<table style="vertical-align: top;">
<tr>
@php
$cekHubDebitur = isset($forminspeksi['asset']['hub_cadeb']) &&
$forminspeksi['asset']['hub_cadeb'] === 'sesuai'
? 'sesuai'
: 'tidak sesuai';
$hubCadebDebitur = isset($forminspeksi['asset']['hub_cadeb'][$cekHubDebitur])
? $forminspeksi['asset']['hub_cadeb']['tidak sesuai']
: $forminspeksi['asset']['hub_cadeb']['sesuai'];
@endphp
<td style=" width:49%; padding: 2px; vertical-align: top;">Hubungan Pemilik Jaminan dengan Debitur</td>
<td style=" width:1%; padding: 2px; vertical-align: top;">:</td>
<td style=" width:50%; padding: 2px; vertical-align: top;">{{ $hubCadebDebitur ?? '' }}</td>
</tr>
<tr>
@php
$cekHub =
isset($forminspeksi['asset']['hub_cadeb_penghuni']) &&
$forminspeksi['asset']['hub_cadeb_penghuni'] === 'sesuai'
? 'sesuai'
: 'tidak sesuai';
$hubCadeb = isset($forminspeksi['asset']['hub_cadeb_penghuni'][$cekHub])
? $forminspeksi['asset']['hub_cadeb_penghuni']['tidak sesuai']
: $forminspeksi['asset']['hub_cadeb_penghuni']['sesuai'];
@endphp
<td style=" padding: 2px; vertical-align: top;">Hubungan Penghuni Jaminan dengan Debitur</td>
<td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px; vertical-align: top;">{{ $hubCadeb ?? '' }}</td>
</tr>
</table>
</td>
<td style="width: 50%; vertical-align: top;">
<table>
@php
$lingkungan = $forminspeksi['lingkungan'];
$fasilitas = $lingkungan['fasilitas_dekat_object'] ?? [];
$fasilitasInput = $lingkungan['fasilitas_dekat_object_input'] ?? [];
@endphp
<tr>
<td style="padding: 2px; vertical-align: top;">Jarak Jalan Utama</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">{{ $lingkungan['jarak_jalan_utama'] ?? '-' }} m
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Jalan Lingkungan</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">{{ $lingkungan['jalan_linkungan'] ?? '-' }} m
</td>
<tr>
<td style="padding: 2px; vertical-align: top;">Jarak CBD</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">{{ $lingkungan['jarak_cbd_point'] ?? '-' }} m
({{ $lingkungan['nama_cbd_point'] ?? '-' }})</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Lebar Perkerasan Jalan</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ $lingkungan['lebar_perkerasan_jalan'] ?? '-' }} m</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Perkerasan Jalan</td>
<td style="padding: 2px; vertical-align: top;">:
</td>
<td style="padding: 2px; vertical-align: top;">
{{ implode(', ', $lingkungan['perkerasan_jalan']['perkerasan_jalan'] ?? ['-']) }}
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Lalu Lintas</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ implode(', ', $lingkungan['lalu_lintas'] ?? ['-']) }}</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Golongan Masyarakat Sekitar</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ implode(', ', $lingkungan['gol_mas_sekitar'] ?? ['-']) }}
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Tingkat Keramaian</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ implode(', ', $lingkungan['tingkat_keramaian'] ?? ['-']) }}
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Terletak di Area</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ implode(', ', $lingkungan['terletak_diarea']['terletak_diarea'] ?? ['-']) }}
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Kondisi Bangunan Sekitar</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ $lingkungan['kondisi_bagunan_disekitar_lokasi'] ?? '-' }}
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Sifat Bangunan Sekitar</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ $lingkungan['sifat_bagunan_disekitar_lokasi'] ?? '-' }}</td>
</tr>
@if ($lingkungan['dekat_makam'] == 'ya')
<td style="width: 50%; border: 1px solid #000;">
SARANA PELENGKAP DAN LINGKUNGAN --
</td>
</tr>
<tr>
<td style="vertical-align: top;">
<table style="vertical-align: top;">
<tr>
<td style="padding: 2px; vertical-align: top;">Dekat Makam</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">Ya, Jarak
{{ $lingkungan['jarak_makam'] ?? '-' }} m
({{ $lingkungan['nama_makam'] ?? '-' }})
@php
$cekHubDebitur =
isset($forminspeksi['asset']['hub_cadeb']) &&
$forminspeksi['asset']['hub_cadeb'] === 'sesuai'
? 'sesuai'
: 'tidak sesuai';
$hubCadebDebitur = isset($forminspeksi['asset']['hub_cadeb'][$cekHubDebitur])
? $forminspeksi['asset']['hub_cadeb']['tidak sesuai']
: (isset($forminspeksi['asset']['hub_cadeb']['sesuai']) ? $forminspeksi['asset']['hub_cadeb']['sesuai'] : '');
@endphp
<td style=" width:49%; padding: 2px; vertical-align: top;">Hubungan Pemilik Jaminan dengan
Debitur</td>
<td style=" width:1%; padding: 2px; vertical-align: top;">:</td>
<td style=" width:50%; padding: 2px; vertical-align: top;">{{ $cekHubDebitur =='tidak sesuai' ? 'Lain-lain, ' : '' }} {{ $hubCadebDebitur ?? '' }}
</td>
</tr>
@endif
@if ($lingkungan['dekat_tps'] == 'ya')
<tr>
<td style="padding: 2px; vertical-align: top;">Dekat TPS</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">Ya, Jarak
{{ $lingkungan['jarak_tps'] ?? '-' }} m
({{ $lingkungan['nama_tps'] ?? '-' }})</td>
@php
$cekHub =
isset($forminspeksi['asset']['hub_cadeb_penghuni']) &&
$forminspeksi['asset']['hub_cadeb_penghuni'] === 'sesuai'
? 'sesuai'
: 'tidak sesuai';
$hubCadeb = isset($forminspeksi['asset']['hub_cadeb_penghuni'][$cekHub])
? $forminspeksi['asset']['hub_cadeb_penghuni']['tidak sesuai']
: (isset($forminspeksi['asset']['hub_cadeb_penghuni']['sesuai']) ? $forminspeksi['asset']['hub_cadeb_penghuni']['sesuai'] : '');
@endphp
<td style=" padding: 2px; vertical-align: top;">Hubungan Penghuni Jaminan dengan Debitur
</td>
<td style=" padding: 2px; vertical-align: top;">:</td>
<td style=" padding: 2px; vertical-align: top;">{{ $hubCadeb ?? '' }}</td>
</tr>
@endif
</table>
</td>
<tr>
<td style="padding: 2px; vertical-align: top;">Daerah</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ implode(', ', $lingkungan['merupakan_daerah'] ?? ['-']) }}
</td>
</tr>
@if (!empty($fasilitas))
<tr>
<td style="padding: 2px; vertical-align: top;">Fasilitas Dekat Objek</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
@foreach ($fasilitas as $fas)
{{ $fas }}
@if (isset($fasilitasInput[$fas]))
({{ $fasilitasInput[$fas] }})
@endif
@if (!$loop->last)
,
@endif
<td style="width: 50%; vertical-align: top;">
@if ($permohonan->is_mig)
@if(isset($mig_detail_legalitas_jaminan['SARANA PELENGKAP DAN LINGKUNGAN']))
<table>
@foreach ($mig_detail_legalitas_jaminan['SARANA PELENGKAP DAN LINGKUNGAN'] as $item)
<tr>
<td style="padding: 2px; vertical-align: top;">{{ $item['label'] }}</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">{{ ltrim($item['value'], ',') }}</td>
</tr>
@endforeach
</td>
</tr>
@endif
</table>
</td>
</tr>
</table>
</div>
</table>
@endif
@else
<table>
@php
$lingkungan = $forminspeksi['lingkungan'];
$fasilitas = $lingkungan['fasilitas_dekat_object'] ?? [];
$fasilitasInput = $lingkungan['fasilitas_dekat_object_input'] ?? [];
@endphp
<tr>
<td style="padding: 2px; vertical-align: top;">Jarak Jalan Utama</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ $lingkungan['jarak_jalan_utama'] ?? '-' }} m
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Jalan Lingkungan</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ $lingkungan['jalan_linkungan'] ?? '-' }}
m
</td>
<tr>
<td style="padding: 2px; vertical-align: top;">Jarak CBD</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ $lingkungan['jarak_cbd_point'] ?? '-' }}
m
({{ $lingkungan['nama_cbd_point'] ?? '-' }})</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Lebar Perkerasan Jalan</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ $lingkungan['lebar_perkerasan_jalan'] ?? '-' }} m</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Perkerasan Jalan</td>
<td style="padding: 2px; vertical-align: top;">:
</td>
<td style="padding: 2px; vertical-align: top;">
{{ implode(', ', $lingkungan['perkerasan_jalan']['perkerasan_jalan'] ?? ($lingkungan['perkerasan_jalan'] ?? ['-'])) }}
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Lalu Lintas</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ $lingkungan['lalu_lintas']
? (is_array($lingkungan['lalu_lintas'])
? implode(', ', $lingkungan['lalu_lintas'])
: $lingkungan['lalu_lintas'])
: '-' }}
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Golongan Masyarakat Sekitar</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ implode(', ', $lingkungan['gol_mas_sekitar'] ?? ($lingkungan['gol_mas_sekitar'] ?? ['-'])) }}
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Tingkat Keramaian</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ implode(', ', $lingkungan['tingkat_keramaian']['tingkat_keramaian'] ?? ($lingkungan['tingkat_keramaian'] ?? ['-'])) }}
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Terletak di Area</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ implode(', ', $lingkungan['terletak_diarea']['terletak_diarea'] ?? ($lingkungan['terletak_diarea'] ?? ['-'])) }}
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Kondisi Bangunan Sekitar</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ $lingkungan['kondisi_bagunan_disekitar_lokasi'] ?? '-' }}
</td>
</tr>
<tr>
<td style="padding: 2px; vertical-align: top;">Sifat Bangunan Sekitar</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ $lingkungan['sifat_bagunan_disekitar_lokasi'] ?? '-' }}</td>
</tr>
@if ($lingkungan['dekat_makam'] == 'ya')
<tr>
<td style="padding: 2px; vertical-align: top;">Dekat Makam</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">Ya, Jarak
{{ $lingkungan['jarak_makam'] ?? '-' }} m
({{ $lingkungan['nama_makam'] ?? '-' }})
</td>
</tr>
@endif
@if ($lingkungan['dekat_tps'] == 'ya')
<tr>
<td style="padding: 2px; vertical-align: top;">Dekat TPS</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">Ya, Jarak
{{ $lingkungan['jarak_tps'] ?? '-' }} m
({{ $lingkungan['nama_tps'] ?? '-' }})</td>
</tr>
@endif
<tr>
<td style="padding: 2px; vertical-align: top;">Daerah</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
{{ implode(', ', $lingkungan['merupakan_daerah'] ?? ['-']) }}
</td>
</tr>
@if (!empty($fasilitas))
<tr>
<td style="padding: 2px; vertical-align: top;">Fasilitas Dekat Objek</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">
@foreach ($fasilitas as $fas)
{{ $fas }}
@if (isset($fasilitasInput[$fas]))
({{ $fasilitasInput[$fas] }})
@endif
@if (!$loop->last)
,
@endif
@endforeach
</td>
</tr>
@endif
</table>
@endif
</td>
</tr>
</table>
</div>
@if ($permohonan->is_mig)
@if(isset($mig_detail_legalitas_jaminan['ANALISA TANAH DAN BANGUNAN']))
<table width="100%">
<tr>
<td colspan="3" style="border: 1px solid #000;">
ANALISA TANAH DAN BANGUNAN
</td>
</tr>
@foreach ($mig_detail_legalitas_jaminan['ANALISA TANAH DAN BANGUNAN'] as $item)
<tr>
<td style="padding: 2px; vertical-align: top;">{{ $item['label'] }}</td>
<td style="padding: 2px; vertical-align: top;">:</td>
<td style="padding: 2px; vertical-align: top;">{{ ltrim($item['value'], ',') }}</td>
</tr>
@endforeach
</table>
@endif
@endif
@foreach ($permohonan->documents as $dokumen)
@if ($dokumen->jenisJaminan)
@php
@@ -386,15 +493,16 @@
$kategoriUnik = array_unique($kategoriArray);
@endphp
@foreach ($kategoriUnik as $kategori)
@if ($kategori !== 'lingkungan')
@include('lpj::penilai.components.analisa.' . str_replace('-', '-', $kategori), [
'dokumen' => $dokumen,
])
@endif
@endforeach
@if(!$permohonan->is_mig)
@foreach ($kategoriUnik as $kategori)
@include(
'lpj::penilai.components.analisa.' . str_replace('-', '-', $kategori),
[
'dokumen' => $dokumen,
]
)
@endforeach
@endif
@endif
@endif
@endforeach
@@ -407,7 +515,9 @@
</td>
</tr>
</table>
@include('lpj::penilai.components.print-pembanding')
@if(isset($dataPembanding))
@include('lpj::penilai.components.print-pembanding')
@endif
</div>
<div class="no-break">
<table style="width: 100%">
@@ -421,11 +531,12 @@
<td style="padding: 8px; width: 100%;">
<table style="width: 100%; border-collapse: collapse;">
<tr>
<td colspan="3" style="padding: 8px; text-align: left;">
<td colspan="6" style="padding: 8px; text-align: left;">
<strong>a. Total Nilai Pasar Wajar</strong>
</td>
</tr>
@php
$totalNilaiPasarWajar = 0;
$labelNilai = [
'bangunan' => 'Luas Bangunan',
'tanah' => 'Luas Tanah',
@@ -437,76 +548,71 @@
'kapal' => 'Luas Kapal',
];
if (strcasecmp($jenisAset, 'RUKO/RUKAN') === 0) {
$labelNilai['bangunan'] = 'Luas Unit';
unset($labelNilai['tanah']);
}
$labelNilai['bangunan'] = 'Luas Unit';
unset($labelNilai['tanah']);
}
@endphp
@foreach ($labelNilai as $key => $label)
@if (isset($lpjData['luas_' . $key]))
<tr>
<td style="padding: 3px; text-align: right; width:30%; ">
{{ $label }} {{ $lpjData['luas_' . $key] ?? '' }} m<sup>2</sup>
</td>
<td style="padding: 3px; width:30%;">
<span style="padding-left:20px; padding-right: 20px">X</span> Rp
{{ $lpjData['nilai_' . $key . '_1'] ?? '' }}
</td>
<td style="padding: 3px; text-align: left; width:40%;">
<span style="padding-left:20px; padding-right: 20px"> = </span> Rp
{{ $lpjData['nilai_' . $key . '_2'] ?? '' }}
</td>
</tr>
@endif
@endforeach
@if (isset($lpjData['npw_tambahan']))
@foreach ($lpjData['npw_tambahan'] as $npw)
<tr>
<td style="padding: 3px; text-align: right;">
{{ $npw['name'] }} {{ $npw['luas'] }} m<sup>2</sup>
<td width="30%" style="padding: 3px; text-align: right;">
{{ $npw['name'] }}</sup>
</td>
<td style="padding: 3px;">
<span style="padding-left:20px; padding-right: 20px">X</span> Rp
{{ $npw['nilai_1'] }}
<td width="10%" style="padding: 3px; text-align: right;">
{{ $npw['luas'] }} m<sup>2</sup>
</td>
<td style="padding: 3px; text-align: left; width:40%">
<span style="padding-left:20px; padding-right: 20px"> = </span> Rp
{{ $npw['nilai_2'] }}
<td width="5%" style="padding: 3px; text-align: center;">X</td>
<td width="25%" style="padding: 3px; text-align:right">
{{ number_format($npw['nilai_1'], 0, ',', '.') ?? '' }}
</td>
<td width="5" style="padding: 3px; text-align: center;">
=
</td>
<td width="25%" style="padding: 3px; text-align: left; text-align: right;">
{{ number_format($npw['nilai_2'], 0, ',', '.') ?? '' }}
</td>
</tr>
@php $totalNilaiPasarWajar += $npw['nilai_2']; @endphp
@endforeach
@endif
<tr>
<td style="padding: 3px; font-weight: bold; width:30%;">Total Nilai Pasar Wajar</td>
<td style="padding: 3px; text-align: right; font-weight: bold; width:30%"></td>
<td style="padding: 3px; text-align: left; font-weight: bold; width: 40%;">
<span style="padding-left: 20px; padding-right: 20px;">=</span>
<td style="padding: 3px; text-align: right; font-weight: bold; width:10%;" colspan="4">Total Nilai Pasar Wajar</td>
<td style="padding: 3px; text-align: center; width:5%;font-weight: bold;" >=</td>
<td style="padding: 3px; text-align: right; font-weight: bold; width: 40%;">
<div style="display: inline-block; border-top: 1px solid black; padding-top: 3px;">
Rp {{ $lpjData['total_nilai_pasar_wajar'] ?? '' }}
{{ $lpjData['total_nilai_pasar_wajar'] ? number_format($lpjData['total_nilai_pasar_wajar'], 0, ',', '.') : number_format($totalNilaiPasarWajar, 0, ',', '.') ?? '' }}
</div>
</td>
</tr>
<tr>
<td colspan="3" style="padding: 8px; text-align: left; font-weight: bold;">
b. Total Nilai Likuidasi
</td>
</tr>
<tr>
<td style="padding: 3px; text-align: right; width:20%">
{{ $lpjData['likuidasi'] ?? '' }}%
</td>
<td style="padding: 3px; text-align: left; font-weight: bold; width:40%">
<span style="padding-left:20px; padding-right: 20px">X</span> Total Nilai Pasar Wajar
</td>
<td style="padding: 3px; text-align: left; width:40%;">
<span style="padding-left:20px; padding-right: 20px"> = </span> Rp
{{ $lpjData['likuidasi_nilai_2'] ?? '' }}
</td>
</tr>
<tr>
<td colspan="6" style="padding: 8px; text-align: left; font-weight: bold;">
b. Total Nilai Likuidasi
</td>
</tr>
<tr>
<td style="padding: 3px; text-align: right;" colspan="4">
{{ $lpjData['likuidasi'] ?? '' }}% <span style="padding-left:20px; padding-right: 20px">X</span> Total Nilai Pasar
Wajar
</td>
<td style="padding: 3px; text-align: center; font-weight: bold;">=</td>
<td style="padding: 3px; text-align: right;font-weight: bold;">{{ number_format($permohonan_migrasi->mig_mst_lpj_tot_nilai_likuidasi, 0, ',', '.') ?? '' }}
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
@if($permohonan->is_mig)
@include(
'lpj::penilai.components.analisa.informasi',
[
'dokumen' => $dokumen,
]
)
@endif
<div class="no-break">
<table style="width: 100%;">
<tr>
@@ -541,7 +647,7 @@
maupun ekstern</td>
</tr>
<tr>
@include('lpj::penilai.components.signature-approval')
@include('lpj::penilai.components.signature-approval',['laporan' => 'sederhana','npw' => $totalNilaiPasarWajar])
</tr>
</table>
</div>