From d77b3a7346f2cca72f328412c1ec02a2470a798d Mon Sep 17 00:00:00 2001 From: Hafifie PKB Date: Thu, 4 Jan 2024 09:20:45 +0800 Subject: [PATCH] fix auto tawarruq thousand seperator --- resources/views/penebusan/v2/index.blade.php | 74 ++++++++++++++++---- 1 file changed, 61 insertions(+), 13 deletions(-) diff --git a/resources/views/penebusan/v2/index.blade.php b/resources/views/penebusan/v2/index.blade.php index 897eaee..eefeece 100644 --- a/resources/views/penebusan/v2/index.blade.php +++ b/resources/views/penebusan/v2/index.blade.php @@ -293,7 +293,7 @@ BAYARAN PELANGGAN (RM)
- +
@@ -301,7 +301,7 @@ BAYARAN PELANGGAN (RM)
- +
@@ -2627,7 +2627,7 @@ var nowakil = nw; var perludibayar = parseFloat($('#perludibayarAT').val().replace(/[^0-9.-]+/g,"")); var bayaranpelanggan = parseFloat($('#duitPelanggan').val()); - var bakipelanggan = parseFloat($('#bakiPelanggan').val()); + var bakipelanggan = parseFloat($('#bakiPelanggan').val().replace(/[^0-9.-]+/g,"")); var kadarupahbaru = 0; // if(nilai_marhun > 0 && nilai_marhun < 400.99){ @@ -3458,10 +3458,48 @@ function funcexcuse(toggle){ return false; } -function validateFloatKeyPress(el, evt) { +function validateFloatKeyPressAnsuran(el, evt) { + var charCode = (evt.which) ? evt.which : event.keyCode; + var number = el.value; + let keypress = evt.key; + + // Split the current value by dot to check the number of decimal places + var numberParts = number.split('.'); + + // Check if the pressed key is a valid character for a floating-point number + if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) { + return false; + } + + // Check if there is already a dot, and the pressed key is another dot + if (numberParts.length > 1 && charCode == 46) { + return false; + } + + // Get the caret position in the input field + var caratPos = getSelectionStart(el); + + // Get the position of the existing dot + var dotPos = el.value.indexOf("."); + + // Check if the caret is after the existing dot, and there are more than 2 digits after the dot + if (caratPos > dotPos && dotPos > -1 && (numberParts[1] && numberParts[1].length > 1)) { + return false; + } + + // If the last digit is not 5 or 0, disallow the input + if (numberParts[1] && numberParts[1].length === 1 && !['0', '5'].includes(keypress)) { + return false; + } + + return true; +} + +function validateFloatKeyPressAT(el, evt) { let hargamarhun = parseFloat("{{ $nilaihargasemasa }}"); let tenpercent = hargamarhun * (10/100); - let pembiayaan = parseFloat($('#pinjamanbaru').val().replace(/[^0-9.-]+/g,"")); + let pembiayaan = parseFloat($('#hargapembiayaansemasa').val().replace(/[^0-9.-]+/g,"")); + let bakiupah = parseFloat($('#jumlahupah').val().replace(/[^0-9.-]+/g,"")); var charCode = (evt.which) ? evt.which : event.keyCode; var number = el.value; let pembiayaanbaru = 0; @@ -3470,7 +3508,7 @@ function validateFloatKeyPress(el, evt) { if(!isNaN(keypress)){ - tot = number.toString() + keypress.toString(); + tot = number.toString().replace(/[^0-9.-]+/g,"") + keypress.toString(); } var number = el.value.split('.'); @@ -3482,9 +3520,11 @@ function validateFloatKeyPress(el, evt) { return false; } + let ansuranbaru = parseFloat(tot) - parseFloat(bakiupah); + //total pembiayaan baru - pembiayaanbaru = pembiayaan - parseFloat(tot); - + pembiayaanbaru = pembiayaan - ansuranbaru; + //get the carat position var caratPos = getSelectionStart(el); var dotPos = el.value.indexOf("."); @@ -3492,7 +3532,8 @@ function validateFloatKeyPress(el, evt) { return false; } - if(pembiayaanbaru <= tenpercent){ + if(parseFloat(pembiayaanbaru) <= tenpercent){ + Swal.fire('Amaran!','Pembiayaan baru < 10%','error'); return false; } @@ -3515,7 +3556,7 @@ function getSelectionStart(o) { function bayaranATfunc(e){ - let byr = $(e).val(); + let byr = $(e).val().replace(/[^0-9.-]+/g,""); let total = 0; let pdbyr = 0; let pembiayaanbaru = 0; @@ -3547,8 +3588,15 @@ function bayaranATfunc(e){ pembiayaanbaru = pembiayaan - kumpul; totalpercent = (pembiayaanbaru / hargamarhun) * 100; - $('#pinjamanbaru').val(formatter.format(pembiayaanbaru)); - $('#basic-addon2').text(formatter.format(totalpercent.toFixed(2))); + if(kumpul > 0){ + $('#pinjamanbaru').val(formatter.format(pembiayaanbaru)); + $('#basic-addon2').text(formatter.format(totalpercent.toFixed(2))); + }else{ + $('#pinjamanbaru').val(formatter.format(pembiayaan)); + totalpercent = (pembiayaan / hargamarhun) * 100; + $('#basic-addon2').text(formatter.format(totalpercent.toFixed(2))); + } + //bakipelanggan // let totalbaki = byr - baki; @@ -3560,7 +3608,7 @@ function bayaranATfunc(e){ } function blockbayaranAT(event){ - let value = $(event).val(); + let value = $(event).val().replace(/[^0-9.-]+/g,""); let upah = parseFloat($('#jumlahupah').val()); let pembiayaan = parseFloat("{{ $pembiayaanbaru }}"); let pembiayaanlama = parseFloat("{{ $bakipjm }}");