2026-03-27 11:54:51 +00:00

150 lines
5.2 KiB
JavaScript

var aspTaxVariationsNG = function (data) {
var parent = this;
parent.init = function () {
vars.data.default_tax = vars.data.tax;
parent.billingSwitch = document.getElementById('same-bill-ship-addr');
parent.bCountrySelect = document.getElementById('country');
parent.bState = document.getElementById('state');
parent.bCity = document.getElementById('city');
parent.sCountrySelect = document.getElementById('shipping_country');
parent.sState = document.getElementById('shipping_state');
parent.sCity = document.getElementById('shipping_city');
if (parent.bCountrySelect) {
parent.bCountrySelect.addEventListener('change', function () {
if (this.value === '0') {
return;
}
doAddonAction('billingAddressChanged');
if (parent.billingSwitch && parent.billingSwitch.checked) {
doAddonAction('shippingAddressChanged');
}
});
}
if (parent.bState) {
parent.bState.addEventListener('change', function () {
doAddonAction('billingAddressChanged');
});
}
if (parent.bCity) {
parent.bCity.addEventListener('change', function () {
doAddonAction('billingAddressChanged');
});
}
if (parent.sCountrySelect) {
parent.sCountrySelect.addEventListener('change', function () {
if (this.value === '0') {
return;
}
doAddonAction('shippingAddressChanged');
});
}
if (parent.sState) {
parent.sState.addEventListener('change', function () {
doAddonAction('shippingAddressChanged');
});
}
if (parent.sCity) {
parent.sCity.addEventListener('change', function () {
doAddonAction('shippingAddressChanged');
});
}
if (parent.billingSwitch) {
parent.billingSwitch.addEventListener('change', function () {
doAddonAction('billingAddressChanged');
doAddonAction('shippingAddressChanged');
});
}
doAddonAction('billingAddressChanged');
}
parent.billingAddressChanged = function () {
var bS = '';
if (parent.bState) {
bS = parent.bState.value;
}
var bC = '';
if (parent.bCity) {
bC = parent.bCity.value;
}
if (vars.data.tax_variations_type !== 'b') {
if (parent.billingSwitch && !parent.billingSwitch.checked) {
return;
}
}
if (!parent.bCountrySelect) {
if (vars.data.new_bill_addr && vars.data.new_bill_addr.country) {
parent.doTaxVariations(vars.data.new_bill_addr.country, vars.data.new_bill_addr.state, vars.data.new_bill_addr.city);
}
return;
}
parent.doTaxVariations(parent.bCountrySelect.value, bS, bC);
}
parent.shippingAddressChanged = function () {
if (!parent.billingSwitch) {
if (vars.data.new_ship_addr && vars.data.new_ship_addr.country) {
parent.doTaxVariations(vars.data.new_ship_addr.country, vars.data.new_ship_addr.state, vars.data.new_ship_addr.city);
}
return;
}
if (vars.data.tax_variations_type === 's') {
if (parent.billingSwitch.checked) {
doAddonAction('billingAddressChanged');
} else {
if (!parent.sCountrySelect) {
return;
}
var sS = '';
if (parent.sState) {
sS = parent.sState.value;
}
var sC = '';
if (parent.sCity) {
sC = parent.sCity.value;
}
parent.doTaxVariations(parent.sCountrySelect.value, sS, sC);
}
}
}
this.doTaxVariations = function (cCode, state, city) {
var newTax = 0;
var applied = 0;
vars.data.tax_variations.forEach(function (v) {
switch (v.type) {
case '0':
if (cCode && v.loc === cCode) {
newTax += v.amount;
applied++;
}
break;
case '1':
if (state && v.loc.toLowerCase() === state.toLowerCase()) {
newTax += v.amount;
applied++;
}
break;
case '2':
if (city && v.loc.toLowerCase() === city.toLowerCase()) {
newTax += v.amount;
applied++;
}
break;
default:
break;
}
if (applied > 0) {
vars.data.tax = newTax;
updateAllAmounts();
} else if (vars.data.tax !== vars.data.default_tax) {
vars.data.tax = vars.data.default_tax;
updateAllAmounts();
}
});
}
}