/** *@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. this.contadorCargaSelectColores = 0; //Contador de carga del select de los colores de textil. //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. //Medidas this.medidaDefAlto = null; this.medidaDefAncho = null; this.medidaMinAlto = null; this.medidaMinAncho = null; this.medidaMaxAlto = null; this.medidaMaxAncho = null; //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.caracteristicaDatoVariable = null; this.caracteristicaMontaje = null; this.caracteristicaPliego = null; this.caracteristicaTallaje = null; this.fondoSeleccionado = "#eeeeee"; //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.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.tipoMedida = null; this.valorCaracteristicaTallaje = ""; this.valorCaracteristicaTallajeEspanol = ""; miCarrusel = null; this.arrayIdsSubcategoriasSinDisenos = []; this.arrayIdsProductosSinDisenos = []; //Funciones de clase this.iniciar = function() { this.arrayIdsSubcategoriasSinDisenos = []; this.arrayIdsProductosSinDisenos = []; //Limpiamos. $(".avisopequecaracteristicas").hide(); /*$("#btn_carrito").show();*/$("#btn_carrito").hide(); /*$("#btn_carrito").prop("disabled",false);*/$("#btn_carrito").prop("disabled",true); $("#btn_dtf").hide(); $("#btn-menos-cantidadProducto").prop("disabled",true); $("#btn-menos-disenhoProducto").prop("disabled",true); $("#btn_presupuesto").prop("disabled",true); /*$("#precio").show();*/$("#precio").hide(); $("#rangoMaximo").hide(); $("#ancho-error").hide(); $("#ancho-error-requerido").hide(); $("#alto-error-requerido").hide(); $("#medidas-error-nulo").hide(); $("#btn_stock").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(); if(this.arrayIdsSubcategoriasSinDisenos.includes(parseInt(this.idSubcategoria)) || this.arrayIdsProductosSinDisenos.includes(parseInt(this.idProducto))) $(".dependientesDisenoPoducto").hide(); //Peculiaridad this.boolPeculiar = $("#peculiar").val(); //Cargamos valores this.caracteristicaDatoVariable = $("#caracteristicaDatoVariable").val(); this.caracteristicaMontaje = $("#caracteristicaMontaje").val(); this.caracteristicaPliego = $("#caracteristicaPliego").val(); this.caracteristicaTallaje = $("#caracteristicaTallaje").val(); if(this.caracteristicaTallaje != null && this.caracteristicaTallaje != "") { this.cantidadProductos = 0; $("#cantidad").val("0"); $(".spanCantidadTallaje").html("0"); } else this.cantidadProductos = $("#cantidad").val(); this.codigoIdioma = $("#codigoIdioma").val(); this.medidaDefAlto = $("#medidaDefAlto").val(); this.medidaDefAncho = $("#medidaDefAncho").val(); this.medidaMinAlto = $("#medidaMinAlto").val(); this.medidaMinAncho = $("#medidaMinAncho").val(); this.medidaMaxAlto = $("#medidaMaxAlto").val(); this.medidaMaxAncho = $("#medidaMaxAncho").val(); this.numeroDisenho = $("#ndesigns").val(); 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.imagenProducto = $("#imagenSubcategoriaProducto").val(); this.imagenPlantilla = $("#imagenPlantillaProducto").val(); this.totalPreciosRangosMetro = $("#totalPreciosRangosMetro").val(); //Controlamos los rangos //this.controlDependientesRangoMaxStock(); //Contador de carga this.contadorCarga = 0; this.contadorCargaSelectColores = 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(); //this.controlDependientesDatoVariable(); //Iniciamos la animación miCarrusel = new Carousel(); miCarrusel.constructor(); 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); //$("#precio").hide(); //$("#visual-price").html("--"); $("#ancho-error").hide(); $("#ancho-error-requerido").hide(); $("#alto-error-requerido").hide(); $("#medidas-error-nulo").hide(); $("#btn_stock").hide(); this.limpiarCamposMailPresupuestoProducto(); this.cargarCarrito(); //Identificadores this.idCategoria = $("#idCategoriaProducto").val(); this.idProducto = $("#idProducto").val(); this.idSubcategoria = $("#idSubcategoriaProducto").val(); if(this.arrayIdsSubcategoriasSinDisenos.includes(parseInt(this.idSubcategoria)) || this.arrayIdsProductosSinDisenos.includes(parseInt(this.idProducto))) $(".dependientesDisenoPoducto").hide(); 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.caracteristicaDatoVariable = $("#caracteristicaDatoVariable").val(); this.caracteristicaMontaje = $("#caracteristicaMontaje").val(); this.caracteristicaPliego = $("#caracteristicaPliego").val(); this.caracteristicaTallaje = $("#caracteristicaTallaje").val(); if(this.caracteristicaTallaje != null && this.caracteristicaTallaje != "") { this.cantidadProductos = 0; $("#cantidad").val("0"); $(".spanCantidadTallaje").html("0"); } else this.cantidadProductos = $("#cantidad").val(); this.hayStock = $("#hayStockProducto").val(); this.medidaDefAlto = $("#medidaDefAlto").val(); this.medidaDefAncho = $("#medidaDefAncho").val(); this.medidaMinAlto = $("#medidaMinAlto").val(); this.medidaMinAncho = $("#medidaMinAncho").val(); this.medidaMaxAlto = $("#medidaMaxAlto").val(); this.medidaMaxAncho = $("#medidaMaxAncho").val(); this.numeroDisenho = $("#ndesigns").val(); this.pesoProducto = $("#pesoProducto").val(); this.textoNombreSeo = $("#textoNombreSeo").val(); this.buscarImagenPlantilla(); this.contadorCarga = 6; this.contadorCargaSelectColores = 2; //Controlamos los botones this.cargarPreciosRangosMetro(); //Aqui controlamos la visualización de determinados botones y calculamos el precio. //Cargamos las imágenes this.cargarImagenesProductos(); /*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(); eco_productos.controlDependientesDatoVariable(); //Controlamos los rangos eco_productos.controlDependientesRangoMaxStock(); },1000);*/ } this.recargarImprescindiblesActualizarPrecio = function(){ //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(); if(this.imagenPlantilla != null && this.imagenPlantilla != "" && this.imagenPlantilla != undefined) $(".btn_plantilla").show(); else $(".btn_plantilla").hide(); /*if(this.arrayIdsSubcategoriasSinDisenos.includes(parseInt(this.idSubcategoria)) || this.arrayIdsProductosSinDisenos.includes(parseInt(this.idProducto))) { $("#ndesigns").val(0); $(".dependientesDisenoPoducto").hide(); } else { //$("#ndesigns").val(1); $(".dependientesDisenoPoducto").show(); }*/ //Cargamos valores this.caracteristicaDatoVariable = $("#caracteristicaDatoVariable").val(); this.caracteristicaMontaje = $("#caracteristicaMontaje").val(); this.caracteristicaPliego = $("#caracteristicaPliego").val(); this.caracteristicaTallaje = $("#caracteristicaTallaje").val(); if(this.caracteristicaTallaje != null && this.caracteristicaTallaje != "") { this.cantidadProductos = 0; $("#cantidad").val("0"); $(".spanCantidadTallaje").html("0"); } else this.cantidadProductos = $("#cantidad").val(); this.numeroDisenho = $("#ndesigns").val(); this.medidaDefAlto = $("#medidaDefAlto").val(); this.medidaDefAncho = $("#medidaDefAncho").val(); this.medidaMinAlto = $("#medidaMinAlto").val(); this.medidaMinAncho = $("#medidaMinAncho").val(); this.medidaMaxAlto = $("#medidaMaxAlto").val(); this.medidaMaxAncho = $("#medidaMaxAncho").val(); this.contadorCarga = 6; //Controlamos los botones this.cargarPreciosRangosMetro(); //Aqui controlamos la visualización de determinados botones y calculamos el precio. /*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(); eco_productos.controlDependientesDatoVariable(); //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.controlDependientesRangoMaxStock(); },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())); } } }); } } }); } if(this.imagenPlantilla != null && this.imagenPlantilla != "" && this.imagenPlantilla != undefined) $(".btn_plantilla").show(); else $(".btn_plantilla").hide(); //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")) { if(eco_productos.caracteristicaTallaje != value.id) { eco_productos.mensajePresupuesto += value.nombreCaracteristica+": "+valueVal.nombreValorCaracteristica+" / "; eco_productos.mensajePresupuestoEspanol += value.nombreCaracteristicaEspanol+": "+valueVal.nombreValorCaracteristicaEspanol+" / "; } else { var partes = eco_productos.valorCaracteristicaTallaje.split("_"); eco_productos.mensajePresupuesto += value.nombreCaracteristica+": "+partes[0]+" / "; eco_productos.mensajePresupuestoEspanol += value.nombreCaracteristicaEspanol+": "+partes[1]+" / "; } } } } }); } } }); } 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í"; if(this.imagenPlantilla != null && this.imagenPlantilla != "" && this.imagenPlantilla != undefined) $(".btn_plantilla").show(); else $(".btn_plantilla").hide(); 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. **/ $("#medidas-error-minimas").html(""); $("#medidas-error-minimas").hide(); if(!this.validarMedidas()) return; while(this.imagenProducto == "" || this.imagenProducto == null) { this.imagenProducto = $("#imagenSubcategoriaProducto").val(); } 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 = 0; if(this.maximoRangoMetro != 0) { switch(this.tipoMedida.toLowerCase()) { case 'mm': medida = $("#ancho").val()/1000 * $("#alto").val()/1000; break; case 'cm': medida = $("#ancho").val()/100 * $("#alto").val()/100; break; case 'dm': medida = $("#ancho").val()/10 * $("#alto").val()/10; break; case 'm': medida = $("#ancho").val() * $("#alto").val(); break; default: break; } } 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)); parametros.push(new Parametro("tipoMedida",this.tipoMedida)); parametros.push(new Parametro("idCaracteristicaPliego",this.caracteristicaPliego)); parametros.push(new Parametro("idCaracteristicaMontaje",this.caracteristicaMontaje)); //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")) { if(value.id != eco_productos.caracteristicaTallaje) parametros.push(new Parametro("idValorCaracteristicaProducto_"+value.id,$("#caracteristica_"+valueValores.id).val())); else parametros.push(new Parametro("idValorCaracteristicaProducto_"+value.id,$("#caracteristica_"+value.id).val()+"_"+eco_productos.valorCaracteristicaTallaje)); } } }); } } }); } //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 las imagen 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.calcularDTFModal = function() { /**- Función que calcula la longitud del pliego a imprimir en función de las variables correspondientes **/ $("#errorCalculadoraDTFModal").html(""); var altoDefecto = null; var anchoDefecto = null; if(this.pliego != "") { var partesPalabra = this.pliego.split(" "); var partesMedida = partesPalabra[0].split("x"); altoDefecto = partesMedida[1]; anchoDefecto = partesMedida[0]; } var alto = $("#altoCalculadoraDTFModal").val(); var ancho = $("#anchoCalculadoraDTFModal").val(); var cantidad = $("#cantidadCalculadoraDTFModal").val(); if(ancho == "" || ancho == null) { $("#errorCalculadoraDTFModal").html("Debe introducir las medidas"); return; } if(alto == "" || alto == null) { $("#errorCalculadoraDTFModal").html("Debe introducir las medidas"); return; } if(parseFloat(ancho) > parseInt(anchoDefecto)) { $("#errorCalculadoraDTFModal").html("Usaremos "+anchoDefecto+"cm. "+"Introduce un ancho inferior."); return; } if(parseFloat(alto) > parseInt(altoDefecto)) { $("#errorCalculadoraDTFModal").html("Usaremos "+altoDefecto+"cm. "+"Introduce un alto inferior."); return; } if(cantidad == "" || cantidad == null) { $("#errorCalculadoraDTFModal").html("Debe introducir la cantidad"); return; } ancho++; alto++; var unidadesAnchoPorPliego = Math.floor(anchoDefecto/ancho); var unidadesAltoPorPliego = Math.floor(altoDefecto/alto); var unidadesPorPliego = unidadesAnchoPorPliego*unidadesAltoPorPliego; this.nPliegos = 1; if(parseInt(cantidad) > unidadesPorPliego) this.nPliegos = Math.ceil(parseInt(cantidad)/unidadesPorPliego); //$("#alto").val((alto-1)*10); //$("#ancho").val((ancho-1)*10); this.cantidadProductos = parseInt(this.nPliegos); $("#cantidad").val(parseInt(this.nPliegos)); if(this.nPliegos == 1) var texto = "Necesitas "+this.nPliegos+" und."; else var texto = "Necesitas "+this.nPliegos+" und."; $("#avisoscalculadoraDTF").html(texto); } 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())); parametros.push(new Parametro("tipoMedida",this.tipoMedida)); //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.cogerValoresCaracteristicasTallaje = function() { /**- Función que carga los valores de la característica cuyo tipo es Tallaje y los pasa como un único valor en un campo de texto **/ this.valorCaracteristicaTallaje = ""; var i = 0; var cantidad = 0; var valorCaracteristicaTallajeEspanol = ""; $.each(eco_productos.caracteristicas,function(index,value){ if(eco_productos.idCategoria == value.iddependiente && value.id == eco_productos.caracteristicaTallaje) { $.each(eco_productos.valores,function(indexVal,valueVal){ if(valueVal.idcaracteristica == value.id) { i++; if(i == 1) $("#cantidadCaracteristica_"+value.id+"_"+valueVal.id).val($("#idCantidadCaracteristica_"+value.id+"_"+valueVal.id).val()); if($("#idCantidadCaracteristica_"+value.id+"_"+valueVal.id).val() != null && $("#idCantidadCaracteristica_"+value.id+"_"+valueVal.id).val() != undefined && $("#idCantidadCaracteristica_"+value.id+"_"+valueVal.id).val() != "") { cantidad += parseInt($("#idCantidadCaracteristica_"+value.id+"_"+valueVal.id).val()); eco_productos.valorCaracteristicaTallaje += valueVal.nombreValorCaracteristica+": "+$("#idCantidadCaracteristica_"+value.id+"_"+valueVal.id).val()+" / "; valorCaracteristicaTallajeEspanol += valueVal.nombreValorCaracteristicaEspanol+": "+$("#idCantidadCaracteristica_"+value.id+"_"+valueVal.id).val()+" / "; } } }); } }); this.valorCaracteristicaTallaje = this.valorCaracteristicaTallaje.substr(0,this.valorCaracteristicaTallaje.length-3); valorCaracteristicaTallajeEspanol = valorCaracteristicaTallajeEspanol.substr(0,valorCaracteristicaTallajeEspanol.length-3); this.valorCaracteristicaTallaje += "_"+valorCaracteristicaTallajeEspanol; if(this.caracteristicaTallaje != null && this.caracteristicaTallaje != "") { this.cantidadProductos = cantidad; $("#cantidad").val(cantidad); $(".spanCantidadTallaje").html(cantidad); } this.calcularPrecio(); } this.controlDependientesDatoVariable = function() { /**- Función que controla la visualización de elementos y ejecución de acciones que dependen de si hay o no características relacionadas con el dato variable **/ if(this.caracteristicaDatoVariable == null || this.caracteristicaDatoVariable == "") { $(".dependientesDatoVariable").show(); } else $(".dependientesDatoVariable").hide(); } this.controlDependientesMontaje = function() { /**- Función que controla la visualización de elementos y ejecución de acciones que dependen de si hay o no caracteristicas relativas al montaje y cual de los valores está seleccionado. **/ if((this.caracteristicaMontaje == null || this.caracteristicaMontaje == "") && (this.caracteristicaPliego == null || this.caracteristicaPliego == "") && (this.caracteristicaTallaje == null && this.caracteristicaTallaje == "")) { $(".dependientesMontaje").show(); } if(this.caracteristicaMontaje != null && this.caracteristicaMontaje != "") { var partes = this.caracteristicaMontaje.split("_"); var idValorCaracteristicaMontajeSeleccionado = partes[0]; var ordenCaracteristicaMontajeSeleccionado = partes[1]; if(parseInt(ordenCaracteristicaMontajeSeleccionado) != 1) $(".dependientesMontaje").show(); else $(".dependientesMontaje").hide(); } } this.controlDependientesPliego = function() { /**- Función que controla la visualización de elementos y ejecución de acciones que dependen de si hay o no características relacionadas con el pliego **/ if(this.caracteristicaPliego != null && this.caracteristicaPliego != "") { $("#btn_dtf").show(); $(".btn_dtf_abajo").show(); } else { $("#btn_dtf").hide(); $(".btn_dtf_abajo").hide(); } } this.controlDependientesTallaje = function() { /**- Función que controla la visualización de elementos y ejecución de acciones en función de la característica Tallaje **/ $("#btn_carrito").hide(); $("#btn_carrito").prop("disabled",true); $("#btn_tallas").hide(); $("#btn_tallas").prop("disabled",true); $("#spanBtnTallas").hide(); $("#btn_calculando").hide(); $("#btn_presupuesto").hide(); $("#btn_presupuesto").prop("disabled",true); $("#precio").hide(); $("#textoRangoMaximo").html(""); $("#rangoMaximo").hide(); $("#medidasMaximo").hide(); $(".solicita-presupuesto").hide(); if(this.caracteristicaTallaje != null && this.caracteristicaTallaje != "") { if(this.cantidadProductos == 0 || this.cantidadProductos == null) { $(".dependientesTallaje").hide(); this.numeroDisenho = 1; $("#btn-mas-cantidadProducto").prop("disabled",true); $("#comboCantidad").hide(); $("#btn_carrito").hide(); $("#btn_carrito").prop("disabled",true); if(parseInt(eco_productos.hayStock)) { $("#spanBtnTallas").show(); $("#btn_tallas").show(); $("#btn_tallas").prop("disabled",false); } else { $("#btn_tallas").hide(); $("#btn_tallas").prop("disabled",true); $("#spanBtnTallas").hide(); } $("#btn_calculando").hide(); $("#btn_presupuesto").hide(); $("#btn_presupuesto").prop("disabled",true); $("#precio").hide(); $("#textoRangoMaximo").html(""); $("#rangoMaximo").hide(); $("#medidasMaximo").hide(); $(".solicita-presupuesto").hide(); } else { $(".dependientesTallaje").hide(); $("#btn-mas-cantidadProducto").prop("disabled",true); $("#btn-menos-cantidadProducto").prop("disabled",true); $("#btn-mas-disenhoProducto").prop("disabled",true); $("#btn-menos-disenhoProducto").prop("disabled",true); $("#cantidad").prop("disabled",true); $("#comboCantidad").show(); $("#ndesigns").prop("disabled",true); if(parseInt(eco_productos.hayStock)) { $("#btn_carrito").show(); $("#btn_carrito").prop("disabled",false); $("#btn_stock").hide(); } else { $("#btn_carrito").hide(); $("#btn_carrito").prop("disabled",true); $("#btn_stock").show(); } $("#precio").show(); $("#textoRangoMaximo").html(""); $("#rangoMaximo").hide(); $("#medidasMaximo").hide(); $("#cantidad-error").hide(); } } else { if(this.arrayIdsSubcategoriasSinDisenos.includes(parseInt(this.idSubcategoria)) || this.arrayIdsProductosSinDisenos.includes(parseInt(this.idProducto))) $(".dependientesTallaje").hide(); else $(".dependientesTallaje").show(); $("#cantidad").prop("disabled",false); $("#comboCantidad").show(); if(parseInt(eco_productos.hayStock)) { $("#btn_carrito").show(); $("#btn_carrito").prop("disabled",false); $("#btn_stock").hide(); } else { $("#btn_carrito").hide(); $("#btn_carrito").prop("disabled",true); $("#btn_stock").show(); } $("#precio").show(); } if(parseInt(eco_productos.cantidadProductos) > parseInt(eco_productos.rangoMaximo)) { $("#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(); } if(this.preciosRangosMetro != null && !this.validarMedidas()) { $("#btn_carrito").hide(); $("#btn_carrito").prop("disabled",true); $("#btn_calculando").hide(); $("#btn_presupuesto").show(); $("#btn_presupuesto").prop("disabled",false); $("#precio").hide(); $("#rangoMaximo").hide(); $("#medidasMaximo").show(); $(".solicita-presupuesto").show(); } } this.controlDependientesRangoMaxStock = 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",false); $("#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",false); $("#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.arrayIdsSubcategoriasSinDisenos.includes(parseInt(this.idSubcategoria)) && !this.arrayIdsProductosSinDisenos.includes(parseInt(this.idProducto))) { 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 && this.preciosRangosMetro != null) { $(".medidasProducto").show(); this.tipoMedida = this.preciosRangosMetro[0].medida; $("#tipoMedida").html("Medidas"+' ('+this.tipoMedida+')'); } else { $(".medidasProducto").hide(); } if(this.maximoRangoMetro != 0 && this.preciosRangosMetro != null) { switch(this.tipoMedida.toLowerCase()) { case 'mm': medida = $("#ancho").val()/1000 * $("#alto").val()/1000; break; case 'cm': medida = $("#ancho").val()/100 * $("#alto").val()/100; break; case 'dm': medida = $("#ancho").val()/10 * $("#alto").val()/10; break; case 'm': medida = $("#ancho").val() * $("#alto").val(); break; default: break; } 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(); $("#caracteristicaDatoVariable").val(""); this.caracteristicaDatoVariable = null; $.each(this.subcategorias,function(index,value){ if(value.id = $("#idSubcategoriaProducto").val()) { $.each(this.caracteristicas,function(indexCar,valueCar){ if(valueCar.iddependiente == value.id) { if(valueCar.tipoCaracteristica == "ModalDatoVaraible") { eco_productos.caracteristicaDatoVariable = valueCar.id; $("#caracteristicaDatoVariable").val(valueCar.id); } $("#divCaracteristica_"+value.id+"_"+valueCar).show(); } }); } }); this.controlDependientesDatoVariable(); } 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 img = crearElementoClasesTexto("img",null,null,null); img.setAttribute("alt",eco_productos.textoNombreSeo); img.setAttribute("title",eco_productos.textoNombreSeo); img.setAttribute("src",value.imagen); div.appendChild(img); 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("id","imagenPrincipalProducto"); imagen.setAttribute("src",value.imagen); imagen.setAttribute("loading","lazy"); div.appendChild(imagen); if(eco_productos.fondoSeleccionado != null) { $("#imagenPrincipalProducto").css("background",eco_productos.fondoSeleccionado); $("#slide_0").css("background", eco_productos.fondoSeleccionado); miCarrusel.irADiapositiva("slide_0"); } } }); 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++; } }); miCarrusel.destroyCarousel(); miCarrusel = new Carousel(); miCarrusel.constructor(); miCarrusel.iniciar(); } 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.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)); this.ajax.pedir("productosControl.enviarMailPresupuesto",parametros,XJSON,ASYNC,"eco_productos.postEnviarMailPresupuesto"); } 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(); $("#caracteristicaDatoVariable").val(""); this.caracteristicaDatoVariable = null; $.each(this.subcategorias,function(index,value){ if(value.id == eco_productos.idSubcategoria) { if(eco_productos.caracteristicas != null) { $.each(eco_productos.caracteristicas,function(indexCar,valueCar) { if(valueCar.nombreCaracteristica == "Dato variable" && $("#divCaracteristica_"+value.id+"_"+valueCar.id).length > 0) { $("#caracteristicaDatoVariable").val(valueCar.id); eco_productos.caracteristicaDatoVariable = valueCar.id; } $("#divCaracteristica_"+value.id+"_"+valueCar.id).show(); }); } } }); this.controlDependientesDatoVariable(); $.each(this.productos,function(index,value){ if(value.id == valor) { eco_productos.hayStock = value.stock; $("#hayStockProducto").val(value.stock); $("#nombreProducto").val(value.nombreProducto); $("#cantidadDefectoProducto").val(value.cantidad); $("#cantidad").val(value.cantidad); $("#medidaDefAncho").val(value.medidadefancho); $("#medidaMinAlto").val(value.medidaminalto); $("#medidaMinAncho").val(value.medidaminancho); $("#medidaMaxAlto").val(value.medidamaxalto); $("#medidaMaxAncho").val(value.medidamaxancho); $("#alto").val(value.medidadefalto); $("#ancho").val(value.medidadefancho); $("#medidas-error-minimas").html(""); $("#medidas-error-minimas").hide(); } }); $.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 && value.principal == IMAGEN_PRINCAPAL) { eco_productos.imagenProducto = value.imagen; $("#imagenSubcategoriaProducto").val(value.imagen); } }); //Buscamos la imagen de la plantilla del producto seleccionado o por defecto. this.buscarImagenPlantilla(); //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(); } 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.medidaMinAlto != null && parseInt($("#alto").val()) < parseInt(this.medidaMinAlto))) { $("#medidas-error-minimas").html("Mínimo: "+this.medidaMinAlto+this.tipoMedida); $("#medidas-error-minimas").show(); return false; } if((this.medidaMinAncho != null && parseInt($("#ancho").val()) < parseInt(this.medidaMinAncho))) { $("#medidas-error-minimas").html("Mínimo: "+this.medidaMinAncho+this.tipoMedida); $("#medidas-error-minimas").show(); return false; } if((this.medidaMaxAlto != null && parseInt($("#alto").val()) > parseInt(this.medidaMaxAlto))) { $("#medidas-error-minimas").html("Máximo: "+this.medidaMaxAlto+this.tipoMedida); $("#medidas-error-minimas").show(); return false; } if((this.medidaMaxAncho != null && parseInt($("#ancho").val()) > parseInt(this.medidaMaxAncho))) { $("#medidas-error-minimas").html("Máximo: "+this.medidaMaxAncho+this.tipoMedida); $("#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']; } } } var caracteristicas_nuevo = ''; var fondo = null; var textoToolTip = null; if(respuesta.lista.producto.caracteristicas != undefined) { $.each(respuesta.lista.producto.caracteristicas, function(index,value){ if(value.valorCaracteristica != "") caracteristicas_nuevo += value.valorCaracteristica; if(value.tipoCaracteristica != null && value.tipoCaracteristica.indexOf("SelectorColores") != -1 && value.textoToolTip != "" && value.textoToolTip != null) { textoToolTip = value.textoToolTip; caracteristicas_nuevo += ' - ' + textoToolTip; } if(value.tipoCaracteristica != null && value.tipoCaracteristica.indexOf("SelectorColores") != -1 && value.fondo != "") fondo = value.fondo; caracteristicas_nuevo += ' / '; }); //caracteristicas_nuevo = caracteristicas_nuevo.substr(0, caracteristicas_nuevo.length-3); } 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']+" ("+respuesta.lista.producto['tipoMedida']+") / "; caracteristicas_nuevo += "Diseños: "+respuesta.lista.producto['cantidadDisenhos']; if(fondo != null) $(".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)+''); else $(".tabla-listado-productos-minicarrito table").append(''+respuesta.lista.producto.nombre_categoria+' '+respuesta.lista.producto.nombre_subcategoria+' '+respuesta.lista.producto.nombre_producto+'
'+caracteristicas_nuevo+''+respuesta.lista.producto.cantidadTotal+' u.'+formatoPrecioHTML(precio)+''); $(".dropdown-carrito").addClass("movido"); if(respuesta.lista.total < 60) { $(".mensaje-carrito-tefalta span").html(formatoPrecioHTML((60)-respuesta.lista.total)); $(".mensaje-carrito-tefalta").show(); $(".mensaje-carrito-enviogratis").hide(); } else { $(".mensaje-carrito-tefalta").hide(); $(".mensaje-carrito-enviogratis").show(); } $("#carritoPrecioTotal").html(formatoPrecioHTML(respuesta.lista.total)); $("#cantidadProductosCarritoMenu").html(parseInt(respuesta.lista.cuantos)); $(".dropdown-carrito").addClass("movido"); $(".page-cover").show(); } this.postBuscarImagenPlantilla = function(respuesta) { /**- Función que procesa el resultado de una petición. @param respuesta, Objeto Respuesta. **/ //Procesamos la respuesta if(respuesta.tipo == "Respuesta" && respuesta.total == 1) { this.imagenPlantilla = respuesta.lista[0]['imagen']; $("#imagenPlantillaProducto").val(this.imagenPlantilla); $(".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(); this.controlDependientesRangoMaxStock(); this.controlHabilitarDeshabilitar(); this.controlDependientesTallaje(); this.controlDependientesPliego(); this.controlDependientesDatoVariable(); this.controlDependientesMontaje(); } 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) { if(this.caracteristicaTallaje == null || this.caracteristicaTallaje == "") this.calcularPrecio(); else { this.controlHabilitarDeshabilitar(); this.controlDependientesRangoMaxStock(); this.controlDependientesTallaje(); this.controlDependientesPliego(); this.controlDependientesDatoVariable(); this.controlDependientesMontaje(); } } } else this.categorias = null; } this.postCargarCategoriasEspanol = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de lós paneles this.categoriasEspanol = respuesta.lista; //this.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. //if(this.contadorCarga == 6) this.calcularPrecio(); } else this.categoriasEspanol = null; } this.postCargarCaracteristicas = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de lós paneles this.caracteristicas = respuesta.lista; this.totalCaracteristicas = respuesta.total; this.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. if(this.contadorCarga == 7) { if(this.caracteristicaTallaje == null || this.caracteristicaTallaje == "") this.calcularPrecio(); else { this.controlHabilitarDeshabilitar(); this.controlDependientesRangoMaxStock(); this.controlDependientesTallaje(); this.controlDependientesPliego(); this.controlDependientesDatoVariable(); this.controlDependientesMontaje(); } } this.contadorCargaSelectColores++; if(this.contadorCargaSelectColores == 2) { $("#imagenPrincipalProducto").css("background",this.fondoSeleccionado); $("#slide_0").css("background", this.fondoSeleccionado); miCarrusel.irADiapositiva("slide_0"); } } else { this.caracteristicas = null; this.totalCaracteristicas = 0; this.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. if(this.contadorCarga == 7) { if(this.caracteristicaTallaje == null || this.caracteristicaTallaje == "") this.calcularPrecio(); else { this.controlHabilitarDeshabilitar(); this.controlDependientesRangoMaxStock(); this.controlDependientesTallaje(); this.controlDependientesPliego(); this.controlDependientesDatoVariable(); this.controlDependientesMontaje(); } } } } this.postCargarCaracteristicasEspanol = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de lós paneles this.caracteristicasEspanol = respuesta.lista; this.totalCaracteristicasEspanol = respuesta.total; //this.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. //if(this.contadorCarga == 6) this.calcularPrecio(); } else { if(this.imagenPlantilla != null && this.imagenPlantilla != "" && this.imagenPlantilla != undefined) $(".btn_plantilla").show(); else $(".btn_plantilla").hide(); } } //this.postCargarImagenesSubcategorias = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ /* if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de lós paneles this.imagenesSubcategorias = respuesta.lista; } else this.imagenesSubcategorias = null; }*/ this.postCargarImagenesProductos = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de los paneles this.imagenesProductos = respuesta.lista; } else this.imagenesProductos = null; } this.postCargarImagenesProductosNoPeculiar = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de los paneles this.imagenesProductos = respuesta.lista; this.dibujarImagenesProductos(); } else this.imagenesProductos = null; } this.postCargarPrecioNDiseno = function(respuesta) { /**- Función que procesa la respuesta de un apetición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase. this.preciosNDiseno = respuesta.lista; this.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. if(this.contadorCarga == 7) { if(this.caracteristicaTallaje == null || this.caracteristicaTallaje == "") this.calcularPrecio(); else { this.controlHabilitarDeshabilitar(); this.controlDependientesRangoMaxStock(); this.controlDependientesTallaje(); this.controlDependientesPliego(); this.controlDependientesDatoVariable(); this.controlDependientesMontaje(); } } } 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; this.controlHabilitarDeshabilitar(); this.controlDependientesDatoVariable(); this.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. if(this.contadorCarga == 7) { if(this.caracteristicaTallaje == null || this.caracteristicaTallaje == "") this.calcularPrecio(); else { this.controlHabilitarDeshabilitar(); this.controlDependientesRangoMaxStock(); this.controlDependientesTallaje(); this.controlDependientesPliego(); this.controlDependientesDatoVariable(); this.controlDependientesMontaje(); } } } else { this.preciosRangosMetro = null; this.totalPreciosRangosMetro = 0; //$("#ancho").val(""); //$("#alto").val(""); this.controlHabilitarDeshabilitar(); this.controlDependientesDatoVariable(); this.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. if(this.contadorCarga == 7) { if(this.caracteristicaTallaje == null || this.caracteristicaTallaje == "") this.calcularPrecio(); else { this.controlHabilitarDeshabilitar(); this.controlDependientesRangoMaxStock(); this.controlDependientesTallaje(); this.controlDependientesPliego(); this.controlDependientesDatoVariable(); this.controlDependientesMontaje(); } } } } 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) { if(this.caracteristicaTallaje == null || this.caracteristicaTallaje == "") this.calcularPrecio(); else { this.controlHabilitarDeshabilitar(); this.controlDependientesRangoMaxStock(); this.controlDependientesTallaje(); this.controlDependientesPliego(); this.controlDependientesDatoVariable(); this.controlDependientesMontaje(); } } } else this.productos = null; } this.postCargarProductosEspanol = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de lós paneles this.productosEspanol = respuesta.lista; //this.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. //if(this.contadorCarga == 6) this.calcularPrecio(); } else this.productosEspanol = null; } this.postCargarSubcategorias = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de lós paneles this.subcategorias = respuesta.lista; this.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. if(this.contadorCarga == 7) { if(this.caracteristicaTallaje == null || this.caracteristicaTallaje == "") this.calcularPrecio(); else { this.controlHabilitarDeshabilitar(); this.controlDependientesRangoMaxStock(); this.controlDependientesTallaje(); this.controlDependientesPliego(); this.controlDependientesDatoVariable(); this.controlDependientesMontaje(); } } } else this.subcategorias = null; } this.postCargarSubcategoriasEspanol = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de lós paneles this.subcategoriasEspanol = respuesta.lista; //this.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. //if(this.contadorCarga == 6) this.calcularPrecio(); } else this.subcategoriasEspanol = null; } this.postCargarValoresCaracteristicas = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de lós paneles this.valores = respuesta.lista; this.totalValores = respuesta.total; this.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. if(this.contadorCarga == 7) { if(this.caracteristicaTallaje == null || this.caracteristicaTallaje == "") this.calcularPrecio(); else { this.controlHabilitarDeshabilitar(); this.controlDependientesRangoMaxStock(); this.controlDependientesTallaje(); this.controlDependientesPliego(); this.controlDependientesDatoVariable(); this.controlDependientesMontaje(); } } this.contadorCargaSelectColores++; if(this.contadorCargaSelectColores == 2) { $("#imagenPrincipalProducto").css("background",this.fondoSeleccionado); $("#slide_0").css("background", this.fondoSeleccionado); miCarrusel.irADiapositiva("slide_0"); } } else { this.valores = null; this.totalValores = 0; } } this.postCargarValoresCaracteristicasEspanol = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Respuesta con los resultados de la petición. **/ if(respuesta.tipo == "Respuesta" && respuesta.total > 0) { //Cargamos las variables de clase de lós paneles this.valoresEspanol = respuesta.lista; this.totalValoresEspanol = respuesta.total; //this.contadorCarga++; //Calculamos los precios con la cantidad de productos mínima. //if(this.contadorCarga == 6) this.calcularPrecio(); } else { this.valoresEspanol = null; this.totalValoresEspanol = 0; } } this.postEnviarMailPresupuesto = function(respuesta) { /**- Función que procesa la respuesta de una petición ajax asíncrona. @respuesta, Objeto Resultado con los resultados de la petición. **/ $("#presupuestoModal").hide(); iu.comunicarMio(respuesta.valor, respuesta.mensaje, "presupuestoEnviado"); } this.postGuardarPresupuesto = function(respuesta) { /**- Función que procesa el resultado de una petición asíncrona. @param respuesta, Objeto Resultado. **/ if(respuesta.tipo == "Resultado" && respuesta.valor == "Ok") { eco_productos.idPresupuesto = respuesta.idregistro; eco_productos.enviarMailPresupuesto(); $("#presupuestoModal").hide(); } else { //Ocultamos el modal y mostramos error $("#presupuestoModal").hide(); iu.comunicarMio(respuesta.valor, respuesta.mensaje,"productos"); } } } var eco_productos = new Productos(); $(document).ready(function(){ eco_productos.iniciar(); $("#aceptarBotonQueEsEstoProducto").click(function(){ $("#patrocinio").prop("checked",true); $("#que-es-esto").modal("hide"); eco_productos.actualizarCondicionesProducto(); }); $("#aceptarBtnPersonalizacionIndividual").click(function(){ $("#personalizacion").prop("checked",true); $("#personalizacion-individual").modal("hide"); eco_productos.actualizarCondicionesProducto(); }); $("#alto").change(function() { $("#medidas-error-minimas").html(""); $("#medidas-error-minimas").hide(); eco_productos.validarMedidas(); }); $("#ancho").change(function() { $("#medidas-error-minimas").html(""); $("#medidas-error-minimas").hide(); eco_productos.validarMedidas(); }); $("#btn_calculadoraDTFModal").click(function(){ eco_productos.calcularDTFModal(); }); $("#btn_carrito").click(function(){ $("#btn_calculando").hide(); $("#btn_carrito").prop("disabled",true); eco_productos.anadirProductoSesion(); setTimeout(function(){ $("#btn_carrito").prop("disabled",false); },1000); }); $("#btn_dtf").click(function() { $("#errorCalculadoraDTFModal").html(""); $("#anchoCalculadoraDTFModal").val(""); $("#altoCalculadoraDTFModal").val(""); $("#cantidadCalculadoraDTFModal").val(""); $("#avisoscalculadoraDTF").html(""); if(eco_productos.caracteristicas != null) { $.each(eco_productos.caracteristicas,function(index,value){ if(value.tipoCaracteristica == "Pliego") { if(eco_productos.valores != null) { $.each(eco_productos.valores,function(indexVal,valueVal){ if(valueVal.idcaracteristica == value.id) { if($("#caracteristica_"+value.id).val() == valueVal.id) eco_productos.pliego = valueVal.nombreValorCaracteristica; } }); } } }); } $("#tituloDTFModal").html("Tamaño del pliego seleccionado: "+eco_productos.pliego); $("#calculadoraDTFModal").modal("show"); }); $(".btn_dtf_abajo").click(function() { $("#errorCalculadoraDTFModal").html(""); $("#anchoCalculadoraDTFModal").val(""); $("#altoCalculadoraDTFModal").val(""); $("#cantidadCalculadoraDTFModal").val(""); $("#avisoscalculadoraDTF").html(""); if(eco_productos.caracteristicas != null) { $.each(eco_productos.caracteristicas,function(index,value){ if(value.tipoCaracteristica == "Pliego") { if(eco_productos.valores != null) { $.each(eco_productos.valores,function(indexVal,valueVal){ if(valueVal.idcaracteristica == value.id) { if($("#caracteristica_"+value.id).val() == valueVal.id) eco_productos.pliego = valueVal.nombreValorCaracteristica; } }); } } }); } $("#tituloDTFModal").html("Tamaño del pliego seleccionado: "+eco_productos.pliego); $("#calculadoraDTFModal").modal("show"); }); $("#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(); }); $("#btn_tallas").click(function(){ $(".listado-paises").hide(); $(".listado-paises_"+eco_productos.caracteristicaTallaje+":hidden").toggle(); }); $(".calculadoraDTF").on("input",function(){ this.value = this.value .replace(/[^0-9]/g, '') .replace(/^0+/, ''); }); $(".cantidades").on("input", function () { this.value = this.value .replace(/[^0-9]/g, '') .replace(/^0+/, ''); if (this.value.length > 5) { this.value = '99999'; } }); $(".cantidades").change(function () { eco_productos.cogerValoresCaracteristicasTallaje(); }); $(".caracteristicas").click(function() { eco_productos.recargarImprescindiblesActualizarPrecio(); }); $("#diseno").change(function(){ eco_productos.actualizarCondicionesProducto(); }); $("#enlaceModalDisenoMontaje").click(function(){ iu.comunicarMio("","

