perbaikan validasi input nilai likuidasi percent resume

This commit is contained in:
majid
2025-02-14 17:33:02 +07:00
committed by putrakuningan
parent 8586745b82
commit a846c22479

View File

@@ -194,7 +194,7 @@
<th class="text-center">Luas Tanah</th> <th class="text-center">Luas Tanah</th>
<th class="text-center">Luas Bangunan</th> <th class="text-center">Luas Bangunan</th>
<th class="text-center">Nilai Pasar Wajar</th> <th class="text-center">Nilai Pasar Wajar</th>
<th class="text-center">Nilai Likuidasi</th> <th class="text-center">Nilai Likuidasi(%)</th>
<th class="text-center">Total Nilai Likuidasi</th> <th class="text-center">Total Nilai Likuidasi</th>
</tr> </tr>
</thead> </thead>
@@ -306,7 +306,7 @@
<th class="text-center">Luas Tanah</th> <th class="text-center">Luas Tanah</th>
<th class="text-center">Luas Bangunan</th> <th class="text-center">Luas Bangunan</th>
<th class="text-center">Nilai Pasar Wajar</th> <th class="text-center">Nilai Pasar Wajar</th>
<th class="text-center">Likuidasi</th> <th class="text-center">Nilai Likuidasi (%)</th>
<th class="text-center">Total Nilai Likuidasi</th> <th class="text-center">Total Nilai Likuidasi</th>
</tr> </tr>
</thead> </thead>
@@ -398,7 +398,7 @@
<th class="text-center">Luas Tanah</th> <th class="text-center">Luas Tanah</th>
<th class="text-center">Luas Bangunan</th> <th class="text-center">Luas Bangunan</th>
<th class="text-center">Nilai Pasar Wajar</th> <th class="text-center">Nilai Pasar Wajar</th>
<th class="text-center"> Likuidasi</th> <th class="text-center">Nilai Likuidasi (%)</th>
<th class="text-center">Total Nilai Likuidasi</th> <th class="text-center">Total Nilai Likuidasi</th>
</tr> </tr>
</thead> </thead>
@@ -541,7 +541,7 @@
<th class="text-center">Luas Tanah</th> <th class="text-center">Luas Tanah</th>
<th class="text-center">Luas Bangunan</th> <th class="text-center">Luas Bangunan</th>
<th class="text-center">Nilai Pasar Wajar</th> <th class="text-center">Nilai Pasar Wajar</th>
<th class="text-center">Likuidasi</th> <th class="text-center">Nilai Likuidasi (%)</th>
<th class="text-center">Total Nilai Likuidasi</th> <th class="text-center">Total Nilai Likuidasi</th>
<th class="text-center">Aksi</th> <th class="text-center">Aksi</th>
</tr> </tr>
@@ -801,49 +801,27 @@
const totalLikuidasiInput = row.querySelector('.total-likuidasi'); const totalLikuidasiInput = row.querySelector('.total-likuidasi');
// Bersihkan nilai dari karakter non-digit
const cleanNilaiPasar = cleanCurrencyValue(nilaiPasarInput.value); const cleanNilaiPasar = cleanCurrencyValue(nilaiPasarInput.value);
const cleanLikuidasi = cleanCurrencyValue(likuidasiInput.value); let cleanLikuidasi = cleanCurrencyValue(likuidasiInput.value);
likuidasiInput.value = formatPercentages(likuidasiInput.value);
// Konversi ke angka // Batasi likuidasi maksimal hingga 100
cleanLikuidasi = Math.min(parseFloat(cleanLikuidasi) || 0, 100);
// Format nilai likuidasi dengan simbol %
likuidasiInput.value = cleanLikuidasi;
// Konversi ke angka untuk perhitungan
const nilaiPasar = parseFloat(cleanNilaiPasar) || 0; const nilaiPasar = parseFloat(cleanNilaiPasar) || 0;
let likuidasi = parseFloat(cleanLikuidasi) || 0; const likuidasi = cleanLikuidasi / 100; // Konversi persentase ke desimal
// Jika nilai likuidasi lebih dari 100, reset ke nilai awal yang diinputkan
if (likuidasi > 100) {
likuidasi = parseFloat(cleanLikuidasi) || 0; // Reset ke nilai awal
likuidasiInput.value = likuidasi
}
// Pastikan nilai likuidasi tidak melebihi 100
likuidasi = Math.min(likuidasi, 100);
// Hitung total likuidasi // Hitung total likuidasi
const totalLikuidasi = nilaiPasar - (nilaiPasar * (likuidasi / 100)); const totalLikuidasi = nilaiPasar * likuidasi;
// Tampilkan hasil dengan format yang benar // Tampilkan hasil dengan format yang benar
totalLikuidasiInput.value = formatCurrency(totalLikuidasi.toString()); totalLikuidasiInput.value = formatCurrency(totalLikuidasi.toString());
} }
function formatPercentages(value) {
// Hapus semua karakter kecuali angka dan koma
let numericValue = value.replace(/[^0-9,]/g, '');
// Pastikan hanya satu koma yang ada
let parts = numericValue.split(',');
if (parts.length > 2) {
numericValue = parts[0] + ',' + parts[1]; // Pertahankan hanya bagian pertama dan kedua
}
// Jika nilai melebihi 100, batasi menjadi 100
let numericFloat = parseFloat(numericValue.replace(',', '.')) || 0;
if (numericFloat > 100) {
numericFloat = 100;
numericValue = '100';
}
// Kembalikan nilai dengan simbol %
return numericValue;
}
</script> </script>