update kertas kerja, resume, dan lpj
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
@@ -8,6 +9,7 @@
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: Arial, sans-serif;
|
||||
margin: 0;
|
||||
@@ -16,7 +18,8 @@
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.header-table, .data-table {
|
||||
.header-table,
|
||||
.data-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-bottom: 15px;
|
||||
@@ -39,7 +42,8 @@
|
||||
width: 70%;
|
||||
}
|
||||
|
||||
.data-table th, .data-table td {
|
||||
.data-table th,
|
||||
.data-table td {
|
||||
border: 1px solid #ddd;
|
||||
padding: 5px 8px;
|
||||
text-align: left;
|
||||
@@ -70,7 +74,10 @@
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
|
||||
<table class="header-table">
|
||||
<tr>
|
||||
<td class="title">Pendekatan Pasar</td>
|
||||
@@ -82,11 +89,11 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">Nama Pemilik Aset</td>
|
||||
<td class="value">PT ABC</td>
|
||||
<td class="value">-</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">Nama Pemberi Tugas</td>
|
||||
<td class="value">PT ABC</td>
|
||||
<td class="value">-</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">Lokasi</td>
|
||||
@@ -94,10 +101,12 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title">Nama Debitur</td>
|
||||
<td class="value">Bapak Saiful</td>
|
||||
<td class="value">-</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h4>A Informasi Umum
|
||||
</h4>
|
||||
<table class="data-table">
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -111,112 +120,431 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
@php
|
||||
$dataform = json_decode($data->data_form) ?? [];
|
||||
$dataPembanding = json_decode($data->data_pembanding) ?? [];
|
||||
$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' => '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'
|
||||
]
|
||||
]
|
||||
];
|
||||
@endphp
|
||||
|
||||
@foreach($rows as $index => $item)
|
||||
<tr>
|
||||
<td class="text-center">{{ $index + 1 }}</td>
|
||||
<td>{{ $item['label'] }}</td>
|
||||
|
||||
{{-- Objek Penilaian --}}
|
||||
<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>
|
||||
function getNestedValue($data, $keyPath, $default = '-')
|
||||
{
|
||||
// Pecah path kunci menjadi array
|
||||
$keys = explode('.', $keyPath);
|
||||
|
||||
{{-- Data Pembanding --}}
|
||||
@for($i = 0; $i < 3; $i++)
|
||||
<td>
|
||||
@php
|
||||
// Coba berbagai varian kunci untuk data pembanding
|
||||
$pembandingValue = '-';
|
||||
foreach (['sesuai', 'tidak sesuai'] as $variant) {
|
||||
$fullKey = $item['key'] . '.' . $variant;
|
||||
$pembandingValue = getNestedValue($dataPembanding[$i] ?? [], $fullKey, '-');
|
||||
|
||||
// Jika nilai ditemukan, hentikan pencarian
|
||||
if ($pembandingValue !== '-') {
|
||||
break;
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
@endphp
|
||||
{{ $pembandingValue }}
|
||||
</td>
|
||||
@endfor
|
||||
</tr>
|
||||
@endforeach
|
||||
|
||||
// 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>
|
||||
|
||||
|
||||
<!-- Tambahkan baris lainnya dengan cara yang sama -->
|
||||
<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>
|
||||
|
||||
Reference in New Issue
Block a user