Número total de diseños

Indica aquí el número total de diseños distintos que necesitas.

En los siguientes pasos del proceso de compra podrás subir los archivos e indicar el tamaño de impresión de cada diseño, así como la cantidad de impresiones que necesitas para cada uno de ellos.

Ten en cuenta que la cantidad final de impresiones se ajustará a las unidades que quepan en el pliego, por lo que dependerá del tamaño de impresión de cada diseño y del tamaño del pliego que hayas escogido. Por ello, dicha cantidad podrá ser inferior o superior a la solicitada.

","productos"); }); $("#enlaceModalMontaje").click(function(){ iu.comunicarMio("","

Montaje del archivo

Si tu archivo de impresión está montado con el tamaño del pliego escogido, preparado para la impresión, selecciona la opción Listo para imprimir. Imprimiremos el archivo recibido, sin retoques ni modificaciones.

Si tienes tu diseño o diseños por separado y quieres que los montemos al tamaño del pliego de impresión, selecciona Necesito montaje. Necesitaremos que nos indiques el tamaño de cada diseño y los dispondremos de forma optimizada en un pliego del tamaño escogido, del que se imprimirán tantas copias como hayas seleccionado. Utiliza nuestra calculadora de pliegos para calcular cuántas copias necesitas para obtener un número de unidades concreto.

