fix: nfc not working with jade

This commit is contained in:
Dev Team
2025-06-18 15:55:50 +06:30
parent b9aa1ec870
commit 46ab479c86
3 changed files with 101 additions and 29 deletions

View File

@@ -207,29 +207,19 @@ document.addEventListener('DOMContentLoaded', function () {
const paymentCards = document.querySelectorAll('.payment-card:not(.disabled)');
const cancelButton = document.querySelector('.btn-cancel');
$('#read_modal').hide();
$('.modal-backdrop.fade').css('display', 'none');
$('#read_nfc').on('hide.bs.modal', function() {
$('#payment_modal').css('display', 'none');
$('.modal-backdrop.fade').css('display', 'none');
});
$("#read_nfc").on('click', function() {
$('#payment_modal').css('display', 'none');
$('.modal-backdrop.fade').css('display', 'none');
});
// $('#read_modal').hide();
// $('.modal-backdrop.fade').css('display', 'none');
cancelButton.addEventListener('click', function () {
alert('cancel click');
console.log("Action: Cancel payment.");
paymentCards.forEach(c => c.classList.remove('active'));
$('.payment-card').css('display', 'none');
});
const disabledNfcCard = document.querySelector('.payment-card.disabled');
document.querySelector('.payment-card#dynamic_qr').addEventListener('click', function() {
initDynamicQrPay();
});

View File

@@ -518,7 +518,86 @@
</div>
<%= render "read_modal" %>
<script type="text/javascript">
<script defer type="text/javascript">
// nfc scan
$("#read_modal").on('shown.bs.modal', function() {
$('#payment_modal').css('display', 'none');
})
$("#read_nfc").on('click', function() {
$('#payment_modal').hide();
$('#payment_modal').css('display', 'none');
$('.modal-backdrop.fade').css('display', 'none');
});
$("#read_modal").on('shown.bs.modal', function() {
$('#payment_modal').css('display', 'none');
$('#payment_modal').hide();
$("#read_modal").attr('data-for', 'member');
// alert('show read nfc modal');
var sale_id = $('#sale_id').text();
getCardNo();
onScan.attachTo(document, {
onScan: function (sCode) {
setCardNo(sCode);
},
});
});
// qr pay
document.querySelector('.payment-card#dynamic_qr').addEventListener('click', function() {
initDynamicQrPay();
});
function initDynamicQrPay() {
const paymentMethod = 'MMQR';
const $serverMode = $('#server_mode');
const $createOrderBtn = $('#create_order');
const $createPayOrderBtn = $('#create_pay_order');
$.ajax({
url: '/foodcourt/qrpay/req_bill?order_id=' + $('#receipt_no').text().trim() + '&customer_id=' + $('input[name="customer_id"]').val(),
method: 'GET',
success: function(result) {
console.log(result);
if(! result.status) {
alert('Something went wrong');
return;
}
window.location.href = `/foodcourt/${result.sale_id}/qrpay/init`;
if ($serverMode.val() !== "cloud" && $("#display_type").val() === "2") {
// customer_display_view(null, "reload");
}
},
error: function(xhr) {
$('#oqs_loading_wrapper').hide();
$createOrderBtn.prop('disabled', false);
$createPayOrderBtn.prop('disabled', false);
const errorMsg = xhr.status ? `Status: ${xhr.status} - ${xhr.statusText}` : "Network error";
swal("Error", errorMsg, "error");
}
});
}
const cancelButton = document.querySelector('.btn-cancel');
cancelButton.addEventListener('click', function () {
console.log("Action: Cancel payment.");
paymentCards.forEach(c => c.classList.remove('active'));
$("#payment_modal").css('display', 'none');
$("#payment_modal").hide();
});
var cashier_type = 'food_court';
$("#read_modal").on("hidden.bs.modal", function (e) {
$("#read_modal").css("display", "none");
@@ -535,16 +614,16 @@
})
$('#pay, .req_bill').on('click', function () {
$("#read_modal").show();
$("#read_modal").attr('data-for', 'member');
var sale_id = $('#sale_id').text();
getCardNo();
// $("#read_modal").show();
// $("#read_modal").attr('data-for', 'member');
// var sale_id = $('#sale_id').text();
// getCardNo();
onScan.attachTo(document, {
onScan: function(sCode) {
setCardNo(sCode)
}
});
// onScan.attachTo(document, {
// onScan: function(sCode) {
// setCardNo(sCode)
// }
// });
});
// $('#pay').on('click', function () {
// // var sale_id = $('#sale_id').text();

View File

@@ -333,16 +333,16 @@ $(document).ready(function() {
paid_amount: amountToReceive,
receipt_no: receiptNo
}, "pay_success");
setTimeout(() => {
window.location.href = "/";
}, 2000);
}
},
error: (xhr, status, error) => {
console.log("Error:", error);
}
});
setTimeout(() => {
window.location.href = "/";
}, 1500);
}
function checkPaymentStatus() {
@@ -434,13 +434,16 @@ $(document).ready(function() {
success: function(data) {
if (data.status) {
customer_display_view(null, "reload");
window.location.href = "/";
}
},
error: function(xhr, status, error) {
console.log("Error:", error);
}
});
setTimeout(() => {
window.location.href = "/";
}, 1500);
});
});