An error occurred while processing the template.
Java method "com.liferay.portal.kernel.util.DateUtil_IW.parseDate(String, String, Locale)" threw an exception when invoked on com.liferay.portal.kernel.util.DateUtil_IW object "com.liferay.portal.kernel.util.DateUtil_IW@52e8c95c"; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign fechaActualizacion_Data = dat... [in template "20096#20121#37915" at line 45, column 25]
----
1<#-- Última versión 16/12/2025 -->
2<#-- Plantilla que muestra el detalle de contenido con los componentes:
3 - Avisos y novedades
4-->
5<#-- Obtener la ruta a las imágenes del tema -->
6<#assign
7 theme_display = themeDisplay
8 themeImagePath = theme_display.getPathThemeImages()
9/>
10
11<#-- Incluir la plantilla de selector de icono-->
12<#include "${templatesPath}/49219">
13
14
15<#-- Incluir la plantilla que genera la sección de recursos relacionados-->
16<#include "${templatesPath}/49195">
17
18
19<#-- Incluir la plantilla que genera la sección de avisos relacionados-->
20<#include "${templatesPath}/232636">
21
22<#-- Incluir la plantilla que genera la alerta -->
23<#include "${templatesPath}/74012524">
24
25<#if avisoEmergente?? && avisoEmergente.getData()??>
26<@generarAvisoEmergente avisoEmergente/>
27</#if>
28
29<div class="container">
30 <section class="sectTittel">
31 <div class="row">
32 <div class="col-12">
33 <#if (encabezado.getData())??>
34 <h1>${encabezado.getData()}</h1>
35 </#if>
36 <#-- Sección que muestra la fecha de la última actualización del artículo -->
37 <p style="font-size: 0.7778rem;color: #495C89;" class="docPub">Fecha de la última modificación:
38
39 <#assign fecha_Data = getterUtil.getString(fechaActualizacion.getData())>
40 <#if validator.isNotNull(fecha_Data)>
41 <#assign fecha_DateObj = dateUtil.parseDate("yyyy-MM-dd", fecha_Data, locale)>
42 ${dateUtil.getDate(fecha_DateObj, "dd/MM/yyyy", locale)}
43 <#else>
44 <#assign fechaModificacion_Data = .vars["reserved-article-modified-date"].data>
45 <#assign fechaActualizacion_Data = dateUtil.parseDate("EEE, dd MMM yyyy HH:mm:ss Z", fechaModificacion_Data , locale)>
46 ${dateUtil.getDate(fechaActualizacion_Data, "dd/MM/yyyy", locale)}
47 </#if>
48
49 </p>
50 </div>
51 </div>
52 </section>
53
54 <div class="row">
55 <#assign tramitacion=false />
56 <#if secTramitacion.getSiblings()?has_content && (secTramitacion.tituloSecTram?? && secTramitacion.tituloSecTram.getData()?has_content) || (secTramitacion.getSiblings()[0].gTramitacion.getSiblings()?? && secTramitacion.getSiblings()[0].gTramitacion.getSiblings()[0].tituloTramitacion.getData()?has_content)>
57 <#assign tramitacion=true />
58 </#if>
59
60 <#if ((secRecursos.tituloCon.getData())?? && secRecursos.tituloCon.getData()?has_content) || tramitacion>
61 <div class="col-12 col-lg-8 colpadR060" id="sectContPrin">
62 <#else>
63 <div class="col-12 colpadR060" id="sectContPrin">
64 </#if>
65 <!-- Section Acordeon -->
66
67 <section class="sectAccordModel">
68 <div class="row">
69 <div class="col-12">
70 <#if (secFij.tituloSecFij.getData())?? && secFij.tituloSecFij.getData()?has_content>
71 <h2 class="h2accord">${secFij.tituloSecFij.getData()} </h2>
72 </#if>
73 <div>
74 <#if (secFij.textoSecFij.getData())??>
75 ${secFij.textoSecFij.getData()}
76 </#if>
77 </div>
78 </div>
79 </div>
80 <div class="row">
81 <div class="col-12">
82 <div class="divAccorModel">
83 <div class="accordion accordionModel" id="accordionModel">
84 <div class="card" style="display:none;" >
85 <div class="card-header">
86 <h2 class="accordion-header" id="headingprueba" data-toggle="collapse" data-target="#collapseprueba" aria-expanded="false" aria-controls="collapseprueba">
87 Acordeón invisible
88 </h2>
89 </div>
90 <div id="collapseprueba" class="accordion-collapse collapse" aria-labelledby="headingprueba" data-parent="#accordionModel">
91
92 </div>
93 </div>
94
95 <#if ( acordeon.getSiblings()[0].tituloAcordeonGeneral.getData()?has_content )>
96 <#list acordeon.getSiblings() as cur_acordeon>
97 <div class="card">
98 <div class="card-header">
99 <h2 class="accordion-header collapsed" id="heading${cur_acordeon_index}" data-toggle="collapse" data-target="#collapse${cur_acordeon_index}" aria-expanded="false" aria-controls="collapse${cur_acordeon_index}">
100 <button class="accordion-button" type="button">
101 ${cur_acordeon.tituloAcordeonGeneral.getData()}
102 </button>
103 <img class="iconAccordion" src="${themeImagePath}/sm/icons/general/arrow_drop_down.svg" alt="icono flecha acordeón" title="icono flecha acordeón" style="transform: rotate(0deg);">
104 </h2>
105 </div>
106 <div id="collapse${cur_acordeon_index}" class="accordion-collapse collapse" aria-labelledby="heading${cur_acordeon_index}" data-parent="#accordionModel">
107 <#if cur_acordeon.contenidoGeneral.getData() != "" || cur_acordeon.subacordeon.getSiblings()?has_content>
108 <div class="accordion-bodyLeg mb-0" style="display:block">
109 ${cur_acordeon.contenidoGeneral.getData()}
110 </div>
111 <#if cur_acordeon.subacordeon.getSiblings()?has_content >
112
113 <div class="accordion accordionModel" id="accordionModel${cur_acordeon_index}">
114 <div class="card d-none">
115 <div class="card-header">
116 <h2 class="accordion-header collapsed" id="headingOculto" data-toggle="collapse" data-target="#collapseOculto" aria-expanded="false" aria-controls="collapseOculto">
117 Acordeón invisible</h2>
118 </div>
119 <div id="collapseOculto" class="accordion-collapse collapse" aria-labelledby="headingOculto" data-parent="#accordionModel${cur_acordeon_index}" style="">
120
121 </div>
122 </div>
123 <#list cur_acordeon.subacordeon.getSiblings() as cur_subacordeon>
124 <#if cur_subacordeon.tituloAcordeon.getData()?has_content && cur_subacordeon.tituloAcordeon.getData()!="">
125 <div class="card" style="margin-left: 1rem;">
126 <div class="card-header">
127 <h2 class="accordion-header collapsed" id="heading${cur_acordeon_index}${cur_subacordeon_index}" data-toggle="collapse" data-target="#collapse${cur_acordeon_index}${cur_subacordeon_index}" aria-expanded="false" aria-controls="collapse${cur_acordeon_index}${cur_subacordeon_index}">
128 <button class="accordion-button" type="button" style="font-size: 1rem;">
129 <#if (cur_subacordeon.tituloAcordeon.getData())??>
130 ${cur_subacordeon.tituloAcordeon.getData()}
131 </#if>
132 </button>
133 <img class="iconAccordion" src="${themeImagePath}/sm/icons/general/arrow_drop_down.svg" alt="icono flecha acordeón" title="icono flecha acordeón" style="transform: rotate(0deg);">
134 </h2>
135 </div>
136 <div id="collapse${cur_acordeon_index}${cur_subacordeon_index}" class="accordion-collapse collapse" aria-labelledby="heading${cur_acordeon_index}${cur_subacordeon_index}" data-parent="#accordionModel${cur_acordeon_index}">
137 <div class="accordion-bodyLeg mb-0" style="display:block">
138 <#if (cur_subacordeon.contenidoAcordeon.getData())??>
139 ${cur_subacordeon.contenidoAcordeon.getData()}
140 </#if>
141 </div>
142 </div>
143 </div>
144 </#if>
145 </#list>
146 </div>
147 </#if>
148 </#if>
149 </div>
150 </div>
151 </#list>
152 </#if>
153 </div>
154 </div>
155 </div>
156 </div>
157 </section>
158 <!-- Fin acordeon -->
159
160 <!-- FIN ACCORDMODEL -->
161
162
163 <#if secAvisos.aviso.getSiblings()?has_content && secAvisos.aviso?? && secAvisos.aviso.getData()?has_content>
164 <@secAvisosRelacionados secAvisos />
165 </#if>
166 </div>
167
168 <!-- Section Presentation -->
169 <!-- Bloque de Tramitación -->
170 <#if secTramitacion.getSiblings()?has_content>
171 <div class="col-12 col-lg-4" >
172 <#list secTramitacion.getSiblings() as cur_secTramitacion>
173
174 <#if cur_secTramitacion.gTramitacion.getSiblings()?has_content && (cur_secTramitacion.gTramitacion.tituloTramitacion.getData())?? && (cur_secTramitacion.gTramitacion.tituloTramitacion.getData())?has_content>
175 <section class="sectPresentation" style="margin-bottom:48px;" id="idSectPresentation">
176 <div class="row">
177 <div class="col-12">
178 <div class="divPresentation">
179 <div class="row">
180 <#if (cur_secTramitacion.tituloSecTram.getData())?? && (cur_secTramitacion.tituloSecTram.getData())?has_content>
181 <div class="col-12">
182 <h3 style="font-size: 1.3rem !important;">${cur_secTramitacion.tituloSecTram.getData()}</h3>
183 </div>
184 </#if>
185
186 <div class="col-12">
187 <section class="sectAccordModel m-0">
188 <div class="divAccorModel">
189 <div class="accordion accordionModelAv" id="accordionModelTr${cur_secTramitacion_index}">
190 <div class="card" style="display:none;" >
191 <div class="card-header">
192 <h3 class="accordion-header" id="headingpruebaTr">
193 <button class="accordion-button collapsed" type="button" data-toggle="collapse" data-target="#collapsepruebaTr" aria-expanded="false" aria-controls="collapsepruebaTr">
194 <img class="iconAccordionAv" src="${themeImagePath}/sm/icons/general/arrow_drop_down_round.svg" alt="" title="Abrir acordeón">
195 Acordeón invisible
196 </button>
197 </h3>
198 </div>
199
200 <div id="collapsepruebaTr" class="accordion-collapse collapse" aria-labelledby="headingpruebaTr" data-parent="#accordionModelTr">
201
202 </div>
203 </div>
204
205 <#list cur_secTramitacion.gTramitacion.getSiblings() as cur_subSecTramitacion>
206 <#if (cur_subSecTramitacion.tituloTramitacion.getData())?? && (cur_subSecTramitacion.tituloTramitacion.getData())?has_content && (cur_subSecTramitacion.textoTramitacion.getData())?? && (cur_subSecTramitacion.textoTramitacion.getData())?has_content>
207
208 <div class="card">
209 <div class="card-header">
210 <h3 class="accordion-header" id="heading${cur_secTramitacion?index}${cur_subSecTramitacion_index+1}Tr">
211 <button class="accordion-button collapsed" type="button" data-toggle="collapse" data-target="#collapse${cur_secTramitacion?index}${cur_subSecTramitacion_index+1}Tr" aria-expanded="false" aria-controls="collapse${cur_secTramitacion?index}${cur_subSecTramitacion_index+1}Tr">
212 <img class="iconAccordionAv" src="${themeImagePath}/sm/icons/general/arrow_drop_down_round.svg" alt="icono flecha acordeón" title="icono flecha acordeón">
213 <span class="span-accbtn">${cur_subSecTramitacion.tituloTramitacion.getData()}</span>
214 </button>
215 <div class="divLinkAv">
216 </h3>
217 </div>
218
219 <div id="collapse${cur_secTramitacion?index}${cur_subSecTramitacion_index+1}Tr" class="accordion-collapse collapse" aria-labelledby="heading${cur_secTramitacion?index}${cur_subSecTramitacion_index+1}Tr" data-parent="#accordionModelTr${cur_secTramitacion_index}">
220 <div class="accordion-body">
221 ${cur_subSecTramitacion.textoTramitacion.getData()}
222 </div>
223 </div>
224
225 </div>
226 </#if>
227 </#list>
228 </div>
229 </div>
230 </section>
231 </div>
232 </div>
233 </div>
234 </div>
235 </div>
236 </section>
237 </#if>
238 </#list>
239 </#if>
240 <!-- FIN Bloque de Tramitación -->
241 <!-- FIN PRESENTATION -->
242 <!-- Section ProcedureCol -->
243 <#if (secRecursos.tituloCon.getData())??>
244 <@secRecursosRelacionados secRecursos />
245 </#if>
246
247 <!-- FIN PROCEDURECOL -->
248 </div>
249
250
251 </div>
252</div>
253<!-- FIN Two Column - Detalle y Contactos -->
254<#if secTramitacion.getSiblings()?has_content>
255<#list secTramitacion.getSiblings() as cur_secTramitacion>
256<#if cur_secTramitacion.gTramitacion.getSiblings()?has_content && (cur_secTramitacion.gTramitacion.tituloTramitacion.getData())?? && (cur_secTramitacion.gTramitacion.tituloTramitacion.getData())?has_content>
257<a href="#idSectPresentation" class="btn btn-tramitacion d-md-none" id="btnTramitacion" style="z-index: 99; width: 92%;">
258 <span class="spanTramitacion">Tramitación</span>
259 <img class="iconTramitacion" src="/documents/d/agencia-tributaria-canaria/arrow_down_black" alt="icono flecha hacia abajo" title="icono flecha hacia abajo">
260</a>
261</#if>
262</#list>
263</#if>
264<style>
265 .lista-letras {
266 list-style-type: lower-alpha !important;
267 }
268 .span-accbtn, .divPresentation a{
269 color: #0068A8 !important;
270 }
271
272.btn-tramitacion {position: fixed;bottom: 60px;left: 15px;background-color: #D3ECFA;border: 1px solid #021A47; color: #1A3466;}
273.btn-tramitacion:hover {background-color: #FFFFFF;}
274.btn-tramitacion .spanTramitacion {font-weight: 500;}
275.btn-tramitacion .iconTramitacion {margin-left: 5px;}
276</style>
277<!-- FIN Two Column - Detalle y Contactos -->
278<style>
279 .lista-letras {
280 list-style-type: lower-alpha !important;
281 }
282 .span-accbtn, .divPresentation a{
283 color: #0068A8 !important;
284 }
285</style>
286
287<style>
288
289 main .container ul ul {
290 list-style: circle; /* Cambia el estilo de los puntos */
291 padding-left: 20px; /* Ajusta el nivel de indentación */
292}
293
294
295 #contenidoPrin {
296 border-bottom: 1px solid #45A2EB;
297}
298
299 .divAYNNew p, .accordion-bodyLeg, .divAYNNew ul, .divAYNNew ol {
300 text-align: justify;
301 }
302 .lista-letras {
303 list-style-type: lower-alpha !important;
304 }
305table {
306 margin-bottom: 36px;
307 width: 100%;
308 border-collapse: collapse;
309 border: none;
310}
311
312 caption {
313 caption-side: top;
314 margin: 12px 0 4px 0;
315 color: #021A47;
316 font-family: "Gilroy-Medium";
317 font-size: 1.2222rem;
318 line-height: 1.5556rem;
319 text-align: left;
320}
321
322table thead tr th {
323 padding-right: 0.2rem;
324 padding-left: 0.2rem;
325 min-width: 115px;
326 border-top: none;
327 border-bottom: 2px solid #FFB600; /* Borde inferior del encabezado */
328 color: #021A47;
329 font-family: "Gilroy-Bold";
330 font-size: 0.8889rem;
331 line-height: 1.2222rem;
332}
333
334table tbody tr th, table tbody tr td {
335 padding: 1rem;
336 padding-right: 0.2rem;
337 padding-left: 0.2rem;
338 border: none;
339 color: #021A47;
340 font-family: "Gilroy-Regular";
341 font-size: 0.8889rem;
342 line-height: 1.2222rem;
343}
344
345table tbody tr td {
346 border-bottom: 2px solid #BCC3D4;
347}
348
349table tbody tr ul {
350 padding-left: 20px;
351}
352
353table tbody tr ul li {
354 list-style-type: disc;
355}
356
357table tbody tr ul li a {
358 font-family: "Gilroy-Regular";
359 font-size: 0.7778rem;
360 line-height: 1.3333rem;
361}
362
363table tbody tr ul li:has(a) {
364 color: #0070B7;
365}
366
367table a {
368 text-decoration: underline;
369 color: #0070B7;
370}
371</style>
372
373
374
375<script>
376 // Comprobar si la página ya ha sido recargada
377 if (!localStorage.getItem('hasReloaded')) {
378 // Marcar que la página ha sido recargada
379 localStorage.setItem('hasReloaded', 'true');
380
381 // Recargar la página
382 location.reload();
383 } else {
384 // Seleccionar todas las tablas dentro del contenedor con clase "container"
385 const tables = document.querySelectorAll('.container table');
386
387 // Iterar sobre cada tabla y añadir las clases si aún no están presentes
388 tables.forEach(table => {
389 if (!table.classList.contains('table-hover') && !table.classList.contains('table-responsive')) {
390 table.classList.add('table-hover', 'table-responsive');
391 }
392 });
393
394 // Limpiar la clave de localStorage
395 localStorage.removeItem('hasReloaded');
396 }
397
398 // Escuchar el evento de Liferay cuando todos los portlets estén listos
399 Liferay.on('allportletsready', function() {
400 // Seleccionar todas las tablas dentro del contenedor con clase "container"
401 const tables = document.querySelectorAll('.container table');
402
403 // Iterar sobre cada tabla y añadir las clases si aún no están presentes
404 tables.forEach(table => {
405 if (!table.classList.contains('table-hover') && !table.classList.contains('table-responsive')) {
406 table.classList.add('table-hover', 'table-responsive');
407 }
408 });
409 });
410</script>