<script>
document.addEventListener("DOMContentLoaded", function(){
let prePay = 10000; //Сумма или процент предоплаты, без знака %
let percent = false; //Если процент, то true, если сумма, то false
let pSystem = 1; //Порядкомый номер платёжной системы, где будет предоплата
let cartSt = document.querySelectorAll('div[data-record-type="706"]');
if(cartSt.length){
//Отслеживаем выбор предоплаты
let prepayment = document.getElementsByName('prepayment')[0];
prepayment.closest('.t-input-group').classList.add("prepayment-group");
let prepaymentGroup = document.querySelectorAll('.prepayment-group')[0];
let prepOpt = prepayment.getElementsByTagName('option')[1];
let prepOptTxt = prepOpt.innerHTML;
prepayment.addEventListener('change', function (e) { setPrepayment() });
function divide(x, delimiter) {
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, delimiter || " ");
};
//Отслеживаем выбор платёжной системы
let paymentsystem = document.getElementsByName('paymentsystem');
if(paymentsystem.length){
paymentsystem.forEach(i => i.addEventListener('change', setPrepayment ) );
};
//Рассчитываем предоплату
let repeat = true; let prepayTxt = '';
prepayTxt = document.createElement('div');
prepayTxt.className = "t706__prepay-text";
setTimeout(function(){
document.querySelectorAll('.t706__cartwin-totalamount-wrap')[0].append(prepayTxt);
}, 1000);
function setPrepayment(){
let indexPayment = 0;
if(paymentsystem.length){
for (let i = 0; i < paymentsystem.length; i++) {
if(paymentsystem[i].checked) indexPayment = i+1;
};
if(indexPayment==pSystem){//Если выбрана нужная платёжная система
prepaymentGroup.classList.remove("prepayment-group-hide");
}else{//Если выбрана другая платёжная система
prepaymentGroup.classList.add("prepayment-group-hide");
prepayment.selectedIndex = 0;
prepayTxt.innerHTML = "";
tcart__updateTotalProductsinCartObj(); tcart__reDrawTotal();
};
};
let indexPrePay = prepayment.selectedIndex; //Определяем положение выбора предоплаты
let totalWrap = document.querySelectorAll('.t706__cartwin-totalamount-wrap')[0];
if(indexPrePay==1){//Если выбрана предоплата
let amount = tcart.amount;
if(percent){//Если процент
prepayTxt.innerHTML = "Предоплата: "+divide(prePay*amount/100)+" р.";
tcart.amount = prePay*amount/100;
prepOpt.innerHTML = prepOptTxt + " / Остаток " + divide(amount - prePay*amount/100) + " р.";
prepOpt.value = prepOptTxt + " / Остаток " + divide(amount - prePay*amount/100) + " р.";
totalWrap.classList.add("prepayment-group-hide");
}else{//Если сумма
prepayTxt.innerHTML = "Предоплата: "+divide(prePay)+" р.";
tcart.amount = prePay;
prepOpt.innerHTML = prepOptTxt + " / Остаток " + divide(amount - prePay) + " р.";
prepOpt.value = prepOptTxt + " / Остаток " + divide(amount - prePay) + " р.";
totalWrap.classList.add("prepayment-group-hide");
};
}else{//Если отключена предоплата
prepayTxt.innerHTML = "";
prepOpt.innerHTML = prepOptTxt;
prepOpt.value = prepOptTxt;
totalWrap.classList.remove("prepayment-group-hide");
tcart__updateTotalProductsinCartObj(); tcart__reDrawTotal();
};
repeat = false;
tcart__reDrawTotal();
setTimeout(function(){ repeat = true }, 200);
};
//При изменении стоимости продукции, её кол-ва или доставки
let prodamount = document.querySelectorAll('.t706__cartwin-prodamount')[0];
let observer = new MutationObserver(function(mutations) { if(repeat) setPrepayment()});
observer.observe(prodamount, { childList: true, subtree: true});
};
});
</script>
<style>
.t706 .t-input-group_pm .t-input-title {display: none;}
.t706 .t-input-group_pm {margin-top: 0px !important;}
.t706 .prepayment-group.t-input-group_sb {margin-top: 60px;}
.t706__cartwin-totalamount-wrap { display: block !important}
.prepayment-group-hide,
.prepayment-group-hide .t706__cartwin-totalamount-label,
.prepayment-group-hide .t706__cartwin-totalamount
{display:none}
</style>