perbaikan validasi input nilai likuidasi percent resume
This commit is contained in:
@@ -194,7 +194,7 @@
|
||||
<th class="text-center">Luas Tanah</th>
|
||||
<th class="text-center">Luas Bangunan</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>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -306,7 +306,7 @@
|
||||
<th class="text-center">Luas Tanah</th>
|
||||
<th class="text-center">Luas Bangunan</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>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -398,7 +398,7 @@
|
||||
<th class="text-center">Luas Tanah</th>
|
||||
<th class="text-center">Luas Bangunan</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>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -541,7 +541,7 @@
|
||||
<th class="text-center">Luas Tanah</th>
|
||||
<th class="text-center">Luas Bangunan</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">Aksi</th>
|
||||
</tr>
|
||||
@@ -801,49 +801,27 @@
|
||||
|
||||
const totalLikuidasiInput = row.querySelector('.total-likuidasi');
|
||||
|
||||
// Bersihkan nilai dari karakter non-digit
|
||||
const cleanNilaiPasar = cleanCurrencyValue(nilaiPasarInput.value);
|
||||
const cleanLikuidasi = cleanCurrencyValue(likuidasiInput.value);
|
||||
likuidasiInput.value = formatPercentages(likuidasiInput.value);
|
||||
// Konversi ke angka
|
||||
let cleanLikuidasi = cleanCurrencyValue(likuidasiInput.value);
|
||||
|
||||
// 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;
|
||||
let likuidasi = parseFloat(cleanLikuidasi) || 0;
|
||||
|
||||
// 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);
|
||||
const likuidasi = cleanLikuidasi / 100; // Konversi persentase ke desimal
|
||||
|
||||
// Hitung total likuidasi
|
||||
const totalLikuidasi = nilaiPasar - (nilaiPasar * (likuidasi / 100));
|
||||
const totalLikuidasi = nilaiPasar * likuidasi;
|
||||
|
||||
// Tampilkan hasil dengan format yang benar
|
||||
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>
|
||||
|
||||
Reference in New Issue
Block a user