/** *@file productos.js *@date 11/03/2020 *@author Cristina Caba García (cristinacaba1983@gmail.com) **/ function Productos() { //Definición de las variables de clases js útiles. this.iu = new Iu(); this.ajax = new Ajax(BASE_URL); //Combos fijos this.cantidadProductos = null; //Cantidad de chapas seleccionadas. this.numeroDisenho = null; //Número de diseños seleccionados. //Contedores this.contadorCarga = 0; //Contador de carga. //Identificadores. this.idCategoria = null; //Identificador de la caategoría. this.idProducto = null; //Identificador del producto. //this.idPresupuesto = null; //identificador del presupuesto; this.idSubcategoria = null; //Identificador de la subcategoría. //Objeto. this.carrito = null; //Objeto contenedor de los valores añadidos a la sesión del carrito. this.caracteristicas = null; //Objeto contenedor de las características de las categorías. //this.caracteristicasEspanol = null; //Objeto contenedor de las características de las categorías en Español. this.categorias = null; //Objeto contenedor de las categorías. this.categoriasEspanol = null; //Objeto contenedor de las categorías en Español. this.imagenProducto = null; //Imagen del producto cargado. this.imagenesSubcategorias = null; //Objeto contenedor de las imágenes de las subcategorías this.imagenesProductos = null; //Objeto contenedor de las imágenes de los productos. //this.imagenPlantilla = null; //Imagen de la Plantilla del producto. this.preciosNDiseno = null; //Objeto contenedor de los precios por número de diseño. this.preciosRangosMetro = null; //Objeto contenedor de los precios por rangos por metro del producto. this.productos = null; //Objeto contenedor de los productos. this.productosEspanol = null; //Objeto contenedor de los productos en Español. this.subcategorias = null; //Objeto contenedor de las subcategorías. this.subcategoriasEspanol = null; //Objeto contenedor de las subcategorías en Español. this.valores = null; //Objeto contenedor de los valores de las subcategorías de las características de las categorías. //this.valoresEspanol = null; //Objeto contenedor de los valores de las subcategorías de las características de las categorías en Español. this.valorCategoria = null; //Valor de la categoría a la que pertenece el producto. //Precios. this.precioSinIVA = 0; //Precio del producto sin IVA. this.precioSinIVADiseno = 0; //Precio del producto sin IVA por disenos. this.precioSinIVADescuento = 0; //Precio del producto sin IVA con descuento del patrocinio. this.precioSinIVAPersonalizado = 0; //Precio del producto sin IVA con personalización this.precioSinIVADescuentoDiseno = 0; //Precio del producto sin IVA con descuento del patrocinio por diseños. this.precioSinIVADescuentoPersonalizado = 0; //Precio del producto sin IVA con descuento de patocinio y personalización this.precioSinIVADisenoPersonalizado = 0; //Precio del producto sin IVA con diseño y personalización this.precioSinIVADescuentoDisenoPersonalizado = 0; //Precio del producto sin IVA con descuento de patrocinio, diseño y personalización. this.precioConIVA = 0; //Precio del producto con IVA. this.precioConIVADiseno = 0; //Precio del producto con IVA por diseños. this.precioConIVADescuento = 0; //Precio del producto con IVA y con descuento del patrocinio. this.precioConIVAPersonalizado = 0; //Precio del producto con IVA y personalizado. this.precioConIVADescuentoDiseno = 0; //Precio del producto con IVA y con descuento del patrocinio por diseños. this.precioConIVADescuentoPersonalizado = 0; //Precio del producto con IVA y con descuento de patrocinio y personalizado. this.precioConIVADisenoPersonalizado = 0; //Precio del producto con IVA y con diseño y personalizado. this.precioConIVADescuentoDisenoPersonalizado = 0; //Precio del producto con IVA y con descuento de patrocinio, diseño y personalizado. //Totales this.totalCaracteristicas = 0; this.totalPreciosRangosMetro = 0; this.totalValores = 0; this.totalValoresEspanol = 0; //Varios. this.boolPeculiar = false; //No dice si entramos por productos recomendados o no. this.fondo = null; //Fondo de la chapa en el diseñador. Valor hexadecimal #ffffff. this.hayStock = 0; //Control de botones en función de si hay o no stock del producto cargado. this.maximoRangoMetro = 0; //El máximo de los rangos, para validarlo. this.mensajePresupuesto = ""; //Mensaje del correo del presupuesto. this.mensajePresupuestoEspanol = ""; //Mensaje del correo del presupuesto en español. this.pesoProducto = null; //Peso del producto. this.permitirCalcularPrecio = false; //Booleano que controla la ejecución del cálcuo del precio. this.rangoMaximo = 0; //Rango máximo del producto. this.rangoMinimo = 0; //Rango mínimo del producto. //this.rotableSubcategoria = 0; //Si el molde es rotable en su subcategoria. //this.rotableProducto = 0; //Si el molde es rotable en su producto. this.textoMensaje = ""; //Texto de aviso para el diseñador en función del valor de la característica. this.textoNombreSeo = null; //Texo del nmobre seo del producto seleccionado. this.codigoIdioma = null; this.miCarrusel = null; //Funciones de clase this.iniciar = function() { //Limpiamos. $(".avisopequecaracteristicas").hide(); $("#btn_carrito").show(); $("#btn_carrito").prop("disabled",false); $("#btn-menos-cantidadProducto").prop("disabled",true); $("#btn-menos-disenhoProducto").prop("disabled",true); $("#btn_presupuesto").prop("disabled",true); $("#precio").show(); $("#rangoMaximo").hide(); $("#btn_stock").hide(); $("#ancho-error").hide(); $("#ancho-error-requerido").hide(); $("#alto-error-requerido").hide(); $("#medidas-error-nulo").hide(); //Cargamos el carrito lo primero. this.cargarCarrito(); //Identificadores this.idCategoria = $("#idCategoriaProducto").val(); this.idProducto = $("#idProducto").val(); this.idProductoStock = $("#idProductoStock").val(); this.idSubcategoria = $("#idSubcategoriaProducto").val(); //Peculiaridad this.boolPeculiar = $("#peculiar").val(); //Cargamos valores this.cantidadProductos = $("#cantidad").val(); this.codigoIdioma = $("#codigoIdioma").val(); this.numeroDisenho = 1; this.pesoProducto = $("#pesoProducto").val(); this.textoNombreSeo = $("#textoNombreSeo").val(); this.valorCategoria = $("#valorCategoriaProducto").val(); //Cogemos el rango máximo y el rango mínimo del producto this.rangoMaximo = $("#rangoMaximoProducto").val(); this.rangoMinimo = $("#rangoMinimoProducto").val(); this.maximoRangoMetro = 0; //Cogemos el booleano del stock del producto this.hayStock = $("#hayStockProducto").val(); //this.rotableSubcategoria = $("#rotableSubcategoria").val(); //this.rotableProducto = $("#rotableProducto").val(); this.imagenProducto = $("#imagenSubcategoriaProducto").val(); //this.imagenPlantilla = $("#imagenPlantillaProducto").val(); this.totalPreciosRangosMetro = $("#totalPreciosRangosMetro").val(); //Controlamos los rangos this.controlesDependientesRangoMaxStock(); //Contador de carga this.contadorCarga = 0; //Buscamos los objetos necesarios. this.cargarCategorias(); //this.cargarCategoriasEspanol(); this.cargarCaracteristicas(); //this.cargarCaracteristicasEspanol(); this.cargarImagenesSubcategorias(); this.cargarImagenesProductos(); this.cargarPrecioNDiseno(); this.cargarPreciosRangosMetro(); this.cargarProductos(); this.cargarProductosEspanol(); this.cargarSubcategorias(); this.cargarSubcategoriasEspanol(); this.cargarValoresCaracteristicas(); //this.cargarValoresCaracteristicasEspanol(); //Controlamos los botones this.controlHabilitarDeshabilitar(); //Iniciamos la animación this.miCarrusel = new Carousel(); this.miCarrusel.constructor(); this.miCarrusel.iniciar(); } this.recargarImprescindibles = function(){ //Limpiamos. $(".avisopequecaracteristicas").hide(); $("#btn_carrito").hide(); $("#btn_carrito").attr("disabled",true); $("#btn_calculando").show(); $("#btn_presupuesto").hide(); $("#btn_presupuesto").attr("disabled",true); $("#visual-price").html("-- €"); $("#btn_stock").hide(); $("#ancho-error").hide(); $("#ancho-error-requerido").hide(); $("#alto-error-requerido").hide(); $("#medidas-error-nulo").hide(); this.limpiarCamposMailPresupuestoProducto(); this.cargarCarrito(); //Identificadores this.idCategoria = $("#idCategoriaProducto").val(); this.idProducto = $("#idProducto").val(); this.idSubcategoria = $("#idSubcategoriaProducto").val(); this.buscarProducto(); this.buscarProductoEspanol(); //this.buscarImagenPrincipal(); //Cogemos el rango máximo y el rango mínimo del producto this.rangoMaximo = $("#rangoMaximoProducto").val(); this.rangoMinimo = $("#rangoMinimoProducto").val(); //Cargamos valores this.cantidadProductos = $("#cantidad").val(); this.hayStock = $("#hayStockProducto").val(); this.numeroDisenho = $("#ndesigns").val(); this.pesoProducto = $("#pesoProducto").val(); this.textoNombreSeo = $("#textoNombreSeo").val(); //Cogemos el booleano del stock del producto this.rotableSubcategoria = $("#rotableSubcategoria").val(); //this.buscarImagenPlantilla(); this.contadorCarga = 6; setTimeout(function(){ //Controlamos los botones eco_productos.cargarPreciosRangosMetro(); //Aqui controlamos la visualización de determinados botones y calculamos el precio. //Cargamos las imágenes //eco_productos.cargarImagenesProductos(); //Controlamos los botones eco_productos.controlHabilitarDeshabilitar(); //Controlamos los rangos eco_productos.controlesDependientesRangoMaxStock(); },1000); } this.recargarImprescindiblesActualizarPrecio = function(e){ //Limpiamos. //$(".avisopequecaracteristicas").hide(); $("#btn_stock").hide(); $("#btn_carrito").hide(); $("#btn_carrito").attr("disabled",true); $("#btn_calculando").show(); $("#btn_presupuesto").hide(); $("#btn_presupuesto").attr("disabled",true); $("#visual-price").html("-- €"); $("#ancho-error").hide(); $("#ancho-error-requerido").hide(); $("#alto-error-requerido").hide(); $("#medidas-error-nulo").hide(); this.limpiarCamposMailPresupuestoProducto(); this.cargarCarrito(); //Identificadores this.idCategoria = $("#idCategoriaProducto").val(); this.idProducto = $("#idProducto").val(); this.idSubcategoria = $("#idSubcategoriaProducto").val(); //Cargamos valores this.cantidadProductos = $("#cantidad").val(); this.numeroDisenho = $("#ndesigns").val(); //Cogemos el booleano del stock del producto this.rotableSubcategoria = $("#rotableSubcategoria").val(); this.contadorCarga = 6; setTimeout(function(){ //Controlamos los botones eco_productos.cargarPreciosRangosMetro(); //Aqui controlamos la visualización de determinados botones y calculamos el precio. //Controlamos los botones eco_productos.controlHabilitarDeshabilitar(); //Controlamos los botones //eco_productos.cargarPreciosRangosMetro(); //Aqui controlamos la visualización de determinados botones y calculamos el precio. //Buscamos los precios. Si calculamos el precio al cargar precios por rango por metro, no lo hacemos aquí //eco_productos.calcularPrecio(e); //Controlamos los rangos eco_productos.controlesDependientesRangoMaxStock(); },1000); } this.recargarImprescindiblesActualizarCalculadora = function() { /**- Función que recarga los valores de los input hidden necesarios para el funcionamiento de la calculadora. **/ this.idSubcategoria = $("#idSubcategoriaProducto").val(); //Buscamos el nombre de la subcategoía en español para cargarlo if(this.subcategoriasEspanol != null) { $.each(this.subcategoriasEspanol,function(index,value){ if(eco_productos.idSubcategoria == value.id) { $("#nombreSubcategoriaProducto_es").val(value.nombreSubcategoria); } }); } this.dibujarProductos(); //this.controlVisualizarCaracteristicas(); } //Funciones de trabajo. this.guardarPresupuesto = function() { /**- Función que envía un mail para que se presupueste un determinado producto **/ this.limpiarErroresMailPresupuestoProducto(); //Array de parámetros var parametros = new Array(); parametros.push(new ParametroFormulario("email","correoUsuarioProducto","correoUsuarioProducto",$("#correoUsuarioProducto").val().trim(),"correoUsuarioProducto-error")); //Validamos el campo. if(!camposObligatorios(parametros)) return; if(!formateoCampos(parametros)) return; parametros.push(new Parametro("idCategoria",this.idCategoria)); parametros.push(new Parametro("idSubcategoria",this.idSubcategoria)); parametros.push(new Parametro("idProducto",this.idProducto)); parametros.push(new Parametro("cantidadTotal",this.cantidadProductos)); parametros.push(new Parametro("cantidadDisenhos",this.numeroDisenho)); if($("#patrocinio").prop("checked")) parametros.push(new Parametro("patrocinio",1)); else parametros.push(new Parametro("patrocinio",0)); if($("#personalizacion").prop("checked")) parametros.push(new Parametro("productoPersonalizado",1)); else parametros.push(new Parametro("productoPersonalizado",0)); parametros.push(new Parametro("mensajePresupuesto",this.mensajePresupuestoEspanol)); //Características if(eco_productos.caracteristicas != null) { $.each(eco_productos.caracteristicas,function(index,value){ if(eco_productos.idCategoria == value.iddependiente) { if(eco_productos.valores != null) { $.each(eco_productos.valores,function(indexValores,valueValores){ if(eco_productos.idSubcategoria == valueValores.iddependiente && value.id == valueValores.idcaracteristica) { if($("#caracteristica_"+valueValores['id']).prop("checked")) { //parametros.push(new Parametro("nombreCaracteristicaProducto_"+value.id,value.nombreCaracteristica)); //parametros.push(new Parametro("nombreCaracteristicaEspanolProducto_"+value.id,$("#caracteristica_"+valueValores['id']).data('nombrecaracteristicaespanol'))); //parametros.push(new Parametro("valorCaracteristicaProducto_"+value.id,$("#caracteristica_"+valueValores['id']).val().trim())); //parametros.push(new Parametro("valorCaracteristicaEspanolProducto_"+value.id,$("#caracteristica_"+valueValores['id']).data(value.nombreCaracteristica+"_es"))); parametros.push(new Parametro("idValorCaracteristicaProducto_"+value.id,$("#caracteristica_"+valueValores.id).val())); } } }); } } }); } //Si todo va bien, mandamos los parámetros para enviar un email a picazzo this.ajax.pedir("productosControl.guardarPresupuesto",parametros,XJSON,ASYNC,"eco_productos.postGuardarPresupuesto"); } this.limpiarCamposMailPresupuestoProducto = function() { /**- Función que limpia los errores de los campos de error del formulario del presupuesto **/ $(".idsGrupoLimpiarCamposUsuarioProducto").each(function(){ switch(this){ default: $(this).val(""); $(this).html(""); break; } }); } this.limpiarErroresMailPresupuestoProducto = function() { /**- Función que limpia los errores de los campos de error del formulario del presupuesto **/ $(".idsGrupoLimpiezaErroresUsuarioProducto").each(function(){ switch(this){ default: $(this).val(""); $(this).html(""); break; } }); } this.modalPresupuesto = function() { /**- Función que visuliza la ventana para pedir presupuesto, con la información relevante para ello Necesitamos: la categoría, el producto, el número de diseños y la cantidad. **/ this.mensajePresupuesto = $("#nombreCategoriaProducto").val()+" "+$("#nombreSubcategoriaProducto").val()+" "+$("#nombreProducto").val()+" / "; this.mensajePresupuestoEspanol = $("#nombreCategoriaProducto_es").val()+" "+$("#nombreSubcategoriaProducto_es").val()+" "+$("#nombreProducto_es").val()+" / "; if(this.caracteristicas != null) { $.each(this.caracteristicas,function(index,value){ if(eco_productos.idCategoria == value.iddependiente) { if(eco_productos.valores != null) { $.each(eco_productos.valores,function(indexValores,valueVal){ if(eco_productos.idSubcategoria == valueVal.iddependiente && value.id == valueVal.idcaracteristica) { if($("#caracteristica_"+valueVal.id).val() != null && $("#caracteristica_"+valueVal.id).val() != undefined) { if($("#caracteristica_"+valueVal.id).prop("checked")) { eco_productos.mensajePresupuesto += value.nombreCaracteristica+": "+valueVal.nombreValorCaracteristica+" / "; eco_productos.mensajePresupuestoEspanol += value.nombreCaracteristicaEspanol+": "+valueVal.nombreValorCaracteristicaEspanol+" / "; } } } }); } } }); } this.numeroDisenho = $("#ndesigns").val(); this.cantidadProductos = $("#cantidad").val(); this.mensajePresupuestoEspanol += "Número de diseños: "+this.numeroDisenho+" / Cantidad: "+this.cantidadProductos+" / Patrocinado: "; if($("#patrocinio").prop("checked")) this.mensajePresupuestoEspanol += "sí"; else this.mensajePresupuestoEspanol += "no"; if($("#diseno").prop("checked")) this.mensajePresupuestoEspanol += " / Diseñado por Createlow"; if($("#personalizacion").prop("checked")) this.mensajePresupuestoEspanol += " / Producto personalizado"; if($("#ancho").val() != "" && $("#ancho").val() != undefined) this.mensajePresupuestoEspanol += " / Ancho x Alto = "+$("#ancho").val()+" x "+$("#alto").val(); switch(this.codigoIdioma) { case "es": this.mensajePresupuesto = this.mensajePresupuestoEspanol; break; case "fr": this.mensajePresupuesto += "Nombre de designs: "+this.numeroDisenho+" / Quantité: "+this.cantidadProductos+" / Sponsorisé: "; if($("#patrocinio").prop("checked")) this.mensajePresupuesto += "oui"; else this.mensajePresupuesto += "non"; if($("#diseno").prop("checked")) this.mensajePresupuesto += " / Conçu par Createlow"; if($("#personalizacion").prop("checked")) this.mensajePresupuesto += " / Produit personnalisé"; if($("#ancho").val() != "" && $("#ancho").val() != undefined) this.mensajePresupuesto += " / Large x Haut = "+$("#ancho").val()+" x "+$("#alto").val(); break; case "it": this.mensajePresupuesto += "Numero di design: "+this.numeroDisenho+" / Quantità: "+this.cantidadProductos+" / Sponsorizzato: "; if($("#patrocinio").prop("checked")) this.mensajePresupuesto += "sì"; else this.mensajePresupuesto += "no"; if($("#diseno").prop("checked")) this.mensajePresupuesto += " / Progettato da Createlow"; if($("#personalizacion").prop("checked")) this.mensajePresupuesto += " / Prodotto personalizzato"; if($("#ancho").val() != "" && $("#ancho").val() != undefined) this.mensajePresupuesto += " / Ampio x Alto = "+$("#ancho").val()+" x "+$("#alto").val(); break; case "pt": this.mensajePresupuesto += "Número de designs: "+this.numeroDisenho+" / Quantidade: "+this.cantidadProductos+" / Patrocinado: "; if($("#patrocinio").prop("checked")) this.mensajePresupuesto += "sim"; else this.mensajePresupuesto += "não"; if($("#diseno").prop("checked")) this.mensajePresupuesto += " / Projetado por Createlow"; if($("#personalizacion").prop("checked")) this.mensajePresupuesto += " / Produto personalizado"; if($("#ancho").val() != "" && $("#ancho").val() != undefined) this.mensajePresupuesto += " / Largo x Alto = "+$("#ancho").val()+" x "+$("#alto").val(); break; default: break; } $("#infoPresupuesto").show(); $("#errorPresupuesto").hide(); $("#avisosPresupuesto").html(this.mensajePresupuesto); $("#presupuestoModal").modal('show'); $("#presupuestoModal").show(); } this.actualizarCondicionesProducto = function(){ /**- Función que recoge el valor del check de diseno, patrocinio y producto personalizado e imprime el precio en función de si el check está a true o no. **/ if($("#diseno").prop("checked")) { if($("#patrocinio").prop("checked")) { if($("#personalizacion").prop("checked")) { $("#visual-price").html(formatoPrecioHTML(this.precioSinIVADescuentoDisenoPersonalizado)); } else { $("#visual-price").html(formatoPrecioHTML(this.precioSinIVADescuentoDiseno)); } } else { if($("#personalizacion").prop("checked")) { $("#visual-price").html(formatoPrecioHTML(this.precioSinIVADisenoPersonalizado)); } else { $("#visual-price").html(formatoPrecioHTML(this.precioSinIVADiseno)); } } } else { if($("#patrocinio").prop("checked")) { if($("#personalizacion").prop("checked")) { $("#visual-price").html(formatoPrecioHTML(this.precioSinIVADescuentoPersonalizado)); } else { $("#visual-price").html(formatoPrecioHTML(this.precioSinIVADescuento)); } } else { if($("#personalizacion").prop("checked")) { $("#visual-price").html(formatoPrecioHTML(this.precioSinIVAPersonalizado)); } else { $("#visual-price").html(formatoPrecioHTML(this.precioSinIVA)); } } } } this.actualizarPrecio = function(id,operacion){ /**- Función que actualiza el precio. Esta función también llamara a recalcular el precio del producto en función de su cantidad. @param idFila, identificador del input. @param operacion, String mas o menos. **/ $("#btn_carrito").prop("disabled",true); $("#btn_carrito").hide(); $("#btn_calculando").show(); if(id == "cantidad") { // Cantidad de productos o de diseños var cantidad = parseInt($("#"+id).val().trim()); if(operacion == "menos" && cantidad > 1) cantidad -= parseInt(this.rangoMinimo); if(operacion == "mas" ) cantidad += parseInt(this.rangoMinimo); if(operacion == "menos" && cantidad == 1) { cantidad = 1; $("#btn-menos-cantidadProducto").prop("disabled",true); } this.cantidadProductos = cantidad; $("#"+id).val(this.cantidadProductos); } else { // Cantidad de productos o de diseños var cantidad = parseInt($("#"+id).val().trim()); if(operacion == "menos" && cantidad > 1) cantidad -= 1; if(operacion == "mas" ) cantidad += 1; if(operacion == "menos" && cantidad == 1) { cantidad = 1; $("#btn-menos-disenhoProducto").prop("disabled",true); } this.numeroDisenho = cantidad; $("#"+id).val(this.numeroDisenho); } this.recargarImprescindiblesActualizarPrecio(null); } this.anadirProductoSesion = function(){ /**- Función que coge los datos de la última selección y los mete en sesion. **/ if(!this.validarMedidas()) return; if(parseInt(this.cantidadProductos) < parseInt(this.rangoMinimo)) { $("#btn_carrito").prop("disabled",true); $("#btn_carrito").show(); $("#btn_calculando").hide(); return; } //Array de parámetros var parametros = new Array(); if(parseInt(this.totalPreciosRangosMetro) > 0) { parametros.push(new ParametroFormulario("numeroObligatorio","anchoProducto","anchoProducto",$("#ancho").val().trim(),"ancho-error-requerido")); parametros.push(new ParametroFormulario("numeroObligatorio","altoProducto","altoProducto",$("#alto").val().trim(),"alto-error-requerido")); } if(!camposObligatorios(parametros)) return; parametros.push(new ParametroFormulario("numeroNoNulo","anchoProducto","anchoProducto",$("#ancho").val().trim(),"medidas-error-nulo")); parametros.push(new ParametroFormulario("numeroNoNulo","altoProducto","altoProducto",$("#alto").val().trim(),"medidas-error-nulo")); if(!formateoCampos(parametros)) return; var medida = $("#ancho").val()/1000 * $("#alto").val()/1000; if(medida > this.maximoRangoMetro) { $("#ancho-error").show(); return; } parametros.push(new Parametro("idCategoria",this.idCategoria)); parametros.push(new Parametro("valorCategoria",this.valorCategoria)); parametros.push(new Parametro("nombreCategoria",$("#nombreCategoriaProducto").val())); parametros.push(new Parametro("nombreCategoriaEspanol",$("#nombreCategoriaProducto_es").val())); parametros.push(new Parametro("idSubcategoria",this.idSubcategoria)); parametros.push(new Parametro("nombreSubcategoria",$("#nombreSubcategoriaProducto").val())); parametros.push(new Parametro("nombreSubcategoriaEspanol",$("#nombreSubcategoriaProducto_es").val())); parametros.push(new Parametro("idProducto",this.idProducto)); parametros.push(new Parametro("idProductoStock",this.idProductoStock)); parametros.push(new Parametro("imagenSubcategoria",this.imagenProducto)); parametros.push(new Parametro("nombreProducto",$("#nombreProducto").val())); parametros.push(new Parametro("nombreProductoEspanol",$("#nombreProducto_es").val())); parametros.push(new Parametro("cantidadTotal",this.cantidadProductos)); parametros.push(new Parametro("cantidadDisenhos",this.numeroDisenho)); parametros.push(new Parametro("rangoMaximoProducto",this.rangoMaximo)); parametros.push(new Parametro("rangoMinimoProducto",this.rangoMinimo)); if($("#patrocinio").prop("checked")) parametros.push(new Parametro("patrocinio",1)); else parametros.push(new Parametro("patrocinio",0)); if($("#diseno").prop("checked")) parametros.push(new Parametro("disenhadoEmpresa",1)); else parametros.push(new Parametro("disenhadoEmpresa",0)); if($("#personalizacion").prop("checked")) parametros.push(new Parametro("productosPersonalizados",1)); else parametros.push(new Parametro("productosPersonalizados",0)); parametros.push(new Parametro("precioSinIvaPersonalizacion",this.precioSinIvaPersonalizacion)); parametros.push(new Parametro("cantidadesCambiadas",0)); parametros.push(new Parametro("pesoProducto",this.pesoProducto)); //Características //var numCaras = 0; if(eco_productos.caracteristicas != null) { $.each(eco_productos.caracteristicas,function(index,value){ if(eco_productos.idCategoria == value.iddependiente) { if(eco_productos.valores != null) { $.each(eco_productos.valores,function(indexValores,valueValores) { if(value.id == valueValores.idcaracteristica && eco_productos.idSubcategoria == valueValores.iddependiente) { if($("#caracteristica_"+valueValores['id']).prop("checked")) { //parametros.push(new Parametro("nombreCaracteristicaProducto_"+value.id,value.nombreCaracteristica)); //parametros.push(new Parametro("nombreCaracteristicaEspanolProducto_"+value.id,$("#caracteristica_"+valueValores.id).data('nombrecaracteristicaespanol'))); //var nombreValor = valueValores.nombreValorCaracteristica; //nombreValor = nombreValor.replace(/ /g,"-",nombreValor).toLowerCase(); //parametros.push(new Parametro("valorCaracteristicaProducto_"+value.id,valueValores.nombreValorCaracteristica)); //parametros.push(new Parametro("valorCaracteristicaEspanolProducto_"+value.id,$("#caracteristica_"+valueValores.id).data(nombreValor+"_es"))); //var caras = $("#caracteristica_"+valueValores.id).data('caras'); //parametros.push(new Parametro("carasCaracteristicaProducto_"+value.id,$("#caracteristica_"+valueValores.id).data('caras'))); //if(caras != null) numCaras += parseInt($("#caracteristica_"+valueValores.id).data('caras')); //parametros.push(new Parametro("tipoCaracteristicaProducto_"+value.id,$("#caracteristica_"+valueValores.id).data('tipo'))); parametros.push(new Parametro("idValorCaracteristicaProducto_"+value.id,$("#caracteristica_"+valueValores.id).val())); //if(valueValores.fondo != undefined && valueValores.fondo != null) parametros.push(new Parametro("colorFondo",valueValores.fondo)); //if(valueValores.textoMensaje != undefined && valueValores.textoMensaje != null) parametros.push(new Parametro("mensajeProductoAviso",valueValores.textoMensaje)); } } }); } } }); } //if(numCaras == 0) numCaras = 1; //parametros.push(new Parametro("numCarasProducto",numCaras)); //Petición por ajax. this.ajax.pedir("productosControl.anadirDatosSesion",parametros,XJSON,ASYNC,"eco_productos.postAnadirDatosSesion"); } //this.buscarImagenPlantilla = function() { /**- Función que busca la imagen de la plantilla del producto **/ /* var parametros = new Array(); parametros.push(new Parametro("idProducto",this.idProducto)); parametros.push(new Parametro("tipoImagen",TIPO_IMAGEN_PRODUCTOS)); parametros.push(new Parametro("principalImagen",IMAGEN_PLANTILLA)); //Petición ajax. this.ajax.pedir("productosControl.buscarImagenes",parametros,XJSON,ASYNC,"eco_productos.postBuscarImagenPlantilla"); }*/ this.buscarImagenPrincipal = function() { /**- Función que busca la imagen principal del producto seleccionado. **/ var parametros = new Array(); parametros.push(new Parametro("idProducto",this.idProducto)); parametros.push(new Parametro("tipoImagen",TIPO_IMAGEN_PRODUCTOS)); parametros.push(new Parametro("principalImagen",IMAGEN_PRINCAPAL)); //Petición ajax. this.ajax.pedir("productosControl.buscarImagenes",parametros,XJSON,ASYNC,"eco_productos.postBuscarImagenPrincipal"); } this.buscarProducto = function() { /**- Función que busca el producto redirigido a través del combo de productos. Esto es para no recargar la página. **/ var parametros = new Array(); parametros.push(new Parametro("idProducto",this.idProducto)); //Petición por ajax. this.ajax.pedir("productosControl.buscar",parametros,XJSON,ASYNC,"eco_productos.postBuscarProducto"); } this.buscarProductoEspanol = function() { /**- Función que busca el producto redirigido a través del combo de productos. Esto es para no recargar la página. **/ var parametros = new Array(); parametros.push(new Parametro("idProducto",this.idProducto)); parametros.push(new Parametro("codigoIdioma",'es')); //Petición por ajax. this.ajax.pedir("productosControl.buscar",parametros,XJSON,ASYNC,"eco_productos.postBuscarProductoEspanol"); } this.cargarCarrito = function() { /**- Función que coge el carrito de la sesión. **/ this.ajax.pedir("productosControl.cargarCarrito",null,XJSON,ASYNC,"eco_productos.postCargarCarrito"); } this.cargarCategorias = function() { /**- Función que busca las categorías. **/ //Petición ajax. this.ajax.pedir("categoriasControl.buscar",null,XJSON,ASYNC,"eco_productos.postCargarCategorias"); } this.cargarCategoriasEspanol = function() { /**- Función que busca las categorías en Español. **/ //Array de parámetros. var parametros = new Array(); parametros.push(new Parametro("codigoIdioma","es")); //Petición ajax. this.ajax.pedir("categoriasControl.buscar",parametros,XJSON,ASYNC,"eco_productos.postCargarCategoriasEspanol"); } this.cargarCaracteristicas = function() { /**- Función que busca las características de las categorías. **/ var parametros = new Array(); parametros.push(new Parametro("idCategoria",this.idCategoria)); //Petición ajax. this.ajax.pedir("categoriasControl.buscarCaracteristicas",parametros,XJSON,ASYNC,"eco_productos.postCargarCaracteristicas"); } this.cargarCaracteristicasEspanol = function() { /**- Función que busca las características de las categorías en Español. **/ //Array de parámetros. var parametros = new Array(); parametros.push(new Parametro("idCategoria",this.idCategoria)); parametros.push(new Parametro("codigoIdioma","es")); //Petición ajax. this.ajax.pedir("categoriasControl.buscarCaracteristicas",parametros,XJSON,ASYNC,"eco_productos.postCargarCaracteristicasEspanol"); } this.cargarImagenesSubcategorias = function() { /**- Función que busca las imágenes de las subcategorías. **/ //Array de parámetros. var parametros = new Array(); parametros.push(new Parametro("tipoImagen",TIPO_IMAGEN_SUBCATEGORIAS)); //Petición ajax. this.ajax.pedir("subcategoriasControl.buscarImagenes",parametros,XJSON,ASYNC,"eco_productos.postCargarImagenesSubcategorias"); } this.cargarImagenesProductos = function() { /**- Función que busca la imagene principal de un producto. **/ //Array de parámetros. var parametros = new Array(); parametros.push(new Parametro("tipoImagen",TIPO_IMAGEN_PRODUCTOS)); parametros.push(new Parametro("principalImagen",IMAGEN_PRINCAPAL)); parametros.push(new Parametro("idProducto",this.idProducto)); //Petición ajax. this.ajax.pedir("productosControl.buscarImagenes",parametros,XJSON,ASYNC,"eco_productos.postCargarImagenesProductos"); } this.cargarImagenesProductosNoPeculiar = function() { /**- Función que busca las imágenes de un producto. **/ //Array de parámetros. var parametros = new Array(); parametros.push(new Parametro("tipoImagen",TIPO_IMAGEN_PRODUCTOS)); //parametros.push(new Parametro("idProducto",this.idProducto)); //Petición ajax. this.ajax.pedir("productosControl.buscarImagenes",parametros,XJSON,ASYNC,"eco_productos.postCargarImagenesProductosNoPeculiar"); } this.cargarPrecioNDiseno = function() { /**- Función que carga todos los precios a incrementar por cantiades de diseños de la categoría seleccionada. **/ //Array de parámetros. var parametros = new Array(); parametros.push(new Parametro("idCategoria",this.idCategoria)); //Petición this.ajax.pedir("categoriasControl.buscarPrecioNDisenos",parametros,XJSON,ASYNC,"eco_productos.postCargarPrecioNDiseno"); } this.cargarPreciosRangosMetro = function() { /**- Fucnión que carga de la sesión los precios por rango por metros **/ //Array de parámetros. var parametros = new Array(); parametros.push(new Parametro("idProducto",this.idProducto)); this.ajax.pedir("productosControl.buscarPreciosRangosMetro",parametros,XJSON,ASYNC,"eco_productos.postCargarPreciosRangosMetro"); } this.cargarProductos = function() { /**- Función que busca los productos. **/ //Petición ajax. this.ajax.pedir("productosControl.buscar",null,XJSON,ASYNC,"eco_productos.postCargarProductos"); } this.cargarProductosEspanol = function() { /**- Función que busca los productos en Español. **/ //Array de parámetros. var parametros = new Array(); parametros.push(new Parametro("codigoIdioma","es")); //Petición ajax. this.ajax.pedir("productosControl.buscar",parametros,XJSON,ASYNC,"eco_productos.postCargarProductosEspanol"); } this.cargarSubcategorias = function() { /**- Función que busca las subcategorías. **/ //Petición ajax. this.ajax.pedir("subcategoriasControl.buscar",null,XJSON,ASYNC,"eco_productos.postCargarSubcategorias"); } this.cargarSubcategoriasEspanol = function() { /**- Función que busca las subcategorías en Español. **/ //Array de parámetros. var parametros = new Array(); parametros.push(new Parametro("codigoIdioma","es")); //Petición ajax. this.ajax.pedir("subcategoriasControl.buscar",null,XJSON,ASYNC,"eco_productos.postCargarSubcategoriasEspanol"); } this.cargarValoresCaracteristicas = function() { /**- Función que busca los valores de las características de las subcategorías. **/ //Petición ajax. this.ajax.pedir("subcategoriasControl.buscarValoresCaracteristicas",null,XJSON,ASYNC,"eco_productos.postCargarValoresCaracteristicas"); } this.cargarValoresCaracteristicasEspanol = function() { /**- Función que busca los valores de las características de las subcategorías en Español. **/ //Array de parámetros. var parametros = new Array(); parametros.push(new Parametro("codigoIdioma","es")); //Petición ajax. this.ajax.pedir("subcategoriasControl.buscarValoresCaracteristicas",parametros,XJSON,ASYNC,"eco_productos.postCargarValoresCaracteristicasEspanol"); } this.calcularPrecio = function(e){ /**- Función que recoge los valores de las variables necesarias para consultar el precio en bbdd. **/ //Array de parámetros. var parametros = new Array(); parametros.push(new Parametro("cantidadTotal",this.cantidadProductos)); parametros.push(new Parametro("cantidadDisenhos",this.numeroDisenho)); parametros.push(new Parametro("idCategoria",this.idCategoria)); parametros.push(new Parametro("idProducto",this.idProducto)); parametros.push(new Parametro("idSubcategoria",this.idSubcategoria)); parametros.push(new Parametro("anchoProducto",$("#ancho").val())); parametros.push(new Parametro("altoProducto",$("#alto").val())); //Recorremos las características para obtener los nombres de los combos de las caracteristicas. var nombreCaracteristica = null; var numCaras = 0; if(this.caracteristicas != null) { $.each(this.caracteristicas,function(index,value){ if(eco_productos.idCategoria == value.iddependiente) { if(eco_productos.valores != null) { nombreCaracteristica = value.nombreCaracteristica; $.each(eco_productos.valores,function(indexValores,valueValores){ if(parseInt(valueValores.activa) == 1 && eco_productos.idSubcategoria == valueValores.iddependiente && eco_productos.idCategoria == value.iddependiente && value.id == valueValores.idcaracteristica) { if($("#caracteristica_"+valueValores.id).val() != null && $("#caracteristica_"+valueValores.id).val() != undefined) { if($("#caracteristica_"+valueValores.id).prop("checked")) { parametros.push(new Parametro("valorCaracteristica_"+value.id,$("#caracteristica_"+valueValores.id).val().trim())); var caras = valueValores.caras; if(caras != null) numCaras += parseInt(caras); } } } }); } } }); } if(numCaras == 0) numCaras = 1; parametros.push(new Parametro("numCarasProducto",numCaras)); //Petición por ajax. this.ajax.pedir("productosControl.buscarPrecio",parametros,XJSON,ASYNC,"eco_productos.postBuscarPrecio"); } this.controlesDependientesRangoMaxStock = function() { /**- Función que controla los elementos que dependen del rango máximo de un producto **/ //$("#ancho-error").hide(); if(parseInt(eco_productos.hayStock) == 1) { $("#btn_stock").hide(); //Con respecto al rango máximo. if(parseInt(eco_productos.cantidadProductos) <= parseInt(eco_productos.rangoMaximo)) { //Mirar el rango máximo de este producto $("#btn-mas-cantidadProducto").prop("disabled",false); $("#btn_carrito").show(); $("#btn_carrito").prop("disabled",false); $("#btn_calculando").hide(); $("#btn_presupuesto").hide(); $("#btn_presupuesto").prop("disabled",true); $("#precio").show(); $("#rangoMaximo").hide(); } else { $("#btn-mas-cantidadProducto").prop("disabled",true); $("#btn_carrito").hide(); $("#btn_carrito").prop("disabled",true); $("#btn_calculando").hide(); $("#btn_presupuesto").show(); $("#btn_presupuesto").prop("disabled",false); $("#precio").hide(); $("#textoRangoMaximo").html(eco_productos.rangoMaximo); $("#rangoMaximo").show(); $(".solicita-presupuesto").show(); } //Con respecto al rango mínimo if(parseInt(eco_productos.cantidadProductos) <= parseInt(eco_productos.rangoMinimo)) { $("#btn-menos-cantidadProducto").prop("disabled",true); if(parseInt(eco_productos.cantidadProductos) < parseInt(eco_productos.rangoMinimo)) { $("#cantidad-error").html("Mínimo: "+eco_productos.rangoMinimo); } } else { $("#btn-menos-cantidadProducto").attr("disabled",false); $("#cantidad-error").html(""); } } else {//No hay stock $("#btn_stock").show(); $("#btn_carrito").hide(); $("#btn_carrito").prop("disabled",true); $("#btn_calculando").hide(); $("#btn_presupuesto").hide(); $("#btn_presupuesto").prop("disabled",true); $("#precio").show(); $("#rangoMaximo").hide(); //Con respecto al rango máximo. if(parseInt(eco_productos.cantidadProductos) <= parseInt(eco_productos.rangoMaximo)) { //Mirar el rango máximo de este producto $("#btn-mas-cantidadProducto").prop("disabled",false); $("#btn_calculando").hide(); $("#btn_presupuesto").hide(); $("#btn_presupuesto").prop("disabled",true); $("#precio").show(); $("#rangoMaximo").hide(); } else { $("#btn-mas-cantidadProducto").prop("disabled",true); $("#btn_carrito").hide(); $("#btn_carrito").prop("disabled",true); $("#btn_calculando").hide(); $("#btn_presupuesto").show(); $("#btn_presupuesto").prop("disabled",false); $("#precio").hide(); $("#textoRangoMaximo").html(eco_productos.rangoMaximo); $("#rangoMaximo").show(); $(".solicita-presupuesto").show(); } //Con respecto al rango mínimo if(parseInt(eco_productos.cantidadProductos) <= parseInt(eco_productos.rangoMinimo)) { $("#btn-menos-cantidadProducto").prop("disabled",true); if(parseInt(eco_productos.cantidadProductos) < parseInt(eco_productos.rangoMinimo)) { $("#cantidad-error").html("Mínimo: "+eco_productos.rangoMinimo); } } else { $("#btn-menos-cantidadProducto").attr("disabled",false); $("#cantidad-error").html(""); } } } this.controlHabilitarDeshabilitar = function(){ /**- Función que controla la edición de los inputs de cantidad y disenho **/ if(this.numeroDisenho <= 1) { $("#btn-menos-disenhoProducto").attr("disabled",true); if(this.numeroDisenho < 1) { $("#ndesigns").val(1); $("#disenho-error").html("Mínimo: 1"); this.numeroDisenho = 1; } } else { $("#btn-menos-disenhoProducto").prop("disabled",false); $("#disenho-error").html(""); } if(parseInt(this.totalPreciosRangosMetro) > 0) $(".medidasProducto").show(); else $(".medidasProducto").hide(); if(this.maximoRangoMetro != 0) { var medida = $("#ancho").val()/1000 * $("#alto").val()/1000; if(medida > this.maximoRangoMetro) $("#ancho-error").show(); } if(parseInt($("#ndesigns").val()) >= parseInt($("#cantidad").val())) { $("#cantidad").val($("#ndesigns").val()); this.cantidadProductos = $("#cantidad").val(); } //if(this.imagenPlantilla != null && this.imagenPlantilla != "" && this.imagenPlantilla != undefined) $(".btn-plantilla").show(); //else $(".btn-plantilla").hide(); } this.controlVisualizarCaracteristicas = function() { /**- Función que visualiza o no las caracteristicas pertinentes. **/ $(".divCaracteristicas").hide(); $.each(this.subcategorias,function(index,value){ if(value.id = $("#idSubcategoriaProducto").val()) { $.each(this.caracteristicas,function(indexCar,valueCar){ if(valueCar.iddependiente == value.id) { $("#divCaracteristica_"+value.id+"_"+valueCar).show(); } }); } }); } this.dibujarImagenesProductos = function() { /**- Función que dibuja las imágenes del producto **/ var principales = $(".carousel__track"); var miniaturas = $(".carousel-thumbnails"); //Vaciamos los contenedores principales.empty(); miniaturas.empty(); //Dibujamos $.each(this.imagenesProductos,function(index,value) { if(value.iddependiente == eco_productos.idProducto && value.principal == IMAGEN_PRINCAPAL) { eco_productos.imagenProducto = value.imagen; $("#imagenSubcategoriaProducto").val(value.imagen); var div = crearElementoClasesTexto("div","carousel__slide active",null,null); div.setAttribute("id","slide_0"); div.setAttribute("loading","lazy"); div.setAttribute("alt",eco_productos.textoNombreSeo); div.setAttribute("title",eco_productos.textoNombreSeo); div.setAttribute("style","background: url("+value.imagen+"); background-size: cover;"); div.setAttribute("data",value.imagen); principales.append(div); var div = crearElementoClasesTexto("div","carousel-thumbnails__item active",null,null); div.setAttribute("id","tn_0"); miniaturas.append(div); var imagen = crearElementoClasesTexto("img",null,null,null); imagen.setAttribute("src",value.imagen); imagen.setAttribute("loading","lazy"); div.appendChild(imagen); } }); var i = 1; $.each(this.imagenesProductos,function(index,value) { if(value.iddependiente == eco_productos.idProducto && value.principal == IMAGEN_SECUNDARIA) { var div = crearElementoClasesTexto("div","carousel__slide",null,null); div.setAttribute("id","slide_"+i); div.setAttribute("alt",eco_productos.textoNombreSeo); div.setAttribute("title",eco_productos.textoNombreSeo); div.setAttribute("style","background: url("+value.imagen+"); background-size: cover;"); div.setAttribute("data",value.imagen); principales.append(div); var div = crearElementoClasesTexto("div","carousel-thumbnails__item",null,null); div.setAttribute("id","tn_"+i); miniaturas.append(div); var imagen = crearElementoClasesTexto("img",null,null,null); imagen.setAttribute("src",value.imagen); imagen.setAttribute("loading","lazy"); div.appendChild(imagen); i++; } }); this.miCarrusel.destroyCarousel(); this.miCarrusel = new Carousel(); this.miCarrusel.constructor(); this.miCarrusel.iniciar(); } this.dibujarCaracteristicas = function() { /**- Función que dibuja las columnas de las características de la calculadora en función de la subcategoría seleccionada **/ $(".divCaracteristicas").remove(); var contenedor = $(".contendedor-producto"); if(this.caracteristicas != null) { var tipoCaracteristica = null; var valoresCar = null; var valoresCarEsp = null; var nombreCaracteristica = null; var nombreCaracteristicaEspanol = null; //Recorro las características $.each(this.caracteristicas,function(index,value) { if(eco_productos.totalValores > 0) { var tipoCaracteristica = value.tipoCaracteristica; var parametros = new Array(); parametros.push(new Parametro("idCaracteristica",value.id)); parametros.push(new Parametro("idSubcategoria",eco_productos.idSubcategoria)); var resultado = iu.ajax.pedir("subcategoriasControl.buscarValoresCaracteristicas",parametros,XJSON,SYNC,null); if(resultado.tipo == "Respuesta" && resultado.total > 0) { valoresCar = resultado.lista; nombreCaracteristica = value.nombreCaracteristica; nombreCaracteristicaEspanol = eco_productos.caracteristicasEspanol[index].nombreCaracteristica; //Si están en el idioma actual y son los valores de la subcategoría seleccionada var div = crearElementoClasesTexto("div","columna-producto divCaracteristicas",null,null); div.setAttribute("id","divCaracteristica_"+value.id); contenedor.append(div); var p = crearElementoClasesTexto("p",null,value.nombreCaracteristica,null); div.appendChild(p); //Recorro los valores de las mismas var i = 0; $.each(valoresCar,function(indexValores,valueValores) { if(parseInt(valueValores.activa) == 1 && value.id == valueValores.idcaracteristica) { i++; //nombreCaracteristica = valueValores.nombreValorCaracteristica.replace(" ", "-"); //nombreCaracteristicaEspanol = valoresCarEsp[index].nombreCaracteristica; //var data = "data-"+nombreCaracteristica; //var data_es = "data-"+nombreCaracteristica+"_es"; //Dibujamos var label = crearElementoClasesTexto("label",null,null,null); div.appendChild(label); var input = crearElementoClasesTexto("input","caracteristicas",null,null); input.setAttribute("id","caracteristica_"+valueValores.id); input.setAttribute("name",nombreCaracteristicaEspanol); input.setAttribute("type","radio"); input.setAttribute("value",valueValores.id); //input.setAttribute('"'+data+'"',valueValores.nombreValorCaracteristica); //input.setAttribute('"'+data_es+'"',valueValEsp.nombreValorCaracteristica); input.setAttribute("data-caras",valueValores.caras); input.setAttribute("data-target",nombreCaracteristica); input.setAttribute("data-tipo",value.tipoCaracteristica); input.setAttribute("data-nombrecaracteristicaespanol",nombreCaracteristicaEspanol); label.appendChild(input); var text = document.createTextNode(valueValores.nombreValorCaracteristica); label.appendChild(text); if(i == 1) { $("#caracteristica_"+valueValores.id).prop("checked",true); } //Eventos input.addEventListener("click",function(e){e.stopPropagation();eco_productos.recargarImprescindiblesActualizarPrecio(e);},false); } }); } } }); } this.recargarImprescindiblesActualizarPrecio(null); } this.dibujarProductos = function() { /**- Función que dibuja la columna de productos en función de la subcategoría seleccionada. **/ var contenedor = $("#divProductos"); contenedor.empty(); var idProductoDefecto = null; //Cogemos el identificador de la subcategoría con la que estamos trabajando var idSubcategoria = $("#idSubcategoriaProducto").val(); $.each(this.productos,function(index,value){ if(index == 0) { var p = crearElementoClasesTexto("p",null,"Tamaño",null); contenedor.append(p); } if(value.idsubcategoria == idSubcategoria) { var label = crearElementoClasesTexto("label",null,null,null); contenedor.append(label); var input = crearElementoClasesTexto("input","tamano",null,null); input.setAttribute("id","idProducto_"+value.id); input.setAttribute("data-link",value.id); input.setAttribute("type","radio"); input.setAttribute("name","tamano"); input.setAttribute("value",value.id); label.appendChild(input); var texto = document.createTextNode(value.nombreProducto); label.appendChild(texto); //Miramos a ver cual es el producto por defecto if(parseInt(value.defecto) == 1) { idProductoDefecto = value.id; $("#idProducto_"+value.id).prop("checked",true); $("#defectoProducto").val(value.defecto); $("#idProductoStock").val(value.idproductostock); $("#hayStockProducto").val(value.stock); $("#nombreCategoriaProducto").val(value.nombreCategoria); $("#nombreSubcategoriaProducto").val(value.nombreSubcategoria); $("#pesoProducto").val(value.peso) $("#textoNombreSeo").val(value.textoNombreSeo); } //Eventos input.addEventListener("click",function(e){ e.stopPropagation(); eco_productos.redirigirProducto(this.value,"0"); //$("#idProducto").val(this.value); //eco_productos.recargarImprescindiblesActualizarPrecio(null); },false); } }); //this.dibujarCaracteristicas(); this.redirigirProducto(idProductoDefecto,"1"); } this.enviarMailPresupuesto = function() { /**- Función que envía un mail a picazo sobre un presupuesto pedido **/ var parametros = new Array(); parametros.push(new Parametro("correoUsuarioProducto",$("#correoUsuarioProducto").val().trim())); parametros.push(new Parametro("mensajeUsuario",this.mensajePresupuesto)); parametros.push(new Parametro("mensajeAdmin",this.mensajePresupuestoEspanol)); parametros.push(new Parametro("idPresupuesto",this.idPresupuesto)); var respuesta = this.ajax.pedir("productosControl.enviarMailPresupuesto",parametros,XJSON,SYNC,null); $("#presupuestoModal").hide(); iu.comunicarMio(respuesta.valor, respuesta.mensaje, "presupuestoEnviado"); } this.mensajeAvisoCierre = function(tipoCaracteristica,valorValorCaracteristica) { /**- Función que muestra un mensaje de aviso condicionado por los parametros, @param tipoCaracteristica, el campo tipo de una característica. @param valorValorCaracteristica, el campo valor de los valores dependientes de una característica **/ if(tipoCaracteristica == "Cierre" && parseInt(valorValorCaracteristica) == 85) { $(".avisopequecaracteristicas").show(); } else $(".avisopequecaracteristicas").hide(); } this.redirigirProducto = function(valor,actualizarImagenesCarrusel) { /**- Función que redirige la página en función del parámetros seleccionados. Seleccionaremos la primera opción de los productos. @param valor, idProducto. @param actualizarImagenesCarrusel, 1 ó 0 en función de si queremos actualizar las imágenes del carrusel de productos respectivamente. **/ $("#idProducto").val(valor); this.idProducto = valor; $(".divCaracteristicas").hide(); $.each(this.subcategorias,function(index,value){ if(value.id == eco_productos.idSubcategoria) { if(eco_productos.caracteristicas != null) { $.each(eco_productos.caracteristicas,function(indexCar,valueCar){ $("#divCaracteristica_"+value.id+"_"+valueCar.id).show(); }); } } }); $.each(this.productos,function(index,value){ if(value.id == valor) { eco_productos.hayStock = value.stock; $("#hayStockProducto").val(value.stock); $("#nombreProducto").val(value.nombreProducto); } }); $.each(this.productosEspanol,function(index,value){ if(value.id == valor) { $("#nombreProducto_es").val(value.nombreProducto); } }); $.each(this.imagenesProductos,function(index,value){ if(value.iddependiente == valor) { eco_productos.imagenProducto = value.imagen; $("#imagenSubcategoriaProducto").val(value.imagen); } }); //Actualizamos las imágenes del carrusel de productos si no es un producto recomendado y viene de cambiar el modelo únicamente if(parseInt(this.boolPeculiar) == 0 && parseInt(actualizarImagenesCarrusel) == 1) this.cargarImagenesProductosNoPeculiar(); //Actualizamos el precio this.recargarImprescindiblesActualizarPrecio(null); } this.redirigirSubcategoria = function() { /**- Función que redirige la página en función del parámetros seleccionados. Vamos a pedir el primer tamaño o producto de la categoría seleccionada, y recargaremos la página. **/ //Cogemos la url amigable var url = $("#"+this.idSubcategoria).attr("data-link"); //Redirigimos la web window.location.href = url; } this.validarMedidas = function() { /**- Función que valida el mínimo de las medidas cuando tenemos un producto a medida @return true o false en función de si las medidas pasan o no los controles de validación definidos. **/ if(this.idCategoria == 7 && $("#ancho").val() != "" && $("#alto").val() != "" && ($("#ancho").val() < 30 || $("#alto").val() < 30)) { $("#medidas-error-minimas").html("Mínimo: 30mm."); $("#medidas-error-minimas").show(); return false; } if(this.idCategoria == 12 && $("#ancho").val() != "" && $("#alto").val() != "" && ($("#ancho").val() < 40 || $("#alto").val() < 40)) { $("#medidas-error-minimas").html("Mínimo: 40mm."); $("#medidas-error-minimas").show(); return false; } return true; } this.validarNumeroEntero = function(nombre) { /**- Función que valida el número entero en un input #param nombre, identificador del input. **/ return "1234567890".indexOf($("#"+nombre).val().fromCharCode($("#"+nombre).which)) >= 0; } /**MÉTODOS PORST**/ this.postAnadirDatosSesion = function(respuesta) { /**- Función que procesa el resultado de una petición. @param respuesta, ok **/ //funcion que repinte el minicarrito //ahora está puesto a PELO var precio = 0; if(respuesta.lista.producto['descuento'] != undefined && respuesta.lista.producto['descuento'] == 1) { if(respuesta.lista.producto['disenhadoEmpresa'] != undefined && respuesta.lista.producto['disenhadoEmpresa'] == 1) { if(respuesta.lista.producto['productosPersonalizados'] != undefined && respuesta.lista.producto['productosPersonalizados'] == 1) { precio = respuesta.lista.producto['precioSinIVADescuentoDisenoPersonalizado']; } else { precio = respuesta.lista.producto['precioSinIVADescuentoDiseno']; } } else { precio = respuesta.lista.producto['precioSinIVADescuento']; } } else { if(respuesta.lista.producto['disenhadoEmpresa'] != undefined && respuesta.lista.producto['disenhadoEmpresa'] == 1) { if(respuesta.lista.producto['productosPersonalizados'] != undefined && respuesta.lista.producto['productosPersonalizados'] == 1) { precio = respuesta.lista.producto['precioSinIVADisenoPersonalizado']; } else { precio = respuesta.lista.producto['precioSinIVADiseno']; } } else { if(respuesta.lista.producto['productosPersonalizados'] != undefined && respuesta.lista.producto['productosPersonalizados'] == 1) { precio = respuesta.lista.producto['precioSinIVAPersonalizado']; } else { precio = respuesta.lista.producto['precioSinIVA']; } } } caracteristicas_nuevo = ''; if(respuesta.lista.producto.caracteristicas != undefined) { $.each(respuesta.lista.producto.caracteristicas, function(index,value){ if (value.valorCaracteristica != "") caracteristicas_nuevo += value.valorCaracteristica + ' / '; }); } if(respuesta.lista.producto['ancho'] != undefined && respuesta.lista.producto['ancho'] != null && respuesta.lista.producto['ancho'] != "") caracteristicas_nuevo += respuesta.lista.producto['ancho']+" x "+respuesta.lista.producto['alto']+" / "; caracteristicas_nuevo += "Diseños: "+respuesta.lista.producto['cantidadDisenhos']; $(".tabla-listado-productos-minicarrito table").append(''+respuesta.lista.producto.nombre_categoria+' '+respuesta.lista.producto.nombre_subcategoria+' '+respuesta.lista.producto.nombre_producto+'
'+caracteristicas_nuevo+''+respuesta.lista.producto.cantidadTotal+' u.'+formatoPrecioHTML(precio)+''); $(".dropdown-carrito").addClass("movido"); if(respuesta.lista.total < "60") { $(".mensaje-carrito-tefalta span").html(formatoPrecioHTML(("60")-respuesta.lista.total)); $(".mensaje-carrito-tefalta").show(); $(".mensaje-carrito-enviogratis").hide(); } else { $(".mensaje-carrito-tefalta").hide(); $(".mensaje-carrito-enviogratis").show(); } $("#carritoPrecioTotal").html(formatoPrecioHTML(respuesta.lista.total)); $("#cantidadProductosCarritoMenu").html(parseInt(respuesta.lista.cuantos)); $(".dropdown-carrito").addClass("movido"); $(".page-cover").show(); } //this.postBuscarImagenPlantilla = function(respuesta) { /**- Función que procesa el resultado de una petición. @param respuesta, Objeto Respuesta. **/ //Procesamos la respuesta /*if(respuesta.tipo == "Respuesta" && respuesta.total == 1) { this.imagenPlantilla = respuesta.lista[0]['imagen']; $(".btn-plantilla").attr("src",this.imagenPlantilla); $(".btn-plantilla").attr("href",this.imagenPlantilla); } else this.imagenPlantilla = null; }*/ this.postBuscarImagenPrincipal = function(respuesta) { /**- Función que procesa el resultado de una petición. @param respuesta, Objeto Respuesta. **/ //Procesamos la respuesta if(respuesta.tipo == "Respuesta" && respuesta.total == 1) { this.imagenProducto = respuesta.lista[0]['imagen']; $("#imagenSubcategoriaProducto").attr("src",this.imagenProducto); } } this.postBuscarPrecio = function(respuesta) { /**- Función que procesa el resultado de una petición. @param respuesta, Objeto Respuesta. **/ //Procesamos la respuesta if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { this.precioConIVA = respuesta.lista['precioConIVA']; this.precioConIVADescuento = respuesta.lista['precioConIVADescuento']; this.precioConIVADiseno = respuesta.lista['precioConIVADiseno']; this.precioConIVAPersonalizado = respuesta.lista['precioConIVAPersonalizado']; this.precioConIVADescuentoDiseno = respuesta.lista['precioConIVADescuentoDiseno']; this.precioConIVADescuentoPersonalizado = respuesta.lista['precioConIVADescuentoPersonalizado']; this.precioConIVADisenoPersonalizado = respuesta.lista['precioConIVADisenoPersonalizado']; this.precioConIVADescuentoDisenoPersonalizado = respuesta.lista['precioConIVADescuentoDisenoPersonalizado']; this.precioSinIVA = respuesta.lista['precioSinIVA']; this.precioSinIVADescuento = respuesta.lista['precioSinIVADescuento']; this.precioSinIVADiseno = respuesta.lista['precioSinIVADiseno']; this.precioSinIVAPersonalizado = respuesta.lista['precioSinIVAPersonalizado']; this.precioSinIVADescuentoDiseno = respuesta.lista['precioSinIVADescuentoDiseno']; this.precioSinIVADescuentoPersonalizado = respuesta.lista['precioSinIVADescuentoPersonalizado']; this.precioSinIVADisenoPersonalizado = respuesta.lista['precioSinIVADisenoPersonalizado']; this.precioSinIVADescuentoDisenoPersonalizado = respuesta.lista['precioSinIVADescuentoDisenoPersonalizado']; this.actualizarCondicionesProducto(); $("#btn_calculando").hide(); $("#visual-price").show(); } else { iu.comunicarMio(respuesta.valor,respuesta.mensaje,"productos"); } } this.postBuscarProducto = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { this.pesoProducto = respuesta.lista[0].peso; $("#pesoProducto").val(this.pesoProducto); this.defectoProducto = respuesta.lista[0].defecto; $("#defectoProducto").val(this.defectoProducto); this.hayStock = respuesta.lista[0].stock; $("#hayStockProducto").val(this.hayStock); this.nombreProducto = respuesta.lista[0].nombreProducto; $("#nombreProducto").val(respuesta.lista[0].nombreProducto); this.idProductoStock = respuesta.lista[0].idproductostock; $("#idProductoStock").val(respuesta.lista[0].idproductostock); this.textoNombreSeo = respuesta.lista[0].textoNombreSeo; } } this.postBuscarProductoEspanol = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { $("#nombreProducto_es").val(respuesta.lista[0].nombreProducto); } } this.postCargarCarrito = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { this.carrito = respuesta.lista; } else { this.carrito = null; } } this.postCargarCategorias = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de lós paneles this.categorias = respuesta.lista; this.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. if(this.contadorCarga == 7) this.calcularPrecio(); } else this.categorias = null; } this.postCargarCategoriasEspanol = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de lós paneles this.categoriasEspanol = respuesta.lista; //this.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. //if(this.contadorCarga == 6) this.calcularPrecio(); } else this.categoriasEspanol = null; } this.postCargarCaracteristicas = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de lós paneles this.caracteristicas = respuesta.lista; this.totalCaracteristicas = respuesta.total; this.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. if(this.contadorCarga == 7) this.calcularPrecio(); } else { this.caracteristicas = null; this.totalCaracteristicas = 0; this.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. if(this.contadorCarga == 7) this.calcularPrecio(); } } this.postCargarCaracteristicasEspanol = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de lós paneles this.caracteristicasEspanol = respuesta.lista; this.totalCaracteristicasEspanol = respuesta.total; //this.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. //if(this.contadorCarga == 6) this.calcularPrecio(); } else { this.caracteristicasEspanol = null; this.totalCaracteristicasEspanol = 0; } } this.postCargarImagenesSubcategorias = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de lós paneles this.imagenesSubcategorias = respuesta.lista; } else this.imagenesSubcategorias = null; } this.postCargarImagenesProductos = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de los paneles this.imagenesProductos = respuesta.lista; } else this.imagenesProductos = null; } this.postCargarImagenesProductosNoPeculiar = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de los paneles this.imagenesProductos = respuesta.lista; this.dibujarImagenesProductos(); } else this.imagenesProductos = null; } this.postCargarPrecioNDiseno = function(respuesta) { /**- Función que procesa la respuesta de un apetición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase. this.preciosNDiseno = respuesta.lista; this.contadorCarga++; if(this.contadorCarga == 7) this.calcularPrecio(); } else this.preciosNDiseno = null; } this.postCargarPreciosRangosMetro = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, objeto Respuesta. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { this.preciosRangosMetro = respuesta.lista; this.totalPreciosRangosMetro = respuesta.total; this.maximoRangoMetro = respuesta.lista[((respuesta.total)-1)].maximo; this.minimoRangoMetro = respuesta.lista[0].minimo; var ancho = $("#ancho").val(); var alto = $("#alto").val(); if(this.idProducto == 212) { if(ancho.length == 0) $("#ancho").val(70); if(alto.length == 0) $("#alto").val(70); } else { if(ancho.length == 0) $("#ancho").val(50); if(alto.length == 0) $("#alto").val(50); } this.controlHabilitarDeshabilitar(); this.contadorCarga++; //Buscamos los precios if(this.contadorCarga == 7) this.calcularPrecio(); } else { this.preciosRangosMetro = null; this.totalPreciosRangosMetro = 0; $("#ancho").val(""); $("#alto").val(""); this.controlHabilitarDeshabilitar(); this.contadorCarga++; //Buscamos los precios if(this.contadorCarga == 7) this.calcularPrecio(); } } this.postCargarProductos = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de lós paneles this.productos = respuesta.lista; this.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. if(this.contadorCarga == 7) this.calcularPrecio(); } else this.productos = null; } this.postCargarProductosEspanol = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de lós paneles this.productosEspanol = respuesta.lista; //this.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. //if(this.contadorCarga == 6) this.calcularPrecio(); } else this.productosEspanol = null; } this.postCargarSubcategorias = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de lós paneles this.subcategorias = respuesta.lista; this.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. if(this.contadorCarga == 7) this.calcularPrecio(); } else this.subcategorias = null; } this.postCargarSubcategoriasEspanol = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de lós paneles this.subcategoriasEspanol = respuesta.lista; //this.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. //if(this.contadorCarga == 6) this.calcularPrecio(); } else this.subcategoriasEspanol = null; } this.postCargarValoresCaracteristicas = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de lós paneles this.valores = respuesta.lista; this.totalValores = respuesta.total; this.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. if(this.contadorCarga == 7) this.calcularPrecio(); } else { this.valores = null; this.totalValores = 0; } } this.postCargarValoresCaracteristicasEspanol = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de lós paneles this.valoresEspanol = respuesta.lista; this.totalValoresEspanol = respuesta.total; //this.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. //if(this.contadorCarga == 6) this.calcularPrecio(); } else { this.valoresEspanol = null; this.totalValoresEspanol = 0; } } this.postGuardarPresupuesto = function(respuesta) { /**- Función que procesa el resultado de una petición asíncrona. @param respuesta, Objeto Resultado. **/ if(respuesta.tipo == "Resultado" && respuesta.valor == "Ok") { eco_productos.idPresupuesto = respuesta.idregistro; eco_productos.enviarMailPresupuesto(); $("#presupuestoModal").hide(); } else { //Ocultamos el modal y mostramos error $("#presupuestoModal").hide(); iu.comunicarMio(respuesta.valor, respuesta.mensaje,"productos"); } } } var eco_productos = new Productos(); $(document).ready(function(){ eco_productos.iniciar(); $("#aceptarBotonQueEsEstoProducto").click(function(){ $("#patrocinio").prop("checked",true); $("#que-es-esto").modal("hide"); eco_productos.actualizarCondicionesProducto(); }); $("#aceptarBtnPersonalizacionIndividual").click(function(){ $("#personalizacion").prop("checked",true); $("#personalizacion-individual").modal("hide"); eco_productos.actualizarCondicionesProducto(); }); $("#alto").change(function() { $("#medidas-error-minimas").hide(); }); $("#ancho").change(function() { $("#medidas-error-minimas").hide(); }); $("#btn_carrito").click(function(){ $("#btn_calculando").hide(); $("#btn_carrito").prop("disabled",true); eco_productos.anadirProductoSesion(); setTimeout(function(){ $("#btn_carrito").prop("disabled",false); },1000); }); $("#btn_enviarMailPresupuesto").click(function(){ eco_productos.enviarMailPresupuesto(); }); $("#btn-mas-cantidadProducto").click(function(){ $("#btn_carrito").prop("disabled",true); $("#btn_carrito").hide(); $("#btn_calculando").show(); eco_productos.actualizarPrecio("cantidad","mas"); }); $("#btn-mas-disenhoProducto").click(function(){ $("#btn_carrito").prop("disabled",true); $("#btn_carrito").hide(); $("#btn_calculando").show(); eco_productos.actualizarPrecio("ndesigns","mas"); }); $("#btn-menos-cantidadProducto").click(function(){ $("#btn_carrito").prop("disabled",true); $("#btn_carrito").hide(); $("#btn_calculando").show(); eco_productos.actualizarPrecio("cantidad","menos"); }); $("#btn-menos-disenhoProducto").click(function(){ $("#btn_carrito").prop("disabled",true); $("#btn_carrito").hide(); $("#btn_calculando").show(); eco_productos.actualizarPrecio("ndesigns","menos"); }); $("#btn_presupuesto").click(function(){ eco_productos.modalPresupuesto(); }); $(".caracteristicas").click(function() { eco_productos.recargarImprescindiblesActualizarPrecio(null); }); $("#diseno").change(function(){ eco_productos.actualizarCondicionesProducto(); }); /*$("#enlaceModalImagenesCierresPulseras").click(function(){ iu.comunicarMio("","
Sin cierre Ajustable bola
Ajustable bola
Ajustable metálico
Ajustable metálico
Ajustable muelle
Ajustable muelle
Seguridad plástico
Seguridad plástico
Seguridad metal
Seguridad metal
Satinada 10mm
Satinada 15mm
Satinada 20mm
Gruesa 10mm
Gruesa 15mm
Gruesa 20mm
","productos"); });*/ $("#patrocinio").change(function(){ if($("#patrocinio").prop("checked")) $("#que-es-esto").modal("show"); $("#patrocinio").prop("checked",false); eco_productos.actualizarCondicionesProducto(); }); // Escuchar el evento change en los radios con name="modelo" $('input[name="modelo"]').click(function() { $("#idSubcategoriaProducto").val(this.id); $("#nombreSubcategoriaProducto").val(this.nextSibling.data); //eco_productos.redirigirSubcategoria(); eco_productos.recargarImprescindiblesActualizarCalculadora(); }); // Escuchar el evento change en los radios con name="tamano" $('input[name="tamano"]').click(function() { eco_productos.redirigirProducto(this.value,"0"); }); $("#personalizacion").change(function(){ if($("#personalizacion").prop("checked")) { $("#personalizacion-individual").modal("show"); $("#personalizacion").prop("checked",false); } else { $("#personalizacion").prop("checked",false); eco_productos.actualizarCondicionesProducto(); } }); });