$(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, idInputCCAA, ccaa)
{
if(pais > 0)
{
if (pais == 28 && idInputCCAA)
actualizaCCAA(idInputCCAA, idInputProvincia, idInputPais, ccaa, false);
if (ccaa || !idInputCCAA)
actualizaProvincias(idInputLocalidad, idInputProvincia, idInputCCAA, idInputPais, ccaa, provincia, undefined, undefined, undefined, undefined, undefined, undefined, false, ccaa);
}
$('#'+idInputPais).on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
//console.log(e, clickedIndex, isSelected, previousValue, $(this).val(), $('#frmServicioProvincia').val(), $('#frmServicioProvincia').selectpicker("val"));
if ($('#'+idInputPais).val() == 28 && idInputCCAA)
actualizaCCAA(idInputCCAA, idInputProvincia, idInputPais, undefined, true);
else
actualizaProvincias(idInputLocalidad, idInputProvincia, idInputCCAA, idInputPais, ccaa, provincia, undefined, undefined, undefined, undefined, undefined, undefined, true);
});
if(provincia > 0 && idInputLocalidad)
{
actualizaCiudades(idInputLocalidad, idInputProvincia, idInputPais,poblacion, pais, provincia, poblacion, $("#"+idInputProvincia).val()*1);
}
if (idInputCCAA)
{
$('#' + idInputCCAA).on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue)
{
if (isSelected === null)
return;
actualizaProvincias(idInputLocalidad, idInputProvincia, idInputCCAA, idInputPais, ccaa, provincia, undefined, undefined, undefined, undefined, undefined, undefined, true);
});
}
$('#'+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;
if (idInputLocalidad)
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 actualizaCCAA(idCampoCCAA, idCampoRegion, idCampoPais, idCcaa, actualizarProvincia)
{
const forceIdPais = $("#" + idCampoPais).val();
const textoLoading = "Cargando...";
var data = {idPais: forceIdPais};
const elementProvincia = $("#" + idCampoRegion);
const elementCCAA = $("#" + idCampoCCAA);
elementCCAA.empty();
elementCCAA.append("");
elementCCAA.selectpicker("refresh");
elementCCAA.selectpicker('val', 0);
if (actualizarProvincia)
{
elementProvincia.empty();
elementProvincia.append("");
elementProvincia.selectpicker("refresh");
elementProvincia.selectpicker('val', 0);
}
var returned = $.ajax(
{
url: "ajax/Ubicacion.listadoComunidades.php?CSRF=" + CSRF,
type: "POST",
dataType: "json",
data: data,
error: function (XMLHttpRequest, textStatus, errorThrown)
{
//ClassBlockUI.abrirBlockUIEstandarMensaje(XMLHttpRequest.responseText, true);
},
success: function (data)
{
elementCCAA.empty();
elementCCAA.append("");
for (var index in data)
{
elementCCAA.append("");
}
if (data.length == 0)
{
elementCCAA.prop("disabled", true);
}
else
{
elementCCAA.prop("disabled", false);
}
elementCCAA.selectpicker("refresh");
if (idCcaa != undefined && idCcaa != "")
{
elementCCAA.val(idCcaa);
}
else
{
elementCCAA.val(0);
}
elementCCAA.selectpicker("refresh");
if (actualizarProvincia)
{
elementProvincia.empty();
elementProvincia.append("");
elementProvincia.val(0);
elementProvincia.selectpicker("refresh");
}
if (data.length == 0 && actualizarProvincia)
actualizaProvincias(undefined, idCampoRegion, idCampoCCAA, idCampoPais, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, false);
}
});
}
function actualizaProvincias(idCampoLocalidad, idCampoRegion, idInputCCAA, idCampoPais, idCCAAPreEstablecida, idRegionPreEstablecida, forceIdPais, forceIdRegion,forceIdLocalidad, onFinish, textoSelect, textoLoading, actualizarLocalidad, idCCAA = undefined)
{
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...";
}
if (idCCAA == undefined)
idCCAA = $("#" + idInputCCAA).val() || 0;
var data = {
idPais: forceIdPais,
idCCAA: idCCAA,
};
$("#"+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();
}
}
});
}
function normalizeItemValues(val) {
// null, undefined, "" → lo tratamos como null
if (val === null || val === undefined || val === '') return null;
// si es número en string, lo convertimos a número
if (!isNaN(val)) return Number(val);
// devolvemos tal cual para otros casos
return val;
}
function existsProductOnItem(items, obj) {
return items.some(it =>
normalizeItemValues(it.idCategoria) === normalizeItemValues(obj.idCategoria) &&
normalizeItemValues(it.idUso)=== normalizeItemValues(obj.idUso) &&
normalizeItemValues(it.idProducto) === normalizeItemValues(obj.idProducto) &&
normalizeItemValues(it.idOrigen) === normalizeItemValues(obj.idOrigen)
);
}
/*
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 += '';
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 = "
Espere por favor... "; };
return ClassBlockUI.abrirBlockUIEstandarMensaje(mensaje, undefined, false, "modalEspere");
}
};
const CREAR_EXPORTADO_4B_CON_IMPORTADOS = false;
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.sunrepack.eu/es/re-package.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, ccaa, ccaaNotificacion, paisIntermediario, ccaaIntermediario, provinciaIntermediario)
{
$(document).ready(function()
{
$("#frmAdhesion1CopiarDireccion").trigger("change");
preparaLugar(pais, provincia, localidad, "frmAdhesion1Pais", "frmAdhesion1ProvinciaId", undefined, "frmAdhesion1CCAAId", ccaa);
preparaLugar(paisNotificacion, provinciaNotificacion, localidadNotificacion, "frmAdhesion1NotificacionPais", "frmAdhesion1NotificacionProvinciaId", undefined, "frmAdhesion1NotificacionCCAAId", ccaaNotificacion);
preparaLugar(paisIntermediario, provinciaIntermediario, undefined, "frmAdhesion1IntermediarioPais", "frmAdhesion1IntermediarioProvinciaId", undefined, "frmAdhesion1IntermediarioCCAAId", ccaaIntermediario);
//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)
{
$(".fg-provincia-txt, .fg-ccaa-txt").addClass("d-none");
$(".fg-provincia-select, .fg-ccaa-select").removeClass("d-none");
}
else
{
$(".fg-provincia-txt, .fg-ccaa-txt").removeClass("d-none");
$(".fg-provincia-select, .fg-ccaa-select").addClass("d-none");
}
});
$("#frmAdhesion1TengoIntermediario").change(function() {
const checked = $(this).is(":checked");
$(".group-intermediario").toggleClass("d-none", !checked);
});
$('#frmAdhesion1NotificacionPais').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
if (isSelected === null)
return;
if ($(this).val() == 28)
{
$(".fg-not-provincia-txt, .fg-not-ccaa-txt").addClass("d-none");
$(".fg-not-provincia-select, .fg-not-ccaa-select").removeClass("d-none");
}
else
{
$(".fg-not-provincia-txt, .fg-not-ccaa-txt").removeClass("d-none");
$(".fg-not-provincia-select, .fg-not-ccaa-select").addClass("d-none");
}
});
$('#frmAdhesion1IntermediarioPais').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
if (isSelected === null)
return;
if ($(this).val() == 28)
{
$(".fg-int-provincia-txt, .fg-int-ccaa-txt").addClass("d-none");
$(".fg-int-provincia-select, .fg-int-ccaa-select").removeClass("d-none");
}
else
{
$(".fg-int-provincia-txt, .fg-int-ccaa-txt").removeClass("d-none");
$(".fg-int-provincia-select, .fg-int-ccaa-select").addClass("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(actividades, actividadesScrap)
{
Usuario.actividades = actividades;
Usuario.actividadesScrap = actividadesScrap;
$("body").on("change", "input[name='frmAdhesion2OtroScrap']", function(e) {
const value = $("input[name='frmAdhesion2OtroScrap']:checked").val() * 1;
$("#container-otro-scrap").toggleClass("d-none", value != 1);
});
$('#frmAdhesion2SectorId').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
const sector = $(this).val() * 1;
$(".container-otro-sector").toggleClass("d-none", sector != -9999);
});
$("#btns-adhesion").on("click", "#btn-siguiente", function(e)
{
e.preventDefault();
let extraErrores = "";
if (Usuario.actividades.filter(Boolean).length == 0)
{
extraErrores += extraErrores == "" ? "" : "
";
extraErrores += "Debe añadir al menos 1 actividad";
}
const valueOtroScrap = $("input[name='frmAdhesion2OtroScrap']:checked").val() * 1;
if (valueOtroScrap == 1 && Usuario.actividadesScrap.filter(Boolean).length == 0)
{
extraErrores += extraErrores == "" ? "" : "
";
extraErrores += "Debe añadir al menos 1 actividad de otro SCRAP";
}
let prepareFormData = function()
{
const formData = new FormData($("#frmAdhesion")[0]);
$.each(Usuario.actividades.filter(Boolean), function(i, e)
{
formData.append('actividades[]', JSON.stringify(e));
});
$.each(Usuario.actividadesScrap.filter(Boolean), function(i, e)
{
formData.append('actividadesScrap[]', 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", "#btn-anadir-actividad", function(e)
{
e.preventDefault();
ClassBlockUI.abrirBlockUIEstandar("bloqueNuevaActividad", undefined, "Añadir Producto", "modal630");
});
$("body").on("click", "#btn-anadir-otro-scrap", function(e)
{
e.preventDefault();
ClassBlockUI.abrirBlockUIEstandar("bloqueNuevaActividadScrap", undefined, "Añadir SCRAP", "modal480");
});
$("body").on("click", ".actividad-scrap-eliminar", function(e)
{
e.preventDefault();
const elementTr = $(this).parents("tr");
const id = elementTr.attr("data-id");
const index = Usuario.actividadesScrap.findIndex(x => x != undefined && x.id == id);
if (index >= 0) {
elementTr.remove();
Usuario.actividadesScrap.splice(index, 1);
}
});
$("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 origen = $(this).parents(".actividad-producto-datos").attr("data-origen")*1;
const idProducto = $(this).parents(".actividad-producto").attr("data-id")*1;
eliminarProducto(element, id, categoria, subcategoria);
if (origen == 3)
{
const importado = Usuario.actividades.find((element) => element.idProducto == idProducto && element.idOrigen == 6);
if (importado != undefined)
eliminarProducto(element, importado.id, categoria, subcategoria);
}
});
function eliminarProducto(element, id, categoria, subcategoria)
{
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 initAdhesionPaso3(paises)
{
Usuario.paises = paises;
$("body").on("change", "#frmAdhesion2WEEE", function(e)
{
if ($(this).is(":checked"))
$("#frmAdhesion2TipoDocumento, #frmAdhesion2NumDocumento, #frmAdhesion2Nombre").prop("disabled", true);
else
$("#frmAdhesion2TipoDocumento, #frmAdhesion2NumDocumento, #frmAdhesion2Nombre").prop("disabled", false);
$("#frmAdhesion2TipoDocumento").selectpicker("refresh");
});
$("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");
}
});
$("#btns-adhesion").on("click", "#btn-siguiente", function(e)
{
e.preventDefault();
let extraErrores = "";
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";
}
let prepareFormData = function()
{
const formData = new FormData($("#frmAdhesion")[0]);
$.each(Usuario.paises.filter(Boolean), function(i, e)
{
formData.append('paises[]', 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);
const itemPais = $(this).parents('.item-pais');
if (itemPais.length > 0) itemPais.remove();
else
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();
const weee = $("#frmAdhesion2WEEE").is(":checked");
if (pais == 0 || pais == "")
{
extraErrores += extraErrores == "" ? "" : "
";
extraErrores += "Selecciona un país";
}
if (!weee && (tipoDoc == 0 || tipoDoc == ""))
{
extraErrores += extraErrores == "" ? "" : "
";
extraErrores += "Selecciona un tipo";
}
if (!weee && numDocumento == "")
{
extraErrores += extraErrores == "" ? "" : "
";
extraErrores += "Debe escribir el número de documento";
}
if (!weee && 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 = weee ? "-" : "("+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, cumpleWEEE: weee ? 0 : 1});
$("#frmAdhesion2PaisDest").selectpicker('val', 0);
$("#frmAdhesion2TipoDocumento").selectpicker('val', 0);
$("#frmAdhesion2NumDocumento, #frmAdhesion2Nombre").val("");
tablatablaPaises.row.add([
"",
paisTxt,
representante,
] ).draw( false );
});
}
static initNuevaActividad(tipologias)
{
Usuario.tipologias = tipologias;
const elementCategoria = $("#frmActividadCategoria");
const elementUso = $("#frmActividadUso");
const elementTipologia = $("#frmActividadTipologia");
$(document).ready(function()
{
elementCategoria.on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
if (isSelected === null)
return;
onChangeCategoriaUso();
});
elementUso.on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
if (isSelected === null)
return;
onChangeCategoriaUso();
});
function onChangeCategoriaUso() {
const categoria = elementCategoria.val();
const uso = elementUso.val();
const tipologias = Usuario.tipologias[categoria][uso];
elementTipologia.empty();
if (tipologias == undefined) {
elementTipologia.prop("disabled", true);
elementTipologia.append( "");
} else {
elementTipologia.prop("disabled", false);
elementTipologia.append( "");
tipologias.forEach(function(element) {
elementTipologia.append( "");
});
}
elementTipologia.val("");
elementTipologia.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 = "";
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 = elementCategoria.val();
const categoriaTxt = elementCategoria.find("option:selected").text();
const uso = elementUso.val();
const usoTxt = elementUso.find("option:selected").text();
const tipologia = elementTipologia.val();
const tipologiaTxt = elementTipologia.find("option:selected").text();
const materiales = $("#frmActividadMateriales").val();
let materialesTxt = $("#frmActividadMateriales").parent().find(".filter-option-inner-inner").text();
if (materialesTxt == "") {
materialesTxt = $("#frmActividadMateriales option:selected").map(function() {
return $(this).text();
}).get().join(", ");
}
const origen = $("#frmActividadOrigen").val()*1;
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++;
const newProduct = {
id: id,
idCategoria: categoria,
idUso: uso,
idProducto: tipologia,
idsMateriales: materiales.join(","),
idOrigen: origen,
unidades: unidades,
kilos: kilos,
marcas: marcas
};
//Comprobamos que no exista ya una idCategoria/idUso/idProducto/idOrigen repetido.
if(existsProductOnItem(Usuario.actividades, newProduct))
{
ClassBlockUI.abrirBlockUIEstandarMensaje("Error. No es posible añadir esta combinación de Producto/Origen porque ya existe en su ficha de adhesion. Debe borrar primero el producto antes de poder volver a añadirlo.", true, undefined, "");
return;
}
Usuario.actividades.push(newProduct);
if (origen == 3)
{
//id++;
Usuario.actividades.push({
id: id+1,
idCategoria: categoria,
idUso: uso,
idProducto: tipologia,
idsMateriales: materiales.join(","),
idOrigen: 6,
unidades: 0,
kilos: 0,
marcas: marcas
});
}
if ($(".actividad[data-id='" + categoria + "']").length == 0) {
$("#actividades").append("");
}
if ($(".actividad[data-id='" + categoria + "'] .actividad-categoria-datos[data-id='" + uso + "']").length == 0) {
$(".actividad[data-id='" + categoria + "']").append("");
}
if ($(".actividad[data-id='" + categoria + "'] .actividad-categoria-datos[data-id='" + uso + "'] .actividad-productos").length == 0) {
$(".actividad[data-id='" + categoria + "'] .actividad-categoria-datos[data-id='" + uso + "']").append("");
}
if ($(".actividad[data-id='" + categoria + "'] .actividad-categoria-datos[data-id='" + uso + "'] .actividad-productos .actividad-producto[data-id='" + tipologia + "']").length == 0) {
$(".actividad[data-id='" + categoria + "'] .actividad-categoria-datos[data-id='" + uso + "'] .actividad-productos").append("");
}
const elemProductos = $(".actividad[data-id='" + categoria + "'] .actividad-categoria-datos[data-id='" + uso + "'] .actividad-productos .actividad-producto[data-id='" + tipologia + "']");
let marcasTxt = "";
if ($(".gestinaBody").length > 0) marcasTxt += "
Marca/s: "+marcas;
let html = '' +
'
' +
'
Origen: ' + origenTxt + marcasTxt +
'
Materiales: '+materialesTxt+'
' +
'
' +
'
Unidades: ' + unidades + '
Kilos: ' + kilos + '
';
if (origen == 3 && CREAR_EXPORTADO_4B_CON_IMPORTADOS)
{
html += '
Origen: 4b. Exportados de Origen 3' + marcasTxt +'
Unidades: ' + 0 + '
Kilos: ' + 0 + '
';
elemProductos.append("
"+html+"
");
}
else
elemProductos.append(html);
$("#frmActividad")[0].reset();
$("#frmActividad .selectpicker").selectpicker('val', "");
$("#frmActividadMateriales").val(0);
$("#frmActividadMateriales").selectpicker("refresh");
$(".modal").modal("hide");
$(".actividad-producto-eliminar:not(.tooltipstered)").tooltipster({
animation: 'grow',
interactive: true,
position: 'bottom'
});
}
});
}
static initNuevaActividadScrap(tipologias)
{
Usuario.tipologiasScrap = tipologias;
const elementCategoria = $("#frmActividadScrapCategoria");
const elementUso = $("#frmActividadScrapUso");
const elementTipologia = $("#frmActividadScrapTipologia");
$(document).ready(function()
{
elementCategoria.on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
if (isSelected === null)
return;
onChangeCategoriaUso();
});
elementUso.on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
if (isSelected === null)
return;
onChangeCategoriaUso();
});
function onChangeCategoriaUso() {
const categoria = elementCategoria.val();
const uso = elementUso.val();
const tipologias = Usuario.tipologias[categoria][uso];
elementTipologia.empty();
if (tipologias == undefined) {
elementTipologia.prop("disabled", true);
elementTipologia.append( "
");
} else {
elementTipologia.prop("disabled", false);
elementTipologia.append( "
");
tipologias.forEach(function(element) {
elementTipologia.append( "
");
});
}
elementTipologia.val("");
elementTipologia.selectpicker("refresh");
}
});
$("body").on("click", "#frmActividadScrapAnadir", function(e)
{
e.preventDefault();
let opciones_validacion = {showLabels: false};
const validacion = $("#frmActividadScrap").validate(opciones_validacion);
var extraErrores = "";
if (!$("#frmActividadScrap").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 scrap = $("#frmActividadScrapEmpresa").val();
const scrapTxt = $("#frmActividadScrapEmpresa").find("option:selected").text();
const categoria = elementCategoria.val();
const categoriaTxt = elementCategoria.find("option:selected").text();
const uso = elementUso.val();
const usoTxt = elementUso.find("option:selected").text();
const tipologia = elementTipologia.val();
const tipologiaTxt = elementTipologia.find("option:selected").text();
let id = 0;
$.each(Usuario.actividadesScrap, function (i, e) {
id = Math.max(id, e.id);
});
id++;
const newProduct = {
id: id,
idEmpresa: scrap,
idCategoria: categoria,
idUso: uso,
idProducto: tipologia,
};
//Comprobamos que no exista
const existe = Usuario.actividadesScrap.some(it =>
normalizeItemValues(it.idCategoria) === normalizeItemValues(newProduct.idCategoria) &&
normalizeItemValues(it.idUso)=== normalizeItemValues(newProduct.idUso) &&
normalizeItemValues(it.idProducto) === normalizeItemValues(newProduct.idProducto) &&
normalizeItemValues(it.idEmpresa) === normalizeItemValues(newProduct.idEmpresa)
);
if(existe)
{
ClassBlockUI.abrirBlockUIEstandarMensaje("Error. No es posible añadir esta combinación porque ya existe en su ficha de adhesion. Debe borrar primero el producto antes de poder volver a añadirlo.", true, undefined, "");
return;
}
Usuario.actividadesScrap.push(newProduct);
$("#frmActividadScrap")[0].reset();
$("#frmActividadScrap .selectpicker").selectpicker('val', "");
$(".modal").modal("hide");
const eliminar = '
';
$("#tabla-scrap tbody").append("
" +
"| "+scrapTxt+" | " +
""+categoriaTxt+" | " +
""+usoTxt+" | " +
""+tipologiaTxt+" | " +
""+eliminar+" | " +
"
");
$(".actividad-scrap-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()
{
$("body").on("change", "input[name='frmAdhesion5TipoPep'], select#tipoPEP", function(e)
{
const tipo = $(this).val()*1;
const checked = tipo == 1;
$("#tipo-pep-elaborado").toggleClass("d-none", !checked);
});
$("#btns-adhesion").on("click", "#btn-siguiente", function(e)
{
e.preventDefault();
let extraErrores = "";
if ($("input[name='frmAdhesion5TipoPep']:checked").length == 0) {
ClassBlockUI.abrirBlockUIEstandarMensaje("Debe seleccionar alguna opción sobre el PEP", true);
return;
}
if ($("input[name='frmAdhesion5TipoPep']:checked").val() == 1) {
let erroresPep = "";
$.each($("#tabla-pep tbody tr"), function (i, e) {
if ($(e).find("input[type='radio']:checked").length == 0) {
erroresPep += $(e).find("td:nth-child(1)").text()+"
";
}
});
if (erroresPep != "") {
ClassBlockUI.abrirBlockUIEstandarMensaje("
Elija una opción para:"+erroresPep, true);
return;
}
}
if (!$("#frmAdhesion5NiIdeaSDDR").is(":checked")) {
let erroresSDDR = "";
$.each($("#tabla-sddr tbody tr"), function (i, e) {
if ($(e).find("input[type='radio']:checked").length == 0) {
erroresSDDR += $(e).find("td:nth-child(1)").text()+"
";
}
});
if (erroresSDDR != "") {
ClassBlockUI.abrirBlockUIEstandarMensaje("
Elija una opción para:"+erroresSDDR, true);
return;
}
}
/*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 sunrepack 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()
{
$(".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.sunrepack.eu/es/usuario/trimestres.html?anyo="+$(this).val();
});
});
$("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");
const sonImportados = $(this).parents(".actividad-producto-importados");
if (sonImportados.length > 0)
{
sonImportados.remove();
}
else
{
$(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, .input-porc-reciclado, .input-vida-util, .input-ciclos", function ()
{
$(this).removeClass("error");
});
$("body").on("keyup", ".input-unidades-kilos", function ()
{
const elementProducto = $(this).parents(".actividad-producto-datos");
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 hayError = false;
$.each(trimestre.find(".actividad-producto-datos"), function (i, e)
{
let unidades = $(e).find(".input-unidades").val().replace(",", ".");
let vidaUtil = $(e).find(".input-vida-util").val().replace(",", ".");
let ciclos = $(e).find(".input-ciclos").val().replace(",", ".");
let kilos = $(e).find(".total-kilos-producto").val().replace(",", ".");
let idProducto = $(e).parents(".actividad-producto").attr("data-id");
let idOrigen = $(e).attr("data-origen");
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 (kilos > 0 || unidades > 0) {
if (isNaN(vidaUtil) || vidaUtil < 0 || vidaUtil == "") {
$(e).find(".input-vida-util").addClass("error");
hayError = true;
ClassBlockUI.abrirBlockUIEstandarMensaje("Debe escribir los años de vida útil", true, undefined);
return false;
}
if (isNaN(ciclos) || ciclos < 0 || ciclos == "") {
$(e).find(".input-ciclos").addClass("error");
hayError = true;
ClassBlockUI.abrirBlockUIEstandarMensaje("Debe escribir n.º ciclos/años media", true, undefined);
return false;
}
}
/*if (idOrigen*1 == )
{
const importados = $(e).closest(".actividad-producto").find(".actividad-producto-datos[data-origen='"++"']");
if (importados.length == 0) //No deberia pasar
{
hayError = true;
ClassBlockUI.abrirBlockUIEstandarMensaje("", true, undefined);
return false;
}
else
{
const unidadesImportado = importados.find(".input-unidades").val().replace(",", ".")*1;
const kilosImportado = importados.find(".input-kilos").val().replace(",", ".")*1;
if (unidades*1 > unidadesImportado || kilos*1 > kilosImportado)
{
let nombreProducto = $(e).closest(".actividad-producto").find(".actividad-producto-nombre").text();
ClassBlockUI.abrirBlockUIEstandarMensaje("".replace("%1%", nombreProducto), true, undefined);
hayError = true;
if (unidades*1 > unidadesImportado)
$(e).find(".input-unidades").addClass("error");
else
$(e).find(".input-kilos").addClass("error");
return false;
}
}
}*/
/*if (unidades == 0 && kilos > 0)
{
hayError = true;
$(e).find(".input-unidades").addClass("error");
ClassBlockUI.abrirBlockUIEstandarMensaje("", true, undefined);
return false;
}*/
if (kilos == 0 && unidades > 0)
{
hayError = true;
$(e).find(".total-kilos-producto").addClass("error");
ClassBlockUI.abrirBlockUIEstandarMensaje("Debe introducir los kilos", true, undefined);
return false;
}
let materiales = [];
$.each($(e).find(".actividad-producto-materiales .item-material"), function (i, e){
const materialId = $(e).attr("data-id");
const peso = $(e).find(".input-peso-material").val().replace(",", ".");
const porcReciclado = $(e).find(".input-porc-reciclado").val().replace(",", ".");
if (peso > 0 && porcReciclado == "") {
$(e).find(".input-porc-reciclado").addClass("error");
ClassBlockUI.abrirBlockUIEstandarMensaje("Debe escribir el % de reciclado", true, undefined);
hayError = true;
return;
}
materiales.push({id: materialId, peso: peso, porcReciclado: porcReciclado});
});
actividades.push({
id: idProducto,
materiales: materiales,
idOrigen: idOrigen,
unidades: unidades,
vidaUtil: vidaUtil,
ciclos: ciclos
});
});
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;
const materiales = $("#nuevoMateriales").val();
if (productos[idProducto] == undefined)
return;
if (materiales.length == 0) {
ClassBlockUI.abrirBlockUIEstandarMensaje("Selecciona los materiales", true, undefined);
return;
}
if($("#trimestre_"+idTrimestre).find(".actividad-producto[data-id='"+idProducto+"'] .actividad-producto-datos[data-origen='"+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");
let htmlNuevo = anadirProductoOrigen(producto, idOrigen, materiales);
if (idOrigen == 3 && CREAR_EXPORTADO_4B_CON_IMPORTADOS)
{
htmlNuevo += anadirProductoOrigen(producto, 6, materiales);
elementProductos.prepend("
"+htmlNuevo+"
");
}
else
{
elementProductos.append(htmlNuevo);
}
elementProductos.find("select").selectpicker('refresh');
$.each(elementProductos.find(".actividad-producto-datos"), function(i, e)
{
actualizaPrecioProducto($(e));
});
$(".modal").modal("hide");
}
});
function anadirProductoOrigen(producto, idOrigen, materiales)
{
const multiplicadorPrecio = idOrigen == 6 ? -1 : 1;
const origenTxt = idOrigen == 6 ? "4b. Exportados de Origen 3" : $("#nuevoOrigen option:selected").text();
let htmlNuevo = '
';
htmlNuevo += `
`;
htmlNuevo += '
Materiales:
';
htmlNuevo += `
`;
materiales.forEach(materialId => {
const material = producto["materiales"][materialId];
if (material == undefined) return;
const precioUnidad = Utils.number_format(material.precioUd, {numberOfDecimals: 4, decimalSeparator: ',', thousandSeparator: '.', symbol: ''}).replace(",00000", "");
const precioKg = Utils.number_format(material.precioKg, {numberOfDecimals: 4, decimalSeparator: ',', thousandSeparator: '.', symbol: ''}).replace(",00000", "");
htmlNuevo += `
`;
});
htmlNuevo += `
`;
htmlNuevo += `
`;
htmlNuevo += `
`;
htmlNuevo += `
`;
htmlNuevo += `
`;
htmlNuevo += `
`;
htmlNuevo += '
'; //cierra .actividad-producto-materiales
return htmlNuevo;
}
//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);
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;
$(".error").removeClass("error");
$.each(trimestre.find(".actividad-producto-datos"), function(i, e)
{
const origen = $(e).attr("data-origen")*1;
let totalMaterialesPeso = 0;
let totalMateriales = 0;
let cantidadItemActual = parseFloat($(e).find(".input-unidades").val().replace(",", ".")*1);
if (origen == 6)
cantidadTotal -= cantidadItemActual;
else
cantidadTotal += cantidadItemActual;
$.each($(e).find(".item-material"), function(iM, eM) {
const precioKg = parseFloat($(eM).find(".input-importe-kg").val().replace(",", ".")*1);
const precioUnidad = parseFloat($(eM).find(".input-importe-unidad").val().replace(",", ".")*1);
const peso = parseFloat($(eM).find(".input-peso-material").val().replace(",", ".")*1 || 0);
const totalPeso = peso*precioKg;
const totalUnidades = cantidadItemActual*precioUnidad;
const total = totalPeso + totalUnidades;
if (origen == 6)
{
kilosTotal -= peso;
totalMaterialesPeso -= peso;
}
else
{
kilosTotal += peso;
totalMaterialesPeso += peso;
}
importeTotal += total;
totalMateriales += total;
$(eM).find(".total-material").val(Utils.number_format(total, {numberOfDecimals: 4, decimalSeparator: ',', thousandSeparator: '.', symbol: ''}));
});
$(e).find(".input-importe-total").val(Utils.number_format(totalMateriales, {numberOfDecimals: 4, decimalSeparator: ',', thousandSeparator: '.', symbol: ''}));
$(e).find(".total-kilos-producto").removeClass("error");
$(e).find(".total-kilos-producto").val(Utils.number_format(totalMaterialesPeso, {numberOfDecimals: 3, decimalSeparator: ',', thousandSeparator: '.', symbol: ''}));
});
if (importeTotal < importeMinimoTrimestre && idTrimestre == 9999)
importeTotal = importeMinimoTrimestre;
if (idTrimestre == 9999) {
const totalOtros = Math.abs($("#total-otros-trimestres-"+idTrimestre).val().replace(",", ".")*1 || 0);
importeTotal -= totalOtros;
}
$("#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: ''}));
}
}
static initFacturas()
{
$(document).ready(function()
{
$('#facturaAnyo').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
if (isSelected === null)
return;
window.location = "https://www.sunrepack.eu/es/usuario/facturas.html?anyo="+$(this).val();
});
});
}
static initDenuncias()
{
$(document).ready(function()
{
$("#denuncia-archivos").on("change", function() {
if ($("#denuncia-archivos")[0].files.length > 4) {
ClassBlockUI.abrirBlockUIEstandarMensaje("Debe seleccionar un máximo de 4 archivos", true);
$("#denuncia-archivos").val("");
}
});
$("#btn-enviar-denuncia").click(function ()
{
Utils.sendStandardAjax("frm-denuncia", "ajax/Usuarios.enviarDenuncia.php?CSRF=" + CSRF, {
resetFormOnSuccess: true,
});
});
});
}
}