Mua trả góp

Kỳ Hạn Trả Góp (Tháng):

VISA 3
MASTERCARD 3

<!–

JCB 3

–>


0 đ


0 đ


0 đ


0 đ

<button id="modal-submit" type="button" class="btn btn-primary" data-done-text="Yêu cầu đã được gửi” data-reset-text=”Gửi Yêu Cầu” data-loading-text=”Đang Gửi…”>Gửi Yêu Cầu

const regexVNNumber = /^(+84|84|0|02|842){1}(3|5|7|8|9){1}[0-9]{8}$/;
const VN_ALPHABETS = “AÀẢÃÁẠĂẰẲẴẮẶÂẦẨẪẤẬBCDĐEÈẺẼÉẸÊỀỂỄẾỆFGHIÌỈĨÍỊJKLMNOÒỎÕÓỌÔỒỔỖỐỘƠỜỞỠỚỢPQRSTUÙỦŨÚỤƯỪỬỮỨỰVWXYỲỶỸÝỴZ”;
const VN_LATIN = “AAAAAAAAAAAAAAAAAABCDDEEEEEEEEEEEEFGHIIIIIIJKLMNOOOOOOOOOOOOOOOOOOPQRSTUUUUUUUUUUUUVWXYYYYYYZ”;
var productInfo = null;

function removeAccent(str) {
return str
.split(“”)
.map(function (ch) {
return VN_LATIN[VN_ALPHABETS.indexOf(ch.toUpperCase())] || ch;
})
.join(“”);
}

