2016-08-22 10 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がない返すことに注意してください。)

あなたの質問は」というフレーズが含まれて... 。最小注文を追加してください "。つまり、実際の合計が100ドルであれば、を追加して $ 125(合計$ 225にする)を追加するのではなく、合計を最小限に設定したいと考えています。それは正しいですが、あなたが追加する余分のトラックを維持したいならば、おそらくあなたは、関数から返さ再び右の前に、次のことを行うことができます。この場合

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

、関数であります実際の合計($ 125未満の場合もあります)と料金を最小限に抑えるために必要な余分なコストの両方を含むオブジェクトを返します。ただし、これを行う場合は、変数名をtotalからsubtotalなどに変更するとよいでしょう。

関連する問題