Initial Commit
This commit is contained in:
547
resources/views/component/kertas-kerja.blade.php
Normal file
547
resources/views/component/kertas-kerja.blade.php
Normal file
@@ -0,0 +1,547 @@
|
||||
<!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(isset($data->data_form) ? $data->data_form : '', true) ?? [];
|
||||
$dataPembanding = json_decode(isset($data->data_pembanding) ? $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'];
|
||||
@endphp
|
||||
|
||||
|
||||
<div class="grid grid-cols-4 gap-4">
|
||||
@forelse ($fotoTypes as $type)
|
||||
<div class="text-center">
|
||||
@php
|
||||
$imagePath = $dataform[$type];
|
||||
@endphp
|
||||
|
||||
@if ($imagePath && Storage::exists($imagePath))
|
||||
<img
|
||||
src="{{ asset('storage/' . $imagePath) }}"
|
||||
alt="{{ $type }}"
|
||||
class="max-w-full h-auto mx-auto"
|
||||
onerror="this.src='{{ asset('default-image.png') }}'"
|
||||
>
|
||||
<p class="mt-2 text-sm">{{ Str::title(str_replace('_', ' ', $type)) }}</p>
|
||||
@else
|
||||
<div class="bg-gray-200 p-4 text-center">
|
||||
<p>Tidak ada gambar</p>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
@empty
|
||||
<p>Tidak ada tipe foto yang tersedia</p>
|
||||
@endforelse
|
||||
</div>
|
||||
|
||||
<h4 class="mt-6">FOTO OBJEK DAN DATA PEMBANDING</h4>
|
||||
|
||||
<div class="grid grid-cols-4 gap-4">
|
||||
@forelse ($dataPembanding['data_pembanding'] ?? [] as $index => $item)
|
||||
<div class="text-center">
|
||||
@php
|
||||
$fotoObjek = $item['foto_objek'];
|
||||
@endphp
|
||||
|
||||
@if ($fotoObjek && Storage::exists($fotoObjek))
|
||||
<img
|
||||
src="{{ asset('storage/' . $fotoObjek) }}"
|
||||
alt="Foto Objek Pembanding {{ $loop->iteration }}"
|
||||
class="max-w-full h-auto mx-auto"
|
||||
onerror="this.src='{{ asset('default-image.png') }}'"
|
||||
>
|
||||
<p class="mt-2 text-sm">Data Pembanding {{ $loop->iteration }}</p>
|
||||
@else
|
||||
<div class="bg-gray-200 p-4 text-center">
|
||||
<p>Tidak ada gambar pembanding</p>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
@empty
|
||||
<p class="col-span-4">Tidak ada data pembanding</p>
|
||||
@endforelse
|
||||
</div>
|
||||
|
||||
<h4 class="mt-6">FOTO OBJEK</h4>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
<script>
|
||||
const data = @json($dataform);
|
||||
console.log(data);
|
||||
|
||||
|
||||
</script>
|
||||
Reference in New Issue
Block a user