$(document).ready(function() { if ($.fn.dataTable != undefined) { $.extend($.fn.dataTable.defaults, { "language": { "sProcessing": "Procesando...", "sLengthMenu": "Mostrar _MENU_", "sZeroRecords": "No se han encontrado resultados", "sEmptyTable": "Sin datos todavía", "sInfo": "Mostrando de la entrada _START_ a la _END_ de un total de _TOTAL_ entradas", "sInfoEmpty": "Todavía no hay datos", "sInfoFiltered": "(filtrado de _MENU_ entradas)", "sSearchPlaceholder": "Buscar", "sInfoPostFix": "", "sSearch": "", "sUrl": "", "oPaginate": { "sFirst": " ", "sPrevious": " ", "sNext": " ", "sLast": " " } } }); } }); function preparaLugar(pais, provincia, poblacion, idInputPais,idInputProvincia, idInputLocalidad) { if(pais > 0) { actualizaProvincias(idInputLocalidad,idInputProvincia, idInputPais, provincia, pais, provincia, poblacion, undefined); } $('#'+idInputPais).on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { //console.log(e, clickedIndex, isSelected, previousValue, $(this).val(), $('#frmServicioProvincia').val(), $('#frmServicioProvincia').selectpicker("val")); actualizaProvincias(idInputLocalidad,idInputProvincia, idInputPais, provincia); }); /*$("body").on("change", "#"+idInputPais, function() { actualizaProvincias(idInputLocalidad,idInputProvincia, idInputPais, provincia); });*/ if(provincia > 0) { actualizaCiudades(idInputLocalidad, idInputProvincia, idInputPais,poblacion, pais, provincia, poblacion, $("#"+idInputProvincia).val()*1); } $('#'+idInputProvincia).on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { //console.log(e, clickedIndex, isSelected, previousValue, $(this).val(), $('#frmServicioProvincia').val(), $('#frmServicioProvincia').selectpicker("val")); if (isSelected == null) return; actualizaCiudades(idInputLocalidad, idInputProvincia, idInputPais, undefined, $("#"+idInputPais).val()*1, $("#"+idInputProvincia).val()*1); }); /* $("body").on("change", "#"+idInputProvincia, function() { actualizaCiudades(idInputLocalidad, idInputProvincia, idInputPais, undefined, $("#"+idInputPais).val()*1, $("#"+idInputProvincia).val()*1); });*/ } function actualizaProvincias(idCampoLocalidad, idCampoRegion, idCampoPais, idRegionPreEstablecida, forceIdPais, forceIdRegion,forceIdLocalidad, onFinish, textoSelect, textoLoading) { if(forceIdPais == undefined) { forceIdPais = $("#"+idCampoPais).val(); } if(forceIdRegion == undefined) { forceIdRegion = $("#"+idCampoRegion).val(); } if(forceIdLocalidad == undefined) { forceIdLocalidad = $("#"+idCampoLocalidad).val(); } if(textoSelect == undefined) { textoSelect = "Seleccione la provincia"; } if(textoLoading == undefined) { textoLoading = "Cargando..."; } var data = { idPais: forceIdPais }; $("#"+idCampoRegion).empty(); $("#"+idCampoRegion).append( ""); $("#"+idCampoRegion).selectpicker("refresh"); $("#"+idCampoRegion).selectpicker('val', 0); var returned = $.ajax( { url: "ajax/Ubicacion.listadoRegiones.php?CSRF="+CSRF, type: "POST", dataType : "json", data : data, error: function(XMLHttpRequest, textStatus, errorThrown) { //ClassBlockUI.abrirBlockUIEstandarMensaje(XMLHttpRequest.responseText, true); }, success: function(data) { $("#"+idCampoRegion).empty(); $("#"+idCampoRegion).append( ""); for(var index in data) { $("#"+idCampoRegion).append( "" ); } if(idRegionPreEstablecida!=undefined && idRegionPreEstablecida !="") { $("#"+idCampoRegion).selectpicker("refresh"); $("#"+idCampoRegion).selectpicker('val', idRegionPreEstablecida); } else { $("#"+idCampoRegion).selectpicker("refresh"); $("#"+idCampoRegion).selectpicker('val', 0); } if(onFinish != undefined && typeof(onFinish) == "function") { onFinish(); } } }); } function actualizaCiudades(idCampoLocalidad, idCampoRegion, idCampoPais, idLocalidadPreEstablecida, forceIdPais, forceIdRegion,forceIdLocalidad, onFinish, textoSelect, textoLoading) { if(forceIdPais == undefined) { forceIdPais = $("#"+idCampoPais).val(); } if(forceIdRegion == undefined) { forceIdRegion = $("#"+idCampoRegion).val(); } if(forceIdLocalidad == undefined) { forceIdLocalidad = $("#"+idCampoLocalidad).val(); } if(textoSelect == undefined) { textoSelect = "Seleccione la localidad"; } if(textoLoading == undefined) { textoLoading = "Cargando..."; } var data = { idPais: forceIdPais, idRegion: forceIdRegion }; $("#"+idCampoLocalidad).empty(); $("#"+idCampoLocalidad).append( ""); $("#"+idCampoLocalidad).selectpicker("refresh"); $("#"+idCampoLocalidad).selectpicker('val', 0); var returned = $.ajax( { url: "ajax/Ubicacion.listadoCiudades.php?CSRF="+CSRF, type: "POST", dataType : "json", data : data, error: function(XMLHttpRequest, textStatus, errorThrown) { //ClassBlockUI.abrirBlockUIEstandarMensaje(XMLHttpRequest.responseText, true); }, success: function(data) { $("#"+idCampoLocalidad).empty(); $("#"+idCampoLocalidad).append( ""); for(var index in data) { $("#"+idCampoLocalidad).append( "" ); } if(idLocalidadPreEstablecida!=undefined) { $("#"+idCampoLocalidad).selectpicker("refresh"); $("#"+idCampoLocalidad).selectpicker('val', idLocalidadPreEstablecida); } else { $("#"+idCampoLocalidad).selectpicker("refresh"); $("#"+idCampoLocalidad).selectpicker('val', 0); } if(onFinish != undefined && typeof(onFinish) == "function") { onFinish(); } } }); } /* ClassBlockUI.abrirBlockUIEstandar(contenedorIDAMostrar[, accionCerrar, headerText, extraClass, restaurarElemento]); ClassBlockUI.abrirBlockUIEstandarMensaje(mensaje[, isAlertOrButtons, onClose]); ClassBlockUI.abrirBlockUIConfirm(mensaje, textoBotonAceptar, accionBotonAceptar, textoBotonCancelar[, accionBotonCancelar]); //accionBotonCancelar="close" ClassBlockUI.abrirBlockUIEsperePorFavor:([mensaje]); */ var ClassBlockUI = { restaurarElemento: function() { var data = $("body").data('blockUIEstandar.history'); if (data) { data.el.style.display = data.display; data.el.style.position = data.position; if (data.parent) data.parent.appendChild(data.el); $("body").removeData('blockUIEstandar.history'); $("#"+data.generatedId).remove(); } }, abrirBlockUIEstandar: function(contenedorIDAMostrar, accionCerrar, headerText, extraClass, restaurarElemento) { if(restaurarElemento || restaurarElemento == undefined) { ClassBlockUI.restaurarElemento(); } $(".modalAutoHide").modal("hide"); if($(".modal").length>0){$("body").addClass("modal-open")} if(contenedorIDAMostrar == undefined || $("#"+contenedorIDAMostrar).length == 0){return;} //var blockUIId="blockUI_"+new Date().getTime(); var blockUIId="blockUI_"+contenedorIDAMostrar; extraClass = extraClass == undefined ? "" : extraClass; //modal-lg var object = $("#"+contenedorIDAMostrar); var node = object[0]; var data = {}; $("body").data('blockUIEstandar.history', data); data.el = node; data.parent = node.parentNode; data.display = node.style.display; data.position = node.style.position; data.generatedId = blockUIId; data.object = object; if (data.parent) data.parent.removeChild(node); var header = headerText != undefined ? headerText : ""; var message = ''+ ''; $("body").append(message); var modal = $("#"+blockUIId); modal.find(".modal-body").append(node); $("#"+contenedorIDAMostrar).show(); modal.find(".modal-dialog").addClass("zoomInDown"); modal.modal({backdrop: false}); modal.on('hidden.bs.modal', function () { ClassBlockUI.restaurarElemento(); }) if(accionCerrar==undefined) //boton cerrar tiene accion por defecto { $("#"+blockUIId+" .btnCerrarModalEquis").click(function(){ modal.modal("hide"); if($(".modal").length>0){$("body").addClass("modal-open")} }); } else if(accionCerrar==false) //oculta el boton cerrar { $("#"+blockUIId+" .btnCerrarModalEquis").hide(); } else //boton cerrar con accion especial { $("#"+blockUIId+" .btnCerrarModalEquis").click(accionCerrar); } return modal; }, abrirBlockUIEstandarMensaje: function(mensaje, isAlertOrButtons, onClose, extraClass, title) { $(".modalAutoHide").modal("hide"); if($(".modal").length>0){$("body").addClass("modal-open")} var blockUIId="blockUI_"+new Date().getTime(); extraClass = extraClass == null || extraClass == undefined ? "" : extraClass; //modal-lg title = title == null || title == undefined ? "Aviso" : title; if(isAlertOrButtons==undefined) isAlertOrButtons=false; if(onClose==undefined) onClose=false; var botonera = ""; var botoneraEspecial = false; if(isAlertOrButtons === false) { botonera = ""; } else if (isAlertOrButtons === true) { botonera = "
Aceptar
"; } else { botoneraEspecial = true; botonera = "
"; for(var index in isAlertOrButtons) { botonera += " "+isAlertOrButtons[index]["text"]+" "; } botonera += "
"; } var message = ''; message += ''; $("body").append(message); var modal = $("#"+blockUIId); modal.find(".modal-dialog").addClass("zoomInDown"); modal.modal({backdrop: false}); modal.on('hidden.bs.modal', function () { modal.remove(); }) //Acciones de los botones especiales if(botoneraEspecial) { for(var index in isAlertOrButtons) { if(isAlertOrButtons[index]["action"] == "close") { isAlertOrButtons[index]["action"] = function(){ modal.modal("hide"); if($(".modal").length>0){$("body").addClass("modal-open")} }; } $("#"+blockUIId+" ."+index).unbind("click").click(isAlertOrButtons[index]["action"]); } } var fnOnClose; if(onClose==false) { fnOnClose = function(){ modal.modal("hide"); if($(".modal").length>0){$("body").addClass("modal-open")} }; } else if (typeof onClose === "function") { fnOnClose = function(){onClose()}; } else if (onClose == "location") { fnOnClose = function(){window.location.reload()}; } else if (onClose == "back") { fnOnClose = function(){history.go(-1);}; } else { fnOnClose = function(){window.location = onClose}; } $("#"+blockUIId+" .btnCerrarBlockUIAlert, #"+blockUIId+" .btnCerrarModalEquis").unbind("click").click(fnOnClose); return modal; }, abrirBlockUIConfirm: function(mensaje, textoAceptar, accionAceptar, textoCancelar, accionCancelar, extraClass, title) { accionCancelar = accionCancelar == undefined ? "close" : accionCancelar; extraClass = extraClass == null || extraClass == undefined ? "" : extraClass; var buttons = { "btnAceptarBUI_CONFIRM": { "text": textoAceptar, "action": accionAceptar }, "btnCancelarBUI_CONFIRM": { "text": textoCancelar, "action": accionCancelar } }; return ClassBlockUI.abrirBlockUIEstandarMensaje(mensaje, buttons, false, extraClass, title); }, abrirBlockUIEsperePorFavor: function(mensaje) { if(mensaje == undefined){ mensaje = "
Loading ... Espera por favor...
"; }; return ClassBlockUI.abrirBlockUIEstandarMensaje(mensaje, undefined, false, "modalEspere"); } }; var ClassDirecciones = { initModificarDirecciones: function(opciones_validacion) { ClassUsuarios.validacionModificarDatos = $("#formModificarDatos").validate(opciones_validacion); $("#guardarDatos").unbind("click").makeTagLink(ClassDirecciones.guardarDirecciones); $("#form_compra_copiar_direccion").change(function() { if($("#form_compra_copiar_direccion").val()*1 == 1) { $("#datosFacturacion").addClass("d-none"); $("#textoFacturacion").removeClass("d-none"); /*var bloqueID = "datosEntrega"; var nombre = $("#"+bloqueID+" .nombreDireccion").html(); var nif = $("#"+bloqueID+" .nifDireccion").html(); var telefono = $("#"+bloqueID+" .telefonoDireccion").html(); var direccion = $("#"+bloqueID+" .direccionDireccion").html(); var cp = $("#"+bloqueID+" .codigoPostalDireccion").html(); var poblacionID = $("#"+bloqueID+" .poblacionDireccion").attr("data-id"); var provinciaID = $("#"+bloqueID+" .provinciaDireccion").attr("data-id"); var poblacion = $("#"+bloqueID+" .poblacionDireccion").html(); var provincia = $("#"+bloqueID+" .provinciaDireccion").html(); bloqueID = "datosFacturacion"; $("#"+bloqueID+" .nombreDireccion").html(nombre); $("#"+bloqueID+" .nifDireccion").html(nif); $("#"+bloqueID+" .telefonoDireccion").html(telefono); $("#"+bloqueID+" .direccionDireccion").html(direccion); $("#"+bloqueID+" .codigoPostalDireccion").html(cp); $("#"+bloqueID+" .poblacionDireccion").attr("data-id",poblacionID); $("#"+bloqueID+" .provinciaDireccion").attr("data-id",provinciaID); $("#"+bloqueID+" .poblacionDireccion").html(poblacion); $("#"+bloqueID+" .provinciaDireccion").html(provincia);*/ } else { $("#textoFacturacion").addClass("d-none"); $("#datosFacturacion").removeClass("d-none"); } }); $(".modificarDatos").unbind("click").makeTagLink(function(){ var bloqueID = $(this).parents(".padreDatos").attr("id"); var tipo = $(this).attr("data-id"); var nombre = $("#"+bloqueID+" .nombreDireccion").html(); var nif = $("#"+bloqueID+" .nifDireccion").html(); var telefono = $("#"+bloqueID+" .telefonoDireccion").html(); var direccion = $("#"+bloqueID+" .direccionDireccion").html(); var cp = $("#"+bloqueID+" .codigoPostalDireccion").html(); var poblacion = $("#"+bloqueID+" .poblacionDireccion").attr("data-id"); var provincia = $("#"+bloqueID+" .provinciaDireccion").attr("data-id"); var pais = $("#"+bloqueID+" .paisDireccion").attr("data-id"); ClassDirecciones.setDatosForm(tipo,nombre,nif,telefono,direccion,cp,poblacion,provincia,pais); ClassBlockUI.abrirBlockUIEstandar("modificarDatos", undefined, tipo == 1 ? "Modificar datos de entrega" : "Modificar datos de facturación", "modal-md") }); }, guardarDirecciones: function() { if(!$("#formModificarDatos").valid()) { ClassBlockUI.abrirBlockUIEstandarMensaje("Por favor, revisa los campos porque se han detectado los siguientes errores

"+ClassUsuarios.validacionModificarDatos.invalidMessages("
"), true, false); return; } var opcionesDatos = { url: "ajax/Direcciones.modificarDatos.php?CSRF="+CSRF, type: "POST", dataType : "json", data : $("#formModificarDatos").serialize(), success: function(data) { if(data["error_number"]*1 >= 0) { window.location = window.location; } else { ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, false); } } } ClassBlockUI.abrirBlockUIEsperePorFavor(); $.ajax(opcionesDatos); }, setDatosForm: function(tipo,nombre,nif,telefono,direccion,cp,poblacion,provincia,pais) { $("#formModificarDatos #form_tipo").val(tipo); $("#formModificarDatos #form_nombre").val(nombre); $("#formModificarDatos #form_dni").val(nif); $("#formModificarDatos #form_telefono").val(telefono); $("#formModificarDatos #form_direccion").val(direccion); $("#formModificarDatos #form_codigo_postal").val(cp); preparaLugar(pais, provincia, poblacion, "form_pais", "form_provincia", "form_poblacion"); /*$("#formModificarDatos #form_poblacion").val(poblacion); $("#formModificarDatos #form_provincia").val(provincia);*/ } }; var ClassTiendaVirtualCarrito= { initReactivaClicks:function() { ClassTiendaVirtualCarrito.refrescarTabla(); $("body").on("click", ".alert-info", function() { $(".btnAbreCarrito").trigger("click"); }); $("body").on("click", ".btnAbreCarrito", function() { $(".overlay, #previewCarrito").addClass("active"); $("html, body").addClass("no-scroll"); }); $("#previewCarrito").on("click", "#previewCarritoCerrar", function() { $(".overlay, #previewCarrito").removeClass("active"); $("html, body").removeClass("no-scroll"); }); $("body").on("click", ".itemCarritoMas", function () { var input = $(this).parent().find("input"); var form = $(this).parents("form").attr("id"); var cantidad = $(input).val(); var nuevaCantidad = 1; if (!isNaN(cantidad)) { nuevaCantidad = cantidad*1+1; } $(input).val(nuevaCantidad); if (cantidad != nuevaCantidad) ClassTiendaVirtualCarrito.actualizar("#"+form); }); $("body").on("click", ".itemCarritoMenos", function () { var input = $(this).parent().find("input"); var form = $(this).parents("form").attr("id"); var cantidad = $(input).val(); var nuevaCantidad = 1; if (!isNaN(cantidad) && cantidad > 1) { nuevaCantidad = cantidad*1-1; } $(input).val(nuevaCantidad); if (cantidad != nuevaCantidad) ClassTiendaVirtualCarrito.actualizar("#"+form); }); $("body").on("click", ".itemPreviewCarritoEliminar, .itemCarritoEliminar", function (event) {event.preventDefault(); ClassTiendaVirtualCarrito.eliminarLineaProducto($(this).attr("data-id"))}); $("body").on("click", "#btnValidarCupon", ClassTiendaVirtualCarrito.validarCupon); }, refrescarTabla: function () { $(".tooltipStandardHTML").not(".tooltipstered").tooltipster({animation: 'grow',interactive:true, position:'bottom', contentAsHTML: true}); $(".tooltipStandard").not(".tooltipstered").tooltipster({animation: 'grow',interactive:true, position:'bottom', contentAsHTML: true}); var numProductosCarrito = 0; if (typeof tablatablaCarrito != "undefined") { numProductosCarrito = tablatablaCarrito.page.info().recordsDisplay; var width = $(window).width(); if (width <= 575) { $(".dataTableCenter > .itemCarritoBloqueCantidad").remove(); } else { $(".carritoMovil").remove(); } } if (numProductosCarrito > 10) { $("#tablaCarrito_wrapper .paginationFooter").removeClass("d-none"); } }, refrescarTablaRegalos: function () { var numProductos = 0; if (typeof tablatablaRegalos != "undefined") { numProductos = tablatablaRegalos.page.info().recordsDisplay; } if (numProductos == 0) { $("#tablaRegalos_wrapper").addClass("d-none"); } else { $("#tablaRegalos_wrapper").removeClass("d-none"); } }, mostrarMensajeBorrarCarrito: function(e, tipo) { ClassBlockUI.abrirBlockUIConfirm("¿Estás seguro de que deseas borrar este producto de tu compra?", "Confirmar", function(){ if(tipo==1) { ClassTiendaVirtualCarrito.eliminarProductoCarrito(e); } else { ClassTiendaVirtualCarrito.eliminarProductoCarritoBloque(e); } }, "Cancelar"); }, eliminarProductoCarrito:function(e) { var idProducto = e.attr("data-idCarrito"); if(isNaN(idProducto)) return; $("#actualizar_cantidad_"+idProducto).val(0); ClassTiendaVirtualCarrito.actualizar(); }, eliminarProductoCarritoBloque:function(e) { var idProducto = e.attr("data-idCarrito"); if(isNaN(idProducto)) return; ClassTiendaVirtualCarrito.eliminarLineaProducto(idProducto); }, cantidadModificada:function(e) { var idProducto = e.attr("data-idCarrito"); if(isNaN(idProducto)) return; $("input[name='actualizar_cantidad_"+idProducto+"']").each(function(){$(this).val(e.val())}); //$("#actualizar_cantidad_"+idProducto).val(e.val()); ClassTiendaVirtualCarrito.cantidadModificadaActualizarInfo(idProducto); }, cantidadModificadaActualizarInfo:function(idProducto) { if(!$("#cantidades").valid()) return; $(".pvpMostrarTotal[data-id="+idProducto+"]").each(function(){$(this).html("-");}); $(".total_compra_numero").html(" - "); $(".btnActualizarCantidades[data-idCarrito="+idProducto+"]").each(function(){$(this).removeClass("ocultarActualizarCantidades")}); $(".btnActualizarCantidades").unbind("click").makeTagLink(function(){ClassTiendaVirtualCarrito.actualizar()}); $("#btn_comprar").addClass("hidden"); }, actualizar: function(idFormulario) { idFormulario = idFormulario == undefined ? "#cantidades" : idFormulario; if(!$(idFormulario).valid()) { ClassBlockUI.abrirBlockUIEstandarMensaje("Revisa las cantidades", true); return; } ClassBlockUI.abrirBlockUIEsperePorFavor(); $.ajax( { url: "ajax/TiendaVirtualCarrito.actualizarCantidades.php", type: "POST", dataType : "json", data : $(idFormulario).serialize(), success: function(data) { if(data["error_number"] < 0) { ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true); } else { ClassTiendaVirtualCarrito.actualizarPreviewCarrito(data); $(".modal").modal("hide"); if (data["errorStock"]) { ClassBlockUI.abrirBlockUIEstandarMensaje(data["errorStock"], true, undefined); } //window.location = window.location; } } }); //cargar de nuevo el carrito si esta abierto }, eliminarLineaProducto:function(idProducto) { $.ajax( { url: "ajax/TiendaVirtualCarrito.eliminarProducto.php?idProducto="+idProducto, type: "POST", dataType : "json", success: function(data) { if(data["error_number"] < 0) { ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true); } else { ClassTiendaVirtualCarrito.actualizarPreviewCarrito(data); $(".modal").modal("hide"); //window.location = window.location; } } }); ClassBlockUI.abrirBlockUIEsperePorFavor(); //cargar de nuevo el carrito si esta abierto }, renderTablaCarrito: function(data, type, row, meta){ if(type === 'display'){ var api = new $.fn.dataTable.Api(meta.settings); var $el = $('input, select, textarea', api.cell({ row: meta.row, column: meta.col }).node()); //var $html = $(data).wrap('
').parent(); var $html = $("
").html(data); if($el.prop('tagName') === 'INPUT'){ $('input', $html).attr('value', $el.val()); if($el.prop('checked')){ $('input', $html).attr('checked', 'checked'); } } else if ($el.prop('tagName') === 'TEXTAREA'){ $('textarea', $html).html($el.val()); } else if ($el.prop('tagName') === 'SELECT'){ $('option:selected', $html).removeAttr('selected'); $('option', $html).filter(function(){ return ($(this).attr('value') === $el.val()); }).attr('selected', 'selected'); } data = $html.html(); //console.log("Antes habia: "+data); //console.log("Ahroa quiere poner: "+$html.html()); } return data; }, actualizarPreviewCarrito: function (data) { $("#previewCarritoProductos").html(data["productos"]); $(".btnAbreCarrito .contadorNumItems").html(data["numProductos"]); $("#previewCarritoAhorras span, #teAhorrasCarrito span").html_formated(data["teAhorras"]); $("#previewCarritoSubtotal span").html_formated(data["subtotal"]); $("#previewCarritoTotal span").html_formated(data["total"]); $(".previewCarritoTotal span").html_formated(data["totalPedido"]); $(".previewCarritoEnvioTitulo").html(data["textoEnvio"]); $(".previewCarritoEnvioProgreso span").css("width", data["progreso"]+"%"); if(data["gastosEnvio"][1]*1==0) { $("#precioEntrega_1").html("¡Gratis!"); } else { $("#precioEntrega_1").html(""+data["gastosEnvio"][3]+"€ ("+data["gastosEnvio"][0]+"% IVA incluido)"); } if (typeof tablatablaCarrito !== 'undefined' && tablatablaCarrito != null && tablatablaCarrito != undefined) { tablatablaCarrito.ajax.reload(null, false); tablatablaRegalos.ajax.reload(null, false); ClassTiendaVirtualCarrito.actualizaTotales(); } }, validarCupon: function () { $.ajax( { url: "ajax/TiendaVirtualCupon.enviar.php", type: "POST", dataType : "json", data : { "cuponDescuento": $("#cuponDescuento").val(), "CSRF": CSRF }, success: function(data) { if(data["error_number"]<0) { ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true); } else { $(".modal").modal("hide"); $("#cuponDescuento").val(""); ClassTiendaVirtualCarrito.actualizaTotales(); } } }); ClassBlockUI.abrirBlockUIEsperePorFavor(); }, actualizaTotales: function () { var transporte = $("input[name=formTransporte]:checked").val(); var pais = $("#formEnvioPais").val(); var provincia = $("#formEnvioProvincia").val(); if (typeof tablatablaTotales != "undefined") { tablatablaTotales.ajax.url('ajax/TiendaVirtualCarrito.getTotales.php?CSRF=' + CSRF + '&pais=' + pais + '&provincia=' + provincia + "&idTransporte=" + transporte).load(); } } }; var ClassTiendaVirtualPedidos = { initReactivaClicks: function(){ $(".mostrarPedidos.d-none, #filtrosHistorico").removeClass("d-none"); $(".mostrarPedidos label").addClass("inputIcon"); $(".form-control").removeClass().addClass("form-control-b"); if ($("#tablaHistoricoPedidos_length label i").length == 0) { $("#tablaHistoricoPedidos_length label").append(''); } $(".iconoDetallePedido, .iconoImprimirFactura").not(".tooltipstered").tooltipster({animation: 'grow',interactive:true, position:'bottom'}); $(".tooltipStandardHTML").not(".tooltipstered").tooltipster({animation: 'grow',interactive:true, position:'bottom', contentAsHTML: true}); var numProductosPedido = 0; var numPedidos = 0; if (typeof tablatablaVerPedido != "undefined") { numProductosPedido = tablatablaVerPedido.page.info().recordsDisplay; } if (typeof tablatablaHistoricoPedidos != "undefined") { numPedidos = tablatablaHistoricoPedidos.page.info().recordsDisplay; } if (numProductosPedido > 10) { $("#tablaVerPedido_wrapper .paginationFooter").removeClass("d-none"); } if (numPedidos > 10) { $("#tablaHistoricoPedidos_wrapper .paginationFooter").removeClass("d-none"); } }, initConfirmarPedido: function(opciones_validacion, paisEnvio, provinciaEnvio, poblacionEnvio, paisFacturacion, provinciaFacturacion, poblacionFacturacion) { ClassTiendaVirtualPedidos.validacion_pedido=$("#frmCofirmarPedido").validate(opciones_validacion); $("body").on("click", "#btn_confirmar_compra, #btn_confirmar_compra2", ClassTiendaVirtualPedidos.confirmarPedido); preparaLugar(paisEnvio, provinciaEnvio, poblacionEnvio, "formEnvioPais", "formEnvioProvincia", "formEnvioLocalidad"); preparaLugar(paisFacturacion, provinciaFacturacion, poblacionFacturacion, "formFacturacionPais", "formFacturacionProvincia", "formFacturacionLocalidad"); $("#frmCofirmarPedido").on("change", "#copiarDireccionesCarrito", function() { if (!$(this).is(":checked")) { $("#formDireccionFacturacion").css("display", "flex"); $(".formFacturacionTitulo").css("display", "block"); } else { $.each($("input[name^='formEnvio'], select[name^='formEnvio']"), function (i, element) { var value = $(element).val(); var inputFact = $("#"+$(element).attr("id").replace("Envio", "Facturacion")); $(inputFact).val(value); }); $("#formFacturacionProvincia").html($("#formEnvioProvincia").html()); $("#formFacturacionLocalidad").html($("#formEnvioLocalidad").html()); $("#formFacturacionProvincia").selectpicker('refresh'); $("#formFacturacionLocalidad").selectpicker('refresh'); $("#formFacturacionProvincia").selectpicker('val', $("#formEnvioProvincia").val()); $("#formFacturacionLocalidad").selectpicker('val', $("#formEnvioLocalidad").val()); $("#formDireccionFacturacion").css("display", "none"); $(".formFacturacionTitulo").css("display", "none"); } }); $("#frmCofirmarPedido").on("change", "#generarFacturaCarrito", function() { if ($(this).is(":checked")) { $("#formDireccionFacturacion").css("display", "flex"); $(".formFacturacionTitulo").css("display", "block"); } else { $("#formDireccionFacturacion").css("display", "none"); $(".formFacturacionTitulo").css("display", "none"); } }); $("#copiarDireccionesCarrito").trigger("change"); $("#generarFacturaCarrito").trigger("change"); }, envioValido: function(esValido) { if(esValido) { $(".finalizarPedido").show(); } else { $(".finalizarPedido").hide(); ClassBlockUI.abrirBlockUIEstandarMensaje("Gastos de envío incorrectos, no hemos podido calcular los gastos de envío, disculpe las molestias.", true, false); } }, confirmarPedido: function() { $(".modal").modal("hide"); if (!$("#frmCofirmarPedido").valid()) { ClassBlockUI.abrirBlockUIEstandarMensaje("Por favor, revisa los campos porque se han detectado los siguientes errores

"+ClassTiendaVirtualPedidos.validacion_pedido.invalidMessages("
"), true, false); return; } if ($("input[name='forma_pago']:checked").val() == 4) { $.each($("#cargo-cuenta input"), function(i, e) { if ($(e).val().trim().length < 4) { ClassBlockUI.abrirBlockUIEstandarMensaje("Debe introducir un nº de cuenta válido", true); return false; } }); } var opcionesDatos = { url: "ajax/TiendaVirtualPedidos.procesarPedido.php?CSRF="+CSRF, type: "POST", dataType : "json", data : $("#frmCofirmarPedido").serialize(), success: function(data) { if(data["error_number"] < 0 ) { ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, false); } else { $("#procesaPagoExterno").html(data["formularioFormaPago"]); switch(data["forma_pago"]*1) { case 1: { ClassTiendaVirtualPedidos.pagoBanco(); break; } case 2: { ClassTiendaVirtualPedidos.pagoPaypal(); break; } case 3: case 4: default: { window.location = ("/tienda/pedido-realizado.html?idPedido=%idPedido%").replace("%idPedido%", data["idPedido"]); break; } } } } }; ClassBlockUI.abrirBlockUIEsperePorFavor(); $.ajax(opcionesDatos); }, pagoPaypal:function() { ClassBlockUI.abrirBlockUIEsperePorFavor(""); $("#pagoPaypal").submit(); }, pagoBanco:function() { ClassBlockUI.abrirBlockUIEsperePorFavor(); $("#pagoBanco").submit(); } }; var opciones = {}; var modalAtributos=false; var modalMensaje = false; /*var opcionesPeso = false; var opcionesPaquetes = false;*/ var ClassTiendaVirtualProductos = { initAgregarProductoCarrito:function() { $(".cantidad").unbind("keyup").keyup(function() { ClassTiendaVirtualProductos.actualizarTotal($("#atributos_1").attr("id"), $("#atributos_1").find("option:selected").attr("data-suplemento")*1); }); $(".cantidad").pressEnter(function(){ return; }); $(".ficha_producto_atributos select").change(function() { ClassTiendaVirtualProductos.actualizarTotal($(this).attr("id"), $(this).find("option:selected").attr("data-suplemento")*1); }); $(".btnAgregarCarrito").unbind("click").makeTagLink(function() { ClassTiendaVirtualProductos.agregarAlCarrito(true, $(this)); }); $(".btnAgregarCarritoListado, .btnPrevProducto").unbind("click").makeTagLink(function() { ClassTiendaVirtualProductos.agregarAlCarritoCompruebaAtributos(false, $(this)); }); $("body").on("click", ".inputCantidadMas", function () { var input = $(this).parent().find("input"); var cantidad = $(input).val(); var nuevaCantidad = 1; if (!isNaN(cantidad)) { nuevaCantidad = cantidad*1+1; } $(input).val(nuevaCantidad) ClassTiendaVirtualProductos.actualizarTotal($("#atributos_1").attr("id"), $("#atributos_1").find("option:selected").attr("data-suplemento")*1); }); $("body").on("click", ".inputCantidadMenos", function () { var input = $(this).parent().find("input"); var cantidad = $(input).val(); var nuevaCantidad = 0; if (!isNaN(cantidad) && cantidad >= 1) { nuevaCantidad = cantidad*1-1; } $(input).val(nuevaCantidad) ClassTiendaVirtualProductos.actualizarTotal($("#atributos_1").attr("id"), $("#atributos_1").find("option:selected").attr("data-suplemento")*1); }); $("body").on("click", "#itemPreviewFotos span", function () { $("#itemPreviewFotos span").removeClass("seleccionada"); $(this).addClass("seleccionada"); var src = $(this).find("img").attr("src"); $("#itemPreviewFotoPrincipal").attr("src", src); }); $("body").on("change", "#atributo_1, #atributo_2", function () { var stock = $(this).find("option:selected").attr("data-stock"); ClassTiendaVirtualProductos.checkSinStock(stock, 1); }); $("body").on("change", "#atributos_1, #atributos_2", function () { var stock = $(this).find("option:selected").attr("data-stock"); ClassTiendaVirtualProductos.checkSinStock(stock, 2); }); $(".ficha_producto_atributos select").trigger("change"); }, actualizarTotal:function(idAtributo, valorAtributo) { if(idAtributo!=undefined) { opciones[idAtributo] = valorAtributo; } //le anadido dividir entre 100 para que lo haga bien, sino suma decimales var subtotal = ($("#ficha_producto_precio").val()*1); var subtotal_sin_iva = ($("#ficha_producto_precio_sin_iva").val()*1); var subtotal_original = ($("#ficha_producto_precio_original").val()*1); var subtotal_original_sin_iva = ($("#ficha_producto_precio_original_sin_iva").val()*1); for(var index in opciones) { if(index.match(/atributo_*/i) == null) continue; subtotal += opciones[index]; subtotal_original += opciones[index]; subtotal_sin_iva += opciones[index]; subtotal_original_sin_iva += opciones[index]; } var cantidad = $(".cantidad").val()*1; if(!isNaN(cantidad)) { $("#productos_detalles_subtotal").html_formated((cantidad*subtotal), {numberOfDecimals: 2, decimalSeparator: ',', thousandSeparator: '.', symbol: ' €'}); $("#productos_detalles_subtotal_original").html_formated((cantidad*subtotal_original), {numberOfDecimals: 2,decimalSeparator: ',',thousandSeparator: '.',symbol: ' €'}); } else { $("#productos_detalles_subtotal").html_formated(subtotal, {symbol: ' €'}); $("#productos_detalles_subtotal_original").html_formated(subtotal_original, {symbol: ' €'}); } }, agregarAlCarritoCompruebaAtributos: function(mostrandoAtributos, este){ if(!usuarioIdentificado && !1) { ClassBlockUI.abrirBlockUIEstandarMensaje("Tienes que identificarse para poder añadir el producto al carrito", true, false); return; } /*var tieneAtributos = este.attr("data-atributos"); if(mostrandoAtributos || !tieneAtributos) { ClassTiendaVirtualProductos.agregarAlCarrito(mostrandoAtributos, este); } else*/ { ClassTiendaVirtualProductos.mostrarAtributosParaAgregarAlCarrito(este); } }, mostrarAtributosParaAgregarAlCarrito: function(este){ idProducto = este.attr("data-id"); var opcionesDatos = { type:"POST", dataType:"json", url:"ajax/TiendaVirtualCarrito.seleccionaAtributos.php?CSRF="+CSRF, data: { id: idProducto }, success: function(data, textStatus, XMLHttpRequest) { if(data["error_number"]<0) { ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true); } else { /*if(Object.keys(data["atributos"]).length == 0) { ClassTiendaVirtualProductos.agregarAlCarrito(false, este); } else */ $("#itemPreviewDatos .itemPreviewContieneAtributos").html(""); if(Object.keys(data["atributos"]).length > 0) { var seleccionaAtributos = "
"; for(var idAtributo in data["atributos"]) { seleccionaAtributos += ''; seleccionaAtributos += ''; } seleccionaAtributos += ''; seleccionaAtributos += '
'; $("#itemPreviewDatos .itemPreviewContieneAtributos").html(seleccionaAtributos); } $("#itemPreviewDatos .itemPreviewMarca").html(data["producto"]["marca"]); $("#itemPreviewDatos .itemPreviewProducto").html(data["producto"]["producto"]); if (!data["producto"]["esOferta"]) { $("#itemPreviewDatos .itemPreviewPrecio").addClass("d-none"); } else { $("#itemPreviewDatos .itemPreviewPrecio").removeClass("d-none"); } $("#itemPreviewDatos .itemPreviewPrecio").html(data["producto"]["precio"]); $("#itemPreviewDatos .itemPreviewPrecioOferta").html(data["producto"]["precioOferta"]); $("#itemPreviewFotoPrincipal").attr("src", data["producto"]["fotoPrincipal"]); $("#itemPreviewFotos").html(""); $.each(data["producto"]["fotos"], function (i, e) { var claseSeleccionada = e == data["producto"]["fotoPrincipal"] ? "seleccionada" : ""; $("#itemPreviewFotos").append('Producto'); }); if (data["producto"]["porcentajeDescuento"] > 0) { $("#itemPreviewDatos .itemPreviewPorcDescuento").css({opacity: 1, visibility: "visible"}); } else { $("#itemPreviewDatos .itemPreviewPorcDescuento").css({opacity: 0, visibility: "hidden"}); } $("#itemPreviewDatos .itemPreviewPorcDescuento").html(data["producto"]["porcentajeDescuento"]+"%"); $("#itemPreviewDatos .itemPreviewCantidad").val(1); $("#selectAtributos #itemPreviewProductoFotos .btnAnadirEliminarLista").tooltipster("destroy"); $("#selectAtributos #itemPreviewProductoFotos .btnAnadirEliminarLista").attr("data-id", idProducto); $("#selectAtributos #itemPreviewProductoFotos .btnAnadirEliminarLista").removeClass("deseo").addClass(data["producto"]["claseDeseo"]); $("#selectAtributos #itemPreviewProductoFotos .btnAnadirEliminarLista").attr("title", data["producto"]["tooltipDeseo"]); $(".tooltipStandard").not(".tooltipstered").tooltipster({animation: 'grow',interactive:true, position:'bottom', contentAsHTML: true}); $("#itemPreviewDatos #btnCatalogoComprarAgregarAhoraAtributos").attr("data-id", idProducto); $("#itemPreviewDatos .itemPreviewAvisame").attr("data-id", idProducto); $("#itemPreviewDatos #btnCatalogoComprarAgregarAhoraAtributos").attr("data-atributos", 1); if ($("#atributo_1").length == 0 && $("#atributo_2").length == 0) { ClassTiendaVirtualProductos.checkSinStock(data["producto"]["stock"]); } else { $("#atributo_1").trigger("change"); $("#atributo_2").trigger("change"); } $(".inputCantidad .cantidad").val(1); modalAtributos = ClassBlockUI.abrirBlockUIEstandar("selectAtributos", undefined, "", "modal-lg"); } } }; $.ajax(opcionesDatos); ClassBlockUI.abrirBlockUIEsperePorFavor(); }, agregarAlCarrito: function(mostrandoAtributos, este) { if(!usuarioIdentificado && !1) { ClassBlockUI.abrirBlockUIEstandarMensaje("Tienes que identificarse para poder añadir el producto al carrito", true, false); } else { var idProducto = este.attr("data-id"); var tieneAtributos = este.attr("data-atributos"); var atributos = {}; var atributosOk = true; if(tieneAtributos == 1) { $(".ficha_producto_atributos select").each(function() { atributos[$(this).attr("id")] = $(this).val(); if($(this).val() == "") { atributosOk=false; } }); } if(!atributosOk) { ClassBlockUI.abrirBlockUIEstandarMensaje("Elige las opciones del producto", true, false); return; } var data = atributos;//atributos; data["idProducto"] = idProducto; var nombreCantidad = "cantidad_"+idProducto; if(!mostrandoAtributos) { data[nombreCantidad] = 1; //porque estamos agregando desde el listado del producto } else { data[nombreCantidad] = $(".cantidad").val(); } if (isNaN(data[nombreCantidad]) || data[nombreCantidad] == "") { data[nombreCantidad] = 1; } if ($("#subProductos").length > 0) { var formData = new FormData($('#subProductos')[0]); var cantidadValida = false; $.each($(".cantidadSecundaria"), function(i, e) { var val = $(e).val(); if (val != "" && val > 0) { cantidadValida = true; return false; } }); if (!cantidadValida) { ClassBlockUI.abrirBlockUIEstandarMensaje("Revisa las cantidades", true); return; } } else { var formData = new FormData(); formData.append(nombreCantidad, data[nombreCantidad]); formData.append("idProducto", data["idProducto"]); } var opcionesDatos = { type:"POST", dataType:"json", url:"ajax/TiendaVirtualCarrito.agregar.php?CSRF="+CSRF, processData: false, contentType: false, data: formData, success: function(data, textStatus, XMLHttpRequest) { if(data["error_number"]<0) { ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, false); } else { ClassTiendaVirtualCarrito.actualizarPreviewCarrito(data); $(".modalAutoHide").modal("hide"); $.notify( { title: "Aviso: ", message: data["error_message"], allow_dismiss: false }, { placement: { from: "top", align: "center" }, delay: 2000, //timer: 100000 }); } } }; $.ajax(opcionesDatos); modalMensaje = ClassBlockUI.abrirBlockUIEsperePorFavor(); } }, mostrarModalSinStock: function(producto) { ClassBlockUI.abrirBlockUIEstandar("sinStockModal", undefined, "", "productoSinStock"); }, checkSinStock: function(stock, tipo) { var extraSelector = tipo == undefined || tipo == 1 ? "#selectAtributos " : "#itemProductoFichaDatos "; if(stock == "NULL") { $(extraSelector+".itemPreviewInput").css("display", "none"); $(extraSelector+"#btnCatalogoComprarAgregarAhoraAtributos").css("display", "none"); $(extraSelector+".btnAgregarCarrito").css("display", "none"); $(extraSelector+".itemPreviewSinStock").css("display", "none"); return; } if (stock <= 0) { $(extraSelector+".itemPreviewSinStock").css("display", "block"); $(extraSelector+".itemPreviewInput").css("display", "none"); $(extraSelector+"#btnCatalogoComprarAgregarAhoraAtributos").css("display", "none"); $(extraSelector+".btnAgregarCarrito").css("display", "none"); } else { $(extraSelector+".itemPreviewSinStock").css("display", "none"); $(extraSelector+".itemPreviewInput").css("display", "block"); $(extraSelector+"#btnCatalogoComprarAgregarAhoraAtributos").css("display", "inline-block"); $(extraSelector+".btnAgregarCarrito").css("display", "inline-block"); } } }; var ClassUsuarios = { initModificarDatosPerfil: function(opciones_validacion, opciones_validacion_modificar_password, paisEnvio, provinciaEnvio, poblacionEnvio, paisFacturacion, provinciaFacturacion, poblacionFacturacion) { ClassUsuarios.opcValidacionModificarPassword = opciones_validacion_modificar_password; ClassUsuarios.opcValidacionModificarDatosPerfil = opciones_validacion; ClassUsuarios.validacionModificarDatosPerfil=$("#frmModificarDatosPerfil").validate(opciones_validacion); $(document).ready(function() { $(".btnGuardarContrasena").unbind("click").makeTagLink(ClassUsuarios.modificarDatosPassword); $(".btnGuardarCambios").unbind("click").makeTagLink(ClassUsuarios.modificarDatosPerfil); $("#btnBaja").unbind("click").makeTagLink(ClassUsuarios.confirmacionBaja); preparaLugar(paisEnvio, provinciaEnvio, poblacionEnvio, "formEnvioPais", "formEnvioProvincia", "formEnvioLocalidad"); preparaLugar(paisFacturacion, provinciaFacturacion, poblacionFacturacion, "formFacturacionPais", "formFacturacionProvincia", "formFacturacionLocalidad"); ClassUsuarios.actualizarDatos(true); $("#copiarDirecciones").click(function() { ClassUsuarios.actualizarDatos(true); }); $("#generarFactura").click(function() { ClassUsuarios.actualizarDatos(true); }); }); }, actualizarDatos:function(actualizarSelects) { if($("#generarFactura").val() == 0 || $("#copiarDirecciones").is(":checked") == 1) { $("#formDireccionFacturacion, #formFacturacionGuardarCambios, .formFacturacionTitulo").addClass("d-none"); $("#formEnvioGuardarCambios").removeClass("d-none"); if (actualizarSelects) { $("#formDireccionFacturacion").removeClass("d-flex"); $("#formFacturacionProvincia").html($("#formEnvioProvincia").html()); $("#formFacturacionLocalidad").html($("#formEnvioLocalidad").html()); $("#formFacturacionProvincia").selectpicker('refresh'); $("#formFacturacionLocalidad").selectpicker('refresh'); $("#formFacturacionProvincia").selectpicker('val', $("#formEnvioProvincia").val()); $("#formFacturacionLocalidad").selectpicker('val', $("#formEnvioLocalidad").val()); } $.each($("input[name^='formEnvio']"), function (i, element) { var value = $(element).val(); var inputFact = $("#"+$(element).attr("id").replace("Envio", "Facturacion")); $(inputFact).val(value); }); } else { $("#formDireccionFacturacion").addClass("d-flex"); $("#formFacturacionGuardarCambios, .formFacturacionTitulo, #formDireccionFacturacion").removeClass("d-none"); $("#formEnvioGuardarCambios").addClass("d-none"); } }, modificarDatosPerfil:function() { ClassUsuarios.validacionModificarDatosPerfil.resetForm(); $(".bootstrap-select").removeClass("error"); Utils.sendStandardAjax("frmModificarDatosPerfil", "ajax/Usuarios.modificarDatos.php?CSRF="+CSRF, {opcionesValidacion: ClassUsuarios.opcValidacionModificarDatosPerfil, successCallback: null}); }, modificarDatosPassword: function() { Utils.sendStandardAjax("frmModificarContrasena", "ajax/Usuarios.modificarPassword.php?CSRF="+CSRF, {opcionesValidacion: ClassUsuarios.opcValidacionModificarPassword, successCallback: null, resetFormOnSuccess: true}); }, guardaClaveOlvidoPass: function () { var opciones_validacion= { showLabels: false, rules: { passwordOlvido: { required: true, minlength: 6 }, password2: { equalTo: "#passwordOlvido" } } }; Utils.sendStandardAjax("form_olvido", "ajax/Usuarios.guardaClave.php?CSRF="+CSRF, {opcionesValidacion: opciones_validacion, successCallback: "https://www.arnaudental.com/inicio.html"}); }, enviarOlvido: function() { Utils.sendStandardAjax("frmEnviarOlvido", "ajax/Usuarios.olvidarContrasena.php", {successCallback: null}); }, confirmacionBaja: function() { ClassBlockUI.abrirBlockUIConfirm("Si te das de baja perderás tu acceso y el historial de pedidos realizados.
¿Estas seguro de que quieres darte de baja?", "SÍ, DARME DE BAJA", ClassUsuarios.enviarBaja, "NO, CONTINUAR", undefined, "modalDarBaja", "VAS A DARTE BAJA"); }, enviarBaja: function() { $(".modal").modal("hide"); var opcionesDatos = { type:"POST", dataType:"json", url:"ajax/Usuarios.baja.php?CSRF="+CSRF, success: function(data, textStatus, XMLHttpRequest) { if(data["error_number"] >= 0) { ClassBlockUI.abrirBlockUIEstandarMensaje("Te vamos a echar mucho de menos. Puedes volver a registrarte cuando quieras, nos vemos pronto", true, "logout.php", "modalDarBaja", "TE HAS DADO DE BAJA"); } else { ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, false); } } }; $.ajax(opcionesDatos); ClassBlockUI.abrirBlockUIEsperePorFavor(); }, actualizaDni: function () { //$("#formEnvioDNI").removeClass("required").removeClass("valid").removeClass("error"); //$("#formFacturacionDNI").removeClass("required").removeClass("valid").removeClass("error"); } };