Calendario Financiero
Selecciona tu calendario
Calendario financiero
Próximos eventos
Calendario histórico
septiembre
abril
diciembre
Estimado(a) cliente(a): Informamos que la Oficina Virtual se encuentra en proceso de mantenimiento de emergencia con el fin de restablecer y asegurar la continuidad del servicio. Durante este período, algunas funcionalidades podrían presentar intermitencias o no estar disponibles temporalmente. Estamos trabajando para normalizar la operación a la brevedad posible. Agradecemos su comprensión y lamentamos los inconvenientes ocasionados
Selecciona tu calendario
27/05/2026
27
May 2026
27
Feb 2026
29
Sep 2023
13
Sep 2023
13
Abr 2023
31
Dic 2022
23
Dic 2022
14
Dic 2022
27
May 2026
27
Feb 2026
29
Sep 2023
13
Sep 2023
13
Abr 2023
31
Dic 2022
23
Dic 2022
14
Dic 2022
Java method "com.sun.proxy.$Proxy733.getCategoryProperty(long, String)" threw an exception when invoked on com.sun.proxy.$Proxy733 object "com.liferay.asset.category.property.service.impl.AssetCategoryPropertyLocalServiceImpl@77b1f5e1"; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign categoryProperty = AssetCateg... [in template "20097#20123#1792680" at line 16, column 21]
----
1<style>
2 .container-calendario-financiero-historico {
3 min-height: 400px;
4 }
5</style>
6<#assign AssetCategoryLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil"]>
7<#assign AssetCategoryPropertyLocalServiceUtil = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService")>
8<#assign listadoCategorias = [] />
9<#if entries?has_content>
10 <#list entries as curVocabulary>
11 <#assign categories = curVocabulary.getCategories() />
12 <#if categories?has_content>
13 <#list categories?sort_by("modifiedDate")?reverse as category>
14 <#assign categoryAsset = AssetCategoryLocalServiceUtil.getAssetCategory(category.categoryId)/>
15 <#if categoryAsset??>
16 <#assign categoryProperty = AssetCategoryPropertyLocalServiceUtil.getCategoryProperty(category.categoryId, "orden")/>
17 <#assign listadoCategorias = listadoCategorias + [ {"sortField":categoryProperty.value?number, "categoryId":category.categoryId, "name": category.name, "description": category.description} ] />
18 </#if>
19 </#list>
20 </#if>
21 </#list>
22</#if>
23<div class="bg-hide-years d-block d-lg-none"></div>
24<div class="container-gs gap-10p container-scroll d-flex justify-content-right clasificacion-filtro py-0">
25 <#if listadoCategorias??>
26 <#list listadoCategorias?sort_by("sortField")?reverse as category>
27 <#assign categoryURL = renderResponse.createRenderURL() />
28
29 ${categoryURL.setParameter("resetCur", "true")}
30 ${categoryURL.setParameter("categoryId", category.categoryId?string)}
31
32 <a href="javascript:void(0)" id="anio-actual-${category.categoryId?string}" onClick="cambiarCategoriaAnioActual('${categoryURL}', 'anio-actual-${category.categoryId}', '${category.name}')" class="clasificacion-year-nav-btn btn filtro-anual-color categoria-clasificacion-actual <#if category.description == "IEDS"> active</#if>">${category.description}</a>
33 </#list>
34 </#if>
35</div>
36<script>
37 var imgOriginalActual = null;
38
39 var srcValueActual = "";
40
41 var contenidoSinResultado = "";
42
43 document.addEventListener('DOMContentLoaded', function() {
44 imgOriginalActual = document.querySelector('.gif-loader-saesa');
45 contenidoSinResultado = document.getElementsByClassName("sin-resultados")[0].innerHTML;
46 srcValueActual = imgOriginalActual.getAttribute('src');
47 document.getElementsByClassName("sin-resultados")[0].style.display="none";
48 mostrarPreLoading();
49 });
50
51 // Funcion que hace click sobre el primer anio
52 function clickPrimerAnioCalendario() {
53 var links = document.querySelectorAll('.container-gs.container-scroll a.categoria-clasificacion-actual');
54 var firstLink = links[0]; // Get the last link
55 if (firstLink) {
56 firstLink.click(); // Trigger click on the last link
57 }
58 }
59
60 <#if !renderRequest.getParameter("categoryId")??>
61 if (document.readyState === "loading") {
62 // Loading hasn't finished yet
63 document.addEventListener("DOMContentLoaded", clickPrimerAnioCalendario)
64 } else {
65 // `DOMContentLoaded` has already fired
66 clickPrimerAnioCalendario();
67 }
68 </#if>
69
70 function cambiarCategoriaAnioActual(urlCategoria, idCatLink, categoryName) {
71 // Función para cargar la imagen
72 function cargarImagen() {
73 return new Promise(function(resolve, reject) {
74 var imgElement = document.querySelector('.gif-loader-saesa');
75 imgElement.onload = function() {
76 console.log("[mostrarLoadingCal] Imagen cargada.");
77 resolve();
78 };
79 imgElement.setAttribute('src', srcValueActual + "?a=" + Math.random());
80 });
81 }
82
83 // Promesa para cargar la imagen
84 var promesaCargarImagen = cargarImagen();
85
86 // Cuando la imagen se carga, continuamos con la lógica
87 promesaCargarImagen.then(function() {
88 // Crear una nueva solicitud AJAX
89 var xhr = new XMLHttpRequest();
90 xhr.open('POST', urlCategoria, true);
91 mostrarLoadingCal();
92
93 // Configurar la lógica de tratamiento de respuesta
94 xhr.onload = function() {
95 if (this.status >= 200 && this.status < 300) {
96 // Obtener todos los elementos que contienen la parte específica del id
97 var idCats = document.querySelectorAll("div[id*='p_p_id_com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet_INSTANCE_']");
98
99 var parser = new DOMParser();
100 var doc = parser.parseFromString(this.response, "text/html");
101
102 // Actualizar el HTML del primer elemento de asset
103 var idCat = idCats[2].getAttribute("id");
104 var foo = doc.querySelector('#' + idCat);
105 var contentTitle = foo.querySelector('.wrapper-calendario-financiero-historico-container div h2');
106
107 if (foo) {
108 idCats[2].innerHTML = foo.innerHTML;
109 }
110 if (contentTitle) {
111 console.log("Con contenido");
112 document.getElementsByClassName("sin-resultados")[0].innerHTML=null;
113 document.querySelector(".wrapper-calendario-financiero-historico-container").classList.remove("d-none");
114 document.querySelector(".wrapper-calendario-financiero-historico-container").classList.add("d-flex");
115 } else {
116 console.log("Sin contenido");
117 document.querySelector(".container-calendario-financiero-historico").innerHTML=null;
118
119 var contenedorPrincipal = document.querySelector(".container-calendario-financiero-historico");
120 var sinResultadoHtml = document.querySelector(".sin-resultados").outerHTML;
121 contenedorPrincipal.insertAdjacentHTML("afterbegin", sinResultadoHtml);
122
123 document.querySelector(".sin-resultados").innerHTML=contenidoSinResultado;
124 document.getElementsByClassName("sin-resultados")[0].style.display = "flex";
125 }
126
127 // Remover la clase 'active' de todos los elementos con clase 'categoria-clasificacion-actual'
128 document.querySelectorAll(".categoria-clasificacion-actual").forEach(function(navLink) {
129 navLink.classList.remove("active");
130 });
131
132 // Imprimir en consola y añadir la clase 'active' al enlace de categoría específico
133 var activeNavLink = document.getElementById(idCatLink);
134 if (activeNavLink) {
135 activeNavLink.classList.add("active");
136 }
137 }
138 ocultarLoadingCal();
139 };
140
141 // Manejar errores de la solicitud
142 xhr.onerror = function() {
143 console.error('Error en la solicitud AJAX.');
144 ocultarLoadingCal();
145 };
146
147 // Enviar la solicitud
148 xhr.send();
149 });
150 return false;
151 }
152 // Metodo encargado de mostrar el loading
153 function mostrarPreLoading() {
154 console.log("[mostrarPreLoading] Inicio.");
155 document.getElementsByClassName("container-gs bonos-corporativos")[0].style.display = "none";
156 var loading = document.getElementById("loader-container");
157 loading.classList.add("d-flex");
158 loading.classList.remove("d-none");
159 console.log("[mostrarPreLoading] Fin.");
160 }
161 // Metodo encargado de mostrar el loading
162 function mostrarLoadingCal() {
163 document.getElementsByClassName("sin-resultados")[0].innerHTML=null
164 document.querySelector(".container-calendario-financiero-historico").innerHTML=null;
165
166 var contenedorPrincipal = document.querySelector(".container-calendario-financiero-historico");
167 var loading = document.getElementById("loader-container").outerHTML;
168 contenedorPrincipal.insertAdjacentHTML("afterbegin", loading);
169
170 var imgElement = document.querySelector('.gif-loader-saesa');
171 // Asignar al atributo src el valor inicial para reiniciar la animacion
172 imgElement.onload = function() {
173 // Una vez que la imagen se haya cargado, continuar con la lógica
174 continuarDespuesDeCargaImagenCal();
175 };
176 // Asignar al atributo src el valor inicial para reiniciar la animacion
177 imgElement.setAttribute('src', srcValueActual + "?a=" + Math.random());
178 }
179 // Metodo que se llama una vez que la imagen se haya cargado
180 function continuarDespuesDeCargaImagenCal() {
181 console.log("[continuarDespuesDeCargaImagenActual] Inicio.");
182 var loading = document.getElementById("loader-container");
183 loading.classList.add("d-flex");
184 loading.classList.remove("d-none");
185 console.log("[continuarDespuesDeCargaImagenActual] Fin.");
186 }
187 // Metodo encargado de ocultar el loading
188 function ocultarLoadingCal() {
189 var loading = document.querySelector("#loader-container");
190 loading.classList.add("d-none");
191 loading.classList.remove("d-flex");
192 }
193
194</script>
Este año celebramos los 100 años de nuestro Grupo Saesa. Descubre cómo hemos cambiado la vida de nuestros clientes.
Accede a nuestro reporte anual y revisa las diversas acciones llevadas a cabo por la compañía y los resultados obtenidos durante el año.
La energía que nos conecta hoy también es digital: más simple, más cerca y siempre disponible para gestionar tu servicio.
Accede a nuestro reporte anual y revisa las diversas acciones llevadas a cabo por la compañía y los resultados obtenidos durante el año.