perbaikan pembanding kendaraan, alat berat, pesawat, kapal, print out dan ukuran foto pada objek jaminan

This commit is contained in:
majid
2025-01-08 13:53:18 +07:00
parent 92ac480c9b
commit 029260bcef
12 changed files with 434 additions and 396 deletions

View File

@@ -10,28 +10,46 @@
<div class="card-grid min-w-full" data-datatable="false" data-datatable-page-size="10"
data-datatable-state-save="false" id="data-table" data-api-url="">
@php
$processedCategories = [];
$tanahBangunanTypes = ['KAPAL', 'PESAWAT', 'KENDARAAN', 'ALAT BERAT', 'MESIN'];
$dokumentName = null;
@endphp
<form id="dataPembandingForm" method="POST" enctype="multipart/form-data">
@csrf
<input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}">
<input type="hidden" name="type" value="tanah">
<input type="hidden" name="dokument_id" value="{{ request('dokument') }}">
<div class="card">
@include('lpj::surveyor.components.pembanding-kendaraan')
<div class="card-footer">
<div class="flex justify-end gap-2">
<button type="button" onclick="submitData()" class="btn btn-primary">
<i class="ki-duotone ki-save-2 fs-2"></i>
Simpan
</button>
@foreach ($permohonan->debiture->documents as $dokumen)
@if ($dokumen->jenisJaminan)
@php
$dokumentName = $dokumen->jenisJaminan->name;
$formKategori = json_decode($dokumen->jenisJaminan->form_kategori, true);
@endphp
<input type="hidden" name="action"
value="{{ is_array($formKategori) ? implode(',', $formKategori) : $formKategori }}">
@if (!in_array(strtoupper($dokumentName), $tanahBangunanTypes))
@include('lpj::surveyor.components.pembanding-tanah-bangunan-unit')
@else
@include('lpj::surveyor.components.pembanding-kendaraan')
@endif
@endif
@endforeach
<div class="card-footer">
<div class="flex justify-end gap-2">
<button type="button" onclick="submitData()" class="btn btn-primary">
<i class="ki-duotone ki-save-2 fs-2"></i>
Simpan
</button>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
@endsection
@push('scripts')
@@ -77,12 +95,12 @@
// Ambil nilai numerik dari input
const harga = parseFloat(hargaInput.value.replace(/[^\d]/g, '') || '0');
let diskonInput_value = diskonInput.value.replace(',', '.');
let diskon = parseFloat(diskonInput_value.replace(/[^\d.]/g, '') || '0');
let diskon = parseFloat(diskonInput_value.replace(/[^\d.]/g, '') || '0');
// Batasi diskon maksimal 100%
diskon = Math.min(diskon, 100);
const total = harga;
const hargaSetelahDiskon = harga - (harga * (diskon / 100));
@@ -118,32 +136,67 @@
}
}
const inputs = {
'jenis_aset_pembanding[]': data.jenis_aset,
'luas_tanah_pembanding[]': data.luas_tanah,
'luas_bangunan_pembanding[]': data.luas_bangunan,
'status_nara_sumber_pembanding[]': data.status_nara_sumber,
'nama_nara_sumber_pembanding[]': data.nama_nara_sumber,
'kordinat_lat_pembanding[]': data.kordinat_lat,
'kordinat_lng_pembanding[]': data.kordinat_lng,
'address_pembanding[]': data.address,
'village_code_pembanding[]': data.village_code,
'district_code_pembanding[]': data.district_code,
'city_code_pembanding[]': data.city_code,
'province_code_pembanding[]': data.province_code,
'harga_pembanding[]': data.harga,
'harga_diskon_pembanding[]': data.harga_diskon,
'total_pembanding[]': data.total,
'diskon_pembanding[]': data.diskon,
'hak_properti_pembanding[]': data.hak_properti,
'telepon_pembanding[]': data.telepon,
'penawaran_pembanding[]': data.penawaran,
};
const arrayData = ['KAPAL', 'PESAWAT', 'KENDARAAN', 'ALAT BERAT', 'MESIN'];
const dk = @json($dokumentName);
// Cek apakah dk memiliki data dan arrayData tidak kosong
const useFirstInputs = arrayData.length > 0 && dk.length > 0;
const inputs = useFirstInputs ?
{
'nama_pembanding[]': data.nama,
'type_pembanding[]': data.type,
'warna_pembanding[]': data.warna,
'lokasi_pembanding[]': data.lokasi,
'sumber_data_pembanding[]': data.sumber_data,
'tahun_pembanding[]': data.tahun,
'transmisi_pembanding[]': data.transmisi,
'tahun_pembuatan_pembanding[]': data.tahun_pembuatan,
'merek_buatan_pembanding[]': data.merek_buatan,
'kapasitas_pembanding[]': data.kapasitas,
'power_pembanding[]': data.power,
'kondisi_pembanding[]': data.kondisi,
'kordinat_lat_pembanding[]': data.kordinat_lat,
'kordinat_lng_pembanding[]': data.kordinat_lng,
'address_pembanding[]': data.address,
'village_code_pembanding[]': data.village_code,
'district_code_pembanding[]': data.district_code,
'city_code_pembanding[]': data.city_code,
'province_code_pembanding[]': data.province_code,
'harga_pembanding[]': data.harga,
'harga_diskon_pembanding[]': data.harga_diskon,
'total_pembanding[]': data.total,
'diskon_pembanding[]': data.diskon,
'telepon_pembanding[]': data.telepon,
'penawaran_pembanding[]': data.penawaran,
} :
{
'jenis_aset_pembanding[]': data.jenis_aset,
'luas_tanah_pembanding[]': data.luas_tanah,
'luas_bangunan_pembanding[]': data.luas_bangunan,
'status_nara_sumber_pembanding[]': data.status_nara_sumber,
'nama_nara_sumber_pembanding[]': data.nama_nara_sumber,
'kordinat_lat_pembanding[]': data.kordinat_lat,
'kordinat_lng_pembanding[]': data.kordinat_lng,
'address_pembanding[]': data.address,
'village_code_pembanding[]': data.village_code,
'district_code_pembanding[]': data.district_code,
'city_code_pembanding[]': data.city_code,
'province_code_pembanding[]': data.province_code,
'harga_pembanding[]': data.harga,
'harga_diskon_pembanding[]': data.harga_diskon,
'total_pembanding[]': data.total,
'diskon_pembanding[]': data.diskon,
'hak_properti_pembanding[]': data.hak_properti,
'telepon_pembanding[]': data.telepon,
'penawaran_pembanding[]': data.penawaran,
};
Object.entries(inputs).forEach(([name, value]) => {
setArrayInputValue(name, value, index);
});
// Handle foto objek
if (data.foto_objek) {
const imageId = `uploadedImage${index + 2}`;

View File

@@ -293,7 +293,7 @@
<img id="foto_object_jaminan_preview_{{ $loop->index }}"
src="{{ isset($matchedFoto['foto_objek']) ? asset('storage/' . $matchedFoto['foto_objek']) : '' }}"
alt="{{ $item->name }}" class="mb-2 h-auto"
style="{{ !empty($matchedFoto['foto_objek']) ? 'width: 30rem;' : 'display: none;' }}"
style="{{ !empty($matchedFoto['foto_objek']) ? 'width: 30rem;' : 'display: none; width: 30rem;' }}"
onerror="this.style.display='none';" />
<div class="input-group w-full flex gap-2">

View File

@@ -63,51 +63,51 @@
<tr>
<td class="px-4 py-2">Nama</td>
<td class="px-4 py-2">
<input type="text" name="" class="input">
<input type="text" name="nama" class="input" value="{{ $inspectionData['nama'] ?? '' }}">
</td>
<td class="px-4 py-2">
<input type="text" name="" class="input">
<input type="text" name="nama_pembanding[]" class="input">
</td>
</tr>
<tr>
<td class="px-4 py-2">Tipe</td>
<td class="px-4 py-2">
<input type="text" name="luas_tanah" class="input" value="">
<input type="text" name="type" class="input" value="{{ $inspectionData['type'] ?? '' }}">
</td>
<td class="px-4 py-2">
<input type="text" name="luas_tanah_pembanding[]" class="input number-format">
<input type="text" name="type_pembanding[]" class="input">
</td>
</tr>
<tr>
<td class="px-4 py-2">Warna</td>
<td class="px-4 py-2">
<input type="text" name="luas_tanah_bagunan" class="input number-format" value="">
<input type="text" name="warna" class="input " value="{{ $inspectionData['warna'] ?? '' }}">
</td>
<td class="px-4 py-2">
<input type="text" name="luas_bangunan_pembanding[]" class="input number-format">
<input type="text" name="warna_pembanding[]" class="input">
</td>
</tr>
<tr>
<td class="px-4 py-2">Lokasi</td>
<td class="px-4 py-2">
<input type="text" name="luas_tanah_bagunan" class="input number-format" value="">
<input type="text" name="lokasi" class="input" value="{{ $inspectionData['lokasi'] ?? '' }}">
</td>
<td class="px-4 py-2">
<input type="text" name="luas_bangunan_pembanding[]" class="input number-format">
<input type="text" name="lokasi_pembanding[]" class="input">
</td>
</tr>
<tr>
<td class="px-4 py-2">Sumber data</td>
<td class="px-4 py-2">
<input type="text" name="luas_tanah_bagunan" class="input number-format" value="">
<input type="text" name="sumber_data" class="input" value="{{ $inspectionData['sumber_data'] ?? '' }}">
</td>
<td class="px-4 py-2">
<input type="text" name="luas_bangunan_pembanding[]" class="input number-format">
<input type="text" name="sumber_data_pembanding[]" class="input">
</td>
</tr>
@@ -115,11 +115,11 @@
<td class="px-4 py-2">Tahun</td>
<td class="px-4 py-2">
<input type="text" name="luas_tanah_bagunan" class="input number-format"
value="">
<input type="text" name="tahun" class="input number-format" value="{{ $inspectionData['tahun'] ?? '' }}"
>
</td>
<td class="px-4 py-2">
<input type="text" name="luas_bangunan_pembanding[]" class="input number-format">
<input type="text" name="tahun_pembanding[]" class="input number-format">
</td>
</tr>
@@ -127,11 +127,11 @@
<td class="px-4 py-2">Transmisi</td>
<td class="px-4 py-2">
<input type="text" name="luas_tanah_bagunan" class="input number-format"
value="">
<input type="text" name="transmisi" class="input "
value="{{ $inspectionData['transmisi'] ?? '' }}">
</td>
<td class="px-4 py-2">
<input type="text" name="luas_bangunan_pembanding[]" class="input number-format">
<input type="text" name="transmisi_pembanding[]" class="input ">
</td>
</tr>
@@ -145,22 +145,23 @@
<td class="px-4 py-2">Tahun Pembuatan
</td>
<td class="px-4 py-2">
<input type="text" name="hak_properti" class="input"
value="{{ $inspectionData['asset']['hak_properti'] ?? '' }}">
<input type="text" name="tahun_pembuatan" class="input number-format"
value="{{ $inspectionData['tahun_pembuatan'] ?? '' }}"
>
</td>
<td class="px-4 py-2">
<input type="text" name="hak_properti_pembanding[]" class="input">
<input type="text" name="tahun_pembuatan_pembanding[]" class="input">
</td>
</tr>
<tr>
<td class="px-4 py-2">Merek / Buatan
</td>
<td class="px-4 py-2">
<input type="text" name="penawaran" class="input"
value="{{ $inspectionData['asset']['penawaran'] ?? '' }}">
<input type="text" name="merek_buatan" class="input"
value="{{ $inspectionData['merek_buatan'] ?? '' }}">
</td>
<td class="px-4 py-2">
<input type="text" name="penawaran_pembanding[]" class="input">
<input type="text" name="merek_buatan_pembanding[]" class="input">
</td>
</tr>
@@ -169,32 +170,32 @@
<td class="px-4 py-2">Kapasitas / HP
</td>
<td class="px-4 py-2">
<input type="text" name="telepon" class="input"
value="{{ $inspectionData['asset']['telepon'] ?? '' }}">
<input type="text" name="kapasitas" class="input"
value="{{ $inspectionData['kapasitas'] ?? '' }}">
</td>
<td class="px-4 py-2">
<input type="text" name="telepon_pembanding[]" class="input">
<input type="text" name="kapasitas_pembanding[]" class="input">
</td>
</tr>
<tr>
<td class="px-4 py-2">Power</td>
<td class="px-4 py-2">
<input type="text" name="status_nara_sumber" class="input"
value="{{ $inspectionData['asset']['status_nara_sumber'] ?? '' }}">
<input type="text" name="power" class="input"
value="{{ $inspectionData['power'] ?? '' }}">
</td>
<td class="px-4 py-2">
<input type="text" name="status_nara_sumber_pembanding[]" class="input">
<input type="text" name="power_pembanding[]" class="input">
</td>
</tr>
<tr>
<td class="px-4 py-2">Kondisi</td>
<td class="px-4 py-2">
<input type="text" name="nama_nara_sumber" class="input"
value="{{ $inspectionData['asset']['nama_nara_sumber'] ?? '' }}">
<input type="text" name="kondisi" class="input"
value="{{ $inspectionData['kondisi'] ?? '' }}">
</td>
<td class="px-4 py-2">
<input type="text" name="nama_nara_sumber_pembanding[]" class="input">
<input type="text" name="kondisi_pembanding[]" class="input">
</td>
</tr>
@@ -208,9 +209,9 @@
<td class="px-4 py-2">
<div class="grid grid-cols-2 gap-2">
<input type="text" name="kordinat_lat" class="input" placeholder="Latitude"
value="{{ $inspectionData['asset']['kordinat_lat'] ?? '' }}">
value="{{ $inspectionData['kordinat_lat'] ?? '' }}">
<input type="text" name="kordinat_lng" class="input" placeholder="Longitude"
value="{{ $inspectionData['asset']['kordinat_lng'] ?? '' }}">
value="{{ $inspectionData['kordinat_lng'] ?? '' }}">
</div>
</td>
<td class="px-4 py-2">
@@ -226,12 +227,9 @@
<td class="px-4 py-2">Alamat</td>
<td class="px-4 py-2">
@php
$statusAlamat = isset($inspectionData['asset']['alamat']['sesuai'])
? 'sesuai'
: 'tidak sesuai';
$address = $inspectionData['asset']['alamat'][$statusAlamat]['address'] ?? null;
$address = $inspectionData['nama_jalan'] ?? null;
@endphp
<textarea name="address" class="input py-2" rows="2">{{ $address }}</textarea>
<textarea name="nama_jalan" class="input py-2" rows="2">{{ $address }}</textarea>
</td>
<td class="px-4 py-2">
<textarea name="address_pembanding[]" class="input py-2" rows="2"></textarea>
@@ -242,20 +240,13 @@
<td class="px-4 py-2">Provinsi</td>
<td class="px-4 py-2">
<select id="province_code" name="province_code" class="input w-full">
@php
$statusKey = isset($inspectionData['asset']['alamat']['sesuai'])
? 'sesuai'
: 'tidak sesuai';
$address = $inspectionData['asset']['alamat'][$statusKey]['province_code'] ?? null;
@endphp
<option value="">Select Province</option>
@foreach ($provinces as $province)
@php
$statusKey = isset($inspectionData['asset']['alamat']['sesuai'])
? 'sesuai'
: 'tidak sesuai';
$selectedProvince =
$inspectionData['asset']['alamat'][$statusKey]['province_code'] ?? null;
$inspectionData['alamat']['sesuai']['province_code'] ?? null;
@endphp
<option value="{{ $province->code }}"
@@ -283,10 +274,8 @@
<select id="city_code" name="city_code" class="select w-full">
@php
$statusKey = isset($inspectionData['asset']['alamat']['sesuai'])
? 'sesuai'
: 'tidak sesuai';
$selectedCity = $inspectionData['asset']['alamat'][$statusKey]['city_code'] ?? null;
$selectedCity = $inspectionData['alamat']['sesuai']['city_code'] ?? null;
@endphp
<option value="">Pilih Kota/Kabupaten</option>
@if (isset($selectedCity))
@@ -313,11 +302,8 @@
<select id="district_code" name="district_code" class="select w-full">
@php
$statusKey = isset($inspectionData['asset']['alamat']['sesuai'])
? 'sesuai'
: 'tidak sesuai';
$selectedDisrict =
$inspectionData['asset']['alamat'][$statusKey]['district_code'] ?? null;
$inspectionData['alamat']['sesuai']['district_code'] ?? null;
@endphp
<option value="">Pilih Kecamatan</option>
@if (isset($selectedDisrict))
@@ -344,11 +330,9 @@
<td class="px-4 py-2">
<select id="village_code" name="village_code" class="select w-full">
@php
$statusKey = isset($inspectionData['asset']['alamat']['sesuai'])
? 'sesuai'
: 'tidak sesuai';
$selectedDesa =
$inspectionData['asset']['alamat'][$statusKey]['village_code'] ?? null;
$inspectionData['alamat']['sesuai']['village_code'] ?? null;
@endphp
<option value="">Pilih Kecamatan</option>
@if (isset($selectedDesa))
@@ -370,14 +354,14 @@
</tr>
<tr class="bg-gray-100">
<td colspan="3" class="px-4 py-2 font-semibold">Harga Per Meter</td>
<td colspan="3" class="px-4 py-2 font-semibold">Harga</td>
</tr>
<tr>
<td class="px-4 py-2">Harga</td>
<td class="px-4 py-2">
<input type="text" name="harga" class="input currency-format"
value="{{ $inspectionData['asset']['harga'] ?? '' }}">
value="{{ $inspectionData['harga'] ?? '' }}">
</td>
<td class="px-4 py-2">
<input type="text" name="harga_pembanding[]" class="input currency-format">
@@ -388,7 +372,7 @@
<td class="px-4 py-2">
<div class="input">
<input type="text" name="diskon" class=" currency"
value="{{ $inspectionData['asset']['diskon'] ?? '' }}">
value="{{ $inspectionData['diskon'] ?? '' }}">
<span class="btn btn-icon">
<i class="ki-outline ki-percentage"></i>
</span>
@@ -410,7 +394,7 @@
<td class="px-4 py-2">Total</td>
<td class="px-4 py-2">
<input type="text" name="total" class="input currency"
value="{{ $inspectionData['asset']['total'] ?? '' }}">
value="{{ $inspectionData['total'] ?? '' }}">
</td>
<td class="px-4 py-2">
<input type="text" name="total_pembanding[]" class="input currency-format">
@@ -420,7 +404,7 @@
<td class="px-4 py-2">Harga Setelah Diskon</td>
<td class="px-4 py-2">
<input type="text" name="harga_diskon" class="input currency-format" readonly
value="{{ $inspectionData['asset']['harga_diskon'] ?? '' }}">
value="{{ $inspectionData['harga_diskon'] ?? '' }}">
</td>
<td class="px-4 py-2">
<input type="text" name="harga_diskon_pembanding[]" readonly

View File

@@ -252,7 +252,7 @@
render: (item, data) => {
let actionHtml = '';
if (data.penilaian.waktu_penilaian == null && data.penilaian.authorized_status == null) {
if (data.penilaian.waktu_penilaian == null || data.penilaian.waktu_penilaian && data.penilaian.authorized_status == null) {
actionHtml += `
<a class="btn btn-sm btn-icon btn-clear btn-primary" data-modal-toggle="#modal_jadwal" onclick="jadwal(${data.penilaian.id})" title="Buat Jadwal Kunjungan">
<i class="ki-filled ki-calendar-edit"></i>