buat pembayaran untuk phone boleh letak
This commit is contained in:
@@ -417,6 +417,18 @@ class BayaranController extends Controller
|
||||
return $exist_carts;
|
||||
}
|
||||
|
||||
public function UserCheckCarts(){
|
||||
$exist_carts = PersonalCarts::where('ic_no', Auth::user()->icno)
|
||||
->where('user_id', Auth::user()->id)
|
||||
->where(function ($query) {
|
||||
$query->where('status_pkb', 'PENDING')
|
||||
->orWhere('status_koop', 'PENDING');
|
||||
})
|
||||
->first();
|
||||
|
||||
return response()->json($exist_carts);
|
||||
}
|
||||
|
||||
public function removeCarts(){
|
||||
$exist_carts = PersonalCarts::where('ic_no', Auth::user()->icno)
|
||||
->where('user_id', Auth::user()->id)
|
||||
@@ -426,7 +438,7 @@ class BayaranController extends Controller
|
||||
$exist_carts->delete();
|
||||
}
|
||||
|
||||
return $exist_carts;
|
||||
return response()->json($exist_carts);
|
||||
}
|
||||
|
||||
public function serviceCallHttp($company){
|
||||
|
||||
Vendored
+21
@@ -66,3 +66,24 @@ radios.forEach((radio) => {
|
||||
});
|
||||
});
|
||||
|
||||
let deleteCarts = () => {
|
||||
fetch('/deletecarts')
|
||||
.then(response => {
|
||||
if (!response.ok) {
|
||||
throw new Error('HTTP error ' + response.status);
|
||||
}
|
||||
return response.json();
|
||||
})
|
||||
.then(data => {
|
||||
console.log(data);
|
||||
if (data) {
|
||||
redirect_home();
|
||||
}
|
||||
})
|
||||
.catch(error => console.error(error));
|
||||
}
|
||||
|
||||
let redirect_home = () => {
|
||||
window.location.href = redirect_home_var;
|
||||
}
|
||||
|
||||
|
||||
+11
-8
@@ -1,6 +1,5 @@
|
||||
async function fetchCartCount() {
|
||||
try {
|
||||
// Replace with your API endpoint
|
||||
const response = await fetch('/showcarts-available');
|
||||
|
||||
if (!response.ok) {
|
||||
@@ -8,35 +7,39 @@ async function fetchCartCount() {
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
console.log(data.status_koop);
|
||||
|
||||
let totalcount = 0;
|
||||
totalcount += (data.status_koop === 'PENDING') ? 1 : 0;
|
||||
totalcount += (data.status_pkb === 'PENDING') ? 1 : 0;
|
||||
// Assuming the API returns a JSON object with a `count` property
|
||||
const cartCount = totalcount || 0;
|
||||
|
||||
updateCartCount(cartCount);
|
||||
} catch (error) {
|
||||
console.error('Error fetching cart count:', error);
|
||||
// Optionally, handle error (e.g., show default value or retry)
|
||||
updateCartCount(0);
|
||||
}
|
||||
}
|
||||
|
||||
function updateCartCount(itemCount) {
|
||||
const cartCountElement = document.getElementById('cart-count');
|
||||
const ahrefRedirect = document.getElementById('a-redirect');
|
||||
|
||||
if (itemCount > 0) {
|
||||
cartCountElement.textContent = itemCount; // Show the number of items
|
||||
cartCountElement.classList.remove('d-none'); // Ensure it is visible
|
||||
cartCountElement.textContent = itemCount;
|
||||
cartCountElement.classList.remove('d-none');
|
||||
} else {
|
||||
cartCountElement.textContent = ''; // Clear the content
|
||||
cartCountElement.classList.add('d-none'); // Hide the element if the cart is empty
|
||||
cartCountElement.textContent = '';
|
||||
cartCountElement.classList.add('d-none');
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function redirectTrolley() {
|
||||
const cartCountElement = document.getElementById('cart-count');
|
||||
if(cartCountElement.textContent == 0){
|
||||
return false;
|
||||
}
|
||||
|
||||
let form = document.createElement('form');
|
||||
form.method = 'POST';
|
||||
form.action = routetrolley;
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script>let redirect_home_var="{{ route('home') }}";</script>
|
||||
|
||||
<title>Bayar SAG | Portal Pelanggan</title>
|
||||
<div>
|
||||
@@ -151,7 +152,7 @@
|
||||
</div>
|
||||
<div class="form">
|
||||
<div style="overflow-x: auto;">
|
||||
<table class="table align-items-left" id="selepas_tawarruq" style="width: 100%;">
|
||||
<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>
|
||||
@@ -264,7 +265,7 @@
|
||||
|
||||
<!-- <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 href="{{ route('home') }}" type="button" class="btn btn-danger">Batal</a>
|
||||
<a onclick="deleteCarts()" type="button" class="cursor-pointer btn btn-danger">Batal</a>
|
||||
<!-- <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>
|
||||
@@ -276,7 +277,7 @@
|
||||
</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>
|
||||
@@ -325,7 +326,7 @@
|
||||
$('#selepas_tawarruq > tbody > tr').each(function() {
|
||||
$(this).find("td:gt(0)").each(function() {
|
||||
// console.log($(this).html());
|
||||
console.log($("input[name=txtbayarantawarruq]").val());
|
||||
// console.log($("input[name=txtbayarantawarruq]").val());
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -398,37 +399,6 @@
|
||||
}
|
||||
});
|
||||
|
||||
$("input[name=txtbayaranarrahn]").change(function(e) {
|
||||
|
||||
let upah = $(this).data('upah');
|
||||
let pinjaman = $(this).data('pinjaman');
|
||||
let jenis = $(this).data('jenis');
|
||||
let nm = $(this).data('nm');
|
||||
let taglel = $(this).data('taglel');
|
||||
|
||||
let bayar = Number(this.value);
|
||||
|
||||
let errorlebih = nm - (nm * 0.1);
|
||||
|
||||
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(upah);
|
||||
calculateall(jenis, taglel);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
$(this).closest('tr').find('.bayaran').val(this.value);
|
||||
calculateall(jenis, taglel);
|
||||
|
||||
});
|
||||
|
||||
|
||||
$("input[name=txtbayarantawarruq]").change(function(e) {
|
||||
// $("input[name=txtbayarantawarruq]").click(function(e) {
|
||||
@@ -520,16 +490,28 @@
|
||||
var sumtawarruq = 0;
|
||||
var sum = 0;
|
||||
var counterrorbayar = 0;
|
||||
var selectedRadio = document.querySelector('input[name="radpembayaran"]:checked');
|
||||
|
||||
$('#belum_tawarruq').find('input[name=txtbayaranarrahn]').each(function() {
|
||||
sumarrahn += parseFloat(this.value) || 0;
|
||||
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;
|
||||
@@ -544,6 +526,7 @@
|
||||
counterrorbayar++;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
sum = sumarrahn + sumtawarruq;
|
||||
sum = (sum * 100) / 10;
|
||||
@@ -582,7 +565,7 @@
|
||||
/*check radio button enabled*/
|
||||
checked_rad();
|
||||
|
||||
var inputs = document.querySelectorAll('input[name="txtbayarantawarruq"]');
|
||||
var inputs = document.querySelectorAll('input[name="txtbayarantawarruq"]:not([disabled])');
|
||||
|
||||
Array.from(inputs).forEach(function(input) {
|
||||
var timer;
|
||||
@@ -590,9 +573,9 @@
|
||||
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;
|
||||
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);
|
||||
|
||||
@@ -184,18 +184,14 @@
|
||||
listSyarikatinCartInput.value = JSON.stringify(totaltagSyarikat);
|
||||
event.target.appendChild(listSyarikatinCartInput);
|
||||
|
||||
let check_carts = fetch('/showcarts-available')
|
||||
.then(response => {
|
||||
console.log(response);
|
||||
if (!response.ok) {
|
||||
throw new Error('HTTP error ' + response.status);
|
||||
(async () => {
|
||||
const cartsAvailable = await checkCarts();
|
||||
if (!cartsAvailable || (typeof cartsAvailable === 'object' && Object.keys(cartsAvailable).length === 0)) {
|
||||
// console.log('No carts available or an error occurred.');
|
||||
event.target.submit();
|
||||
return;
|
||||
}
|
||||
return response.json();
|
||||
})
|
||||
.then(data => console.log(data))
|
||||
.catch(error => console.error(error));
|
||||
|
||||
if(check_carts){
|
||||
Swal.fire({
|
||||
title: "Troli Anda Masih Ada Lagi?",
|
||||
showDenyButton: true,
|
||||
@@ -203,11 +199,10 @@
|
||||
confirmButtonText: "Pergi Ke Troli",
|
||||
denyButtonText: `Buang Troli`
|
||||
}).then((result) => {
|
||||
/* Read more about isConfirmed, isDenied below */
|
||||
if (result.isDenied) {
|
||||
let remove_carts = fetch('/deletecarts')
|
||||
.then(response => {
|
||||
console.log(response);
|
||||
console.log(response.data);
|
||||
if (!response.ok) {
|
||||
throw new Error('HTTP error ' + response.status);
|
||||
}
|
||||
@@ -219,11 +214,24 @@
|
||||
}
|
||||
event.target.submit();
|
||||
});
|
||||
console.log(check_carts);
|
||||
}else{
|
||||
event.target.submit();
|
||||
|
||||
})();
|
||||
});
|
||||
|
||||
const checkCarts = async () => {
|
||||
try {
|
||||
const response = await fetch('/showcarts-available');
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error('HTTP error ' + response.status);
|
||||
}
|
||||
|
||||
});
|
||||
const data = await response.json();
|
||||
return data;
|
||||
} catch (error) {
|
||||
console.error('Error fetching carts:', error);
|
||||
return null;
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@endsection
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item ms-lg-auto">
|
||||
<a class="nav-link nav-link-icon me-2 cursor-pointer" onclick="redirectTrolley()">
|
||||
<a id="a-redirect" class="nav-link nav-link-icon me-2 cursor-pointer" onclick="redirectTrolley()">
|
||||
<i class="fa fa-shopping-cart"></i>
|
||||
<p class="d-inline text-sm z-index-1 font-weight-bold" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Troli">Troli <span id="cart-count" class="badge bg-danger ms-1">0</span></p>
|
||||
</a>
|
||||
|
||||
+1
-1
@@ -125,7 +125,7 @@ Route::get('/requesticfe', 'App\Http\Controllers\TacController@requestKadPengena
|
||||
Route::get('/requesttac', 'App\Http\Controllers\TacController@TACrequest')->name('requesttac');
|
||||
Route::get('/requesttacfe', 'App\Http\Controllers\TacController@TACrequestfe')->name('requesttacfe');
|
||||
|
||||
Route::get('/showcarts-available','App\Http\Controllers\BayaranController@checkCarts')->name('checkcarts');
|
||||
Route::get('/showcarts-available','App\Http\Controllers\BayaranController@UserCheckCarts')->name('checkcarts');
|
||||
Route::get('/deletecarts','App\Http\Controllers\BayaranController@removeCarts')->name('removecarts');
|
||||
|
||||
Route::get('download/manualpengguna',['as'=>'miscellaneous.manualpengguna', function(){
|
||||
|
||||
Reference in New Issue
Block a user