Merge pull request 'fix(penilai): perbaikan format nilai rupiah diresume' (#95) from feature/senior-officer into staging

Reviewed-on: #95
This commit is contained in:
putrakuningan
2025-02-13 11:51:37 +01:00
2 changed files with 55 additions and 20 deletions

View File

@@ -202,7 +202,7 @@
class="input number-format"></td>
<td class="text-center">
<input type="text" name="fisik_nilai[]"
class="input number-format" value="{{ $item['nilai'] }}">
class="input currency-format" value="{{ $item['nilai'] }}">
</td>
</tr>
@endforeach
@@ -231,10 +231,7 @@
break;
}
if (
isset($luas->name) &&
$luas->name === 'IMB'
) {
if (isset($luas->name) && $luas->name === 'IMB') {
$details = json_decode($luas->details, true);
$luas_bangunan = isset($details['luas_bangunan'])
? $details['luas_bangunan']
@@ -253,7 +250,7 @@
<td class="text-center"> <input type="text" name="fisik_luas_bangunan[]"
class="input number-format" value="{{ $luas_bangunan }}"></td>
<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>
</tr>
@endif
@@ -296,7 +293,7 @@
</td>
<td class="text-center">
<input type="text" name="sesuai_nilai[]"
class="input number-format" value="{{ $item['nilai'] }}">
class="input currency-format" value="{{ $item['nilai'] }}">
</td>
</tr>
@endforeach
@@ -315,7 +312,8 @@
class="input number-format">
</td>
<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>
</tr>
@endif
@@ -350,7 +348,7 @@
</thead>
<tbody>
@if (!empty($resumeData['tambahan']))
{{-- @foreach ($resumeData['tambahan'] as $item) --}}
@foreach ($resumeData['tambahan'] as $item)
<tr>
<td class="text-center">
@@ -370,9 +368,10 @@
</td>
<td class="text-center">
<input type="text" name="tambahan_nilai[]"
class="input number-format" value="{{ $item['nilai'] }}">
class="input currency-format" value="{{ $item['nilai'] }}">
</td>
</tr>
@endforeach
@endif
</tbody>
</table>
@@ -436,8 +435,8 @@
href="{{ route('penilai.lampiran') }}?permohonanId={{ request('permohonanId') }}&documentId={{ request('documentId') }}&inspeksiId={{ request('inspeksiId') }}&jaminanId={{ request('jaminanId') }}&statusLpj=1">
LAMPIRAN FOTO DAN DOKUMEN
</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
</a>
<a class="btn btn-success"
@@ -453,6 +452,7 @@
@endsection
@include('lpj::surveyor.js.utils')
<script type="text/javascript">
let counter = 3;
function tambahKesimpulanNilai() {
@@ -495,7 +495,7 @@
</td>
<td class="text-center">
<input type="text" name="tambahan_nilai[]"
class="input number-format">
class="input currency-format">
</td>
<td class="text-center">
<button type="button" class="btn btn-danger" onclick="deleteRow(this)">Delete</button>
@@ -507,6 +507,18 @@
</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++;
}
@@ -529,7 +541,7 @@
const formElement = document.querySelector('form');
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 permohonanId = urlParams.get('permohonanId');
@@ -626,7 +638,7 @@
sertifikat: row.querySelector('input[name="fisik_sertifikat[]"]')?.value || "",
luas_tanah: row.querySelector('input[name="fisik_luas_tanah[]"]')?.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) {
jsonData.fisik.push(fisikData);
@@ -639,7 +651,7 @@
sertifikat: row.querySelector('input[name="sesuai_sertifikat[]"]')?.value || "",
luas_tanah: row.querySelector('input[name="sesuai_luas_tanah[]"]')?.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) {
jsonData.sesuai_imb.push(imbData);
@@ -653,13 +665,13 @@
sertifikat: row.querySelector('input[name="tambahan_sertifikat[]"]')?.value || "",
luas_tanah: row.querySelector('input[name="tambahan_luas_tanah[]"]')?.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);
if (imbData.sertifikat) {
jsonData.tambahan.push(imbData);
}
});
});
// Ambil keterangan
const keterangan = formElement.querySelector('textarea[name="keterangan"]')?.value || "";
@@ -671,5 +683,28 @@
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>

View File

@@ -471,7 +471,7 @@
<label for="city" class="form-label max-w-56">Kabupaten/Kota</label>
<div class="flex flex-wrap items-baseline w-full">
<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>
<input type="hidden" name="district_code"