Files
erahn-click/resources/views/includes/bayaran/pembayaransag.blade.php
T
2025-01-13 00:31:48 +08:00

694 lines
29 KiB
PHP

@extends('layouts.indexfifth')
@section('content')
<style>
.not-allowed {
cursor: not-allowed;
}
.card-header {
padding: 1rem !important;
}
.blurred {
filter: blur(2px); /* Apply a blur effect */
opacity: 0.5; /* Slight transparency */
/*pointer-events: none; */
}
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
input[type="number"] {
-moz-appearance: textfield;
}
@media (max-width: 768px) { /* Target screens smaller than tablets */
.sticky-footer {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background-color: white; /* Adjust to match your theme */
height:100px;
box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.1); /* Optional shadow for better visibility */
padding: 10px; /* Add some padding for spacing */
z-index: 1000; /* Ensure it stays above other content */
text-align: center; /* Center align buttons */
}
.sticky-footer .btn {
width: 45%; /* Ensure buttons fit well side-by-side */
margin: 0 5px; /* Add spacing between buttons */
}
.loader-arrahn {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: 9999;
}
.loader-arrahn img {
width: 100px; /* Image size */
}
.loader-arrahn:before {
content: '';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 120px;
height: 120px;
background-color: rgba(0, 0, 0, 0.8);
border-radius: 50%;
z-index: -1;
}
.overlay-arrahn {
position: fixed;
z-index: 9998;
width: 100%;
height: 100%;
top: 0;
left: 0;
background-color: rgba(0, 0, 0, 0.5);
overflow: hidden;
}
}
</style>
<script>let redirect_home_var="{{ route('buffer') }}";</script>
<title>Bayar SAG | Portal Pelanggan</title>
<div>
<div id="load-arrahn" class="d-none">
<div class="overlay-arrahn"></div>
<div class="loader-arrahn text-center">
<img src="{{ asset('argon/img/brand/ar-rahn-take-2.gif') }}">
</div>
</div>
<form name="formpayment" method="post" action="{{ route('payment.engine') }}">
@csrf
<div class="row">
<div class="row">
<div class="d-flex">
<p class="not-allowed text-sm">Home /Pembayaran /</p>
<p class="text-sm text-dark">Bayar SAG Pilihan</p>
</div>
</div>
</div>
<div class="d-md-flex">
<div class="col-sm-12 col-md-9">
@if($list_pkb)
<div class="col-md-11 col-sm-12 mb-4" id="divpkb">
<div class="card shadow">
<div class="card-header mb-4 bg-dark border-0" onclick="document.getElementById('pkb').click()">
<div class="row align-items-center">
<div class="d-flex">
<h4 class="text-white" style="margin-right: 1%;">PKB</h4>
<div class="ms-auto">
<small class="text-white mr-2 font-weight-bold d-none d-md-inline">*sila tick di sini untuk memilih bayaran.</small>
<input type="radio" id="pkb" name="radpembayaran" value="pkb" class="ms-auto" style="width: 30px; height: 30px;" />
</div>
</div>
</div>
</div>
<div class="form">
<div style="overflow-x: auto;">
<table class="table align-items-left" id="selepas_tawarruq" style="width: 100%;">
<thead class="thead-light">
<tr style="text-align: center;">
<th width="10%">No Rujukan</th>
<th width="10%">Tarikh Akhir</th>
<th width="10%">Bayaran</th>
<th width="10%">Baki Pembiayaan</th>
</tr>
</thead>
@php $counter = 1;$jenisbayaran = 'tawarruq'; $totalupahasal = 1; $errorcount = 0; @endphp
@foreach($list_pkb as $index=>$bayar)
@if($bayar['hargajualan'] != '')
<tbody class="list" style="text-align: center;">
<tr>
<td>
{{ $bayar['norujukan'] }}
</td>
@php
$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));
$totalupahasal = $totalupahasal + $upahtawarruq;
if(floatval($upahtawarruq) == 0){
$errorcount++;
}
@endphp
<td><input name="txtbayarantawarruq" type="number" step="0.01" value="{{ sprintf('%0.2f', $upahtawarruq) }}" class="form-control" style="text-align: center; border: outset; -moz-appearance: textfield;-webkit-appearance: none;appearance: none;" 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;" />
<input type="hidden" name="txtcompany" value="pkb"/>
</td>
<td>
<input style="border: none; text-align: center;" type="text" value="{{ number_format($bayar['bakipjm'],2) }}" class="bakibaru" readonly>
</td>
</tr>
</tbody>
@php $counter++; @endphp
@endif
@endforeach
</table>
<hr>
</div>
</div>
<span class="text-danger d-none" id="spanamarankosong">*Jangan biarkan kotak bayaran ditinggalkan kosong, Sila masukkan amaun!</span>
</div>
</div>
@endif
@if($list_koop)
<div class="col-md-11 col-sm-12" id="divkopkb">
<div class="card shadow">
<div class="card-header mb-4 bg-dark border-0" onclick="document.getElementById('kopkb').click()">
<div class="row align-items-center">
<div class="d-flex">
<h4 class="text-white" style="margin-right: 1%;">KOPKB</h4>
<div class="ms-auto">
<small class="text-white mr-2 font-weight-bold d-none d-md-inline">*sila tick di sini untuk memilih bayaran.</small>
<input type="radio" id="kopkb" name="radpembayaran" value="kopkb" class="ms-auto" style="width: 30px; height: 30px;" />
</div>
</div>
</div>
</div>
<div class="form">
<div style="overflow-x: auto;">
<table class="table align-items-left" id="selepas_tawarruq_koop" style="width: 100%;">
<thead class="thead-light">
<tr style="text-align: center;">
<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>
</tr>
</thead>
@php $counter = 1;$jenisbayaran = 'tawarruq'; $totalupahasal = 1; $errorcount = 0; @endphp
@foreach($list_koop as $index=>$bayar)
@if($bayar['hargajualan'] != '')
<tbody class="list" style="text-align: center;">
<tr>
<td>
{{ $bayar['norujukan'] }}
</td>
@php
$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));
$totalupahasal = $totalupahasal + $upahtawarruq;
if(floatval($upahtawarruq) == 0){
$errorcount++;
}
@endphp
<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;" />
<input type="hidden" name="txtcompany" value="kopkb"/>
</td>
<td>
<input style="border: none; text-align: center;" type="text" value="{{ number_format($bayar['bakipjm'],2) }}" class="bakibaru" readonly>
</td>
</tr>
</tbody>
@php $counter++; @endphp
@endif
@endforeach
</table>
<hr>
</div>
</div>
<span class="text-danger d-none" id="spanamarankosong">*Jangan biarkan kotak bayaran ditinggalkan kosong, Sila masukkan amaun!</span>
</div>
</div>
@endif
</div>
<div class="d-none d-sm-none d-md-block col-xl-3">
<div class="col-md-12">
<div class="card shadow">
<div class="card-header mb-4 bg-dark border-0">
<div class="row align-items-center">
<div class="d-flex">
<h4 class="text-white" style="margin-right: 1%;">Pembayaran</h4>
<i class="ms-auto fas fa-shopping-cart fa-2x text-white"></i>
</div>
</div>
</div>
<div class="card-body">
<div class="row pb-4 font-weight-light">
<div class="col-8">
<label style="text-transform: uppercase; text-align: center;"><strong>Fi Pengurusan</strong></label>
</div>
<div class="col-4">
<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-8">
<label style="text-transform: uppercase; text-align: center;"><strong>Jumlah Keseluruhan</strong></label>
</div>
<div class="col-4">
<span class="text-primary"><strong>RM<span id="spanjumlah">1.00</span></strong></span>
</div>
</div>
</div>
</div>
<div class="col-md-12 col-sm-12">
<div class="card shadow">
<div class="form" style="text-align: center;">
</div>
</div>
<!-- <div class="d-flex justify-content-between col-12 mt-3 align-self-end"> -->
<div class="d-flex justify-content-center col-12 mt-3 align-self-end">
<a onclick="deleteCarts()" type="button" class="cursor-pointer 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>
@else
<button type="submit" id="bayarsbmt" class="btn btn-primary" onclick="loadingbtn();">Bayar</button>
@endif
</div>
</div>
</div>
</div>
</div>
<small>*sila klik bayar untuk transaksi bayaran berikutnya.</small>
<!-- Sticky Footer for Mobile View -->
<div class="sticky-footer d-sm-block d-md-none">
<div>
<div class="d-sm-flex">
<div class="font-weight-light small d-flex">
<div class="col-3">
<label style="text-transform: uppercase; text-align: center;font-size: 10px;"><strong>Fi Pengurusan</strong></label>
</div>
<div class="col-3">
<span class="text-primary"><strong>RM<span>1.00</span></strong></span>
</div>
<div class="col-3">
<label style="text-transform: uppercase; text-align: center;font-size: 10px;"><strong>Jumlah Keseluruhan</strong></label>
</div>
<div class="col-3">
<span class="text-primary"><strong>RM<span id="spanjumlah-phone">1.00</span></strong></span>
</div>
</div>
</div>
</div>
<div class="">
<a href="{{ route('home') }}" type="button" class="btn btn-danger">Batal</a>
@if($totalupahasal == 1.00 || $errorcount > 0)
<button type="submit" id="bayarsbmt-phone" class="btn btn-primary" disabled onclick="loadingbtn();">Bayar</button>
@else
<button type="submit" id="bayarsbmt-phone" class="btn btn-primary" onclick="loadingbtn();">Bayar</button>
@endif
</div>
</div>
</form>
</div>
<script src="{{ asset('js/miscellaneous/cart.js') }}"></script>
<script>
$(document).ready(function() {
$(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());
});
});
});
const formatter = new Intl.NumberFormat('en-US', {
minimumFractionDigits: 2
});
var belumtawarruqtable = $('#belum_tawarruq').DataTable({
"bLengthChange": false,
"bFilter": false,
"bInfo": false,
language: {
'paginate': {
'previous': '<span class="fas fa-backward"></span>',
'next': '<span class="fas fa-forward"></span>'
}
},
"scrollX": true,
"pageLength": 10
});
var selepastawarruqtable = $('#selepas_tawarruq').DataTable({
"bLengthChange": false,
"bFilter": false,
"bInfo": false,
language: {
'paginate': {
'previous': '<span class="fas fa-backward"></span>',
'next': '<span class="fas fa-forward"></span>'
}
},
"scrollX": true,
"pageLength": 10,
"pagingType": "simple",
"paging": false
});
var selepastawarruq_kooptable = $('#selepas_tawarruq_koop').DataTable({
"bLengthChange": false,
"bFilter": false,
"bInfo": false,
language: {
'paginate': {
'previous': '<span class="fas fa-backward"></span>',
'next': '<span class="fas fa-forward"></span>'
}
},
"scrollX": true,
"pageLength": 10,
"pagingType": "simple",
"paging": false
});
// var selepastawarruqtable = $('#ringkasan_bayaran').DataTable({
// "bLengthChange": false,
// "bFilter": false,
// "bInfo": false,
// "scrollX": true,
// });
function validateform() {
return false;
}
$("select[name=sltbayaran]").change(function(e) {
let selected = $('option:selected', this).attr('value');
let jenis = $(this).data('jenis');
let upah = $(this).data('upah');
let taglel = $(this).data('taglel');
if (selected === 'fixed') {
$(this).closest('tr').find("input").attr('readonly', true);
$(this).closest('tr').find(".txtbayaran").val(upah);
$(this).closest('tr').find(".bayaran").val(upah);
calculateall(jenis, taglel);
} else {
// $(this).closest('tr').find("input").val();
$(this).closest('tr').find("input").attr('readonly', false);
$(this).closest('tr').find(".txtbayaran").val(upah);
$(this).closest('tr').find(".bayaran").val(upah);
calculateall(jenis, taglel);
}
});
$("input[name=txtbayarantawarruq]").change(function(e) {
// $("input[name=txtbayarantawarruq]").click(function(e) {
let upah = $(this).data('upah');
let bakipinjam = $(this).data('bakipjm');
let jenis = $(this).data('jenis');
let nm = $(this).data('nm');
let taglel = $(this).data('taglel');
let bayar = Number(this.value)
let errorlebih = (bakipinjam - (nm * 0.1) + upah);
let upahasal = Number($(this).data('upah'));
let inputvalue = Number(this.value);
// if (inputvalue > upahasal) {
inputvalue = (inputvalue * 100) / 10;
// inputvalue = Math.round(inputvalue);
inputvalue = inputvalue / 10;
var lebihbyr = inputvalue.toFixed(2) - upahasal.toFixed(2);
let bakipinjambaru = parseFloat(bakipinjam - lebihbyr);
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));
// }
if (bayar > parseFloat(errorlebih)) {
$("#bayarsbmt").prop('disabled', false);
Swal.fire(
'Amaran!',
'Baki Pembiayaan tidak boleh kurang 10% daripada Nilai Marhun',
'error'
)
$(this).val(upah);
$(this).closest('tr').find('.bayaran').val(errorlebih.toFixed(2));
let bakipinjambaru = parseFloat(bakipinjam);
bakipinjambaru = (bakipinjambaru * 100) / 10;
// bakipinjambaru = Math.round(bakipinjambaru);
bakipinjambaru = bakipinjambaru / 10;
$(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) {
$("#bayarsbmt").prop('disabled', false);
Swal.fire(
'Amaran!',
'Bayaran tidak boleh kurang daripada keuntungan semasa!',
'error'
)
$(this).val(upah);
$(this).closest('tr').find('.bayaran').val(upah);
let bakipinjambaru = parseFloat(bakipinjam);
$(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) {
$("#bayarsbmt").prop('disabled', false);
Swal.fire(
'Amaran!',
'Bayaran tidak boleh 0!',
'error'
)
$(this).val(upah);
$(this).closest('tr').find('.bayaran').val(upah);
let bakipinjambaru = parseFloat(bakipinjam);
$(this).closest('tr').find('.bakibaru').val(formatter.format(bakipinjambaru.toFixed(2)));
calculateall(jenis, taglel);
return false;
}
$(this).closest('tr').find('.bayaran').val(this.value);
calculateall(jenis, taglel);
});
function calculateall(jenis, taglel) {
var $row = $(this).closest('tr');
var sumarrahn = 0;
var sumtawarruq = 0;
var sum = 0;
var counterrorbayar = 0;
var selectedRadio = document.querySelector('input[name="radpembayaran"]:checked');
if (!selectedRadio) {
return;
}
if(selectedRadio.value == 'kopkb'){
$('#selepas_tawarruq_koop').find('input[name=txtbayarantawarruq]').each(function(index) {
var bayaranselepas = (this.value * 100) / 10;
// bayaranselepas = Math.round(bayaranselepas);
bayaranselepas = bayaranselepas / 10;
$('#spantransaksi' + (index + 1)).text(formatter.format(bayaranselepas));
sumtawarruq += parseFloat(bayaranselepas) || 0;
if (this.value <= 0 || this.value == '') {
counterrorbayar++;
}
});
}else{
$('#selepas_tawarruq').find('input[name=txtbayarantawarruq]').each(function(index) {
var bayaranselepas = (this.value * 100) / 10;
// bayaranselepas = Math.round(bayaranselepas);
bayaranselepas = bayaranselepas / 10;
$('#spantransaksi' + (index + 1)).text(formatter.format(bayaranselepas));
sumtawarruq += parseFloat(bayaranselepas) || 0;
if (this.value <= 0 || this.value == '') {
counterrorbayar++;
}
});
}
sum = sumarrahn + sumtawarruq;
sum = (sum * 100) / 10;
// sum = Math.round(sum);
sum = sum / 10;
if (counterrorbayar > 0) {
$('#spanamarankosong').removeClass("d-none");
$("#bayarsbmt").prop('disabled', true);
} else {
$('#spanamarankosong').addClass("d-none");
$("#bayarsbmt").prop('disabled', false);
}
$("#spanbayaranarrahn").text(sumarrahn.toFixed(2));
$("#spanbayarantawarruq").text(sumtawarruq.toFixed(2));
$('#spanjumlah').text(formatter.format(sum + 1));
$('#spanjumlah-phone').text(formatter.format(sum + 1));
}
if (document.addEventListener) {
window.addEventListener('pageshow', function(event) {
if (event.persisted || window.performance && window.performance.navigation.type == 2) {
$('#logout-form').submit();
}
if (event.persisted || window.performance && window.performance.navigation.type == 0) {
$('form[name="formpayment"]')[0].reset();
}
},
false);
}
</script>
<script>
document.addEventListener('DOMContentLoaded', function() {
/*check radio button enabled*/
checked_rad();
var inputs = document.querySelectorAll('input[name="txtbayarantawarruq"]:not([disabled])');
Array.from(inputs).forEach(function(input) {
var timer;
input.addEventListener('input', function() {
const stringHasPoint = input.value.indexOf('.') !== -1;
const stringHasMoreThanTwoDecimal = (stringHasPoint) ? input.value.split('.')[1].length > 2 : false;
const lastDecimalIsNotZeroOrFive = (stringHasPoint) ? input.value.split('.')[1].slice(-1) !== '0' && input.value.split('.')[1].slice(-1) !== '5' : false;
const stringHasTwoDecimalNumber = (stringHasPoint) ? input.value.split('.')[1].length === 2 : false;
if (stringHasPoint && stringHasMoreThanTwoDecimal) {
input.value = input.value.split('.')[0] + '.' + input.value.split('.')[1].substring(0, 2);
}
if (stringHasTwoDecimalNumber && lastDecimalIsNotZeroOrFive) {
Swal.fire({
position: 'center',
icon: 'error',
title: 'Nilai untuk sen terakhir adalah 0 dan 5 sahaja',
showConfirmButton: false,
timer: 3000
})
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);
input.dispatchEvent(new Event('change', { bubbles: true }));
calculateall(null, null);
}
}, 1500); // 1500ms delay
});
});
});
</script>
@endsection