///////////////////////////////////////////////////////////////////////////////////////// var tv_mostrar_stock = 0; var tv_mostrar_stock_imagen = 0; var tv_mostrar_stock_imagen_parcial = 0; var tv_mostrar_stock_imagen_minimos = 0; var tv_stock_mostrar_mensaje_insuficiente = 0 var aux_stock; var con_stock; var num_descuentos = 0; var tv_kits = 0; var tv_kits_fabricar_sin_stock = 1; var es_kit; var es_neto; var neumatico; var fam_web_con_stock; var sub_web_con_stock; var ref_web_con_stock; var id_marca = cargar_variable("id-marca", 0); var id_modelo = cargar_variable("id-modelo", 0); var id_version = cargar_variable("id-version", 0); var id_grupo = cargar_variable("id-grupo", 0); var id_subgrupo = cargar_variable("id-subgrupo", 0); var tip_catalogo = cargar_variable("tip-catalogo", 0); var unidades_cesta; var unidades_pendientes; var uds_envase; var ultima_referencia_cargada; function cargar_variables (referencia) { $.ajax({ dataType: "json", type: "POST", url: "ControlB2C", data: { json: 1, id_referencia: referencia, id_ref_talla: $("#id-ref-talla-" + referencia + " option:selected").val(), id_ref_color: $("#id-ref-color-" + referencia + " option:selected").val(), estado: 10, tabla: 3 }, async: false, success: function (response) { es_kit = parseFloat(response["es_kit"]); es_neto = parseFloat(response["es_neto"]); neumatico = parseFloat(response["neumatico"]); fam_web_con_stock = parseFloat(response["fam_web_con_stock"]); sub_web_con_stock = parseFloat(response["sub_web_con_stock"]); ref_web_con_stock = parseFloat(response["ref_web_con_stock"]); unidades_cesta = parseFloat(response["unidades_cesta"]); unidades_pendientes = parseFloat(response["unidades_pendientes"]); ultima_referencia_cargada = referencia; }, error: function (response) { console.log("Error AJAX"); console.log(response); } }) } function cargar_variable (id, defecto) { if ($("#" + id).val() != undefined) { return parseFloat($("#" + id).val()); } else { return defecto; } } ///////////////////////////////////////////////////////////////////////////////////////// var cantidad_anterior; function aumentar_cantidad (referencia) { var cantidad = parseFloat($("#cantidad-" + referencia).val()); uds_envase = parseFloat($("#uds-envase-" + referencia).val()); if (uds_envase == 0) { uds_envase = 1; } var nueva_cantidad = cantidad + uds_envase; $("#cantidad-" + referencia).val(nueva_cantidad); $(".valor button, #cantidad-" + referencia).prop("disabled", true); recalcular_precio(referencia); } function disminuir_cantidad (referencia) { var cantidad = parseFloat($("#cantidad-" + referencia).val()); var uds_envase = parseFloat($("#uds-envase-" + referencia).val()); if (uds_envase == 0) { uds_envase = 1; } var nueva_cantidad; if (cantidad > uds_envase) { nueva_cantidad = cantidad - uds_envase; } else { nueva_cantidad = uds_envase; } $("#cantidad-" + referencia).val(nueva_cantidad); $(".valor button, #cantidad-" + referencia).prop("disabled", true); recalcular_precio(referencia); } function cantidad_uds_envase (referencia, cantidad) { var nueva_cantidad; uds_envase = parseFloat($("#uds-envase-" + referencia).val()); if (uds_envase == 0) { uds_envase = 1; } if (cantidad > uds_envase) { nueva_cantidad = cantidad / uds_envase; nueva_cantidad = Math.ceil(nueva_cantidad); nueva_cantidad = nueva_cantidad * uds_envase; } else { nueva_cantidad = uds_envase; } $("#cantidad-" + referencia).val(nueva_cantidad); $(".valor button, #cantidad-" + referencia).prop("disabled", true); if (nueva_cantidad != cantidad_anterior) { recalcular_precio(referencia); } else { $(".valor button, #cantidad-" + referencia).prop("disabled", false); } } var respuesta; function recalcular_precio (referencia) { $(".validation-msj").hide(); if (ultima_referencia_cargada != referencia) { cargar_variables(referencia); } var cantidad_introducida = validar_cantidad("#cantidad-" + referencia); $.ajax({ dataType: "json", type: "POST", url: "ControlB2C", data: { json: 1, id_referencia: referencia, id_ref_talla: $("#id-ref-talla-" + referencia + " option:selected").val(), id_ref_color: $("#id-ref-color-" + referencia + " option:selected").val(), cantidad: cantidad_introducida, estado: 1, tabla: 3 }, async: false, success: function (response) { var resultado = parseFloat(response["resultado"]); if (resultado == 0) { var cantidad = parseFloat(response["cantidad"]); var stock = parseFloat(response["stock"]); if (es_neto == 0) { $("#precio-" + referencia).empty().append(response["precio"]); } else { $("#precio-" + referencia).empty().append(response["preciof"]); } $("#dto1-" + referencia).empty().append(response["dto1"]); $("#dto2-" + referencia).empty().append(response["dto2"]); $("#dto3-" + referencia).empty().append(response["dto3"]); $("#imp-linea-" + referencia).empty().append(response["imp_linea"]); $("#cantidad-" + referencia).val(cantidad); cantidad_anterior = cantidad; var mos_sto_referencia = parseFloat(response["mos_sto_referencia"]); var mos_stock = parseFloat(response["mos_stock"]); var mensaje_personalizado = $("#fam-web-men-sin-stock-" + referencia).val(); if (mensaje_personalizado === undefined) { mensaje_personalizado = ""; } if ( mos_sto_referencia == 1) { if (mos_stock == 1) { if (tv_stock_mostrar_mensaje_insuficiente != 0) { aux_stock = stock; } if (tv_mostrar_stock_imagen == 0) { if (stock == 1) { $("#stock-" + referencia).removeClass("text-red").addClass("text-green").empty().append(stock + " unidad"); } else if (stock > 1) { $("#stock-" + referencia).removeClass("text-red").addClass("text-green").empty().append(stock + " unidades"); } else { $("#stock-" + referencia).removeClass("text-green").addClass("text-red").empty().append(stock + " unidades"); } } else { if (stock > 0) { if (stock >= cantidad) { $("#stock-" + referencia).removeClass().addClass('label label-stock-disponible').data('type', 1).empty().append('En stock'); } else { if (tv_mostrar_stock_imagen_parcial == 1) { $("#stock-" + referencia).removeClass().addClass('label label-stock-parcial').data('type', 3).empty().append('Parcial'); } else { if ( mensaje_personalizado.length > 0 ) { $("#stock-" + referencia).removeClass().addClass('label label-stock-vacio').data('type', 2).empty().append(mensaje_personalizado); } else { $("#stock-" + referencia).removeClass().addClass('label label-stock-vacio').data('type', 2).empty().append('Sin stock'); } } } } else { if (tv_mostrar_stock_imagen_minimos == 0) { if ( mensaje_personalizado.length > 0 ) { $("#stock-" + referencia).removeClass().addClass('label label-stock-vacio').data('type', 2).empty().append(mensaje_personalizado); } else { $("#stock-" + referencia).removeClass().addClass('label label-stock-vacio').data('type', 2).empty().append('Sin stock'); } } else { $("#stock-" + referencia).removeClass().addClass('label label-stock-minimos').data('type', 4).empty().append('Consultar'); } } } } } else { if ( mensaje_personalizado.length > 0 ) { if ($("#url-producto").val() == 1) { $("#stock-" + referencia).removeClass().addClass("text-red").data('type', 5).empty().append(mensaje_personalizado); } else { $("#stock-" + referencia).removeClass().addClass("label label-stock-vacio").data('type', 5).empty().append(mensaje_personalizado); } } else { $("#stock-" + referencia).removeClass().addClass("h4 text-red").data('type', 5).empty().append("Consultar"); } } respuesta = response; } else { location.reload(); } }, error: function (response) { console.log("error AJAX"); respuesta = false; }, complete: function () { $(".valor button, #cantidad-" + referencia).prop("disabled", false); comprobar_select(); } }); } function comprobar_select () { if ($("#url-producto").val() == 1) { if ( $("#producto").find('select').length ) { var select = "#producto #informacion .valor .select-talla-color"; if ( $(select).val() == 0 ) { var texto = $(select).data('texto'); $(".stock-mensaje span").removeClass().empty().append(texto); } } } else { $( ".producto" ).each(function(index , el) { id = $(el).attr('id'); if ( $(el).find('.select-talla-color').length ) { var select = "#" + id + " select"; if ( $(select).val() == 0 ) { var numero = id.split("-").pop(); var texto = $(select).data('texto'); $("#stock-" + numero + " span").removeClass().empty().append(texto); } } }); } } // ======================================================================================= var estado_validacion = 0; var referencia_anterior = ""; $("#modal-mensaje-confirmar").on('hide.bs.modal', function (e) { estado_validacion = 0; }); $(".btn-cancelar").on("click", function (){ estado_validacion = 0; }); $("#modal-mensaje-confirmar .btn-aceptar").on("click", function (){ estado_validacion = 5; }); $("#modal-mensaje-aviso").on('hidden.bs.modal', function (e) { validar_cesta(referencia_anterior); }); function validar_cesta (referencia) { $("#id-producto-activo").val(referencia); recalcular_precio(referencia); var stock = parseFloat(respuesta["stock"]); if (respuesta == false) { $("#modal-mensaje-error").modal("show"); $("#modal-mensaje-error .mensaje").html("Si quiere pedir esta referencia póngase en contacto con la tienda.
Disculpe las molestias."); return false; } if ( replace($("#imp-linea-" + referencia).text(), ",", ".") == 0 ) { $("#modal-mensaje-error").modal("show"); $("#modal-mensaje-error .mensaje").html("Precio no válido.
Póngase en contacto con la tienda para pedir esta referencia.
Disculpe las molestias."); return false; } if (uds_envase > 1) { if (validar_cantidad("#cantidad-" + referencia) % uds_envase != 0) { $("#modal-mensaje-aviso").modal("show"); $("#modal-mensaje-aviso .mensaje").html("Solo se puede añadir a la cesta de " + parseInt(uds_envase) + " en " + parseInt(uds_envase) + " unidades"); $("#cantidad-" + referencia).select(); return false; } } if (fam_web_con_stock == 0 || sub_web_con_stock == 0 || ref_web_con_stock == 0 || (tv_kits == 1 && es_kit == 1 && tv_kits_fabricar_sin_stock == 1)) { con_stock = 0; } else { con_stock = 1; } if (con_stock == 1){ } if (estado_validacion < 6) { var forzar_confirmar = 0; if (neumatico==1){ $("#modal-confirmar-anadir").modal("show"); $("#modal-confirmar-anadir .mensaje").html("Si desea montar su neumático en nuestro taller, asegurese de haber marcado el montaje de neumático.
¿Esta seguro de que quiere añadir el producto?"); return false; } if (forzar_confirmar==1){ $("#modal-confirmar-anadir").modal("show"); $("#modal-confirmar-anadir .mensaje").html("¿Esta seguro de que quiere añadir el producto?"); }else{ anadir_cesta(referencia); } } } function anadir_cesta (referencia) { estado_validacion = 0; $(".modal").modal("hide"); $("#btn-anadir-cesta-" + referencia).html(" Añadiendo producto").prop("disabled", true); var total_accesorios = parseFloat($("#total-accesorios").val()); var id_ref_talla = parseFloat($("#id-ref-talla-" + referencia + " option:selected").val()); var id_ref_color = parseFloat($("#id-ref-color-" + referencia + " option:selected").val()); var data = { json: 1, cantidad: validar_cantidad("#cantidad-" + referencia), id_referencia: referencia, id_ref_proveedor: 0, aleatorio: numero_aleatorio, ces_conectado: 0, ces_contado: 0, estado: 2, tabla: 3 }; var accesorios_anadidos = 0; for ( i = 1; i <= total_accesorios; i++) { if ( $("#chk-accesorio-" + i).is(":checked") ) { data["id_accesorio_" + i] = parseFloat($("#chk-accesorio-" + i).val()); accesorios_anadidos++; } } if (accesorios_anadidos > 0) { data["accesorios"] = accesorios_anadidos; } if (!isNaN(id_ref_talla)) { data["id_ref_talla"] = id_ref_talla; } if (!isNaN(id_ref_color)) { data["id_ref_color"] = id_ref_color; } $.ajax({ dataType: "json", type: "POST", url: "ControlB2C", data: data, success: function (response) { if (response == 0) { if ($("#url-producto").val()==1) { if (id_marca==0 || id_modelo==0 || id_version==0){ window.location.href = "cesta.jsp;jsessionid=745517BBCF515BFEDAA329C315969E3E"; }else{ window.location.href = "cesta.jsp;jsessionid=745517BBCF515BFEDAA329C315969E3E?id_marca="+id_marca+"&id_modelo="+id_modelo+"&id_version="+id_version+"&id_grupo="+id_grupo+"&id_subgrupo="+id_subgrupo+"&tip_catalogo="+tip_catalogo; } }else{ $("#modal-producto-anadido").modal("show"); $("#btn-anadir-cesta-" + referencia).html(" Añadir a la cesta").prop("disabled", false); } } else if (response == -1) { $("#modal-sesion-caducada" + response).modal("show"); $("#modal-sesion-caducada" + response).on('hide.bs.modal', function (e) { window.location.href = "login.jsp?inicio_aplicacion=4&ori_id_referencia=" + referencia; }); } else if (response == -2) { $("#modal-sesion-caducada" + response).modal("show"); $("#modal-sesion-caducada" + response).on('hide.bs.modal', function (e) { location.reload(); }); } else { $(".validation-msj:not(#anadir-cesta-" + referencia + "-" + response + ")").hide(); $("#anadir-cesta-" + referencia + "-" + response).show(); $("#btn-anadir-cesta-" + referencia).html(" Añadir a la cesta").prop("disabled", false); } }, error: function (response) { console.log("error AJAX"); }, complete: function () { total_unidades_cesta(1); cargar_variables(referencia); recalcular_precio(referencia); } }); } function total_unidades_cesta (accion) { $.ajax({ dataType: "json", type: "POST", url: "ControlB2C", data: { json: 1, estado: 6, tabla: 3}, success: function (response){ var cantidad = parseFloat(response["cantidad"]); if (accion == 1) { // Actualizar icono cesta if (cantidad < 1000) { $("#cesta-icon").empty(); $("#cesta-icon").text(response["cantidad"]); } else { $("#cesta-icon").empty(); $("#cesta-icon").text("+999"); } } else if (accion == 2) { // Comprobar cantidades cesta cantidad_inicial = parseFloat($("#productos-cesta").val()); if (cantidad > cantidad_inicial) { location.reload(); } } }, error: function (response){ console.log("Error AJAX"); } }); } /////////////////////////////////////////////////////////////////////////////////////////////// $(".modal-anadir-cesta").on("shown.bs.modal", function (e) { $(".modal-validacion").hide(); }); $('#email-share').on('shown.bs.modal', function () { $('#per-contacto').focus(); }); $('#email-share').on('hidden.bs.modal', function () { $("#per-contacto").val(""); $("#email").val(""); $("#recomendar-form").show(); $("#email-enviado").hide(); }); $('#modal-recomendar-producto').on('shown.bs.modal', function () { $('#per-contacto').focus(); }); $('#modal-recomendar-producto').on('hidden.bs.modal', function () { $("#per-contacto").val(""); $("#email").val(""); $("#chk-privacidad").prop('checked', false); $("#recomendar-form").show(); $("#formulario-enviado").hide(); }); function validar_recomendar_producto (referencia) { if (validar_vacio("#per-contacto") && validar_correo("#email") && validar_checkbox("#chk-privacidad")) { recomendar_producto(referencia); } } function recomendar_producto (referencia) { if ( $("#btn-recomendar-producto").prop('disabled') == false ) { $("#btn-recomendar-producto").html("Enviando, por favor espere...").prop('disabled', true); $.ajax({ dataType: "json", type: "POST", url: "ControlB2C_1", data: { json: 1, per_contacto: $("#per-contacto").val(), email: $("#email").val(), id_referencia: referencia, observaciones: $("#observaciones").val(), cod_formulario: $("#cod-formulario").val(), estado: 17, tabla: 1 }, success: function (response){ $(".validation-msj:not(#recomendar-producto-" + response + ")").hide(); $("#recomendar-producto-" + response).show(); if (response == 0) { $("#recomendar-form").hide(); $("#formulario-enviado").show(); } $("#btn-recomendar-producto").html("Enviar").prop('disabled', false); }, complete: function(){ $("#email-share button.btn-success").html("Enviar").prop('disabled', false); }, error: function (response){ console.log("Error AJAX"); } }); } } $('#producto #modal-calcular-gastos-envio').on('shown.bs.modal', function (e) { var referencia = $('#id-producto-activo').val(); calcular_envio(referencia); }); function calcular_envio (referencia) { var pais = $("#cod-pais").val(); var provincia = $("#dropdown-provincia").val(); var data = { json: 1, cod_pais: pais, id_provincia: provincia, id_ref_talla: $("#id-ref-talla-" + referencia + " option:selected").val(), id_ref_color: $("#id-ref-color-" + referencia + " option:selected").val(), cantidad: $("#cantidad-" + referencia).val(), id_referencia: referencia, estado: 9, tabla: 3 }; consultar_gastos_envio(data); } function consultar_gastos_envio (data){ var pais = $("#cod-pais").val(); var destino; if (pais != "ESP") { $("#dropdown-provincia").val(0); $("#provincia").hide(); destino = $("#cod-pais option:selected").text(); } else { $("#provincia").show(); destino = $("#dropdown-provincia option:selected").text() + " - " + $("#cod-pais option:selected").text(); } var provincia = $("#dropdown-provincia").val(); if (pais == "ESP" && provincia == "0") { $("#dropdown-provincia").focus(); $("#precios-envio, .validation-msj").hide(); $("#modal-calcular-gastos-envio .modal-footer").show(); } else { $.ajax({ dataType: "json", type: "POST", url: "ControlB2C", data: data, success: function (response){ // Ocultamos todo menos mensaje de error si existe $("#modal-calcular-gastos-envio .modal-footer").hide(); $("#precios-envio").hide(); $("#detalles-producto").hide(); $(".validation-msj:not(#calcular-envio-" + response["resultado"] + ")").hide(); $("#calcular-envio-" + response["resultado"]).show(); // Si el resultado es 0 enseñamos precios y detalles del producto if (response["resultado"] == 0) { $("#precios-envio").show(); $("#destino").empty().append(destino); // Gastos de envío normal if (response["normal"] == 1) { $("#envio-normal-container").show(); if (response["imp_normal"] == "0,00") { $("#envio-normal").empty().append(" Gratis"); $("#envio-normal-container .moneda").hide(); } else { $("#envio-normal").empty().append(" " + response["imp_normal"]); $("#envio-normal-container .moneda").show(); } if (response["imp_nor_gratis"] == "0,00") { $("#envio-normal-gratis-desde").hide(); }else{ $("#envio-normal-gratis-desde").show(); $("#envio-normal-gratis").empty().append(" " + response["imp_nor_gratis"]); } } else if (response["normal"] == 0) { $("#envio-normal-container").hide(); } // Gastos de envío express if (response["express"] == 1) { $("#envio-express-container").show(); if (response["imp_express"] == "0,00") { $("#envio-express").empty().append(" Gratis"); $("#envio-express-container .moneda").hide(); } else { $("#envio-express").empty().append(" " + response["imp_express"]); $("#envio-express-container .moneda").show(); } if (response["imp_exp_gratis"] == "0,00") { $("#envio-express-gratis-desde").hide(); }else{ $("#envio-express-gratis-desde").show(); $("#envio-express-gratis").empty().append(" " + response["imp_exp_gratis"]); } } else if (response["express"] == 0) { $("#envio-express-container").hide(); } if (response["normal"] == 0 && response["express"] == 0) { $("#precios-envio, #detalles-producto .texto, .validation-msj").hide(); $("#sin-portes-activos").show(); } else { mostrar_detalles_producto(); } alinear_modal("#modal-calcular-gastos-envio"); } else if (response["resultado"] == 4) { $("#modal-calcular-gastos-envio .modal-footer").hide(); mostrar_detalles_producto(); alinear_modal("#modal-calcular-gastos-envio"); } function mostrar_detalles_producto () { // Detalles de producto $("#detalles-producto").show(); $("#cantidad-envio").empty().append(response["cantidad"]); $("#imp-cesta").empty().append(" " + response["imp_cesta"]); if (response["pes_cesta"] == "0,00") { $("#pes-cesta").parent().hide(); } else { $("#pes-cesta").empty().append(" " + response["pes_cesta"]); } } }, error: function (response){ console.log("error AJAX"); } }); } } function aviso_disponibilidad (referencia) { $("#btn-aviso-disponibilidad").html("Enviando solicitud...").prop('disabled', true); var id_ref_talla = parseFloat($("#id-ref-talla-" + referencia + " option:selected").val()); var id_ref_color = parseFloat($("#id-ref-color-" + referencia + " option:selected").val()); var data = { json: 1, id_referencia: referencia, estado: 21, tabla: 1 }; if (!isNaN(id_ref_talla)) { data["id_ref_talla"] = id_ref_talla; } if (!isNaN(id_ref_color)) { data["id_ref_color"] = id_ref_color; } $.ajax({ dataType: "json", type: "POST", url: "ControlB2C_1", data: data, success: function (response){ $(".validation-msj:not(#aviso-disponibilidad-" + response + ")").hide(); $("#aviso-disponibilidad-" + response).show(); $("#btn-aviso-disponibilidad").html("Avísame cuando esté disponible"); if (response == -1) { window.location.href = "login.jsp?ori_id_referencia=" + referencia; } }, error: function (response) { console.log("Error AJAX"); } }); } $('#modal-producto-anadido').on('hidden.bs.modal', function (e) { }); // Vehículos compatibles