/** *@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('
Sin cierre | ![]() Ajustable bola | ![]() Ajustable metálico | ![]() Ajustable muelle | ![]() Seguridad plástico | ![]() Seguridad metal | |
---|---|---|---|---|---|---|
Satinada 10mm | ||||||
Satinada 15mm | ||||||
Satinada 20mm | ||||||
Gruesa 10mm | ||||||
Gruesa 15mm | ||||||
Gruesa 20mm |