function loadBanks() {
function currencyFormat(v) {
if (typeof v == “object” && v.target.value) {
v.target.value = currencyFormat(v.target.value);
return false;
}
return v
? v
.toString()
.replace(/D/g, “”)
.replace(/B(?=(d{3})+(?!d))/g, “.”)
: “0”;
}
let interestType = 0;
let cardRates = [[0.023, 0.023, 0.023]];
let banks = [];
let loanBanks = $(“#loan-banks”);
const result = {
bank: $(“#loan-bank”),
amount: $(“#amount-again”),
fee: $(“#loan-fee”),
total: $(“#loan-pay-total”),
monthly: $(“#monthly-payment”),
};
let selected = { bank: null, term: 0, amount: 5000000 };

const TERMS = [3, 6, 9, 12, 18, 24];
const amountInput = $(“#loan-amount”);
let banksDom, termDoms;
amountInput.on(“input”, currencyFormat);
result.bank.on(“focus”, function () {
loanBanks.show();
});
result.bank.on(“blur”, function (event) {
if (
!banks.some(function (bank) {
return bank.name == this.value;
})
) {
this.value = selected.bank.name;
}
setTimeout(function () {
loanBanks.hide();
}, 300);
});
result.bank.on(“input”, function (event) {
var input = this.value && removeAccent(this.value);
banks.forEach(function (bank, i) {
if (input) {
if (bank.NAME.includes(input)) {
banksDom.eq(i).show();
} else {
banksDom.eq(i).hide();
}
} else {
banksDom.eq(i).show();
}
});
});
function update(id, value) {
if (id === “bank”) {
loanBanks.hide();
selected.bank = banks[value];
selected.bank.rates = selected.bank.rates.map(x => x === ” ? ” : parseFloat(x))
if (!selected.bank.minimum) {
selected.bank.minimum = 3000000;
}
result.bank.val(selected.bank.name);
for (let i in termDoms) {
if (Number.isFinite(selected.bank.rates[i])) {
termDoms.eq(i).removeClass(“disabled”);
} else {
termDoms.eq(i).addClass(“disabled”);
}
}

$(“#loan-cards”).removeClass().addClass(selected.bank.cards.join(” “));
if (!Number.isFinite(selected.bank.rates[selected.term])) {
return update(
“term”,
selected.bank.rates.findIndex(function (r) {
return Number.isFinite(r);
})
);
} else {
return update(“term”, selected.term);
}
} else if (id == “term”) {
if (Number.isFinite(selected.bank.rates[value])) {
selected.term = value;
termDoms.removeClass(“selected”);
termDoms.eq(value).addClass(“selected”);
} else {
return;
}
}

let fee = “”,
total = “”,
monthly = “”;
let amount = parseInt(amountInput.val().replace(/D/g, “”)) || 0;
result.amount.text(amountInput.val());
let bank = selected.bank;

let haloRate = cardRates[0][0];

let rate = bank.rates[selected.term] + haloRate;
console.log(bank)
if (amount >= bank.minimum) {
if (Number.isFinite(rate)) {
fee = interestType ? Math.round(amount*rate/(1-rate)) : Math.round(amount * rate)
total = Math.round(amount + fee);
monthly = Math.round(total / TERMS[selected.term]);
console.log({term: TERMS[selected.term], rate, fee, total, monthly})
}
$(“#loan-error”).text(“”);
} else {
$(“#loan-error”).text(“Dưới mức tối thiểu: ” + currencyFormat(bank.minimum));
}
result.monthly.text(Number.isFinite(monthly) ? currencyFormat(monthly) : “”);
result.fee.text(Number.isFinite(fee) ? currencyFormat(fee) : “”);
result.total.text(Number.isFinite(total) ? currencyFormat(total) : “”);
if (typeof localStorage == “object”) {
localStorage.setItem(“AlepayCalForm”, JSON.stringify({ amount: amount, code: bank.code, term: selected.term }));
}
}

$.getJSON(“/nganluong.json”, function (data) {
cardRates = data.cardRates
interestType = data.interestType || 0
let list = data.banks
list.forEach(function (b) {
b.NAME = b.code + ” ” + removeAccent(b.name);
});
banks = list;
termDoms = $(“#loan-term”)
.empty()
.append(
TERMS.map(function (month, i) {
return $(“

” + month + “

“).click(update.bind(null, “term”, i));
})
)
.children();

banksDom = loanBanks
.hide()
.empty()
.append(
banks.map(function (bank, i) {
return $(‘

' + bank.code + '

‘).click(update.bind(null, “bank”, i));
})
)
.children();

try {
if (typeof localStorage == “object”) {
let temp = JSON.parse(localStorage.getItem(“AlepayCalForm”));
if (temp && temp.code) selected = temp;
}
} catch (error) {
console.error(error);
}
let am = (new URLSearchParams(location.search).get(“a”) || selected.amount).replace(/D/g, “”);

amountInput.val(currencyFormat(am));
let i = selected.code
? banks.findIndex(function (b) {
return b.code == selected.code;
})
: 0;
update(“bank”, i < 0 ? 0 : i);
amountInput.focus();
amountInput.on("input", update);
});
var pid = Number(new URLSearchParams(location.search).get("p") || 0);
if (pid) {
$.post(
"/index.php?route=product/product/json",
{ product_id: pid },
function (data) {
if (data && data.name) {
productInfo = data
console.log("product info", data); // check console for more fields
$("#product-info img").attr("src", "/image/" + data.image);
$("#product-info .product-name").text(data.name);
}
},
"json"
);
}
if (localStorage) {
var customer_info = localStorage.getItem("customer_info");
if (customer_info) {
customer_info = customer_info.split("º");
if (customer_info[0]) {
$("#modal-name").val(customer_info[0]);
}
if (customer_info[1] && regexVNNumber.test(customer_info[1])) {
$("#modal-telephone").val(customer_info[1]);
}
}
}
document.getElementById("modal-submit").onclick = function (event) {
event.stopPropagation();
// validate form first
let input = document.getElementById("modal-name");
let name = input.value.trim().substring(0, 64);

input.value = name;
if ((name.length < 3) || !(/^.*( .*)+/.test(name))) {
$("#modal-error").text("Xin điền đầy đủ Họ và Tên; Full name is required.");
input.focus();
return;
}

input = document.getElementById("modal-telephone");
let phone = input.value.trim().replace(/D/g, "");
input.value = phone;
if (!regexVNNumber.test(phone)) {
$("#modal-error").text("Số điện thoại không hợp lệ; Phone number is invalid.");
input.focus();
return false;
}
$("#modal-error").text("");

if (localStorage) {
localStorage.setItem("customer_info", name + "º" + phone);
}

$.ajax({
url: "index.php?route=extension/module/portal/webrequest",
type: "post",
data: { customer: { name: name, phone: phone }, about: "tragopAlePay", product_id: productInfo && productInfo.product_id },
dataType: "json",
beforeSend: function () {
$("#modal-submit").button("loading");
},
complete: function () {
setTimeout(function () {
$("#modal-submit").prop("disabled", true);
}, 100);
},
success: function (json) {
if (json && json.response) {
if (json.response.success) {
$("#modal-submit").button("done").prop("disabled", true);
$("#modal-error").text("Yêu cầu của bạn đã được gửi tới bộ phận Chăm Sóc Khách Hàng. Chúng tôi sẽ liên hệ với bạn trong thời gian sớm nhất.");
} else if (json.response.error) {
$("#modal-error").text(json.response.error);
}
} else {
$("#modal-error").text("Lỗi không xác định! Xin liên hệ chúng tôi qua số điện thoại 1-900-6098");
}
},
});
};
};
window.addEventListener('load',loadBanks);

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *