Add cent validation and corrections

This commit is contained in:
Afiq Hamzah
2024-09-24 16:45:31 +08:00
parent 71f4168956
commit 4aec1c3537
@@ -39,7 +39,7 @@
</div>
</div>
<div class="form" >
<div class="form">
<div style="overflow-x: auto;">
<table class="table align-items-left" id="selepas_tawarruq" style="width: 100%;">
<thead class="thead-light">
@@ -48,55 +48,55 @@
<i class="text-danger" style="font-size:12px;">Amaun Semasa -> Amaun Keuntungan Semasa Sahaja.</i><br>
<i class="text-danger" style="font-size:12px;">Amaun Lain -> Amaun Ansuran Pembiayaan & Amaun Keuntungan Semasa, Sila Masukkan Amaun</i>
</div> -->
<tr style="text-align: center;">
<!-- <th width="10%">No</th> -->
<th width="10%">No <br>Rujukan</th>
<th width="10%">Tarikh Akhir</th>
<th width="10%">Bayaran</th>
<th width="10%">Baki <br>Pembiayaan</th>
<!-- <th width="10%">Pembiayaan Asal</th>
<tr style="text-align: center;">
<!-- <th width="10%">No</th> -->
<th width="10%">No <br>Rujukan</th>
<th width="10%">Tarikh Akhir</th>
<th width="10%">Bayaran</th>
<th width="10%">Baki <br>Pembiayaan</th>
<!-- <th width="10%">Pembiayaan Asal</th>
<th width="10%">Tempoh</th> -->
</tr>
</tr>
</thead>
@php $counter = 1;$jenisbayaran = 'tawarruq'; $totalupahasal = 1; $errorcount = 0; @endphp
@foreach($arraybayar as $index=>$bayar)
@if($bayar['hargajualan'] != '')
@foreach($arraybayar as $index=>$bayar)
@if($bayar['hargajualan'] != '')
<tbody class="list" style="text-align: center;">
<tr>
<!-- <td>
<tr>
<!-- <td>
{{ $counter }}
</td> -->
<td>
{{ $bayar['norujukan'] }}
</td>
@php
<td>
{{ $bayar['norujukan'] }}
</td>
@php
$t_matang = strtotime($bayar['t_matang']);
$t_akhir = date("d/m/Y", $t_matang);
$t_matang = strtotime($bayar['t_matang']);
$t_akhir = date("d/m/Y", $t_matang);
if($bayar['lelong_tawarruq'] == 0)
{
$t_matang = strtotime($bayar['t_matang1']);
$t_akhir = date("d/m/Y", $t_matang);
}
@endphp
<td>
{{ $t_akhir }}
</td>
@php
$upahtawarruq = $bayar['upah_tawarruq'];
$upahtawarruq = floatval(str_replace(',','',$upahtawarruq));
if($bayar['lelong_tawarruq'] == 0)
{
$t_matang = strtotime($bayar['t_matang1']);
$t_akhir = date("d/m/Y", $t_matang);
}
@endphp
<td>
{{ $t_akhir }}
</td>
@php
$upahtawarruq = $bayar['upah_tawarruq'];
$upahtawarruq = floatval(str_replace(',','',$upahtawarruq));
$totalupahasal = $totalupahasal + $upahtawarruq;
$totalupahasal = $totalupahasal + $upahtawarruq;
if(floatval($upahtawarruq) == 0){
$errorcount++;
}
@endphp
<!-- <td>
if(floatval($upahtawarruq) == 0){
$errorcount++;
}
@endphp
<!-- <td>
<select name="sltbayaran" value="{{ old('sltbayaran') ? old('sltbayaran') : '' }}" class="form-control mb-2" data-upah="{{ $upahtawarruq }}" data-jenis="tawarruq" style="text-align: center; border: revert;">
<option selected disabled></option>
@@ -110,52 +110,52 @@
<input type="hidden" name="txtnorujukanhidden[]" value="{{ $bayar['norujukan'] }}" style="text-align: center;" />
<input type="hidden" name="txtkodcawhidden[]" value="{{ $bayar['kodcaw'] }}" style="text-align: center;" />
</td>-->
<td><input name="txtbayarantawarruq" type="number" step="0.01" value="{{ sprintf('%0.2f', $upahtawarruq) }}" class="form-control" style="text-align: center; border: outset;" data-bakipjm="{{ $bayar['bakipjm'] }}" data-upah="{{ $upahtawarruq }}" data-nm="{{ $bayar['nilaimarhun'] }}" data-taglel="{{ $bayar['taglel'] }}">
<input type="hidden" name="txtbayaranhidden[]" value="{{ $upahtawarruq }}" class="bayaran" style="text-align: center;" />
<input type="hidden" name="txtjenisbayaran[]" value="{{ $jenisbayaran }}" style="text-align: center;" />
<input type="hidden" name="txtnorujukanhidden[]" value="{{ $bayar['norujukan'] }}" style="text-align: center;" />
<input type="hidden" name="txtkodcawhidden[]" value="{{ $bayar['kodcaw'] }}" style="text-align: center;" />
</td>
<td><input name="txtbayarantawarruq" type="number" step="0.01" value="{{ sprintf('%0.2f', $upahtawarruq) }}" class="form-control" style="text-align: center; border: outset;" data-bakipjm="{{ $bayar['bakipjm'] }}" data-upah="{{ $upahtawarruq }}" data-nm="{{ $bayar['nilaimarhun'] }}" data-taglel="{{ $bayar['taglel'] }}">
<input type="hidden" name="txtbayaranhidden[]" value="{{ $upahtawarruq }}" class="bayaran" style="text-align: center;" />
<input type="hidden" name="txtjenisbayaran[]" value="{{ $jenisbayaran }}" style="text-align: center;" />
<input type="hidden" name="txtnorujukanhidden[]" value="{{ $bayar['norujukan'] }}" style="text-align: center;" />
<input type="hidden" name="txtkodcawhidden[]" value="{{ $bayar['kodcaw'] }}" style="text-align: center;" />
</td>
<td>
<input style="border: none; text-align: center;" type="text" value="{{ number_format($bayar['bakipjm'],2) }}" class="bakibaru" readonly>
</td>
<td>
<input style="border: none; text-align: center;" type="text" value="{{ number_format($bayar['bakipjm'],2) }}" class="bakibaru" readonly>
</td>
<!-- <td>
<!-- <td>
{{ number_format($bayar['pinjaman'],2) }}
</td>
<td>
{{ $bayar['tempoh'] }}
</td> -->
</tr>
</tr>
</tbody>
@php $counter++; @endphp
@endif
@endforeach
@endif
@endforeach
</table>
<hr>
</div>
</div>
<div class="row pb-4 font-weight-light">
<div class="col-6">
<label style="text-transform: uppercase; text-align: center;"><strong>Fi Pengurusan</strong></label>
</div>
<div class="col-6">
<span class="text-primary"><strong>RM<span>1.00</span></strong></span>
</div>
<div class="row pb-4 font-weight-light">
<div class="col-6">
<label style="text-transform: uppercase; text-align: center;"><strong>Fi Pengurusan</strong></label>
</div>
<div class="row pb-4 font-weight-light">
<div class="col-6">
<label style="text-transform: uppercase; text-align: center;"><strong>Jumlah Keseluruhan</strong></label>
</div>
<div class="col-6">
<span class="text-primary"><strong>RM<span id="spanjumlah">{{ number_format($totalupahasal,2) }}</span></strong></span>
</div>
<div class="col-6">
<span class="text-primary"><strong>RM<span>1.00</span></strong></span>
</div>
</div>
<div class="row pb-4 font-weight-light">
<div class="col-6">
<label style="text-transform: uppercase; text-align: center;"><strong>Jumlah Keseluruhan</strong></label>
</div>
<div class="col-6">
<span class="text-primary"><strong>RM<span id="spanjumlah">{{ number_format($totalupahasal,2) }}</span></strong></span>
</div>
</div>
<span class="text-danger d-none" id="spanamarankosong">*Jangan biarkan kotak bayaran ditinggalkan kosong, Sila masukkan amaun!</span>
</div>
@@ -174,9 +174,9 @@
<a href="{{ route('home') }}" type="button" class="btn btn-danger">Batal</a>&nbsp;
<!-- <button type="submit" id="bayarsbmt" class="btn btn-primary" disabled onclick="loadingbtn();">Bayar</button> -->
@if($totalupahasal == 1.00 || $errorcount > 0)
<button type="submit" id="bayarsbmt" class="btn btn-primary" disabled onclick="loadingbtn();">Bayar</button>
<button type="submit" id="bayarsbmt" class="btn btn-primary" disabled onclick="loadingbtn();">Bayar</button>
@else
<button type="submit" id="bayarsbmt" class="btn btn-primary" onclick="loadingbtn();">Bayar</button>
<button type="submit" id="bayarsbmt" class="btn btn-primary" onclick="loadingbtn();">Bayar</button>
@endif
</div>
</div>
@@ -185,22 +185,21 @@
</div>
<script>
$(document).ready(function() {
$(window).keydown(function(event){
if(event.keyCode == 13) {
event.preventDefault();
return false;
}
});
$(window).keydown(function(event) {
if (event.keyCode == 13) {
event.preventDefault();
return false;
}
});
$('#selepas_tawarruq > tbody > tr').each(function() {
$(this).find("td:gt(0)").each(function(){
// console.log($(this).html());
console.log($("input[name=txtbayarantawarruq]").val());
});
});
$('#selepas_tawarruq > tbody > tr').each(function() {
$(this).find("td:gt(0)").each(function() {
// console.log($(this).html());
console.log($("input[name=txtbayarantawarruq]").val());
});
});
});
const formatter = new Intl.NumberFormat('en-US', {
@@ -304,7 +303,7 @@
$("input[name=txtbayarantawarruq]").change(function(e) {
// $("input[name=txtbayarantawarruq]").click(function(e) {
// $("input[name=txtbayarantawarruq]").click(function(e) {
let upah = $(this).data('upah');
let bakipinjam = $(this).data('bakipjm');
@@ -319,22 +318,22 @@
let upahasal = Number($(this).data('upah'));
let inputvalue = Number(this.value);
// if (inputvalue > upahasal) {
// if (inputvalue > upahasal) {
inputvalue = (inputvalue * 100) / 10;
inputvalue = Math.round(inputvalue);
inputvalue = inputvalue / 10;
inputvalue = (inputvalue * 100) / 10;
inputvalue = Math.round(inputvalue);
inputvalue = inputvalue / 10;
var lebihbyr = inputvalue.toFixed(2) - upahasal.toFixed(2);
let bakipinjambaru = parseFloat(bakipinjam - lebihbyr);
var lebihbyr = inputvalue.toFixed(2) - upahasal.toFixed(2);
let bakipinjambaru = parseFloat(bakipinjam - lebihbyr);
bakipinjambaru = (bakipinjambaru * 100) / 10;
bakipinjambaru = Math.round(bakipinjambaru);
bakipinjambaru = bakipinjambaru / 10;
bakipinjambaru = (bakipinjambaru * 100) / 10;
bakipinjambaru = Math.round(bakipinjambaru);
bakipinjambaru = bakipinjambaru / 10;
$(this).closest('tr').find('.bakibaru').val(formatter.format(bakipinjambaru.toFixed(2)));
$(this).closest('tr').find('.bayaran').val(inputvalue.toFixed(2));
// }
$(this).closest('tr').find('.bakibaru').val(formatter.format(bakipinjambaru.toFixed(2)));
$(this).closest('tr').find('.bayaran').val(inputvalue.toFixed(2));
// }
if (bayar > parseFloat(errorlebih)) {
$("#bayarsbmt").prop('disabled', false);
@@ -354,8 +353,7 @@
$(this).closest('tr').find('.bakibaru').val(formatter.format(bakipinjambaru.toFixed(2)));
calculateall(jenis, taglel);
return false;
}else if(bayar < parseFloat(upah) && parseFloat(upah) !== 0.00)
{
} else if (bayar < parseFloat(upah) && parseFloat(upah) !== 0.00) {
$("#bayarsbmt").prop('disabled', false);
Swal.fire(
'Amaran!',
@@ -368,8 +366,7 @@
$(this).closest('tr').find('.bakibaru').val(formatter.format(bakipinjambaru.toFixed(2)));
calculateall(jenis, taglel);
return false;
}else if(bayar == 0.00 && parseFloat(upah) == 0.00)
{
} else if (bayar == 0.00 && parseFloat(upah) == 0.00) {
$("#bayarsbmt").prop('disabled', false);
Swal.fire(
'Amaran!',
@@ -411,7 +408,7 @@
bayaranselepas = Math.round(bayaranselepas);
bayaranselepas = bayaranselepas / 10;
$('#spantransaksi' + (index+1)).text(formatter.format(bayaranselepas));
$('#spantransaksi' + (index + 1)).text(formatter.format(bayaranselepas));
sumtawarruq += parseFloat(bayaranselepas) || 0;
@@ -452,27 +449,8 @@
</script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var input = document.getElementById('txtbayarantawarruq');
var timer;
input.addEventListener('input', function() {
clearTimeout(timer);
timer = setTimeout(function() {
var value = parseFloat(input.value);
if (!isNaN(value)) {
input.value = value.toFixed(2);
}
}, 500); // 500ms delay
});
});
</script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var inputs = document.querySelectorAll('input[name="txtbayarantawarruq"]');
Array.from(inputs).forEach(function(input) {
document.addEventListener('DOMContentLoaded', function() {
var input = document.getElementById('txtbayarantawarruq');
var timer;
input.addEventListener('input', function() {
@@ -480,15 +458,50 @@ document.addEventListener('DOMContentLoaded', function() {
timer = setTimeout(function() {
var value = parseFloat(input.value);
if (!isNaN(value)) {
roundedValue = (value * 100) / 10;
roundedValue = Math.round(roundedValue);
roundedValue = roundedValue / 10;
input.value = roundedValue.toFixed(2);
input.value = value.toFixed(2);
}
}, 1500); // 1500ms delay
}, 500); // 500ms delay
});
});
</script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var inputs = document.querySelectorAll('input[name="txtbayarantawarruq"]');
Array.from(inputs).forEach(function(input) {
var timer;
input.addEventListener('input', function() {
const stringHasPoint = input.value.indexOf('.') !== -1;
const stringHasMoreThanTwoDecimal = input.value.split('.')[1].length > 2;
const lastDecimalIsNotZeroOrFive = input.value.split('.')[1].slice(-1) !== '0' && input.value.split('.')[1].slice(-1) !== '5';
const stringHasTwoDecimalNumber = input.value.split('.')[1].length === 2;
if (stringHasPoint && stringHasMoreThanTwoDecimal) {
input.value = input.value.split('.')[0] + '.' + input.value.split('.')[1].substring(0, 2);
}
if (stringHasTwoDecimalNumber && lastDecimalIsNotZeroOrFive) {
alert('Nilai untuk sen terakhir adalah 0 dan 5 sahaja');
input.value = input.value.split('.')[0] + '.' + input.value.split('.')[1].substring(0, 1) + '0';
}
clearTimeout(timer);
timer = setTimeout(function() {
var value = parseFloat(input.value);
if (!isNaN(value)) {
roundedValue = (value * 100) / 10;
roundedValue = Math.round(roundedValue);
roundedValue = roundedValue / 10;
input.value = roundedValue.toFixed(2);
}
}, 1500); // 1500ms delay
});
});
});
});
</script>
@endsection