Contacta con nosotros en caso de que necesites opciones adicionales de diseño o asistencia a la impresión.

","productos"); }); $("#enlaceModalModalPliego").click(function(){ iu.comunicarMio("","¿Cómo calcular el número de pliegos que necesito para mi impresión DTF?

Utiliza nuestra calculadora de pliegos (bajo el botón de compra)
y obtén de forma cómoda y rápida las unidades idóneas para tu pedido.","productos"); }); $("#enlaceModalModalSemitonos").click(function(){ iu.comunicarMio("","","productos"); }); $("#patrocinio").change(function(){ if($("#patrocinio").prop("checked")) $("#que-es-esto").modal("show"); $("#patrocinio").prop("checked",false); eco_productos.actualizarCondicionesProducto(); }); // Escuchar el evento change en los radios con name="modelo" $('input[name="modelo"]').click(function() { $("#idSubcategoriaProducto").val(this.id); $("#nombreSubcategoriaProducto").val(this.nextSibling.data); //eco_productos.redirigirSubcategoria(); eco_productos.recargarImprescindiblesActualizarCalculadora(); }); // Escuchar el evento change en los radios con name="tamano" $('input[name="tamano"]').click(function() { eco_productos.redirigirProducto(this.value,"0"); }); $("#personalizacion").change(function(){ if($("#personalizacion").prop("checked")) { $("#personalizacion-individual").modal("show"); $("#personalizacion").prop("checked",false); } else { $("#personalizacion").prop("checked",false); eco_productos.actualizarCondicionesProducto(); } }); });