$(document).ready(function () { if($.fn.dataTable != undefined) { $.extend($.fn.dataTable.defaults, { "language": { "sProcessing": "", "sLengthMenu": "", "sZeroRecords": "", "sEmptyTable": "Sin datos", "sInfo": "", "sInfoEmpty": "", "sInfoFiltered": "()", "sSearchPlaceholder": "", "sInfoPostFix": "", "sSearch": "", "sUrl": "", "oPaginate": { "sFirst": " ", "sPrevious": " ", "sNext": " ", "sLast": " " }, } }); } }); function preparaLugar(pais, provincia, poblacion, idInputPais,idInputProvincia, idInputLocalidad) { if(pais > 0) { actualizaProvincias(idInputLocalidad,idInputProvincia, idInputPais, provincia, pais, provincia, poblacion, undefined); } $('#'+idInputPais).on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { //console.log(e, clickedIndex, isSelected, previousValue, $(this).val(), $('#frmServicioProvincia').val(), $('#frmServicioProvincia').selectpicker("val")); actualizaProvincias(idInputLocalidad,idInputProvincia, idInputPais, provincia, undefined, undefined, undefined, undefined, undefined, undefined, true); }); /*$("body").on("change", "#"+idInputPais, function() { actualizaProvincias(idInputLocalidad,idInputProvincia, idInputPais, provincia); });*/ if(provincia > 0) { actualizaCiudades(idInputLocalidad, idInputProvincia, idInputPais,poblacion, pais, provincia, poblacion, $("#"+idInputProvincia).val()*1); } $('#'+idInputProvincia).on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { //console.log(e, clickedIndex, isSelected, previousValue, $(this).val(), $('#frmServicioProvincia').val(), $('#frmServicioProvincia').selectpicker("val")); if (isSelected === null) return; actualizaCiudades(idInputLocalidad, idInputProvincia, idInputPais, undefined, $("#"+idInputPais).val()*1, $("#"+idInputProvincia).val()*1); }); /* $("body").on("change", "#"+idInputProvincia, function() { actualizaCiudades(idInputLocalidad, idInputProvincia, idInputPais, undefined, $("#"+idInputPais).val()*1, $("#"+idInputProvincia).val()*1); });*/ } function actualizaProvincias(idCampoLocalidad, idCampoRegion, idCampoPais, idRegionPreEstablecida, forceIdPais, forceIdRegion,forceIdLocalidad, onFinish, textoSelect, textoLoading, actualizarLocalidad) { if(forceIdPais == undefined) { forceIdPais = $("#"+idCampoPais).val(); } if(forceIdRegion == undefined) { forceIdRegion = $("#"+idCampoRegion).val(); } if(forceIdLocalidad == undefined) { forceIdLocalidad = $("#"+idCampoLocalidad).val(); } if(textoSelect == undefined) { //textoSelect = "Provincia"; textoSelect = ""; } var textoSelectLoc = "Población"; //var textoSelectLoc = ""; if(textoLoading == undefined) { textoLoading = "Cargando..."; } var data = {idPais: forceIdPais}; $("#"+idCampoRegion).empty(); $("#"+idCampoRegion).append( ""); $("#"+idCampoRegion).selectpicker("refresh"); $("#"+idCampoRegion).selectpicker('val', 0); if (actualizarLocalidad) { $("#" + idCampoLocalidad).empty(); $("#" + idCampoLocalidad).append(""); $("#" + idCampoLocalidad).selectpicker("refresh"); $("#" + idCampoLocalidad).selectpicker('val', 0); } var returned = $.ajax( { url: "ajax/Ubicacion.listadoRegiones.php?CSRF="+CSRF, type: "POST", dataType : "json", data : data, error: function(XMLHttpRequest, textStatus, errorThrown) { //ClassBlockUI.abrirBlockUIEstandarMensaje(XMLHttpRequest.responseText, true); }, success: function(data) { $("#"+idCampoRegion).empty(); $("#"+idCampoRegion).append( ""); for(var index in data) { $("#"+idCampoRegion).append( "" ); } $("#" + idCampoRegion).selectpicker("refresh"); if(idRegionPreEstablecida!=undefined && idRegionPreEstablecida !="") { $("#"+idCampoRegion).val(idRegionPreEstablecida); } else { $("#"+idCampoRegion).val(0); } $("#"+idCampoRegion).selectpicker("refresh"); if (actualizarLocalidad) { $("#" + idCampoLocalidad).empty(); $("#" + idCampoLocalidad).append(""); $("#" + idCampoLocalidad).val(0); $("#" + idCampoLocalidad).selectpicker("refresh"); } if(onFinish != undefined && typeof(onFinish) == "function") { onFinish(); } } }); } function actualizaCiudades(idCampoLocalidad, idCampoRegion, idCampoPais, idLocalidadPreEstablecida, forceIdPais, forceIdRegion,forceIdLocalidad, onFinish, textoSelect, textoLoading) { if(forceIdPais == undefined) { forceIdPais = $("#"+idCampoPais).val(); } if(forceIdRegion == undefined) { forceIdRegion = $("#"+idCampoRegion).val(); } if(forceIdLocalidad == undefined) { forceIdLocalidad = $("#"+idCampoLocalidad).val(); } if(textoSelect == undefined) { //textoSelect = "Población"; textoSelect = ""; } if(textoLoading == undefined) { textoLoading = "Cargando..."; } var data = { idPais: forceIdPais, idRegion: forceIdRegion }; $("#"+idCampoLocalidad).empty(); $("#"+idCampoLocalidad).append( ""); $("#"+idCampoLocalidad).selectpicker("refresh"); $("#"+idCampoLocalidad).selectpicker('val', 0); var returned = $.ajax( { url: "ajax/Ubicacion.listadoCiudades.php?CSRF="+CSRF, type: "POST", dataType : "json", data : data, error: function(XMLHttpRequest, textStatus, errorThrown) { //ClassBlockUI.abrirBlockUIEstandarMensaje(XMLHttpRequest.responseText, true); }, success: function(data) { $("#"+idCampoLocalidad).empty(); $("#"+idCampoLocalidad).append( ""); for(var index in data) { $("#"+idCampoLocalidad).append( "" ); } $("#"+idCampoLocalidad).selectpicker("refresh"); if(idLocalidadPreEstablecida!=undefined) { $("#"+idCampoLocalidad).val(idLocalidadPreEstablecida); } else { $("#"+idCampoLocalidad).val(0); } $("#"+idCampoLocalidad).selectpicker("refresh"); if(onFinish != undefined && typeof(onFinish) == "function") { onFinish(); } } }); } /* ClassBlockUI.abrirBlockUIEstandar(contenedorIDAMostrar[, accionCerrar, headerText, extraClass, restaurarElemento]); ClassBlockUI.abrirBlockUIEstandarMensaje(mensaje[, isAlertOrButtons, onClose]); ClassBlockUI.abrirBlockUIConfirm(mensaje, textoBotonAceptar, accionBotonAceptar, textoBotonCancelar[, accionBotonCancelar]); //accionBotonCancelar="close" ClassBlockUI.abrirBlockUIEsperePorFavor:([mensaje]); */ var ClassBlockUI = { restaurarElemento: function() { var data = $("body").data('blockUIEstandar.history'); if (data) { data.el.style.display = data.display; data.el.style.position = data.position; if (data.parent) data.parent.appendChild(data.el); $("body").removeData('blockUIEstandar.history'); $("#"+data.generatedId).remove(); } }, abrirBlockUIEstandar: function(contenedorIDAMostrar, accionCerrar, headerText, extraClass, restaurarElemento) { if(restaurarElemento || restaurarElemento == undefined) { ClassBlockUI.restaurarElemento(); } $(".modalAutoHide").modal("hide"); if($(".modal").length>0){$("body").addClass("modal-open")} if(contenedorIDAMostrar == undefined || $("#"+contenedorIDAMostrar).length == 0){return;} //var blockUIId="blockUI_"+new Date().getTime(); var blockUIId="blockUI_"+contenedorIDAMostrar; extraClass = extraClass == undefined ? "" : extraClass; //modal-lg var object = $("#"+contenedorIDAMostrar); var node = object[0]; var data = {}; $("body").data('blockUIEstandar.history', data); data.el = node; data.parent = node.parentNode; data.display = node.style.display; data.position = node.style.position; data.generatedId = blockUIId; data.object = object; if (data.parent) data.parent.removeChild(node); var header = headerText != undefined ? headerText : ""; var message = ''+ ''; $("body").append(message); var modal = $("#"+blockUIId); modal.find(".modal-body").append(node); //modal.find(".modal-dialog").addClass("jackInTheBox"); modal.on('hidden.bs.modal', function () { ClassBlockUI.restaurarElemento(); }) var myModal = new bootstrap.Modal($(modal)[0], { keyboard: false }) myModal.show(); if(accionCerrar==undefined) //boton cerrar tiene accion por defecto { $("#"+blockUIId+" .btnCerrarModalEquis").click(function(){ myModal.hide(); if($(".modal").length>0){$("body").addClass("modal-open")} }); } else if(accionCerrar==false) //oculta el boton cerrar { $("#"+blockUIId+" .btnCerrarModalEquis").hide(); } else //boton cerrar con accion especial { $("#"+blockUIId+" .btnCerrarModalEquis").click(accionCerrar); } return modal; }, abrirBlockUIEstandarMensaje: function(mensaje, isAlertOrButtons, onClose, extraClass, title) { $(".modalAutoHide").modal("hide"); if($(".modal").length>0){$("body").addClass("modal-open")} var blockUIId="blockUI_"+new Date().getTime(); extraClass = extraClass == null || extraClass == undefined ? "" : extraClass; //modal-lg title = title == null || title == undefined ? "Aviso" : title; if(isAlertOrButtons==undefined) isAlertOrButtons=false; if(onClose==undefined) onClose=false; var botonera = ""; var botoneraEspecial = false; if(isAlertOrButtons === false) { botonera = ""; } else if (isAlertOrButtons === true) { botonera = "
Aceptar
"; } else { botoneraEspecial = true; botonera = "
"; for(var index in isAlertOrButtons) { botonera += " "+isAlertOrButtons[index]["text"]+" "; } botonera += "
"; } var message = ''; message += ''; $("body").append(message); var modal = $("#"+blockUIId); //modal.find(".modal-dialog").addClass("zoomInDown"); modal.on('hidden.bs.modal', function () { modal.remove(); }) var myModal = new bootstrap.Modal($(modal)[0], { keyboard: false }); myModal.show(); //Acciones de los botones especiales if(botoneraEspecial) { for(var index in isAlertOrButtons) { if(isAlertOrButtons[index]["action"] == "close") { isAlertOrButtons[index]["action"] = function(){ myModal.hide(); if($(".modal").length>0){$("body").addClass("modal-open")} }; } $("#"+blockUIId+" ."+index).unbind("click").click(isAlertOrButtons[index]["action"]); } } var fnOnClose; if(onClose==false) { fnOnClose = function(){ myModal.hide(); if($(".modal").length>0){$("body").addClass("modal-open")} }; } else if (typeof onClose === "function") { fnOnClose = function(){onClose()}; } else if (onClose == "location") { fnOnClose = function(){window.location.reload()}; } else if (onClose == "back") { fnOnClose = function(){history.go(-1);}; } else { if(onClose.indexOf("/") !=0 && onClose.indexOf("http") !=0) { onClose = "/"+onClose; } fnOnClose = function(){window.location = onClose}; } $("#"+blockUIId+" .btnCerrarBlockUIAlert, #"+blockUIId+" .btnCerrarModalEquis").unbind("click").click(fnOnClose); return modal; }, abrirBlockUIConfirm: function(mensaje, textoAceptar, accionAceptar, textoCancelar, accionCancelar, extraClass, title) { accionCancelar = accionCancelar == undefined ? "close" : accionCancelar; extraClass = extraClass == null || extraClass == undefined ? "" : extraClass; var buttons = { "btnAceptarBUI_CONFIRM": { "text": textoAceptar, "action": accionAceptar }, "btnCancelarBUI_CONFIRM": { "text": textoCancelar, "action": accionCancelar } }; return ClassBlockUI.abrirBlockUIEstandarMensaje(mensaje, buttons, false, extraClass, title); }, abrirBlockUIEsperePorFavor: function(mensaje) { if(mensaje == undefined){ mensaje = "
Loading ... Espere por favor...
"; }; return ClassBlockUI.abrirBlockUIEstandarMensaje(mensaje, undefined, false, "modalEspere"); } }; class Usuario { static initCambiarContrasena() { $("body").on("click", ".btnGuardarContrasena", function (e) { e.preventDefault(); const opciones_validacion_password = { showLabels: false, rules: { formContrasenaNueva2: { equalTo: "#formContrasenaNueva", minlength: 6 }, formContrasenaNueva: {minlength: 6} } }; Utils.sendStandardAjax("frmModificarContrasena", "ajax/Usuarios.modificarPassword.php?CSRF="+CSRF, {opcionesValidacion: opciones_validacion_password, successCallback: null, resetFormOnSuccess: true}); }); } static initNuevaPass() { $(document).ready(function() { $(".btnEnviarNuevoPass").click(Usuario.guardaClaveOlvidoPass); $("#password2").pressEnter(Usuario.guardaClaveOlvidoPass); $("#form_email_olvido").pressEnter(Usuario.enviarOlvido); $(".btnEnviarEmailOlvidoPass").click(Usuario.enviarOlvido); }); } static guardaClaveOlvidoPass() { var opciones_validacion= { showLabels: false, rules: { passwordOlvido: { required: true, minlength: 6 }, password2: {equalTo: "#passwordOlvido"} } }; Utils.sendStandardAjax("form_olvido", "ajax/Usuarios.guardaClave.php?CSRF="+CSRF, {opcionesValidacion: opciones_validacion, successCallback: "https://www.sunreuse.eu/es/residuos-aparatos-electricos.html"}); } static enviarOlvido() { Utils.sendStandardAjax("frmEnviarOlvido", "ajax/Usuarios.olvidarContrasena.php", {successCallback: null, resetFormOnSuccess: true}); } static initAdhesionPaso1(pais, provincia, localidad, paisNotificacion, provinciaNotificacion, localidadNotificacion, paisRepresentante, provinciaRepresentante, localidadRepresentante, paisPersonaContacto, provinciaPersonaContacto, localidadPersonaContacto) { $(document).ready(function() { $("#frmAdhesion1CopiarDireccion").trigger("change"); //preparaLugar(pais, provincia, localidad, "frmAdhesion1Pais", "frmAdhesion1Provincia", "frmAdhesion1Poblacion"); //preparaLugar(paisNotificacion, provinciaNotificacion, localidadNotificacion, "frmAdhesion1NotificacionPais", "frmAdhesion1NotificacionProvincia", "frmAdhesion1NotificacionPoblacion"); //preparaLugar(paisRepresentante, provinciaRepresentante, localidadRepresentante, "frmAdhesion1RepresentantePais", "frmAdhesion1RepresentanteProvincia", "frmAdhesion1RepresentantePoblacion"); //preparaLugar(paisPersonaContacto, provinciaPersonaContacto, localidadPersonaContacto, "frmAdhesion1ContactoRepresentantePais", "frmAdhesion1ContactoRepresentanteProvincia", "frmAdhesion1ContactoRepresentantePoblacion"); $('#frmAdhesion1Pais').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { if (isSelected === null) return; if ($(this).val() == 28) $(".datos-representante").addClass("d-none"); else $(".datos-representante").removeClass("d-none"); }); }); $("#frmAdhesion").on("change", "#frmAdhesion1CopiarDireccion", function(e) { if ($(this).is(":checked")) { $(".group-notificacion").addClass("d-none"); //$("#frmAdhesion1NotificacionPais").html($("#frmAdhesion1Pais").html()); //$("#frmAdhesion1NotificacionProvincia").html($("#frmAdhesion1Provincia").html()); //$("#frmAdhesion1NotificacionPoblacion").html($("#frmAdhesion1Poblacion").html()); //$("#frmAdhesion1NotificacionPais .bs-title-option").remove(); $("#frmAdhesion1NotificacionProvincia .bs-title-option").remove(); $("#frmAdhesion1NotificacionPoblacion .bs-title-option").remove(); $("#frmAdhesion1NotificacionPais").val($("#frmAdhesion1Pais").val()); $("#frmAdhesion1NotificacionProvincia").val($("#frmAdhesion1Provincia").val()); $("#frmAdhesion1NotificacionPoblacion").val($("#frmAdhesion1Poblacion").val()); $("#frmAdhesion1NotificacionPais").selectpicker('refresh'); //$("#frmAdhesion1NotificacionProvincia").selectpicker('refresh'); //$("#frmAdhesion1NotificacionPoblacion").selectpicker('refresh'); } else { $(".group-notificacion").removeClass("d-none"); } }); $("#btns-adhesion").on("click", "#btn-siguiente", function(e) { e.preventDefault(); Utils.sendStandardAjax("frmAdhesion", "ajax/Usuarios.adhesion.php?CSRF="+CSRF, {successCallback: "data-location", resetFormOnSuccess: true}); }); } static initAdhesionPaso2(paises, actividades) { Usuario.paises = paises; Usuario.actividades = actividades; $("body").on("change", "input[name='frmAdhesion2TipoVenta[]']", function(e) { $("input[name='frmAdhesion2TipoVenta[]']").removeClass("error"); const inpHogar = $("#frmAdhesion2TipoVenta2"); const inpNoHogar = $("#frmAdhesion2TipoVenta3"); if (inpHogar.is(":checked") || inpNoHogar.is(":checked")) { $(".bloque-pais").removeClass("pais-oculto"); } else { $(".bloque-pais").addClass("pais-oculto"); } }); $("body").on("change", "input[name='frmAdhesion2Criterio']", function(e) { $("input[name='frmAdhesion2Criterio']").removeClass("error"); }); $("#btns-adhesion").on("click", "#btn-siguiente", function(e) { e.preventDefault(); let extraErrores = ""; if ($("input[name='frmAdhesion2Criterio']:checked").length == 0) { $("input[name='frmAdhesion2Criterio']").addClass("error"); extraErrores += extraErrores == "" ? "" : "
"; extraErrores += "Debe seleccionar el criterio de estimación anual"; } if ($("input[name='frmAdhesion2TipoVenta[]']:checked").length == 0) { $("input[name='frmAdhesion2TipoVenta[]']").addClass("error"); extraErrores += extraErrores == "" ? "" : "
"; extraErrores += "Debe seleccionar el tipo de venta"; } const inpHogar = $("#frmAdhesion2TipoVenta2"); const inpNoHogar = $("#frmAdhesion2TipoVenta3"); if ((inpHogar.is(":checked") || inpNoHogar.is(":checked")) && Usuario.paises.filter(Boolean).length == 0) { extraErrores += extraErrores == "" ? "" : "
"; extraErrores += "Debe añadir al menos 1 país de venta"; } if (Usuario.actividades.filter(Boolean).length == 0) { extraErrores += extraErrores == "" ? "" : "
"; extraErrores += "Debe añadir al menos 1 actividad"; } let prepareFormData = function() { const formData = new FormData($("#frmAdhesion")[0]); $.each(Usuario.paises.filter(Boolean), function(i, e) { formData.append('paises[]', JSON.stringify(e)); }); $.each(Usuario.actividades.filter(Boolean), function(i, e) { formData.append('actividades[]', JSON.stringify(e)); }); return formData; }; Utils.sendStandardAjax("frmAdhesion", "ajax/Usuarios.adhesion.php?CSRF=" + CSRF, { successCallback: "data-location", extraErroresForm: extraErrores, //opcionesValidacion: {showLabels: false, rules: {'frmAdhesion2TipoVenta[]': {required: true, minlength: 1}}}, prepareFormData: prepareFormData }); }); $("body").on("click", ".icon-eliminar-pais", function(e) { e.preventDefault(); const id = $(this).attr("data-id"); const index = Usuario.paises.findIndex(x => x != undefined && x.id == id); if (index >= 0) { Usuario.paises.splice(index, 1); tablatablaPaises.row( $(this).parents('tr') ).remove().draw(); } }); $("#frmAdhesion").on("click", "#btn-anadir-pais", function(e) { e.preventDefault(); let extraErrores = ""; const pais = $("#frmAdhesion2PaisDest").val(); const tipoDoc = $("#frmAdhesion2TipoDocumento").val(); const numDocumento = $("#frmAdhesion2NumDocumento").val().trim(); const nombre = $("#frmAdhesion2Nombre").val().trim(); if (pais == 0 || pais == "") { extraErrores += extraErrores == "" ? "" : "
"; extraErrores += "Selecciona un país"; } if (tipoDoc == 0 || tipoDoc == "") { extraErrores += extraErrores == "" ? "" : "
"; extraErrores += "Selecciona un tipo"; } if (numDocumento == "") { extraErrores += extraErrores == "" ? "" : "
"; extraErrores += "Debe escribir el número de documento"; } if (nombre == "") { extraErrores += extraErrores == "" ? "" : "
"; extraErrores += "Debe introducir un nombre válido"; } if (extraErrores != "") { ClassBlockUI.abrirBlockUIEstandarMensaje("Por favor revise los campos marcados en distinto color porque se han detectado los siguientes errores

"+extraErrores, true, undefined, ""); return; } let id = 0; const paisTxt = $("#frmAdhesion2PaisDest option:selected").text(); const representante = "("+tipoDoc+": "+numDocumento+") "+nombre; $.each(Usuario.paises, function(i, e) { id = Math.max(id, e.id); }); id++; Usuario.paises.push({id: id, pais: pais, paisTxt: paisTxt, tipoDoc: tipoDoc, numDoc: numDocumento, nombre: nombre}); $("#frmAdhesion2PaisDest").selectpicker('val', 0); $("#frmAdhesion2TipoDocumento").selectpicker('val', 0); $("#frmAdhesion2NumDocumento, #frmAdhesion2Nombre").val(""); tablatablaPaises.row.add([ "", paisTxt, representante, ] ).draw( false ); }); $("body").on("click", "#btn-anadir-actividad", function(e) { e.preventDefault(); ClassBlockUI.abrirBlockUIEstandar("bloqueNuevaActividad", undefined, "Añadir Producto", "modal630"); }); $("body").on("click", ".actividad-producto-eliminar", function(e) { e.preventDefault(); const element = $(this); const id = element.attr("data-id"); const categoria = element.parents(".actividad"); const subcategoria = element.parents(".actividad-categoria-datos"); const index = Usuario.actividades.findIndex(x => x != undefined && x.id == id); if (index >= 0) { Usuario.actividades.splice(index, 1); let elementProducto = element.parents(".actividad-producto"); element.parents(".actividad-producto-datos").remove(); if (elementProducto.find(".actividad-producto-datos") .length == 0) { elementProducto.remove(); } if (subcategoria.find(".actividad-producto").length == 0) { subcategoria.remove(); if (categoria.find(".actividad-categoria-datos").length == 0) { categoria.remove(); } } } }); } static initNuevaActividad(categorias, subcategorias) { Usuario.categorias = categorias; Usuario.subcategorias = subcategorias; $(document).ready(function() { $('#frmActividadCategoria').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { if (isSelected === null) return; const categoria = $(this).val(); const elementSubcategoria = $("#frmActividadSubcategoria"); const elementProductos = $("#frmActividadProducto"); elementSubcategoria.empty(); if (Usuario.subcategorias[categoria] != undefined && Object.keys(Usuario.subcategorias[categoria]).length > 0) { elementSubcategoria.prop("disabled", false); elementSubcategoria.append( ""); $.each(Usuario.subcategorias[categoria], function (i, e) { elementSubcategoria.append( "" ); }); elementProductos.val("").data("item", null); /*elementProductos.empty(); elementProductos.append( ""); elementProductos.selectpicker("refresh");*/ } else { elementSubcategoria.prop("disabled", true); elementSubcategoria.append( ""); //cargarProductos(categoria); } elementSubcategoria.val(""); elementSubcategoria.selectpicker("refresh"); }); $('#frmActividadSubcategoria').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { if (isSelected === null) return; const subcategoria = $(this).val(); $("#frmActividadProducto").val("").data("item", null); //cargarProductos(subcategoria); }); $("#frmActividadProducto").autocomplete({ //source: "ajax/Productos.buscar.php", source: function(request, response) { let categoria = $('#frmActividadCategoria').val(); let subcategoria = $('#frmActividadSubcategoria').val(); $.ajax({ url: "ajax/ProductosCategoria.buscar.php", data: { CSRF: CSRF, term: request.term, categoria: categoria, subcategoria: subcategoria, }, type: "GET", // This will depend on how you set up your web service dataType: "json", success: function (data) { response( data ); } }); }, minLength: 3, response: function( event, ui ) { $(event.target).removeClass("ui-autocomplete-loading"); }, change: function (event, ui) { //$("#rangosPrecios").addClass("d-none"); $(event.target).removeClass("ui-autocomplete-loading"); if(!ui.item) { $(event.target).data("item", null); $(event.target).val(""); return; } }, select: function (event, ui) { $(event.target).data("item", ui.item); } }); }); function cargarProductos(idCategoria) { const elementProductos = $("#frmActividadProducto"); elementProductos.empty(); elementProductos.append( ""); elementProductos.selectpicker("refresh"); elementProductos.val(""); elementProductos.selectpicker("refresh"); var returned = $.ajax( { url: "ajax/Productos.cargar.php?CSRF="+CSRF, type: "POST", dataType : "json", data : { idCategoria: idCategoria }, success: function(data) { elementProductos.empty(); elementProductos.append( ""); $.each(data["productos"], function(i, e) { elementProductos.append( "" ); }); elementProductos.selectpicker("refresh"); } }); } $("body").on("click", "#frmActividadAnadir", function(e) { e.preventDefault(); let opciones_validacion = {showLabels: false}; const validacion = $("#frmActividad").validate(opciones_validacion); if ($(this).hasClass("contacto")) { var successCallback = function (data, textStatus, XMLHttpRequest) { if (data["error_number"] < 0) { ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, undefined); } else { $(".modal").modal("hide"); ClassBlockUI.abrirBlockUIEstandarMensaje(data["error_message"], true, undefined); $("#frmActividad")[0].reset(); validacion.resetForm(); } }; Utils.sendStandardAjax("frmActividad", "ajax/Actividad.contacto.php", { successCallback: successCallback }); } else { var extraErrores = ""; const itemP = $("#frmActividadProducto").data("item"); if (itemP == undefined || itemP == null || itemP.id == undefined && $("#frmActividadProducto").val() != "") { extraErrores += "Selecciona el producto"; } if (!$("#frmActividad").valid() || extraErrores != "") { ClassBlockUI.abrirBlockUIEstandarMensaje("Por favor revise los campos marcados en distinto color porque se han detectado los siguientes errores

" + validacion.invalidMessages("
")+extraErrores, true, undefined, ""); return; } const categoria = $("#frmActividadCategoria").val(); const categoriaTxt = $("#frmActividadCategoria option:selected").text(); const subcategoria = $("#frmActividadSubcategoria").val(); const subcategoriaTxt = $("#frmActividadSubcategoria option:selected").text(); //const producto = $("#frmActividadProducto").val(); //const productoTxt = $("#frmActividadProducto option:selected").text(); const producto = itemP.id; const productoTxt = itemP.label; const origen = $("#frmActividadOrigen").val(); const origenTxt = $("#frmActividadOrigen option:selected").text(); const unidades = $("#frmActividadUnidades").val(); const kilos = $("#frmActividadKilos").val(); const marcas = $("#frmActividadMarcas").val(); let id = 0; $.each(Usuario.actividades, function (i, e) { id = Math.max(id, e.id); }); id++; Usuario.actividades.push({ id: id, idCategoria: categoria, idSubcategoria: subcategoria, idProducto: producto, idOrigen: origen, unidades: unidades, kilos: kilos, marcas: marcas }); if ($(".actividad[data-id='" + categoria + "']").length == 0) { $("#actividades").append("
" + categoriaTxt + "
"); } if ($(".actividad[data-id='" + categoria + "'] .actividad-categoria-datos[data-id='" + subcategoria + "']").length == 0) { $(".actividad[data-id='" + categoria + "']").append("
" + subcategoriaTxt + "
"); } if ($(".actividad[data-id='" + categoria + "'] .actividad-categoria-datos[data-id='" + subcategoria + "'] .actividad-productos").length == 0) { $(".actividad[data-id='" + categoria + "'] .actividad-categoria-datos[data-id='" + subcategoria + "']").append("
"); } if ($(".actividad[data-id='" + categoria + "'] .actividad-categoria-datos[data-id='" + subcategoria + "'] .actividad-productos .actividad-producto[data-id='" + producto + "']").length == 0) { $(".actividad[data-id='" + categoria + "'] .actividad-categoria-datos[data-id='" + subcategoria + "'] .actividad-productos").append("
" + productoTxt + "
"); } const elemProductos = $(".actividad[data-id='" + categoria + "'] .actividad-categoria-datos[data-id='" + subcategoria + "'] .actividad-productos .actividad-producto[data-id='" + producto + "']"); let marcasTxt = ""; if ($(".gestinaBody").length > 0) { marcasTxt += "
Marca/s: "+marcas; } elemProductos.append('
Origen: ' + origenTxt + marcasTxt +'
Unidades: ' + unidades + '
Kilos: ' + kilos + '
'); $("#frmActividad")[0].reset(); $("#frmActividad .selectpicker").selectpicker('val', ""); $(".modal").modal("hide"); $(".actividad-producto-eliminar:not(.tooltipstered)").tooltipster({ animation: 'grow', interactive: true, position: 'bottom' }); } }); } static initAdhesionPaso3() { $("#btns-adhesion").on("click", "#btn-siguiente", function(e) { e.preventDefault(); Utils.sendStandardAjax("frmAdhesion", "ajax/Usuarios.adhesion.php?CSRF="+CSRF, {successCallback: "data-location", resetFormOnSuccess: true}); }); } static initAdhesionPaso4() { $(document).ready(function() { $("#frmAdhesion4CopiarResponsable:checked").trigger("change"); $("#frmAdhesion4CopiarContacto:checked").trigger("change"); $("#frmAdhesion4CopiarContabilidad:checked").trigger("change"); }); $("#frmAdhesion").on("change", "#frmAdhesion4CopiarResponsable, #frmAdhesion4CopiarContacto, #frmAdhesion4CopiarContabilidad", function(e) { const group = $(this).attr("data-group"); if ($(this).is(":checked")) { $(".form-group-"+group.toLowerCase()).addClass("d-none"); } else { $(".form-group-"+group.toLowerCase()).removeClass("d-none"); } $.each($(".form-group-representante"), function (i, e) { const input = $(e).find("input"); let id = input.attr("id"); $("#"+id.replace("Representante", group)).val(input.val()); }); }); $("#btns-adhesion").on("click", "#btn-siguiente", function(e) { e.preventDefault(); Utils.sendStandardAjax("frmAdhesion", "ajax/Usuarios.adhesion.php?CSRF="+CSRF, {successCallback: "data-location", resetFormOnSuccess: true}); }); } static initAdhesionPaso5() { $("#btns-adhesion").on("click", "#btn-siguiente", function(e) { e.preventDefault(); let extraErrores = ""; /*if (!$("#frmAdhesion5NoAEEMercado").is(":checked") && !$("#frmAdhesion5NoAEEProductor").is(":checked") && !$("#frmAdhesion5AEEDeclarado").is(":checked")) { extraErrores += extraErrores == "" ? "" : "
"; extraErrores += ""; }*/ /*if (!$("#frmAdhesion5Comunicacion").is(":checked")) { extraErrores += extraErrores == "" ? "" : "
"; extraErrores += "Debe aceptar que, con mi adhesión al SCRAP SUNREUSE ASSOCIATION, la entidad a la que represento realizará una Comunicación Complementaria en la que quedaran regularizadas mis Comunicaciones Trimestrales de los AEE puestos en el mercado nacional hasta la fecha y la aplicación de la Tasa RAEE sobre estos. "; }*/ if (!$("#politica").is(":checked")) { extraErrores = $("#politica").attr("title"); } Utils.sendStandardAjax("frmAdhesion", "ajax/Usuarios.adhesion.php?CSRF=" + CSRF, { successCallback: "data-location", resetFormOnSuccess: true, extraErroresForm: extraErrores }); }); } static tableCallback() { $('.icon-tabla:not(.tooltipstered)').tooltipster({ position: ['bottom'], theme: ['tooltipster-noir', 'tooltipster-noir-customized'] }); } static initTrimestres(productosA, importeMinimoTrimestre) { function countDecimals(value) { let text = value.toString() // verify if number 0.000005 is represented as "5e-6" if (text.indexOf('e-') > -1) { let [base, trail] = text.split('e-'); let deg = parseInt(trail, 10); return deg; } // count decimals for number in representation like "0.123456" if (Math.floor(value) !== value) { return value.toString().split(".")[1].length || 0; } return 0; } const productos = productosA; const origenesGratis = [4]; Usuario.productos = productosA; $(document).ready(function() { onChangeRange(); $(".input-unidades-kilos:not([readonly])").trigger("keyup"); $('#anyo').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { if (isSelected === null) return; window.location = "https://www.sunreuse.eu/es/usuario/trimestres.html?anyo="+$(this).val(); }); }); function onChangeRange(element) { let elements = element == undefined ? $('select.input-rango-peso') : element; elements.on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { if (isSelected === null) return; const elementProducto = $(this).parents(".actividad-producto-datos"); actualizaPrecioProducto(elementProducto); }); } $("body").on("click", ".btn-anadir-actividad", function(e) { e.preventDefault(); ClassBlockUI.abrirBlockUIEstandar("bloqueNuevaActividad", undefined, "Añadir Producto", "modal630"); $("#frmActividadAnadir").addClass("contacto"); }); $("body").on("click", ".eliminar-producto-trimestre", function () { const itemTrimestre = $(this).parents(".item-trimestre"); $(this).parents(".actividad-producto-datos").remove(); itemTrimestre.find(".input-kilos").eq(0).trigger("keyup"); itemTrimestre.find(".input-unidades").eq(0).trigger("keyup"); }); $("body").on("keyup", ".input-unidades-kilos", function () { //const trimestre = $(this).parents(".item-trimestre").attr("data-trimestre"); const elementProducto = $(this).parents(".actividad-producto-datos"); $(this).removeClass("error"); actualizaPrecioProducto(elementProducto); }); $("#trimestres").on("click", ".btn-descargar-pdf, .btn-descargar-csv", function(e) { const btnClick = $(this); const url = "descargar-trimestre.php?anyo="+btnClick.attr("data-anyo")+"&trimestre="+btnClick.attr("data-trimestre")+"&tipo="+btnClick.attr("data-tipo"); if (btnClick.attr("data-editable") == 1) { if (btnClick.attr("data-guardado") == 0) { ClassBlockUI.abrirBlockUIEstandarMensaje("Para poder descargar el %1% antes debe guardar los datos.".replace("%1%", btnClick.attr("data-tipo")), true, undefined, "modal681"); return; } const btnEnviar = $(this).parents(".item-trimestre").find(".btn-enviar-datos-trimestre"); ClassBlockUI.abrirBlockUIConfirm("Para poder descargar el documento %1% hay que guardar primero los datos. Si ya están guardados puede darle a descargar, si no están guardados y pulsa descargar se verá un documento sin actualizar. Tenga en cuenta que si Envia Datos fuera del periodo de edición ya no podrá volver a modificar el trimestre.".replace("%1%", btnClick.attr("data-tipo")), "Enviar Datos", function (){$(".modal").modal("hide"); btnEnviar.trigger("click")}, "Descargar", function (){ $(".modal").modal("hide"); window.location = url; }, "modal681"); return; } window.location = url; }); $("#trimestres").on("click", ".btn-enviar-datos-trimestre", function(e) { e.preventDefault(); const trimestre = $(this).parents(".item-trimestre"); let extraErrores = ""; let actividades = []; let hayErrorUdKilos = false; $.each(trimestre.find(".actividad-producto-datos"), function (i, e) { let unidades = $(e).find(".input-unidades").val().replace(",", "."); let kilos = $(e).find(".input-kilos").val().replace(",", "."); if (unidades == 0 && kilos > 0) { hayErrorUdKilos = true; $(e).find(".input-unidades").addClass("error"); } if (kilos == 0 && unidades > 0) { hayErrorUdKilos = true; $(e).find(".input-kilos").addClass("error"); } }); if (hayErrorUdKilos) { ClassBlockUI.abrirBlockUIEstandarMensaje("Debe escribir las unidades/kilos marcados de color rojo", true, undefined); return; } let hayError = false; $.each(trimestre.find(".actividad-producto-datos"), function (i, e) { let unidades = $(e).find(".input-unidades").val().replace(",", "."); let kilos = $(e).find(".input-kilos").val().replace(",", "."); let idProducto = $(e).parents(".actividad-producto").attr("data-id"); let idOrigen = $(e).find(".input-origen").attr("data-id"); let idRangoValor = $(e).find("select.input-rango-peso").val(); let kilosPorItemActual = unidades> 0 ? kilos/unidades : 0; let rangoValor = $(e).find("select.input-rango-peso"); let valorRangoValor = rangoValor.selectpicker('val'); let rangoMax = rangoValor.find("[value="+valorRangoValor+"]").attr("data-rangoMax"); let rangoMin = rangoValor.find("[value="+valorRangoValor+"]").attr("data-rangoMin"); rangoValor.removeClass("error"); //Comprobamos si esta o no fuera de rango (solo si hay peso, es decir ha puesto unidades y kilos totales) if(kilosPorItemActual> 0) { if(kilosPorItemActual*1000 > rangoMax || kilosPorItemActual*1000 < rangoMin) { let nombreProducto = $(e).closest(".actividad-producto").find(".actividad-producto-nombre").text(); rangoValor.addClass("error"); hayError = true; ClassBlockUI.abrirBlockUIEstandarMensaje("El rango que has elegido para el producto %1% no se correponde con los datos introducidos en Unidades (%2%) y Kilos Totales (%3%) puesto que el Peso Medio del Aparato sale a %4% Kg/Ud".replace("%1%", nombreProducto).replace("%2%", unidades).replace("%3%", kilos).replace("%4%", kilosPorItemActual.toFixed(2)), true, undefined); return false; } } if (isNaN(unidades) || unidades < 0 || unidades == "") { $(e).find(".input-unidades").addClass("error"); hayError = true; ClassBlockUI.abrirBlockUIEstandarMensaje("Debe introducir las unidades", true, undefined); return false; } if (isNaN(kilos) || kilos < 0 || kilos == "") { hayError = true; $(e).find(".input-kilos").addClass("error"); ClassBlockUI.abrirBlockUIEstandarMensaje("Debe introducir los kilos", true, undefined); return false; } if (unidades == 0 && kilos > 0) { hayError = true; $(e).find(".input-unidades").addClass("error"); ClassBlockUI.abrirBlockUIEstandarMensaje("Debe introducir las unidades", true, undefined); return false; } if (kilos == 0 && unidades > 0) { hayError = true; $(e).find(".input-kilos").addClass("error"); ClassBlockUI.abrirBlockUIEstandarMensaje("Debe introducir los kilos", true, undefined); return false; } if (actividades.find(element => element.id == idProducto && element.idOrigen == idOrigen && element.idRangoValor == idRangoValor) != undefined) { hayError = true; ClassBlockUI.abrirBlockUIEstandarMensaje("No puedes tener repetidos los rangos de peso por origen", true, undefined); return false; } actividades.push({ id: idProducto, idOrigen: idOrigen, idRangoValor: idRangoValor, unidades: unidades, kilos: kilos }); }); if (hayError) return; if (actividades.filter(Boolean).length == 0) { extraErrores += extraErrores == "" ? "" : "
"; extraErrores += "Debe añadir al menos 1 actividad"; } let prepareFormData = function() { const formData = new FormData(); $.each(actividades.filter(Boolean), function(i, e) { formData.append('actividades[]', JSON.stringify(e)); }); return formData; }; let extraAjax = ""; if ($("#anyo").length > 0) { extraAjax += "&anyo="+$("#anyo").val(); } Utils.sendStandardAjax("XXXX", "ajax/Trimestre.guardar.php?CSRF=" + CSRF+"&trimestre="+trimestre.attr("data-trimestre")+extraAjax, { successCallback: "data-location", extraErroresForm: extraErrores, prepareFormData: prepareFormData }); }); $("body").on("click", ".btn-anadir-produco-trimestre", function(e) { e.preventDefault(); $("#nuevoOrigenProducto").val($(this).attr("data-producto")); $("#nuevoOrigenTrimestre").val($(this).attr("data-trimestre")); $("#nuevoOrigen").val('').selectpicker("refresh"); ClassBlockUI.abrirBlockUIEstandar("bloqueNuevoOrigen", undefined, "Añadir", "modal356"); }); $("body").on("click", ".btn-nuevo-origen", function(e) { e.preventDefault(); const idOrigen = $("#nuevoOrigen").val()*1; const idProducto = $("#nuevoOrigenProducto").val()*1; const idTrimestre = $("#nuevoOrigenTrimestre").val()*1; if (productos[idProducto] == undefined) return; /*if($("#trimestre_"+idTrimestre).find(".actividad-producto[data-id='"+idProducto+"']").find(".input-origen[data-id='"+idOrigen+"']").length > 0) { ClassBlockUI.abrirBlockUIEstandarMensaje("No puedes añadir un origen si ya existe", true, undefined); return; }*/ if (idOrigen > 0) { const producto = productos[idProducto]; const elementProductos = $("#trimestre_"+idTrimestre).find(".actividad-producto[data-id='"+idProducto+"']").find(".actividad-origenes-producto"); const ocultarRangos = producto["rangos"].length == 1 && producto["rangos"][0] != undefined ? true : false; let htmlNuevo = '
'; htmlNuevo += '
'; htmlNuevo += ''; htmlNuevo += ''; htmlNuevo += '
'; htmlNuevo += '
'; htmlNuevo += '
'; htmlNuevo += '
'; htmlNuevo += ''; htmlNuevo += ''; htmlNuevo += ''; htmlNuevo += '
'; //FIN COL RANGO htmlNuevo += '
'; htmlNuevo += ''; htmlNuevo += ''; htmlNuevo += '
'; htmlNuevo += '
'; htmlNuevo += ''; htmlNuevo += ''; htmlNuevo += '
'; const unidadKilo = producto["tipo"] == 1 ? "€/Unidad" : "€/Kg"; htmlNuevo += '
'; htmlNuevo += ''; htmlNuevo += ''; htmlNuevo += '
'; htmlNuevo += '
'; htmlNuevo += ''; htmlNuevo += ''; htmlNuevo += '
'; htmlNuevo += '
'; htmlNuevo += ''; htmlNuevo += '
'; htmlNuevo += '
'; htmlNuevo += '
'; elementProductos.append(htmlNuevo); elementProductos.find("select").selectpicker('refresh'); $.each(elementProductos.find(".actividad-producto-datos"), function(i, e) { actualizaPrecioProducto($(e)); }); onChangeRange(elementProductos.find("select")); $(".modal").modal("hide"); } }); //function actualizaPrecioProducto(idTrimestre, idProducto) function actualizaPrecioProducto(eProd) { let tipo = eProd.parents(".actividad-producto").attr("data-tipo"); const cantidad = eProd.find(".input-unidades-kilos[data-tipo='"+tipo+"']").val().replace(",", "."); if (isNaN(cantidad)) { return; } const option = eProd.find("select.input-rango-peso option:selected"); if (option.length > 0) { let precio = option.attr("data-precio")*1; let origen = eProd.find(".input-origen").attr("data-id"); if (origenesGratis.find(element => element == origen) >= 0) { precio = 0; } let decimals = countDecimals(precio) == 3 ? 3 : 2; eProd.find(".input-importe-total").val(Utils.number_format((precio*cantidad), {numberOfDecimals: decimals, decimalSeparator: ',', thousandSeparator: '.', symbol: ''})); eProd.find(".input-importe-unidad").val(Utils.number_format(precio, {numberOfDecimals: decimals, decimalSeparator: ',', thousandSeparator: '.', symbol: ''})); } const trimestre = eProd.parents(".item-trimestre"); const idTrimestre = trimestre.attr("data-trimestre"); let kilosTotal = 0; let cantidadTotal = 0; let importeTotal = 0; $.each(trimestre.find(".actividad-producto-datos"), function(i, e) { let kilosItemActual = parseFloat($(e).find(".input-kilos").val().replace(",", ".")*1); let cantidadItemActual = parseFloat($(e).find(".input-unidades").val().replace(",", ".")*1); let importeItemActual = parseFloat($(e).find(".input-importe-total").val().replaceAll(".", "").replace(",", ".")*1); let kilosPorItemActual = cantidadItemActual> 0 ? kilosItemActual/cantidadItemActual : 0; let rangoValor = $(e).find("select.input-rango-peso"); let valorRangoValor = rangoValor.selectpicker('val'); let rangoMax = rangoValor.find("[value="+valorRangoValor+"]").attr("data-rangoMax"); let rangoMin = rangoValor.find("[value="+valorRangoValor+"]").attr("data-rangoMin"); rangoValor.removeClass("error"); //Comprobamos si esta o no fuera de rango (solo si hay peso, es decir ha puesto unidades y kilos totales) if(kilosPorItemActual> 0) { if(kilosPorItemActual*1000 > rangoMax || kilosPorItemActual*1000 < rangoMin) { rangoValor.addClass("error"); } } kilosTotal += kilosItemActual; cantidadTotal += cantidadItemActual; importeTotal += importeItemActual; }); if (importeTotal < importeMinimoTrimestre) { importeTotal = importeMinimoTrimestre; } $("#total-kilos-"+idTrimestre).val(Utils.number_format(kilosTotal, {numberOfDecimals: 4, decimalSeparator: ',', thousandSeparator: '.', symbol: ''}).replace(",0000", "")); $("#total-unidades-"+idTrimestre).val(Utils.number_format(cantidadTotal, {numberOfDecimals: 2, decimalSeparator: ',', thousandSeparator: '.', symbol: ''}).replace(",00", "")); $("#total-importe-"+idTrimestre).val(Utils.number_format(importeTotal, {numberOfDecimals: 2, decimalSeparator: ',', thousandSeparator: '.', symbol: ''})); /*const trimestre = $(".item-trimestre[data-trimestre='"+idTrimestre+"']"); if (trimestre.length > 0) { $.each(trimestre.find(".actividad-producto"), function (i, eProd) { eProd = $(eProd); console.log(eProd); let tipo = eProd.attr("data-tipo"); const cantidad = eProd.find(".input-unidades-kilos[data-tipo='"+tipo+"']").val(); if (isNaN(cantidad)) { return; } const option = eProd.find(".input-rango-peso option:selected"); if (option.length > 0) { const precio = option.attr("data-precio"); eProd.find(".input-importe-total").val(Utils.number_format((precio*cantidad), {numberOfDecimals: 2, decimalSeparator: ',', thousandSeparator: '.', symbol: ''})); eProd.find(".input-importe-unidad").val(Utils.number_format(precio, {numberOfDecimals: 2, decimalSeparator: ',', thousandSeparator: '.', symbol: ''})); } }); }*/ } } static initFacturas() { $(document).ready(function() { $('#facturaAnyo').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) { if (isSelected === null) return; window.location = "https://www.sunreuse.eu/es/usuario/facturas.html?anyo="+$(this).val(); }); }); } }