fix(penilai): perbaikan format nilai rupiah diresume

This commit is contained in:
majid
2025-02-13 17:43:55 +07:00
committed by putrakuningan
parent 259f63917e
commit 27ef923c27
2 changed files with 55 additions and 20 deletions

View File

@@ -202,7 +202,7 @@
class="input number-format"></td> class="input number-format"></td>
<td class="text-center"> <td class="text-center">
<input type="text" name="fisik_nilai[]" <input type="text" name="fisik_nilai[]"
class="input number-format" value="{{ $item['nilai'] }}"> class="input currency-format" value="{{ $item['nilai'] }}">
</td> </td>
</tr> </tr>
@endforeach @endforeach
@@ -231,10 +231,7 @@
break; break;
} }
if ( if (isset($luas->name) && $luas->name === 'IMB') {
isset($luas->name) &&
$luas->name === 'IMB'
) {
$details = json_decode($luas->details, true); $details = json_decode($luas->details, true);
$luas_bangunan = isset($details['luas_bangunan']) $luas_bangunan = isset($details['luas_bangunan'])
? $details['luas_bangunan'] ? $details['luas_bangunan']
@@ -253,7 +250,7 @@
<td class="text-center"> <input type="text" name="fisik_luas_bangunan[]" <td class="text-center"> <input type="text" name="fisik_luas_bangunan[]"
class="input number-format" value="{{ $luas_bangunan }}"></td> class="input number-format" value="{{ $luas_bangunan }}"></td>
<td class="text-center"> <td class="text-center">
<input type="text" name="fisik_nilai[]" class="input number-format"> <input type="text" name="fisik_nilai[]" class="input currency-format">
</td> </td>
</tr> </tr>
@endif @endif
@@ -296,7 +293,7 @@
</td> </td>
<td class="text-center"> <td class="text-center">
<input type="text" name="sesuai_nilai[]" <input type="text" name="sesuai_nilai[]"
class="input number-format" value="{{ $item['nilai'] }}"> class="input currency-format" value="{{ $item['nilai'] }}">
</td> </td>
</tr> </tr>
@endforeach @endforeach
@@ -315,7 +312,8 @@
class="input number-format"> class="input number-format">
</td> </td>
<td class="text-center"> <td class="text-center">
<input type="text" name="sesuai_nilai[]" class="input number-format"> <input type="text" name="sesuai_nilai[]"
class="input currency-format">
</td> </td>
</tr> </tr>
@endif @endif
@@ -350,7 +348,7 @@
</thead> </thead>
<tbody> <tbody>
@if (!empty($resumeData['tambahan'])) @if (!empty($resumeData['tambahan']))
{{-- @foreach ($resumeData['tambahan'] as $item) --}} @foreach ($resumeData['tambahan'] as $item)
<tr> <tr>
<td class="text-center"> <td class="text-center">
@@ -370,9 +368,10 @@
</td> </td>
<td class="text-center"> <td class="text-center">
<input type="text" name="tambahan_nilai[]" <input type="text" name="tambahan_nilai[]"
class="input number-format" value="{{ $item['nilai'] }}"> class="input currency-format" value="{{ $item['nilai'] }}">
</td> </td>
</tr> </tr>
@endforeach
@endif @endif
</tbody> </tbody>
</table> </table>
@@ -436,8 +435,8 @@
href="{{ route('penilai.lampiran') }}?permohonanId={{ request('permohonanId') }}&documentId={{ request('documentId') }}&inspeksiId={{ request('inspeksiId') }}&jaminanId={{ request('jaminanId') }}&statusLpj=1"> href="{{ route('penilai.lampiran') }}?permohonanId={{ request('permohonanId') }}&documentId={{ request('documentId') }}&inspeksiId={{ request('inspeksiId') }}&jaminanId={{ request('jaminanId') }}&statusLpj=1">
LAMPIRAN FOTO DAN DOKUMEN LAMPIRAN FOTO DAN DOKUMEN
</a> </a>
<a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => request('documentId'), 'jenis_jaminan_id' => request('jaminanId')]) }}" class="btn btn-light" <a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => request('documentId'), 'jenis_jaminan_id' => request('jaminanId')]) }}"
> class="btn btn-light">
<i class="ki-filled ki-printer"></i> Hasil Inspeksi <i class="ki-filled ki-printer"></i> Hasil Inspeksi
</a> </a>
<a class="btn btn-success" <a class="btn btn-success"
@@ -453,6 +452,7 @@
@endsection @endsection
@include('lpj::surveyor.js.utils') @include('lpj::surveyor.js.utils')
<script type="text/javascript"> <script type="text/javascript">
let counter = 3; let counter = 3;
function tambahKesimpulanNilai() { function tambahKesimpulanNilai() {
@@ -495,7 +495,7 @@
</td> </td>
<td class="text-center"> <td class="text-center">
<input type="text" name="tambahan_nilai[]" <input type="text" name="tambahan_nilai[]"
class="input number-format"> class="input currency-format">
</td> </td>
<td class="text-center"> <td class="text-center">
<button type="button" class="btn btn-danger" onclick="deleteRow(this)">Delete</button> <button type="button" class="btn btn-danger" onclick="deleteRow(this)">Delete</button>
@@ -507,6 +507,18 @@
</div> </div>
</div> </div>
`; `;
const newCurrencyInputs = kesimpulan.querySelectorAll(`#kesimpulan-${counter} .currency-format`);
newCurrencyInputs.forEach(input => {
input.addEventListener('input', function() {
handleCurrencyInput(this);
});
// Format initial value jika ada
if (input.value) {
input.value = formatCurrency(input.value);
}
});
counter++; counter++;
} }
@@ -529,7 +541,7 @@
const formElement = document.querySelector('form'); const formElement = document.querySelector('form');
const jsonData = formToJson(formElement); const jsonData = formToJson(formElement);
console.log('Data dalam format JSON:', JSON.stringify(jsonData, null, 2)); console.log('Data dalam format JSON:', JSON.stringify(formElement, null, 2));
const urlParams = new URLSearchParams(window.location.search); // Mengambil query parameters dari URL const urlParams = new URLSearchParams(window.location.search); // Mengambil query parameters dari URL
const permohonanId = urlParams.get('permohonanId'); const permohonanId = urlParams.get('permohonanId');
@@ -626,7 +638,7 @@
sertifikat: row.querySelector('input[name="fisik_sertifikat[]"]')?.value || "", sertifikat: row.querySelector('input[name="fisik_sertifikat[]"]')?.value || "",
luas_tanah: row.querySelector('input[name="fisik_luas_tanah[]"]')?.value || "", luas_tanah: row.querySelector('input[name="fisik_luas_tanah[]"]')?.value || "",
luas_bangunan: row.querySelector('input[name="fisik_luas_bangunan[]"]')?.value || "", luas_bangunan: row.querySelector('input[name="fisik_luas_bangunan[]"]')?.value || "",
nilai: row.querySelector('input[name="fisik_nilai[]"]')?.value || "" nilai: cleanCurrencyValue(row.querySelector('input[name="fisik_nilai[]"]')?.value || "")
}; };
if (fisikData.sertifikat) { if (fisikData.sertifikat) {
jsonData.fisik.push(fisikData); jsonData.fisik.push(fisikData);
@@ -639,7 +651,7 @@
sertifikat: row.querySelector('input[name="sesuai_sertifikat[]"]')?.value || "", sertifikat: row.querySelector('input[name="sesuai_sertifikat[]"]')?.value || "",
luas_tanah: row.querySelector('input[name="sesuai_luas_tanah[]"]')?.value || "", luas_tanah: row.querySelector('input[name="sesuai_luas_tanah[]"]')?.value || "",
luas_bangunan: row.querySelector('input[name="sesuai_luas_bangunan[]"]')?.value || "", luas_bangunan: row.querySelector('input[name="sesuai_luas_bangunan[]"]')?.value || "",
nilai: row.querySelector('input[name="sesuai_nilai[]"]')?.value || "" nilai: cleanCurrencyValue(row.querySelector('input[name="sesuai_nilai[]"]')?.value || "")
}; };
if (imbData.sertifikat) { if (imbData.sertifikat) {
jsonData.sesuai_imb.push(imbData); jsonData.sesuai_imb.push(imbData);
@@ -653,13 +665,13 @@
sertifikat: row.querySelector('input[name="tambahan_sertifikat[]"]')?.value || "", sertifikat: row.querySelector('input[name="tambahan_sertifikat[]"]')?.value || "",
luas_tanah: row.querySelector('input[name="tambahan_luas_tanah[]"]')?.value || "", luas_tanah: row.querySelector('input[name="tambahan_luas_tanah[]"]')?.value || "",
luas_bangunan: row.querySelector('input[name="tambahan_luas_bangunan[]"]')?.value || "", luas_bangunan: row.querySelector('input[name="tambahan_luas_bangunan[]"]')?.value || "",
nilai: row.querySelector('input[name="tambahan_nilai[]"]')?.value || "" nilai: cleanCurrencyValue(row.querySelector('input[name="tambahan_nilai[]"]')?.value || "")
}; };
console.log(imbData); console.log(imbData);
if (imbData.sertifikat) { if (imbData.sertifikat) {
jsonData.tambahan.push(imbData); jsonData.tambahan.push(imbData);
} }
}); });
// Ambil keterangan // Ambil keterangan
const keterangan = formElement.querySelector('textarea[name="keterangan"]')?.value || ""; const keterangan = formElement.querySelector('textarea[name="keterangan"]')?.value || "";
@@ -671,5 +683,28 @@
return jsonData; return jsonData;
} }
// Cara Penggunaan document.addEventListener('DOMContentLoaded', function() {
// Initialize currency format for existing inputs
document.querySelectorAll('.currency-format').forEach(input => {
input.addEventListener('input', function() {
handleCurrencyInput(this);
});
// Format initial values if they exist
if (input.value) {
input.value = formatCurrency(input.value);
}
});
});
function handleCurrencyInput(input) {
const value = input.value.replace(/[^\d]/g, '');
input.value = formatCurrency(value);
}
function cleanCurrencyValue(value) {
return value.replace(/[^\d]/g, '');
}
</script> </script>

View File

@@ -471,7 +471,7 @@
<label for="city" class="form-label max-w-56">Kabupaten/Kota</label> <label for="city" class="form-label max-w-56">Kabupaten/Kota</label>
<div class="flex flex-wrap items-baseline w-full"> <div class="flex flex-wrap items-baseline w-full">
<input type="text" id="city" class="input w-full cursor-not-allowed" readonly <input type="text" id="city" class="input w-full cursor-not-allowed" readonly
value="{{ isset($permohonan->debiture->city) ? strtolower($permohonan->debiture->city->name) : '' }}"> value="{{ isset($permohonan->debiture->city) ? $permohonan->debiture->city->name : '' }}">
</div> </div>
</div> </div>
<input type="hidden" name="district_code" <input type="hidden" name="district_code"