Files
lpj/resources/views/component/kertas-kerja.blade.php
2024-12-17 07:39:20 +07:00

551 lines
20 KiB
PHP

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Penilaian Aset</title>
<style>
* {
box-sizing: border-box;
}
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 15px;
font-size: 12px;
line-height: 1.4;
}
.header-table,
.data-table {
width: 100%;
border-collapse: collapse;
margin-bottom: 15px;
}
.header-table td {
padding: 5px 8px;
border: 1px solid #ddd;
vertical-align: top;
}
.header-table .title {
font-weight: bold;
background-color: #f1f3f5;
width: 30%;
}
.header-table .value {
background-color: #f9f9f9;
width: 70%;
}
.data-table th,
.data-table td {
border: 1px solid #ddd;
padding: 5px 8px;
text-align: left;
word-wrap: break-word;
max-width: 150px;
overflow: hidden;
text-overflow: ellipsis;
}
.data-table th {
background-color: #f1f3f5;
text-align: center;
font-weight: bold;
}
.data-table tr:nth-child(even) {
background-color: #f9f9f9;
}
.text-center {
text-align: center;
}
@media print {
body {
font-size: 10px;
}
}
</style>
</head>
<body>
<table class="header-table">
<tr>
<td class="title">Pendekatan Pasar</td>
<td class="value">Metode Perbandingan Data Pasar</td>
</tr>
<tr>
<td class="title">Tanggal Penilaian</td>
<td class="value">{{ $tanggal_penilaian ?? '-' }}</td>
</tr>
<tr>
<td class="title">Nama Pemilik Aset</td>
<td class="value">-</td>
</tr>
<tr>
<td class="title">Nama Pemberi Tugas</td>
<td class="value">-</td>
</tr>
<tr>
<td class="title">Lokasi</td>
<td class="value">{{ $lokasi ?? '-' }}</td>
</tr>
<tr>
<td class="title">Nama Debitur</td>
<td class="value">-</td>
</tr>
</table>
<h4>A Informasi Umum
</h4>
<table class="data-table">
<thead>
<tr>
<th width="5">No.</th>
<th width="20">Uraian</th>
<th width="15">Objek Penilaian</th>
<th width="20">Data Pembanding 1</th>
<th width="20">Data Pembanding 2</th>
<th width="20">Data Pembanding 3</th>
</tr>
</thead>
<tbody>
@php
$dataform = json_decode($data->data_form, true) ?? [];
$dataPembanding = json_decode($data->data_pembanding, true) ?? [];
// print_r($dataform);
// echo $dataform;
@endphp
@php
function getNestedValue($data, $keyPath, $default = '-')
{
// Pecah path kunci menjadi array
$keys = explode('.', $keyPath);
// Mulai dari data awal
$value = $data;
// Telusuri setiap kunci
foreach ($keys as $key) {
// Cek apakah kunci ada di level saat ini
if (is_array($value) && array_key_exists($key, $value)) {
$value = $value[$key];
} else {
// Jika kunci tidak ditemukan, kembalikan default
return $default;
}
}
// Kembalikan nilai akhir atau default jika kosong
return $value ?? $default;
}
$rows = [
[
'label' => 'Jenis Aset',
'key' => 'asset.jenis_aset',
'default' => 'Rumah Tinggal',
'variants' => [
'sesuai' => 'Sesuai',
'tidak sesuai' => 'Tidak Sesuai',
],
],
[
'label' => 'Luas Tanah (M²)',
'key' => 'tanah.luas_tanah',
'default' => '-',
'variants' => [
'sesuai' => 'Sesuai',
'tidak sesuai' => 'Tidak Sesuai',
],
],
[
'label' => 'Luas Bangunan (M²)',
'key' => 'bangunan.luas_tanah_bangunan',
'default' => '-',
'variants' => [
'sesuai' => 'Sesuai',
'tidak sesuai' => 'Tidak Sesuai',
],
],
[
'label' => 'Penawaran Transaksi',
'key' => '-',
'default' => '-',
'variants' => [
'sesuai' => 'Sesuai',
'tidak sesuai' => 'Tidak Sesuai',
],
],
[
'label' => 'Tanggal Penawaran',
'key' => 'bangunan.luas_tanah_bangunan',
'default' => '-',
'variants' => [
'sesuai' => 'Sesuai',
'tidak sesuai' => 'Tidak Sesuai',
],
],
[
'label' => 'Discon',
'key' => 'bangunan.luas_tanah_bangunan',
'default' => '-',
'variants' => [
'sesuai' => 'Sesuai',
'tidak sesuai' => 'Tidak Sesuai',
],
],
[
'label' => 'Estimasi Harga',
'key' => 'bangunan.luas_tanah_bangunan',
'default' => '-',
'variants' => [
'sesuai' => 'Sesuai',
'tidak sesuai' => 'Tidak Sesuai',
],
],
[
'label' => 'Telepon Contact person',
'key' => 'bangunan.luas_tanah_bangunan',
'default' => '-',
'variants' => [
'sesuai' => 'Sesuai',
'tidak sesuai' => 'Tidak Sesuai',
],
],
[
'label' => 'Nama Nara Sumber',
'key' => 'bangunan.luas_tanah_bangunan',
'default' => '-',
'variants' => [
'sesuai' => 'Sesuai',
'tidak sesuai' => 'Tidak Sesuai',
],
],
[
'label' => 'Status Nara Sumber',
'key' => 'bangunan.luas_tanah_bangunan',
'default' => '-',
'variants' => [
'sesuai' => 'Sesuai',
'tidak sesuai' => 'Tidak Sesuai',
],
],
[
'label' => 'Waktu Penawaran',
'key' => 'bangunan.luas_tanah_bangunan',
'default' => '-',
'variants' => [
'sesuai' => 'Sesuai',
'tidak sesuai' => 'Tidak Sesuai',
],
],
[
'label' => 'Alamat',
'key' => 'bangunan.luas_tanah_bangunan',
'default' => '-',
'variants' => [
'sesuai' => 'Sesuai',
'tidak sesuai' => 'Tidak Sesuai',
],
],
[
'label' => 'Jalan',
'key' => 'bangunan.luas_tanah_bangunan',
'default' => '-',
'variants' => [
'sesuai' => 'Sesuai',
'tidak sesuai' => 'Tidak Sesuai',
],
],
[
'label' => 'Desa/Kelurahan',
'key' => 'bangunan.luas_tanah_bangunan',
'default' => '-',
'variants' => [
'sesuai' => 'Sesuai',
'tidak sesuai' => 'Tidak Sesuai',
],
],
[
'label' => 'Kecamatan',
'key' => 'bangunan.luas_tanah_bangunan',
'default' => '-',
'variants' => [
'sesuai' => 'Sesuai',
'tidak sesuai' => 'Tidak Sesuai',
],
],
[
'label' => 'Kota/Kabupaten',
'key' => 'bangunan.luas_tanah_bangunan',
'default' => '-',
'variants' => [
'sesuai' => 'Sesuai',
'tidak sesuai' => 'Tidak Sesuai',
],
],
[
'label' => 'Provinsi',
'key' => 'bangunan.luas_tanah_bangunan',
'default' => '-',
'variants' => [
'sesuai' => 'Sesuai',
'tidak sesuai' => 'Tidak Sesuai',
],
],
[
'label' => 'Jarak Pembanding dengan Objek',
'key' => 'bangunan.luas_tanah_bangunan',
'default' => '-',
'variants' => [
'sesuai' => 'Sesuai',
'tidak sesuai' => 'Tidak Sesuai',
],
],
[
'label' => 'Esitmasi Rangking Tanah',
'key' => 'bangunan.luas_tanah_bangunan',
'default' => '-',
'variants' => [
'sesuai' => 'Sesuai',
'tidak sesuai' => 'Tidak Sesuai',
],
],
[
'label' => 'Estimasi Ranking bangunan',
'key' => 'bangunan.luas_tanah_bangunan',
'default' => '-',
'variants' => [
'sesuai' => 'Sesuai',
'tidak sesuai' => 'Tidak Sesuai',
],
],
];
@endphp
@foreach ($rows as $index => $item)
<tr>
<td class="text-center">{{ $index + 1 }}</td>
<td>{{ $item['label'] }}</td>
<td>
@php
// Coba berbagai varian kunci
$objekValue = '-';
foreach (['sesuai', 'tidak sesuai'] as $variant) {
$fullKey = $item['key'] . '.' . $variant;
$objekValue = getNestedValue($dataform, $fullKey, $item['default']);
// Jika nilai ditemukan, hentikan pencarian
if ($objekValue !== $item['default']) {
break;
}
}
@endphp
{{ $objekValue }}
</td>
@for ($i = 0; $i < 3; $i++)
<td>
@php
$pembandingValue = '-';
// Pastikan data pembanding tersedia
if (isset($dataPembanding['data_pembanding'][$i])) {
$pembandingItem = $dataPembanding['data_pembanding'][$i];
// Mapping key berdasarkan label
switch ($item['label']) {
case 'Jenis Aset':
$pembandingValue = $pembandingItem['jenis_aset'] ?? '-';
break;
case 'Luas Tanah (M²)':
$pembandingValue = $pembandingItem['luas_tanah'] ?? '-';
break;
case 'Luas Bangunan (M²)':
$pembandingValue = $pembandingItem['luas_bangunan'] ?? '-';
break;
default:
$pembandingValue = '-';
}
}
@endphp
{{ $pembandingValue }}
</td>
@endfor
</tr>
@endforeach
</tbody>
</table>
<h4> B. Estimasi Nilai Tanah Pembanding dengan Teknik Penyisaan Tanah untuk mendapatkan per meter persegi estimasi
Nilai Tanah Pembanding</h4>
<table>
<table class="data-table">
<thead>
<tr>
<th width="5">No.</th>
<th width="20">Uraian</th>
<th width="15">Objek Penilaian</th>
<th width="20">Data Pembanding 1</th>
<th width="20">Data Pembanding 2</th>
<th width="20">Data Pembanding 3</th>
</tr>
</thead>
<tbody>
@php
$estimasi = [
[
'label' => 'Biaya Teknis Bangunan',
],
[
'label' => 'Estimasi Biaya Pengganti Baru Bangunan',
],
[
'label' => 'Estimasi Biaya Pengganti SPL (Rp)',
],
[
'label' => 'Penyusutan Fisik Banguan',
],
];
@endphp
@foreach ($estimasi as $index => $item)
<tr>
<td class="text-center">{{ $index + 1 }}</td>
<td>{{ $item['label'] }}</td>
<td>-</td>
@for ($i = 0; $i < 3; $i++)
<td>
@php
$pembandingValue = '-';
// Pastikan data pembanding tersedia
if (isset($dataPembanding['data_pembanding'][$i])) {
$pembandingItem = $dataPembanding['data_pembanding'][$i];
// Mapping key berdasarkan label
switch ($item['label']) {
case 'Jenis Aset':
$pembandingValue = $pembandingItem['jenis_aset'] ?? '-';
break;
case 'Luas Tanah (M²)':
$pembandingValue = $pembandingItem['luas_tanah'] ?? '-';
break;
case 'Luas Bangunan (M²)':
$pembandingValue = $pembandingItem['luas_bangunan'] ?? '-';
break;
default:
$pembandingValue = '-';
}
}
@endphp
{{ $pembandingValue }}
</td>
@endfor
</tr>
@endforeach
</tbody>
</table>
<h4>Peta Objek dan Pembanding
</h4>
@php
$fotoTypes = ['foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat'];
// echo $dataForm;
@endphp
@for ($i = 0; $i < count($fotoTypes); $i++)
<img src="{{ isset($dataform[$fotoTypes[$i]]) ? asset('storage/' . $dataform[$fotoTypes[$i]]) : '#' }}"
alt="{{ $fotoTypes[$i] }}" style="max-width: 40rem;">
@endfor
<h4>FOTO OBJEK DAN DATA PEMBANDING</h4>
@foreach ($dataPembanding['data_pembanding'] as $item)
<img src="{{ isset($item['foto_objek']) ? asset('storage/' . $item['foto_objek']) : '#' }}"
alt="Foto Objek" style="max-width: 20rem;">
<p style="text-center">Data Pembanding {{ $loop->iteration }}</p>
@endforeach
@php
$dataFoto = json_decode($data->foto_form, true);
@endphp
<h4>FOTO OBJEK</h4>
@php
$images = [];
// Rute Menuju Lokasi
foreach ($dataFoto['rute_menuju_lokasi'] ?? [] as $rute) {
$images[] = $rute['foto_rute'] ?? null;
}
// Objek Jaminan
foreach ($dataFoto['object_jaminan'] ?? [] as $objek) {
$images[] = $objek['foto_objek'] ?? null;
}
// Lingkungan
foreach ($dataFoto['lingkungan'] ?? [] as $lingkungan) {
$images[] = $lingkungan['foto_lingkungan'] ?? null;
}
// Lantai Unit
foreach ($dataFoto['foto_lantai_unit'] ?? [] as $lantai) {
$images[] = $lantai['foto_lantai_unit'] ?? null;
}
// Tambahan foto lainnya
$images[] = $dataFoto['foto_basement'] ?? null;
$images[] = $dataFoto['foto_gerbang'] ?? null;
$images[] = $dataFoto['pendamping'] ?? null;
// Filter null values
$images = array_filter($images);
@endphp
<div class="row">
@foreach ($images as $image)
<img src="{{ asset('storage/' . $image) }}" alt="Foto Survey"
style="
width: 250px;
height: 250px;
object-fit: cover;
margin: 10px;
"
onerror="this.src='{{ asset('default-image.png') }}'">
@endforeach
</div>
</body>
</html>
<script>
const data = @json($dataFoto);
console.log(data);
</script>