/** *@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(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.caracteristicas = null; //Objeto contenedor de las características de las categorías. this.categorias = null; //Objeto contenedor de las categorías. 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.subcategorias = null; //Objeto contenedor de las subcategorías. this.valores = null; //Objeto contenedor de los valores de las subcategorías de las características de las categorías. 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; //Varios. this.carrito = null; // 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.validadoMedidas = false; // this.codigoIdioma = null; this.returnValidarMedidas = false; 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(); $("#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(); //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.cargarCaracteristicas(); this.cargarImagenesSubcategorias(); this.cargarPrecioNDiseno(); this.cargarPreciosRangosMetro(); this.cargarProductos(); this.cargarSubcategorias(); this.cargarValoresCaracteristicas(); //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").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.numeroDisenho = $("#ndesigns").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 rangos eco_productos.controlesDependientesRangoMaxStock(); //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(); },1000); } this.recargarImprescindiblesActualizarPrecio = 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").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(); //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 rangos eco_productos.controlesDependientesRangoMaxStock(); //Controlamos los botones eco_productos.cargarPreciosRangosMetro(); //Aqui controlamos la visualización de determinados botones y calculamos el precio. //Controlamos los botones eco_productos.controlHabilitarDeshabilitar(); },1000); } //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 $.each(eco_productos.caracteristicas,function(index,value){ if(eco_productos.idCategoria == value.iddependiente) { //parametros.push(new Parametro("nombreCaracteristicaProducto_"+value.id,value.nombreCaracteristica)); //parametros.push(new Parametro("nombreCaracteristicaEspanolProducto_"+value.id,$("#caracteristica_"+value.id+" option:selected").data('nombrecaracteristicaespanol'))); //parametros.push(new Parametro("valorCaracteristicaProducto_"+value.id,$("#caracteristica_"+value.id+" option:selected").text().trim())); //parametros.push(new Parametro("valorCaracteristicaEspanolProducto_"+value.id,$("#caracteristica_"+value.id+" option:selected").data(value.nombreCaracteristica+"_es"))); parametros.push(new Parametro("idValorCaracteristicaProducto_"+value.id,$("#caracteristica_"+value.id).val())); } }); //Si todo va bien, mandamos los parámetros para enviar un email a la empresa 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()+" / "; $.each(this.caracteristicas,function(index,value){ if(eco_productos.idCategoria == value.iddependiente) { if(eco_productos.valores != null) { $.each(eco_productos.valores,function(indexVal,valueVal){ if(valueVal.idcaracteristica == value.id) { if(eco_productos.idSubcategoria == valueVal.iddependiente) { if($("#caracteristica_"+value.id).val() == valueVal.id) { 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(); } this.anadirProductoSesion = function(){ /**- Función que coge los datos de la última selección y los mete en sesion. **/ if(!this.validadoMedidas) { this.validarMedidas(); if(this.returnValidarMedidas) 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) { //parametros.push(new Parametro("nombreCaracteristicaProducto_"+value.id,value.nombreCaracteristica)); //parametros.push(new Parametro("nombreCaracteristicaEspanolProducto_"+value.id,$("#caracteristica_"+value.id+" option:selected").data('nombrecaracteristicaespanol'))); //var nombreValor = $("#caracteristica_"+value.id+" option:selected").text().trim().toLowerCase(); //nombreValor = nombreValor.replace(/ /g,"-",nombreValor); //parametros.push(new Parametro("valorCaracteristicaProducto_"+value.id,$("#caracteristica_"+value.id+" option:selected").text().trim())); //parametros.push(new Parametro("valorCaracteristicaEspanolProducto_"+value.id,$("#caracteristica_"+value.id+" option:selected").data(nombreValor+"_es"))); //var caras = $("#caracteristica_"+value.id+" option:selected").data('caras'); //parametros.push(new Parametro("carasCaracteristicaProducto_"+value.id,$("#caracteristica_"+value.id+" option:selected").data('caras'))); //if(caras != null) numCaras += parseInt($("#caracteristica_"+value.id+" option:selected").data('caras')); //parametros.push(new Parametro("tipoCaracteristicaProducto_"+value.id,$("#caracteristica_"+value.id+" option:selected").data('tipo'))); if($("#caracteristica_"+value.id).val() != null && $("#caracteristica_"+value.id).val() != undefined && $("#caracteristica_"+value.id).val() != "") parametros.push(new Parametro("idValorCaracteristicaProducto_"+value.id,$("#caracteristica_"+value.id).val())); //$.each(eco_productos.valores,function(indexVal,valueVal){ // if(value.id == valueVal.idcaracteristica && $("#caracteristica_"+value.id).val() == valueVal.id) { // if(valueVal.fondo != undefined && valueVal.fondo != null) parametros.push(new Parametro("colorFondo",valueVal.fondo)); // if(valueVal.textoMensaje != undefined && valueVal.textoMensaje != null) parametros.push(new Parametro("mensajeProductoAviso",valueVal.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.cargarCaracteristicas= function() { /**- Función que busca las características de las categorías. **/ //Petición ajax. this.ajax.pedir("categoriasControl.buscarCaracteristicas",null,XJSON,ASYNC,"eco_productos.postCargarCaracteristicas"); } 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 las imágenes de los productos. **/ //Array de parámetros. var parametros = new Array(); parametros.push(new Parametro("tipoImagen",TIPO_IMAGEN_PRODUCTOS)); //Petición ajax. this.ajax.pedir("productosControl.buscarImagenes",parametros,XJSON,ASYNC,"eco_productos.postCargarImagenesProductos"); } this.cargarPrecioNDiseno = function() { /**- Función que carga todos los precios a incrementar por cantiades de diseños de la categoría seleccionada. **/ 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 **/ 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.cargarSubcategorias = function() { /**- Función que busca las subcategorías. **/ //Petición ajax. this.ajax.pedir("subcategoriasControl.buscar",null,XJSON,ASYNC,"eco_productos.postCargarSubcategorias"); } 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.calcularPrecio = function(){ /**- 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 numCaras = 0; if(this.totalCaracteristicas > 0) { $.each(eco_productos.caracteristicas,function(index,value){ if(eco_productos.idCategoria == value.iddependiente){ if(eco_productos.valores != null) { $.each(eco_productos.valores,function(indexVal,valueVal){ if(eco_productos.idSubcategoria == valueVal.iddependiente) { if(valueVal.idcaracteristica == value.id) { if($("#caracteristica_"+value.id).val() == valueVal.id) { parametros.push(new Parametro("valorCaracteristica_"+value['id'],$("#caracteristica_"+value['id']).val().trim())); var caras = valueVal.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)) { $("#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("Minimum: 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.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) { 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.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,idCaracteristica) { var valorValorCaracteristica = $("#"+idCaracteristica+" option:selected").val(); if(tipoCaracteristica == "Cierre" && parseInt(valorValorCaracteristica) == 85) { $(".avisopequecaracteristicas").show(); } else $(".avisopequecaracteristicas").hide(); } this.redirigirProducto = function(valor) { /**- Función que redirige la página en función del parámetros seleccionados. Seleccionaremos la primera opción de los productos. **/ $("#idProducto").val(valor); this.recargarImprescindibles(); } 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 = $("#modelo option:selected").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 **/ if($("#ancho").val() != "" && $("#ancho").val() != undefined && $("#alto").val() != "" && $("#alto").val() != undefined) { if(parseFloat($("#ancho").val()) < LIMITE_INFERIOR_MEDIDAS_PRODUCTO || parseFloat($("#ancho").val()) < LIMITE_INFERIOR_MEDIDAS_PRODUCTO) { iu.comunicarMio("Ok","Les mesures sont-elles correctes ?

N'oubliez pas que nous parlons de millimètres.","productos"); this.validadoMedidas = true; this.returnValidarMedidas = 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']+" (mm) / "; caracteristicas_nuevo += "Conceptions: "+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 < 120) { $(".mensaje-carrito-tefalta span").html(formatoPrecioHTML((120)-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.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.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 lós 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(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.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.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.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. if(this.contadorCarga == 7) this.calcularPrecio(); } else this.valores = null; } 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(); }); $("#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(); }); $("#diseno").change(function(){ eco_productos.actualizarCondicionesProducto(); }); $("#enlaceModalImagenesCierresPulseras").click(function(){ iu.comunicarMio("","
Sans fermeture Réglable boule
Réglable boule
Réglable métal
Réglable métal
Réglable ressort
Réglable ressort
Sécurité plastique
Sécurité plastique
Sécurité métal
Sécurité métal
Économique / Satiné 10mm
Économique / Satiné 15mm
Économique / Satiné 20mm
Épais 10mm
Épais 15mm
Épais 20mm
","productos"); }); $("#patrocinio").change(function() { if($("#patrocinio").prop("checked")) $("#que-es-esto").modal("show"); $("#patrocinio").prop("checked",false); eco_productos.actualizarCondicionesProducto(); }); $("#personalizacion").change(function(){ if($("#personalizacion").prop("checked")) { $("#personalizacion-individual").modal("show"); $("#personalizacion").prop("checked",false); } else { $("#personalizacion").prop("checked",false); eco_productos.actualizarCondicionesProducto(); } }); });