Всем привет. Когда то давно изучал JS и сейчас потребовалось написать расширение для браузера, для упрощения работы с японскими аукционами. Суть расширения это расчет ставки на авто в японских иенах. Есть инпут, в который я вводу сумму в рублях, и программа должна рассчитать под этот бюджет ставку в японских йенах. Уже четвертый день и так и сяк пытаюсь, но все не так, как нужно. Сложность в чем, одновременно нужно высчитывать таможенный сбор, который зависит напрямую от высчитываемой ставки. Так же от ставки зависит будет ли комиссия дополнительная. Уже четвертый день мучаюсь, перепробовал кучу условий, циклов, но все неправильно. Уже глаз дергаться начался)) Прошу не ругаться и не кидаться камнями за плохой код и названия переменных, делаю так как помню и для себя. Вот что есть:
Функция проверки на комиссию:
function checkCommision(total) {
if (total < 1000000) {
return 0;
}
else if (total >= 1000000 && total < 2000000) {
return 20000;
}
else if (total >= 2000000 && total < 3000000) {
return 30000;
}
else if (total >= 3000000 && total < 4000000) {
return 50000;
}
else if (total >= 4000000 && total < 5000000) {
return 90000;
}
else if (total > 5000000) {
return 10 / 100;
}
}
Функция проверки на таможенный сбор:
function checkSbor(JpRashodi) {
if (JpRashodi < 200000) {
return 1067;
}
else if (JpRashodi >= 200000 && JpRashodi < 450000) {
return 2134;
}
else if (JpRashodi >= 450000 && JpRashodi < 1200000) {
return 4269;
}
else if (JpRashodi >= 1200000 && JpRashodi < 2700000) {
return 11746;
}
else if (JpRashodi >= 2700000 && JpRashodi < 4200000) {
return 16524;
}
else if (JpRashodi >= 4200000 && JpRashodi < 5500000) {
return 21344;
}
else if (JpRashodi >= 5500000 && JpRashodi < 7000000) {
return 27540;
}
else if (JpRashodi > 7000000) {
return 30000;
}
}
И мой код:
var jpy = 0.6721; // курс японской йены к рублю (1 рубль=0.6721 йены)
var RusSum_prohodnoy; // сумма расходов по РФ в рублях
var jpSum_Rashodi; // Сумма расходов по Японии
var totalJp_prohodnoy; // рассчитываемая ставка в йенах
editMaxCash.addEventListener("blur", () => {
RusSum_prohodnoy = customCoast_prohodnoy + 5200 + 4000 + 4000 + 9000 + 10000; // расходы по РФ без сбора
jpSum_Rashodi = (Number(priceFOB) + Number(svhLab) + Number(shipping)) * jpy; // Расходы по Японии без аукционной цены и комиссии в рублях
totalJp_prohodnoy = (Number(editMaxCash.value) - RusSum_prohodnoy - jpSum_Rashodi) / jpy; // Расчет ставки
Total_old.textContent = `Ставка для проходного: ${Math.floor(totalJp_prohodnoy)}`;
});
Пните пожалуйста в нужную сторону. То есть по факту мне нужно постоянно вычислять одновременно два значения это сбор таможенный и коммисию японскую. То есть таможенный сбор зависит от стоимости по Японии и рассчитывается так:
(jpSum_Rashodi + totalJp_prohodnoy) * jpy;
А комиссия рассчитывается от уже высчитанной ставки. И все время нужно проверять чтобы ставка была по бюджету, который вводится в инпут и чтобы корректно высчитывался сбор и комиссия. Как мне это реализовать все правильно? Пытался циклами и условиями, но все не то, не хватает мозгов додуматься.