Добрый день!
Прошу помочь с реализацией калькуляции для логистики на JS/JQuery/PHP.
Проблема заключается в следующем -
Нехватка знаний JS, и из этого вытекающее кол-во полей в базе.
Описывал калькуляцию с просчётом каждого диапазона отдельно 1-2км, 2-3км и т.д. Соответственно наплодил множество столбцов в БД и увеличил кол-во условий в JS. Работало всё нормально до увеличения максимального расстояния, а полей уже не хватает и плодить их глупо. Соответственно нужно было переходить на диапазоны значений - 10-20, 20-30 и т.д.
Есть слайдер(Ion.RangeSlider) От и До, значения От и До изменяются. Пытался описать условие самостоятельно, но надбавочная стоимость добавляется только 1 раз, когда ползунок достигает нужного диапазона. С каждым сдвигом ползунка должна прибавляться надбавочная стоимость, а это происходит только 1 раз на промежутке 10-11, далее считает по стандартной цене за 1км, так не должно. Ниже скриншот с более подробным описанием задачи:
// int_from - левый ползунок, int_to - правый ползунок.
let interval = Number(int_to) - Number(int_from);
let int_price = (Number(interval) / Number(km_step) * Number(km_price)).toFixed(2);
let nds = 0; // ндс
let price = 20; // цена вызова
if(int_to >= v_from_1 && int_to <= v_to_1){
nds = Number(price_1);
}
if(int_to >= v_from_2 && int_to <= v_to_2){
nds = Number(price_2);
}
if(int_to >= v_from_3 && int_to <= v_to_3){
nds = Number(price_3);
}
if(int_to >= v_from_4 && int_to <= v_to_4){
nds = Number(price_4);
}
if(int_to >= v_from_5 && int_to <= v_to_5){
nds = Number(price_5);
}
let total_price = Number(price) + Number(int_price) + Number(nds);
P.S - Соответственно int_from, int_to, int_price - находится внутри ф-ции которая отслеживает изменения их значений.