Расчет стоимости jquery
Здравствуйте. Есть форма заказа. Скрипт для расчета стоимости написан, нужно сделать условие, что при заказе от 100 бутылок скидка составит 15% от общей стоимости.
Код формы: <div class="col-md-12"> <table class="table"> <tbody><tr class="trth"> <th colspan="2">Наименование</th> <th>Цена (руб.)</th> <th>Количество</th> <th>Стоимость (руб.)</th> </tr> <tr class="cart_item"> <td class="product-thumbnail"> <img class="attachment-small wp-post-image" src=""> </td> <td class="product-name"> <p class="product-name__text">Бутылка 0,33 л</p> </td> <td class="product-price"> <p class="product-price__value">55</p> </td> <td class="product-quantity"> <div class="product-quantity__value"> <input class="product-quantity__input" type="number" step="1" min="0" value="0" title="Qty" size="2"> </div> </td> <td class="product-subtotal"> <p class="product-subtotal__price">0</p> </td> </tr> <tr class="cart_item"> <td class="product-thumbnail"> <img class="attachment-small wp-post-image" src=""> </td> <td class="product-name"> <p class="product-name__text">Бутылка 0,5 л</p> </td> <td class="product-price"> <p class="product-price__value">75</p> </td> <td class="product-quantity"> <div class="product-quantity__value"> <input class="product-quantity__input" type="number" step="1" min="0" value="0" title="Qty" size="2"> </div> </td> <td class="product-subtotal"> <p class="product-subtotal__price">0</p> </td> </tr> <tr class="cart_item"> <td class="product-thumbnail"> <img class="attachment-small wp-post-image" src=""> </td> <td class="product-name"> <p class="product-name__text">Бутылка 0,75 л</p> </td> <td class="product-price"> <p class="product-price__value">100</p> </td> <td class="product-quantity"> <div class="product-quantity__value"> <input class="product-quantity__input" type="number" step="1" min="0" value="0" title="Qty" size="2"> </div> </td> <td class="product-subtotal"> <p class="product-subtotal__price">0</p> </td> </tr> <tr class="noborder total-info-tr"> <td colspan="2"></td> <td colspan="3"> <strong>При заказе от 100 бутылок предоставляется скидка 15 % от общей суммы заказа<strong></strong></strong> </td> </tr> <tr class="noborder total-summ-tr"> <td colspan="4" class="order-amount__first"> <p>СУММА ЗАКАЗА:</p> </td> <td class="order-amount__second"> <p>0</p><span> руб.</span> </td> </tr> </tbody> </table> </div> Скрипт: function count_totals(){ var total = 0; // значение общей суммы заказа var list = ""; // перечень заказанных товаров var listHidden = ""; var discount = 0.15; //скидка $('.cart_item').each(function(){ var price = $(this).find(".product-price__value").text(); // исходная цена товар var qty = $(this).find(".product-quantity__input").val(); // значение value number var title = $(this).find(".product-name__text").text(); // название товара var summ = price*qty; // значение конечной цены за товар $(this).find(".product-subtotal__price").text(summ); total+=summ; if (summ!=0) {list+= "<li> "+title+" "+qty+ " шт"+" </li> ";} if (summ!=0) {listHidden+= "| "+title+" "+qty+ " шт"+" |";} if (qty >=100 ){total=total-(total*discount);} //считаем скидку }); list = '<ul>' + list + '</ul>'; listHidden = listHidden + " Общая сумма заказа "+ total+" руб."; $(".order-amount__second p").text(total); // обновляем общую сумму $(".list_products").html(list);// в textarea добавляем $("#hidden-info").val(listHidden); } count_totals(); $("input").on("change",function(){ count_totals(); }) Вот, расчет скидки я сделала вот так if (qty >=100 ){total=total-(total*discount);} И это работает если только один вид товара заказать от 100шт., а если товар 1 (50 шт), товар 2 (40шт) и товар 3 (10шт), то не работает. А если товар 1 заказать 100шт, а товар 2 еще 20 шт, то общая сумма считается неправильно, скидка делается от суммы за 100шт, а не от общей. Надеюсь на вашу помощь, а то я уже голову сломала |
Скидка только на товары количество которых более 100, так? Значит нужно проверять не общую стоимость, а количество каждого из товаров.
|
Да, скидка на товары, количество которых более 100, т.е. общее количество заказанных товаров более 100.
|
А если товара А взято 100, и товара Б взято 101, какая будет скидка?
|
такая же, 15%
|
Значит рассчитывая сумму за товар А_сумма = А_количество * цена, можно устанавливать флаг, а уже при суммировании общей суммы за товары делать скидку только если этот флаг установлен.
|
tatynechka,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .main { display: none; } .orange { background: #FFCC00; } .orange + div{ display: block; } span { cursor: pointer; } </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(function(){ function count_totals(){ var total = 0; // значение общей суммы заказа var list = ""; // перечень заказанных товаров var listHidden = ""; var discount = 0.15; //скидка var col = 0; $('.cart_item').each(function(){ var price = $(this).find(".product-price__value").text(); // исходная цена товар var qty = $(this).find(".product-quantity__input").val(); // значение value number var title = $(this).find(".product-name__text").text(); // название товара var summ = price*qty; // значение конечной цены за товар $(this).find(".product-subtotal__price").text(summ); total+=summ; if (summ!=0) {list+= "<li> "+title+" "+qty+ " шт"+" </li> ";} if (summ!=0) {listHidden+= "| "+title+" "+qty+ " шт"+" |";} col += +qty }); var sale = ''; if (col >=100 ){ sale = total*discount ; //считаем скидку total=total-sale;} list = '<ul>' + list + '</ul>'; listHidden = listHidden + " Общая сумма заказа "+ total+" руб." ; $(".order-amount__second p").text(total+' ' +sale); // обновляем общую сумму $(".list_products").html(list);// в textarea добавляем $("#hidden-info").val(listHidden); } count_totals(); $("input").on("change",function(){ count_totals(); }) }); </script> </head> <body> <div class="col-md-12"> <table class="table"> <tbody><tr class="trth"> <th colspan="2">Наименование</th> <th>Цена (руб.)</th> <th>Количество</th> <th>Стоимость (руб.)</th> </tr> <tr class="cart_item"> <td class="product-thumbnail"> <img class="attachment-small wp-post-image" src=""> </td> <td class="product-name"> <p class="product-name__text">Бутылка 0,33 л</p> </td> <td class="product-price"> <p class="product-price__value">55</p> </td> <td class="product-quantity"> <div class="product-quantity__value"> <input class="product-quantity__input" type="number" step="1" min="0" value="0" title="Qty" size="2"> </div> </td> <td class="product-subtotal"> <p class="product-subtotal__price">0</p> </td> </tr> <tr class="cart_item"> <td class="product-thumbnail"> <img class="attachment-small wp-post-image" src=""> </td> <td class="product-name"> <p class="product-name__text">Бутылка 0,5 л</p> </td> <td class="product-price"> <p class="product-price__value">75</p> </td> <td class="product-quantity"> <div class="product-quantity__value"> <input class="product-quantity__input" type="number" step="1" min="0" value="0" title="Qty" size="2"> </div> </td> <td class="product-subtotal"> <p class="product-subtotal__price">0</p> </td> </tr> <tr class="cart_item"> <td class="product-thumbnail"> <img class="attachment-small wp-post-image" src=""> </td> <td class="product-name"> <p class="product-name__text">Бутылка 0,75 л</p> </td> <td class="product-price"> <p class="product-price__value">100</p> </td> <td class="product-quantity"> <div class="product-quantity__value"> <input class="product-quantity__input" type="number" step="1" min="0" value="0" title="Qty" size="2"> </div> </td> <td class="product-subtotal"> <p class="product-subtotal__price">0</p> </td> </tr> <tr class="noborder total-info-tr"> <td colspan="2"></td> <td colspan="3"> <strong>При заказе от 100 бутылок предоставляется скидка 15 % от общей суммы заказа<strong></strong></strong> </td> </tr> <tr class="noborder total-summ-tr"> <td colspan="4" class="order-amount__first"> <p>СУММА ЗАКАЗА:</p> </td> <td class="order-amount__second"> <p>0</p><span> руб.</span> </td> </tr> </tbody> </table> </div> </body> </html> |
огромное спасибо!!! все работает)
|
Часовой пояс GMT +3, время: 06:10. |