2016-08-22 2 views
-1

Я пытаюсь настроить способ, чтобы, если цена моей полной корзины составляет менее 125 долларов США, она будет взимать 125 долларов США. У меня есть множество способов получить минимальный заказ, но ничего не работает с тем, как этот код был настроен. Пожалуйста, просмотрите приведенный ниже код:Настройка минимальной цены Javascript

function Recalculate() { 
    var total = 0; 
    $.each(cart, function(index, item) { 
    var options = {}; 
    if (item.o) $.each(item.o, function(opt_ind, opt_item) { 
     options[opt_item.name] = opt_item.value; 
     options[opt_item.id] = opt_item.value; 
    }); 

    var width_ft = parseInt(options.width_ft); 
    if (!width_ft || isNaN(width_ft)) width_ft = 0; 

    var width_in = parseInt(options.width_in); 
    if (!width_in || isNaN(width_in)) width_in = 0; 

    var width = width_ft + width_in/12; 

    var length_ft = parseInt(options.length_ft); 
    if (!length_ft || isNaN(length_ft)) length_ft = 0; 

    var length_in = parseInt(options.length_in); 
    if (!length_in || isNaN(length_in)) length_in = 0; 

    var sq = width * length; 
    var inshop = options.type_of_cleaning == 'In_Shop_Cleaning'; 

    var base_price = 0; 
    var base_min = 0; 
    switch (item.p) { 
     case 'livingroom': 
     base_price = LIVING_ROOM; 
     break; 
     case 'stair': 
     base_price = STAIR; 
     break; 
    } 

    var i_total = sq * base_price; 
    if (i_total < base_min) i_total = base_min; 
    $('span.isize').eq(index).html('$' + i_total.toFixed(2)); 
    total += i_total; 

    if (options.SCOTCHGARD == 'on') total += Math.min(sq * SCOTCHGARD, 25.00); 
    if (options.DECON == 'on') total += Math.min(sq * DECON, 25.00); 
    if (options.DA == 'on') total += Math.min(sq * DA, 25.00); 
    if (options.clean_or_buy == 'buy') total += i_total * NEW_PAD_TAX/100; 

    }); 
    return [total]; 
} 
+0

Как должен выглядеть результат, вы ожидаете? –

+1

Вы включили свой код, но не ошибку или ожидаемый ввод/вывод. Нам очень сложно отлаживать проблему с этой информацией. – ssube

ответ

0

Если вы хотите, чтобы зарядить как минимум $ 125, самое простое, что вы могли бы сделать, это просто установить в общей сложности до этого минимума, только прежде чем вернуть его. например

if (total < 125) { total = 125; } 
return total; 

(Обратите внимание, что это возвращение total не [total], как это мне не ясно, почему вы хотите массив из одного возвращаемого значения.)

Ваш вопрос включает в себя фразу».. msgstr "добавить минимальный заказ". Это не имеет смысла для меня, то есть если реальная сумма составляет 100 долларов США, я сомневаюсь, что вы хотите получить $ 125 (всего $ 225), но вы просто хотите установить общее значение на минимум. Если это правильно, но вы хотите, чтобы следить за дополнительные, которые вы добавляете, то, возможно, вы могли бы сделать следующее, снова прямо перед возвращением из функции:

var extraForMinimum = 0; 
if (total < 125) { extraForMinimum = 125 - total; } 
return {total: total, extraForMinimum: extraForMinimum }; 

В этом случае функция возвращая объект, который содержит как фактическую сумму (которая все еще может быть меньше $ 125), так и дополнительные затраты, необходимые для доведения заряда до минимума. Однако, если вы это делаете, вы можете изменить имя переменной с total, скажем, subtotal или что-то еще подобное.

Смежные вопросы