perbaikan data pembanding

This commit is contained in:
majid
2025-01-13 10:48:07 +07:00
parent 8db7e5d654
commit 0f4a0a12ee
4 changed files with 105 additions and 91 deletions

View File

@@ -1056,8 +1056,9 @@ class SurveyorController extends Controller
{
$tanahBangunanTypes = ['KAPAL', 'PESAWAT', 'KENDARAAN', 'ALAT BERAT', 'MESIN'];
if (isset($request->action) &&
in_array(strtoupper($request->action), array_map('strtoupper', $tanahBangunanTypes))) {
$action = isset($request->action) ? strtoupper(str_replace('-', ' ', $request->action)) : '';
if (in_array($action, $tanahBangunanTypes)) {
$fields = [
'address', 'village_code', 'district_code', 'city_code', 'province_code',
'nama', 'type','warna','lokasi', 'total', 'diskon', 'harga_diskon',
@@ -1066,15 +1067,15 @@ class SurveyorController extends Controller
];
}else{
$fields = [
'address', 'village_code', 'district_code', 'city_code', 'province_code',
'tahun', 'luas_tanah', 'luas_bangunan', 'tahun_bangunan',
'status_nara_sumber', 'harga', 'harga_diskon', 'diskon', 'total', 'nama_nara_sumber',
'peruntukan', 'penawaran', 'telepon','hak_properti',
'kordinat_lat', 'kordinat_lng', 'jenis_aset','foto_objek'
];
}
} else {
$fields = [
'address', 'village_code', 'district_code', 'city_code', 'province_code',
'tahun', 'luas_tanah', 'luas_bangunan', 'tahun_bangunan',
'status_nara_sumber', 'harga', 'harga_diskon', 'diskon', 'total', 'nama_nara_sumber',
'peruntukan', 'penawaran', 'telepon','hak_properti',
'kordinat_lat', 'kordinat_lng', 'jenis_aset','foto_objek'
];
}
$pembanding = [];
foreach ($fields as $field) {
@@ -1313,8 +1314,7 @@ class SurveyorController extends Controller
}
$dataForm['alamat'][$alamatStatus][$field] = $newValue;
}
else {
} else {
if (!isset($dataForm[$field])) {
$dataForm[$field] = [];
}
@@ -1399,11 +1399,12 @@ class SurveyorController extends Controller
$tanahBangunanTypes = ['KAPAL', 'PESAWAT', 'KENDARAAN', 'ALAT BERAT', 'MESIN'];
if (isset($request->action) &&
in_array(strtoupper($request->action), array_map('strtoupper', $tanahBangunanTypes))) {
$action = isset($request->action) ? strtoupper(str_replace('-', ' ', $request->action)) : '';
if (in_array($action, $tanahBangunanTypes)) {
$objekPenilaian = $this->formatObjekPenilaiankendaraan($request);
}else{
} else {
$objekPenilaian = $this->formatObjekPenilaian($request);
}
if ($request->hasFile('foto_objek')) {
@@ -1708,8 +1709,9 @@ class SurveyorController extends Controller
$tanahBangunanTypes = ['KAPAL', 'PESAWAT', 'KENDARAAN', 'ALAT BERAT', 'MESIN'];
if (isset($inspectionData['action']) &&
in_array(strtoupper($inspectionData['action']), array_map('strtoupper', $tanahBangunanTypes))) {
$action = isset($inspectionData['action']) ? strtoupper(str_replace('-', ' ', $inspectionData['action'])) : '';
if (in_array($action, $tanahBangunanTypes)) {
return $selectedProvince = $inspectionData['alamat']['sesuai'][$code] ?? null;
}

View File

@@ -56,9 +56,6 @@
@include('lpj::surveyor.js.utils')
<script>
let columnCount = 1;
// Fungsi calculate prices yang diperbaiki
function calculatePrices(type = 'main', index = null) {
let hargaInput, diskonInput, totalInput, hargaDiskonInput;
@@ -128,7 +125,7 @@
} else {
// Format currency untuk input harga
if (name.includes('harga') || name.includes('total') || name.includes('diskon')) {
element.value = formatCurrency(value ? value.toString() : '0');
element.value = value ? value.toString() : '0';
} else {
element.value = value || '';
}
@@ -139,58 +136,61 @@
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 normalizedDk = dk.replace(/-/g, ' ').toUpperCase();
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,
};
// Cek apakah arrayData berisi normalizedDk
const useFirstInputs = arrayData.includes(normalizedDk);
const currentData = Array.isArray(data) ? data[index] : data;
const inputs = useFirstInputs ? {
'nama_pembanding[]': currentData.nama,
'type_pembanding[]': currentData.type,
'warna_pembanding[]': currentData.warna,
'lokasi_pembanding[]': currentData.lokasi,
'sumber_data_pembanding[]': currentData.sumber_data,
'tahun_pembanding[]': currentData.tahun,
'transmisi_pembanding[]': currentData.transmisi,
'tahun_pembuatan_pembanding[]': currentData.tahun_pembuatan,
'merek_buatan_pembanding[]': currentData.merek_buatan,
'kapasitas_pembanding[]': currentData.kapasitas,
'power_pembanding[]': currentData.power,
'kondisi_pembanding[]': currentData.kondisi,
'kordinat_lat_pembanding[]': currentData.kordinat_lat,
'kordinat_lng_pembanding[]': currentData.kordinat_lng,
'address_pembanding[]': currentData.address,
'village_code_pembanding[]': currentData.village_code,
'district_code_pembanding[]': currentData.district_code,
'city_code_pembanding[]': currentData.city_code,
'province_code_pembanding[]': currentData.province_code,
'harga_pembanding[]': currentData.harga,
'harga_diskon_pembanding[]': currentData.harga_diskon,
'total_pembanding[]': currentData.total,
'diskon_pembanding[]': currentData.diskon,
'telepon_pembanding[]': currentData.telepon,
'penawaran_pembanding[]': currentData.penawaran,
} : {
'jenis_aset_pembanding[]': currentData.jenis_aset,
'luas_tanah_pembanding[]': currentData.luas_tanah,
'luas_bangunan_pembanding[]': currentData.luas_bangunan,
'status_nara_sumber_pembanding[]': currentData.status_nara_sumber,
'nama_nara_sumber_pembanding[]': currentData.nama_nara_sumber,
'kordinat_lat_pembanding[]': currentData.kordinat_lat,
'kordinat_lng_pembanding[]': currentData.kordinat_lng,
'address_pembanding[]': currentData.address,
'village_code_pembanding[]': currentData.village_code,
'district_code_pembanding[]': currentData.district_code,
'city_code_pembanding[]': currentData.city_code,
'province_code_pembanding[]': currentData.province_code,
'harga_pembanding[]': currentData.harga,
'harga_diskon_pembanding[]': currentData.harga_diskon,
'total_pembanding[]': currentData.total,
'diskon_pembanding[]': currentData.diskon,
'hak_properti_pembanding[]': currentData.hak_properti,
'telepon_pembanding[]': currentData.telepon,
'penawaran_pembanding[]': currentData.penawaran,
};
Object.entries(inputs).forEach(([name, value]) => {
setArrayInputValue(name, value, index);
@@ -363,9 +363,9 @@
input.value = '';
}
if (input.classList.contains('currency-format')) {
if (input.classList.contains('currency')) {
input.addEventListener('input', function() {
formatCurrency(this);
// Special handling for price-related inputs
if (input.name.includes('harga_pembanding') ||
@@ -380,8 +380,8 @@
// Specific handling for discount to limit to 100%
if (input.name.includes('diskon_pembanding')) {
input.addEventListener('input', function() {
let value = parseFloat(this.value.replace(/[^\d]/g, '') || '0');
this.value = formatCurrency(value.toString());
let value =
this.value = value.toString();
});
}
});

View File

@@ -364,7 +364,7 @@
value="{{ $inspectionData['harga'] ?? '' }}">
</td>
<td class="px-4 py-2">
<input type="text" name="harga_pembanding[]" class="input currency-format">
<input type="text" name="harga_pembanding[]" class="input currency">
</td>
</tr>
<tr>

View File

@@ -115,11 +115,23 @@
<tr>
<td class="px-4 py-2">Luas Bangunan ()</td>
<td class="px-4 py-2">
@php
$luasTanahData = $inspectionData['bangunan']['luas_tanah_bagunan'];
$nilai = 'N/A';
<input type="text" name="luas_tanah_bagunan"
class="input number-format"
value="{{ $inspectionData['bangunan']['luas_tanah_bagunan']['sesuai'] ?? ($inspectionData['bangunan']['luas_tanah_bagunan']['tidak sesuai'] ?? '') }}">
if (!empty($luasTanahData['sesuai'])) {
$nilai = $luasTanahData['sesuai'];
} elseif (!empty($luasTanahData['tidak sesuai'])) {
$nilai = $luasTanahData['tidak sesuai'];
}
@endphp
<input type="text"
name="luas_tanah_bagunan"
class="input number-format"
value="{{ $nilai }}">
</td>
<td class="px-4 py-2">
<input type="text" name="luas_bangunan_pembanding[]"
class="input number-format">
@@ -392,7 +404,7 @@
</td>
<td class="px-4 py-2">
<input type="text" name="harga_pembanding[]"
class="input currency-format">
class="input currency">
</td>
</tr>
<tr>