var validateCart = 0; $(document).on("ready", function () { $('.star_rating span').on('click', function () { var onStar = parseFloat($(this).data('value'), 10); // The star currently selected var stars = $(this).parent().children('.star_rating span'); for (var i = 0; i < stars.length; i++) { $(stars[i]).removeClass('selected'); console.log($(stars[i]).children('.star_rating span i')); $(stars[i]).children('.star_rating span i').removeClass('fa fa-star fa-stack-2x'); $(stars[i]).children('.star_rating span i').addClass('fa fa-star-o fa-stack-2x'); } for (i = 0; i < onStar; i++) { $(stars[i]).addClass('selected'); $(stars[i]).children('.star_rating span i').removeClass('fa fa-star-o fa-stack-2x'); $(stars[i]).children('.star_rating span i').addClass('fa fa-star fa-stack-2x'); } $('#product_review_form_score').val(onStar); }); }); $(document).on('click', '.pdx-btn-add-cart', function (e) { e.preventDefault(); var pdxid = $(this).data("variant"); var cart = $("#pdx-cart-side"); validateCart = 0; // Esta declaración condicional verifica si no hay ningún elemento con un id igual al valor de 'pdxid' if (!$('#' + pdxid).length) { if ($('.cart-validate').length) { $('.cart-validate').remove(); var viewCart = $(".view-cart"); viewCart.html(`Ir al carritoVer productos`); } else { var filas = $("#pdx-cart-side").find("tr"); for (i = 0; i < filas.length; i++) { var celdas = $(filas[i]).find("td"); var id = celdas[5].innerHTML.trim(); if (id == pdxid) { validateCart = 1; } } } if (validateCart == 0) { let cartCount = parseInt($("#pdx-shopping-cart-count").html()) + 1; $("#pdx-shopping-cart-count").html(cartCount); if ($("#pdx-shopping-cart-count").html() == "0") { $("#pdx-shopping-cart-count").show(); } else { $("#pdx-shopping-cart-count").html(cartCount); } var qty = parseInt($(this).data('quantity')); var price = parseFloat($(this).data('price')); var totalItem = qty * price; var url = $(this).data('url'); var img = $(this).data('img'); var title = $(this).data('title'); let cartTotal = parseFloat($("#cart-total").html()).toFixed(2); let addValue = totalItem.toFixed(2); let total = parseFloat(cartTotal) + parseFloat(addValue); $("#cart-total").html(total.toFixed(2)); $("#shopping-cart-total").html(total.toFixed(2)); cart.prepend(`{{ variant.sku }}${title}x${qty}$${price.toFixed(2)}${pdxid}`); } else { } } }); function updateShoppingCartTableAux() { if (typeof updateShoppingCartTableOverwrite === 'function') { updateShoppingCartTableOverwrite(); } else { deleteCookie('shopping_cart'); var cells, variant, price, qantity, subtotal, a, i; var total = 0; for (var a = document.querySelectorAll('table.pdx-shopping-cart-table tbody tr'), i = 0; a[i]; ++i) { cells = a[i].querySelectorAll('[calculate]'); variant = parseFloatHTML(cells[0]); price = parseFloatHTML(cells[1]); quantity = parseFloat($(cells[2]).val()); subtotal = price * quantity; cells[3].innerHTML = parsePrice(subtotal); total += subtotal; //Renovamos las cookies AddToCartCookie({ variant: variant, quantity: quantity, nomessage: true }); } $("#shop_cart").load(window.location.href + " #cart"); document.querySelector('#subtotal').innerHTML = parsePrice(total); document.querySelector('#tax').innerHTML = parsePrice(0.00); document.querySelector('#total').innerHTML = parsePrice(total); document.querySelector('#cart-total').innerHTML = parsePrice(total); document.querySelector('#shopping-cart-total').innerHTML = parsePrice(total); } } function shoppingCartCountAux() { var shopping_cart = getCookie('shopping_cart'); var count = (shopping_cart != '') ? shopping_cart.split('&').length : 0; // $('#pdx-shopping-cart-count').html(count); if (count == 0) { //$("#pdx-shopping-cart-count").hide(); var pdx_shopping_cart_table = document.querySelector('.pdx-shopping-cart-table tbody'); pdx_shopping_cart_table.insertAdjacentHTML('beforeend', 'No hay productos agregados a tu carrito de compras...'); } else { $("#pdx-shopping-cart-count").show(); $('#pdx-shopping-cart-count').html(count); } } function deleteTableRowAux(params) { $(params.element).closest('tr').fadeOut('slow', function () { $(params.element).closest('tr').remove(); updateShoppingCartTableAux(); shoppingCartCountAux(); }); } function deleteCartModal(variant) { var filas = $("#pdx-cart-side").find("tr"); for (i = 0; i < filas.length; i++) { var celdas = $(filas[i]).find("td"); var id = celdas[5].innerHTML.trim(); if (id == variant) { console.log(id); } } } function activeCategory(element) { var a = document.getElementsByClassName('pdx-category-filter'); for (i = 0; i < a.length; i++) { a[i].classList.remove('active') } element.classList.add('active'); } function activeBrand(element) { var a = document.getElementsByClassName('pdx-brand-filter'); for (i = 0; i < a.length; i++) { a[i].classList.remove('active') } element.classList.add('active'); } function deleteCartTableRow(element, id, price) { let ul = element.parentElement.parentElement.parentElement; $(element).closest('tr').fadeOut('slow', function () { element.parentElement.parentElement.remove(); let shopping_cart = getCookie('shopping_cart').split("&"); for (i = 0; i < shopping_cart.length; i++) { let shoppingCartId = shopping_cart[i].substring(0, shopping_cart[i].indexOf(':')); if (shoppingCartId == id) { let updtShoppingCart = shopping_cart.filter((item) => item !== shopping_cart[i]); // ACTUALIZAR LAS COOKIES document.cookie = cookie_prefix + 'shopping_cart=' + updtShoppingCart.join('&'); } } // VALIDAR SI EL CARRITO ESTÁ VACÍO if (ul.childElementCount < 1) { let viewCart = document.querySelector('.view-cart'); viewCart.innerHTML = ''; ul.insertAdjacentHTML('beforeend', '

No hay productos en tu carrito

'); viewCart.innerHTML = 'Ver productos'; //$("#pdx-shopping-cart-count").hide(); } // ACTUALIZAR EL PRECIO TOTAL DEL CARRITO let totalPrice = document.querySelector('#shopping-cart-total').textContent; totalPrice = parseFloat(totalPrice) - parseFloat(price.toFixed(2)); document.querySelector('#cart-total').innerHTML = parsePrice(totalPrice); document.querySelector('#shopping-cart-total').innerHTML = parsePrice(totalPrice); // ACTUALIZAR LA CANTIDAD DE ITEMS DEL CARRITO shoppingCartCount(); }); } document.addEventListener('DOMContentLoaded', function () { if (getCookie('pap_brand_name') || getCookie('pap_model_name') || getCookie('pap_cylinderCapacity') || getCookie('pap_year')) { $('#delete-filter-car-div').removeClass('sr-only'); $('#div-find-car').addClass('sr-only'); $('#filter-car-brand-text').text(getCookie('pap_brand_name') != 'null' ? getCookie('pap_brand_name') : 'S/D'); $('#filter-car-model-text').text(getCookie('pap_model_name') != 'null' ? getCookie('pap_model_name') : 'S/D'); $('#filter-car-cylinderCapacity-text').text(getCookie('pap_cylinderCapacity') != 'null' ? parseFloat(getCookie('pap_cylinderCapacity')).toFixed(1) : 'S/D'); $('#filter-car-year-text').text(getCookie('pap_year') != 'null' ? getCookie('pap_year') : 'S/D'); } else { $('#delete-filter-car-div').addClass('sr-only'); $('#div-find-car').removeClass('sr-only'); } $('#pap_brands').on('change', function (e) { resetSelect('pap_models', 'Modelo'); resetSelect('pap_cylinderCapacities', 'Cilindraje'); resetSelect('pap_years', 'Año'); let brandValue = $(this).val(); if (brandValue) { papGetOptions('models', brandValue); } }); $('#pap_models').on('change', function (e) { resetSelect('pap_cylinderCapacities', 'Cilindraje'); resetSelect('pap_years', 'Año'); let modelValue = $(this).val(); if (modelValue) { papGetOptions('cylinderCapacities', modelValue); } }); $('#pap_cylinderCapacities').on('change', function (e) { resetSelect('pap_years', 'Año'); let cylinderCapacityValue = $(this).val(); let modelValue = $('#pap_models').val(); if (cylinderCapacityValue) { papGetOptions('years', { model: modelValue, cylinderCapacity: cylinderCapacityValue }); } }); $('#btn-find-car').on('click', function () { let brand = $('#pap_brands').val(); let model = $('#pap_models').val(); let cylinderCapacity = $('#pap_cylinderCapacities').val(); let year = $('#pap_years').val(); // creamos las cookies y tendria que llevar al cliente a la pagina de productos setCookie('pap_brand', brand); setCookie('pap_model', model); setCookie('pap_brand_name', $('select[id="pap_brands"] option:selected').text()); setCookie('pap_model_name', $('select[id="pap_models"] option:selected').text()); setCookie('pap_cylinderCapacity', cylinderCapacity); setCookie('pap_year', year); window.location.href = '/productos'; }); $('#delete-filter-car').on('click', function () { // eliminamos las cookies deleteCookie('pap_brand'); deleteCookie('pap_model'); deleteCookie('pap_brand_name'); deleteCookie('pap_model_name'); deleteCookie('pap_cylinderCapacity'); deleteCookie('pap_year'); window.location.href = '/productos'; }); }); function resetSelect(id, optionDisabledText) { $('#' + id).html(''); $('#' + id).append(''); } function papGetOptions(type, filterValue) { let route = Routing.generate('pap_get_options', { type: type, filter_value: filterValue }); var ajax = $.ajax({ url: route, type: 'GET', dataType: 'json' }); ajax.done(function (response) { if (Array.isArray(response)) { Object.values(response).forEach(data => { $('#pap_' + type).append(''); }); } }) .always(function () { return null; }); return null; }