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

View File

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

View File

@@ -240,11 +240,11 @@
<td class="px-4 py-2">Provinsi</td> <td class="px-4 py-2">Provinsi</td>
<td class="px-4 py-2"> <td class="px-4 py-2">
<select id="province_code" name="province_code" class="input w-full"> <select id="province_code" name="province_code" class="input w-full">
<option value="">Select Province</option> <option value="">Select Province</option>
@foreach ($provinces as $province) @foreach ($provinces as $province)
@php @php
$selectedProvince = $selectedProvince =
$inspectionData['alamat']['sesuai']['province_code'] ?? null; $inspectionData['alamat']['sesuai']['province_code'] ?? null;
@endphp @endphp
@@ -274,7 +274,7 @@
<select id="city_code" name="city_code" class="select w-full"> <select id="city_code" name="city_code" class="select w-full">
@php @php
$selectedCity = $inspectionData['alamat']['sesuai']['city_code'] ?? null; $selectedCity = $inspectionData['alamat']['sesuai']['city_code'] ?? null;
@endphp @endphp
<option value="">Pilih Kota/Kabupaten</option> <option value="">Pilih Kota/Kabupaten</option>
@@ -330,7 +330,7 @@
<td class="px-4 py-2"> <td class="px-4 py-2">
<select id="village_code" name="village_code" class="select w-full"> <select id="village_code" name="village_code" class="select w-full">
@php @php
$selectedDesa = $selectedDesa =
$inspectionData['alamat']['sesuai']['village_code'] ?? null; $inspectionData['alamat']['sesuai']['village_code'] ?? null;
@endphp @endphp
@@ -364,7 +364,7 @@
value="{{ $inspectionData['harga'] ?? '' }}"> value="{{ $inspectionData['harga'] ?? '' }}">
</td> </td>
<td class="px-4 py-2"> <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> </td>
</tr> </tr>
<tr> <tr>
@@ -414,4 +414,4 @@
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>

View File

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