update kertas kerja, resume, dan lpj
This commit is contained in:
@@ -63,12 +63,12 @@ class PenilaiController extends Controller
|
||||
|
||||
$permohonan = Permohonan::with(['debiture.documents.jenisjaminan', 'region.teams.teamsUsers.user', 'penilaian'])->find($id);
|
||||
$jaminanId = $permohonan->debiture->documents->first()->jenis_jaminan_id;
|
||||
$inpeksi = Inspeksi::where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first();
|
||||
$inspeksi = Inspeksi::where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first();
|
||||
$forminspeksi = null;
|
||||
if ($inpeksi) {
|
||||
$forminspeksi = json_decode($inpeksi->data_form, true);
|
||||
if ($inspeksi) {
|
||||
$forminspeksi = json_decode($inspeksi->data_form, true);
|
||||
}
|
||||
return view('lpj::penilai.components.lpj-sederhana-standard', compact('permohonan', 'basicData', 'forminspeksi'));
|
||||
return view('lpj::penilai.components.lpj-sederhana-standard', compact('permohonan', 'basicData', 'forminspeksi', 'inspeksi'));
|
||||
}
|
||||
|
||||
public function standard($id)
|
||||
@@ -77,21 +77,22 @@ class PenilaiController extends Controller
|
||||
|
||||
$jaminanId = $permohonan->debiture->documents->first()->jenis_jaminan_id;
|
||||
|
||||
$inpeksi = Inspeksi::where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first();
|
||||
$inspeksi = Inspeksi::where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first();
|
||||
$forminspeksi = null;
|
||||
if ($inpeksi) {
|
||||
$forminspeksi = json_decode($inpeksi->data_form, true);
|
||||
if ($inspeksi) {
|
||||
$forminspeksi = json_decode($inspeksi->data_form, true);
|
||||
}
|
||||
|
||||
$data = new SurveyorController();
|
||||
$basicData = $data->getCommonData();
|
||||
|
||||
return view('lpj::penilai.components.lpj-sederhana-standard', compact('permohonan', 'forminspeksi', 'basicData'));
|
||||
return view('lpj::penilai.components.lpj-sederhana-standard', compact('permohonan', 'forminspeksi', 'basicData', 'inspeksi'));
|
||||
}
|
||||
|
||||
public function resume()
|
||||
public function resume($id)
|
||||
{
|
||||
return view('lpj::resume.index');
|
||||
$permohonan = Permohonan::with(['debiture.documents.jenisjaminan', 'region.teams.teamsUsers.user', 'penilaian'])->find($id);
|
||||
return view('lpj::penilai.components.resume', compact('permohonan'));
|
||||
}
|
||||
|
||||
public function memo()
|
||||
@@ -228,8 +229,8 @@ class PenilaiController extends Controller
|
||||
// $datas = json_decode($data->data_pembanding);
|
||||
// return response()->json(['data' =>$datas ]);
|
||||
|
||||
return view('lpj::component.kertas-kerja');
|
||||
// return Excel::download(new KertasKerjaExport($data), 'kertas-kerja.xlsx');
|
||||
// return view('lpj::component.kertas-kerja', compact('data'));
|
||||
return Excel::download(new KertasKerjaExport($data), 'kertas-kerja.xlsx');
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
<div class="card-body grid gap-5">
|
||||
|
||||
@php
|
||||
$informasiPembanding = isset($inspeksi->data_pembanding) ? json_decode($inspeksi->data_pembanding, true) : [];
|
||||
@endphp
|
||||
|
||||
@foreach ($informasiPembanding['data_pembanding'] as $key => $item)
|
||||
<div class="border border-gray-200">
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-5 p-5">
|
||||
<div class="form-label lg:form-label max-w-56 grid gap-2.5">
|
||||
<label class=" ">Pembanding {{ $key + 1 }}
|
||||
</label>
|
||||
<img src="{{ isset($item['foto_objek']) ? asset('storage/' . old('foto_objek', $item['foto_objek'])) : '#' }}"
|
||||
alt="Gambar foto_objek" style="width: 20rem;" class="mx-auto object-cover">
|
||||
</div>
|
||||
<div class="grid gap-2.5 w-full">
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Jenis Properti</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<span>{{ $item['jenis_aset'] }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Harga Penawara</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<span>{{ $item['harga_diskon'] }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Penjualan (HP)</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<span>{{ $item['harga'] }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Ditawarkan sejak</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<span>{{ $item['harga'] }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">LT</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<span>{{ $item['luas_tanah'] }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">LB</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<span>{{ $item['luas_bangunan'] }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Titik Koordinat</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<span>{{ $item['kordinat_lat'] }} , {{ $item['kordinat_lng'] }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@@ -132,8 +132,7 @@
|
||||
Informasi dan pembanding
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
</div>
|
||||
@include('lpj::penilai.components.informasi-pembanding')
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
254
resources/views/penilai/components/resume.blade.php
Normal file
254
resources/views/penilai/components/resume.blade.php
Normal file
@@ -0,0 +1,254 @@
|
||||
@extends('layouts.main')
|
||||
|
||||
@section('breadcrumbs')
|
||||
{{-- {{ Breadcrumbs::render(request()->route()->getName()) }}
|
||||
--}}
|
||||
Resume
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
@include('lpj::assetsku.includenya')
|
||||
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title uppercase">
|
||||
Data Jaminan
|
||||
</h3>
|
||||
<div class="flex items-center gap-2">
|
||||
<a href="{{ route('penilai.show', ['id' => $permohonan->id]) }}" class="btn btn-xs btn-info">
|
||||
<i class="ki-filled ki-exit-left"></i> Back
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body grid gap-5 grid-cols-2">
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Nama Debitur</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
@if (isset($permohonan->debiture))
|
||||
<p class="text-2sm text-gray-700">{{ $permohonan->debiture->name }}</p>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Alamat Object</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
@foreach ($permohonan->debiture->documents as $dokumen)
|
||||
<span class="text-2sm text-gray-700">
|
||||
{{ formatAlamat($dokumen->pemilik) }}
|
||||
</span>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Nomor Registrasi</label>
|
||||
<div class="flex flex-wrap items-base line w-full">
|
||||
<p class="text-2sm text-gray-700">{{ $permohonan->nomor_registrasi }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Cab/Direktorat</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
@if (isset($permohonan->branch))
|
||||
<p class="text-2sm text-gray-700">{{ $permohonan->branch->name }}</p>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Nomor Laporan</label>
|
||||
<div class="flex flex-wrap items-base line w-full">
|
||||
<p class="text-2sm text-gray-700">{{ $permohonan->nomor_registrasi }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">AO</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
@if (isset($permohonan->user))
|
||||
<p class="text-2sm text-gray-700">{{ $permohonan->user->name }}</p>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title uppercase">
|
||||
faktor
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body grid gap-5">
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Faktor Positif</label>
|
||||
<div id="fakta-positif-container" class="flex flex-wrap items-baseline w-full">
|
||||
@if (!empty($forminspeksi['fakta']['fakta_positif']))
|
||||
@foreach ($forminspeksi['fakta']['fakta_positif'] as $index => $positif)
|
||||
<div class="fakta_positif flex items-center gap-2 mt-2 textarea-group w-full">
|
||||
<textarea class="textarea mt-2" name="fakta_positif[]" rows="3">{{ old("fakta_positif.$index", $positif) }}</textarea>
|
||||
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
|
||||
<i class="ki-outline ki-trash"></i>
|
||||
</button>
|
||||
</div>
|
||||
@endforeach
|
||||
@else
|
||||
<div class="fakta_positif flex items-center gap-2 mt-2 textarea-group w-full">
|
||||
<textarea class="textarea mt-2" name="fakta_positif[]" rows="3">{{ old('fakta_positif.0', '') }}</textarea>
|
||||
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
|
||||
<i class="ki-outline ki-trash"></i>
|
||||
</button>
|
||||
</div>
|
||||
@endif
|
||||
<button type="button" class="btn btn-primary btn-sm mt-5"
|
||||
onclick="addClonableItem('fakta-positif-container', 'fakta_positif')">
|
||||
<i class="ki-outline ki-plus"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">Faktor Negatif</label>
|
||||
<div id="fakta-negatif-container" class="flex flex-wrap items-baseline w-full">
|
||||
@if (!empty($forminspeksi['fakta']['fakta_negatif']))
|
||||
@foreach ($forminspeksi['fakta']['fakta_negatif'] as $index => $negatif)
|
||||
<div class="fakta_negatif flex items-center gap-2 mt-2 textarea-group w-full">
|
||||
<textarea class="textarea mt-2" name="fakta_negatif[]" rows="3">{{ old("fakta_negatif.$index", $negatif) }}</textarea>
|
||||
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
|
||||
<i class="ki-outline ki-trash"></i>
|
||||
</button>
|
||||
</div>
|
||||
@endforeach
|
||||
@else
|
||||
<div class="fakta_negatif flex items-center gap-2 mt-2 textarea-group w-full">
|
||||
<textarea class="textarea mt-2" name="fakta_negatif[]" rows="3">{{ old('fakta_negatif.0', $forminspeksi['fakta']['fakta_negatif'][0] ?? '') }}</textarea>
|
||||
<button class="btn btn-danger btn-sm remove-btn" type="button" style="display: none;">
|
||||
<i class="ki-outline ki-trash"></i>
|
||||
</button>
|
||||
<em id="error-fakta_negatif" class="alert text-danger text-sm"></em>
|
||||
</div>
|
||||
@endif
|
||||
<button type="button" class="btn btn-primary btn-sm mt-5"
|
||||
onclick="addClonableItem('fakta-negatif-container', 'fakta_negatif')">
|
||||
<i class="ki-outline ki-plus"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card min-w-full">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title uppercase">
|
||||
KESIMPULAN NILAI PASAR WAJAR
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body grid gap-5">
|
||||
|
||||
<div class="gird gap-5">
|
||||
<label class="form-label max-w-56">1. SESUAI FISIK</label>
|
||||
<div class="flex flex-wrap items-baseline w-full mt-5">
|
||||
<table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-center">Sertipikat</th>
|
||||
<th class="text-center">Luas Tanah</th>
|
||||
<th class="text-center">Luas Bangunan</th>
|
||||
<th class="text-center">Nilai Pasar Wajar</th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="text-center">
|
||||
<input type="text" name="luas_bangunan_pembanding[]"
|
||||
class="input number-format">
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<input type="text" name="luas_bangunan_pembanding[]"
|
||||
class="input number-format">
|
||||
</td>
|
||||
<td class="text-center"> <input type="text" name="luas_bangunan_pembanding[]"
|
||||
class="input number-format"></td>
|
||||
<td class="text-center">
|
||||
<input type="text" name="luas_bangunan_pembanding[]"
|
||||
class="input number-format">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="gird gap-5">
|
||||
<label class="form-label max-w-56">2. SESUAI IMB</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
|
||||
<table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm mt-5">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-center">Sertipikat</th>
|
||||
<th class="text-center">Luas Tanah</th>
|
||||
<th class="text-center">Luas Bangunan</th>
|
||||
<th class="text-center">Nilai Pasar Wajar</th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="text-center">
|
||||
<input type="text" name="luas_bangunan_pembanding[]"
|
||||
class="input number-format">
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<input type="text" name="luas_bangunan_pembanding[]"
|
||||
class="input number-format">
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<input type="text" name="luas_bangunan_pembanding[]"
|
||||
class="input number-format">
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<input type="text" name="luas_bangunan_pembanding[]"
|
||||
class="input number-format">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div >
|
||||
<button type="button" class="btn btn-primary btn-sm mt-5">
|
||||
<i class="ki-outline ki-plus"></i>
|
||||
Kesimpulan Nilai
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div id="kesimpulan"></div>
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5" style="margin-top: 20px">
|
||||
|
||||
<label class="form-label lg:form-label max-w-56 ">Catatan yang Perlu Diperhatikan
|
||||
</label>
|
||||
<div class="input-group w-full flex gap-2">
|
||||
<textarea name="keterangan" class="textarea mt-2" placeholder="Masukkan catatan penting" rows="3">{{ old('keterangan', $forminspeksi['fakta']['keterangan'] ?? '') }}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-footer">
|
||||
|
||||
<button type="submit" class="btn btn-success">Save</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@endsection
|
||||
@include('lpj::surveyor.js.utils')
|
||||
@@ -290,7 +290,8 @@
|
||||
|
||||
<div class="flex justify-center items-center gap-2">
|
||||
<input type="file" name="" id="" class="file-input">
|
||||
<button class="btn btn-outline btn-success">Upload</button>
|
||||
<button type="button" class="btn btn-outline btn-success"
|
||||
onclick="uploadKertasKerja()">Upload</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group flex items-baseline flex-wrap">
|
||||
@@ -306,8 +307,8 @@
|
||||
@endforeach
|
||||
@if ($jenisJaminanId)
|
||||
<a class="btn btn-outline btn-primary w-full"
|
||||
href="{{ route('penilai.export.kertas-kerja', ['id' => $permohonan->id, 'jaminanId' => $jenisJaminanId]) }}">
|
||||
Export Kertas Kerja
|
||||
href="{{ route('penilai.export.kertas-kerja', ['id' => $permohonan->id, 'jaminanId' => $jenisJaminanId]) }}">
|
||||
Export Kertas Kerja
|
||||
</a>
|
||||
@else
|
||||
<p class="text-red-500">Tidak ada dokumen yang memiliki jenis jaminan.</p>
|
||||
@@ -340,4 +341,26 @@
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function uploadKertasKerja() {
|
||||
showLoadingSwal('Mengirim data ke server...');
|
||||
|
||||
Swal.fire({
|
||||
title: 'Berhasil!',
|
||||
text: response.message,
|
||||
icon: 'success',
|
||||
timer: 2000,
|
||||
timerProgressBar: true,
|
||||
didOpen: () => {
|
||||
Swal.showLoading()
|
||||
},
|
||||
willClose: () => {
|
||||
hideLoadingSwal();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
@include('lpj::surveyor.js.utils')
|
||||
|
||||
@@ -544,7 +544,7 @@ Route::middleware(['auth'])->group(function () {
|
||||
|
||||
Route::get('sederhana/{id}', [PenilaiController::class, 'sederhana'])->name('sederhana');
|
||||
Route::get('standard/{id}', [PenilaiController::class, 'standard'])->name('standard');
|
||||
Route::get('resume/{id}', [PenilaiController::class, 'standard'])->name('resume');
|
||||
Route::get('resume/{id}', [PenilaiController::class, 'resume'])->name('resume');
|
||||
Route::get('memo/{id}', [PenilaiController::class, 'standard'])->name('memo');
|
||||
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user