Files
lpj/resources/views/surveyor/components/inspeksi.blade.php
2024-11-12 07:13:33 +07:00

371 lines
17 KiB
PHP

@extends('layouts.main')
{{-- @section('breadcrumbs')
{{ Breadcrumbs::render(request()->route()->getName()) }}
@endsection --}}
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<div class="card min-w-full">
<div class="card min-w-full">
<div class="card-header">
<h3 class="card-title">
Data Jaminan
</h3>
<div class="flex items-center gap-2">
<a href="{{ route('surveyor.show', ['id' => request('inspeksi')]) }}?form=inspeksi"
class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Back
</a>
</div>
</div>
@php
$jenisJaminanData = null;
@endphp
<div data-accordion="true">
@foreach ($permohonan->debiture->documents as $dokumen)
@php
$jenisJaminanData = $dokumen->jenisJaminan->name ?? '';
@endphp
<div class="accordion-item [&:not(:last-child)]:border-b border-b-gray-200"
data-accordion-item="true" id="accordion_1_item_1">
<button class="accordion-toggle py-4 group mx-8"
data-accordion-toggle="#accordion_detail_jaminan_{{ $loop->index }}">
<span class="text-base text-gray-900 font-medium">
Jaminan {{ $loop->index + 1 }}
</span>
<i class="ki-outline ki-plus text-gray-600 text-2sm accordion-active:hidden block">
</i>
<i class="ki-outline ki-minus text-gray-600 text-2sm accordion-active:block hidden">
</i>
</button>
<div class="accordion-content hidden" id="accordion_detail_jaminan_{{ $loop->index }}">
<div class="card-body lg:py-7.5 grid grid-cols-2">
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Pemilik Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $dokumen->pemilik->name ?? '' }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Jenis Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $dokumen->jenisJaminan->name ?? '' }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Hubungan Pemilik Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $dokumen->pemilik->hubungan_pemilik->name ?? '' }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Alamat Pemilik Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $dokumen->pemilik->address ?? '' }},
<br> {{ $dokumen->pemilik->village->name ?? '' }},
{{ $dokumen->pemilik->district->name ?? '' }},
{{ $dokumen->pemilik->city->name ?? '' }},
{{ $dokumen->pemilik->province->name ?? '' }} -
{{ $dokumen->pemilik->village->postal_code ?? '' }}
</span>
</div>
</div>
<div class="card-table scrollable-x-auto pb-3">
<table class="table align-middle text-sm text-gray-500">
@foreach ($dokumen->detail as $detail)
<tr>
<td class="py-2 text-gray-600 font-normal max-w-[100px]">
{{ $loop->index + 1 }}. {{ $detail->jenisLegalitasJaminan->name }}
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
{{ $detail->name ?? '' }}
</td>
</tr>
<tr>
<td class="py-3 max-w-[100px]">
Dokumen Jaminan
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
@if (isset($detail->dokumen_jaminan))
<a href="{{ route('debitur.jaminan.download', ['id' => $permohonan->debiture->id, 'dokumen' => $detail->id]) }}"
class="badge badge-sm badge-outline mt-2">{{ basename($detail->dokumen_jaminan) }}
<i class="ki-filled ki-cloud-download"></i></a>
@endif
</td>
</tr>
<tr>
<td class="py-3 max-w-[100px]">
Keterangan
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
{{ $detail->keterangan ?? '' }}
</td>
</tr>
@endforeach
</table>
</div>
</div>
</div>
@endforeach
</div>
</div>
</div>
{{-- <div class="card">
<div class="card-body"> --}}
<form id="formInspeksi" method="POST" enctype="multipart/form-data" class="grid gap-5">
@if (isset($analisa->id))
<input type="hidden" name="id" value="{{ $analisa->id }}">
@method('PUT')
@endif
@csrf
<input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}">
<input type="hidden" name="jenis_jaminan_id" value="{{ request('jenis_jaminan') }}">
@php
$analisaType = 'unknown';
$data = [
'tanah' => 'Tanah',
'unit_rumah' => 'Rumah Tinggal / Ruko (Unit) / Apartemen (Unit) / Gudang',
'tanah_bangunan' => 'Kawasan Industrial / Komersil / Residensial - Perumahan',
'unit_gedung' => 'Gedung Apartement / Kantor / Condotel (Strata Title)',
'tanah_bangunan' => 'Mall',
];
if (isset($analisa->id)) {
$analisaType = $analisa->type;
} else {
foreach ($data as $key => $value) {
if (
isset($jenisJaminanData) &&
trim(strtolower($jenisJaminanData)) === trim(strtolower($value))
) {
$analisaType = $key;
break;
}
}
}
if ($analisaType === 'tanah') {
$analisaType = 'tanah_bangunan';
}
if ($analisaType === 'unit_rumah' || $analisaType === 'unit_gedung') {
$analisaType = 'unit';
}
@endphp
<input type="hidden" name="action" value="{{ $analisaType }}">
<input type="hidden" name="type" value="{{ $analisaType }}">
@if ($analisaType == 'tanah_bangunan')
@include('lpj::surveyor.components.tanah')
@elseif($analisaType == 'unit')
@include('lpj::surveyor.components.apartemen-kantor')
@elseif($analisaType == 'alat-berat')
@include('lpj::surveyor.components.alat-berat')
@elseif($analisaType == 'mesin')
@include('lpj::surveyor.components.mesin')
@elseif($analisaType == 'kapal')
@include('lpj::surveyor.components.kapal')
@elseif($analisaType == 'kendaraan')
@include('lpj::surveyor.components.kendaraan')
@elseif($analisaType == 'pesawat')
@include('lpj::surveyor.components.pesawat')
@endif
@if ($analisaType == 'tanah_bangunan')
@include('lpj::surveyor.components.bangunan')
@endif
@if ($analisaType != 'mesin' && $analisaType != 'kapal' && $analisaType != 'kendaraan' && $analisaType != 'pesawat')
@include('lpj::surveyor.components.lingkungan')
@endif
@include('lpj::surveyor.components.fakta')
<div class="flex justify-end gap-2" style="margin-right: 20px; margin-top: 20px">
<button type="button" class="btn btn-success" onclick="submitData()">
Save
</button>
</div>
</form>
{{-- </div>
</div> --}}
</div>
<div class="modal fade" data-modal="true" id="modal" data-backdrop="static" data-keyboard="false">
<div class="modal-content">
<div class="modal-header">
<h3 class="modal-title">Kunjungan</h3>
<button class="btn btn-xs btn-icon btn-light" data-modal-dismiss="true">
<i class="ki-outline ki-cross"></i>
</button>
</div>
<div class="modal-body" id="screenshotContainer" style="height: 500px">
<iframe id="mapFrameGis" style="width: 100%; height: 100%;"></iframe>
</div>
<div class="modal-footer flex justify-end">
<button id="takeScreenshot" class="btn btn-success">Take Screenshot</button>
</div>
</div>
</div>
@endsection
@push('scripts')
<script>
function getMap(params) {
const iframe = document.getElementById('mapFrameGis');
const maps = [
'https://gistaru.atrbpn.go.id/rtronline/',
'https://bhumi.atrbpn.go.id/peta'
];
iframe.src = maps[params];
}
function openModal(type) {
const modalGistaru = document.getElementById('gistaru');
const modalBumi = document.getElementById('bumi');
if (type === 'bumi') {
modalBumi.setAttribute('data-modal-toggle', '#modal');
} else if (type === 'gistaru') {
modalGistaru.setAttribute('data-modal-toggle', '#modal');
}
getMap(type === 'gistaru' ? 0 : 1);
}
document.getElementById('takeScreenshot').addEventListener('click', () => {
const screenshotContainer = document.getElementById('screenshotContainer');
const canvas = document.createElement('canvas');
canvas.width = screenshotContainer.offsetWidth;
canvas.height = screenshotContainer.offsetHeight;
const ctx = canvas.getContext('2d');
ctx.drawImage(document.getElementById('mapFrame'), 0, 0, canvas.width, canvas.height);
const dataURL = canvas.toDataURL('image/jpeg');
// Tampilkan gambar di atas input
const inputRute = document.getElementById('inputRute');
const img = document.createElement('img');
img.src = dataURL;
img.style.maxWidth = '100%';
img.style.maxHeight = '200px';
inputRute.parentNode.insertBefore(img, inputRute);
// Isi input dengan data URL gambar
inputRute.value = dataURL;
});
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js"></script>
<script>
// Fungsi untuk mengambil lokasi pengguna
function getUserLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition, showError);
} else {
alert("Geolocation tidak didukung oleh browser ini.");
}
}
// Fungsi untuk menampilkan posisi
function showPosition(position) {
var lat = position.coords.latitude;
var lng = position.coords.longitude;
document.getElementById('lat').value = lat;
document.getElementById('lng').value = lng;
var mapUrl = `https://www.google.com/maps?q=${lat},${lng}&z=15&output=embed`;
document.getElementById('mapFrame').src = mapUrl;
}
// Fungsi untuk menangani error jika lokasi tidak bisa diambil
function showError(error) {
switch (error.code) {
case error.PERMISSION_DENIED:
alert("Pengguna menolak permintaan geolokasi.");
break;
case error.POSITION_UNAVAILABLE:
alert("Informasi lokasi tidak tersedia.");
break;
case error.TIMEOUT:
alert("Permintaan lokasi pengguna berakhir.");
break;
case error.UNKNOWN_ERROR:
alert("Terjadi kesalahan yang tidak diketahui.");
break;
}
}
window.onload = getUserLocation;
</script>
<script type="text/javascript">
function toggleTidakSesuai(field, inputId) {
const selectedValue = $(`[name="${field}"]:checked, [name="${field}"]:checked`).val();
const inputField = $(`#${inputId}`);
if (selectedValue === 'tidak sesuai' || selectedValue === 'lainnya') {
inputField.show();
} else {
inputField.hide().val('');
}
}
function submitData() {
const formElement = $('#formInspeksi')[0];
const formData = new FormData(formElement);
$.ajax({
url: '{{ route('surveyor.store') }}',
type: 'POST',
data: formData,
processData: false,
contentType: false,
headers: {
'X-CSRF-TOKEN': '{{ csrf_token() }}'
},
success: function(response) {
// Pastikan respons dari server memiliki atribut 'success'
if (response.success) {
window.location.href =
'{{ route('surveyor.show', ['id' => $permohonan->id]) }}?form=inspeksi';
}
console.log(response);
},
error: function(xhr, status, error) { // Menghapus tanda kurung ganda
let errors = xhr.responseJSON?.errors; // Pastikan xhr.responseJSON ada sebelum akses errors
$('.alert').text('');
if (errors) {
$.each(errors, function(key, value) {
$(`#error-${key}`).text(value[0]);
});
}
console.error('Terjadi error:', error); // Menampilkan pesan error di konsol
console.log('Status:', status);
console.log('Response:', xhr.responseText);
console.log(errors);
}
});
}
</script>
@endpush