An error occurred while processing the template.
The following has evaluated to null or missing:
==> renderer.getArticle  [in template "12187455#12187494#13940982" at line 66, column 75]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign journalArticle = renderer.get...  [in template "12187455#12187494#13940982" at line 66, column 49]
----
1<#assign UserLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.UserLocalService")> 
2<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")> 
3 
4<#assign user = UserLocalService.getUserById(themeDisplay.getUserId())> 
5<#assign scopeLocale = themeDisplay.getLocale()> 
6 
7 
8<#if entries?has_content> 
9	<#assign listaContenidos = [] /> 
10	<#assign listaRenderersContenidos = [] /> 
11	 
12	<#if locale == "es_ES"> 
13		<#assign indicatorText = "Mover a la imagen"> 
14		<#assign playButtonText = "Iniciar carrusel"> 
15		<#assign stopButtonText = "Pausar carrusel"> 
16	<#elseif locale == "ca_ES"> 
17		<#assign indicatorText = "Mou a la imatge"> 
18		<#assign playButtonText = "Iniciar carrusel"> 
19		<#assign stopButtonText = "Pausar carrusel"> 
20	<#elseif locale == "gl_ES"> 
21		<#assign indicatorText = "Mover á imaxe"> 
22		<#assign playButtonText = "Comeza o carrusel"> 
23		<#assign stopButtonText = "Pausa o carrusel"> 
24	<#elseif locale == "fr_FR"> 
25		<#assign indicatorText = "Passer à l'image"> 
26		<#assign playButtonText = "Démarrer le carrousel"> 
27		<#assign stopButtonText = "Suspendre le carrousel"> 
28	<#elseif locale == "pt_PT"> 
29		<#assign indicatorText = "Passar para a imagem"> 
30		<#assign playButtonText = "Play carrossel"> 
31		<#assign stopButtonText = "Stop carrossel"> 
32	<#elseif locale == "it_IT"> 
33		<#assign indicatorText = "Passa all'immagine"> 
34		<#assign playButtonText = "Avvia carosello"> 
35		<#assign stopButtonText = "Metti in pausa il carosello"> 
36	<#elseif locale == "de_DE"> 
37		<#assign indicatorText = "Gehen Sie zu Bild"> 
38		<#assign playButtonText = "Karussell starten"> 
39		<#assign stopButtonText = "Karussell anhalten"> 
40	<#else> 
41		<#assign indicatorText = "Move to image"> 
42		<#assign playButtonText = "Play carousel"> 
43		<#assign stopButtonText = "Stop carousel"> 
44	</#if> 
45			 
46			 
47	<#if entries?size gt 1> 
48		 <div id="myCarousel" class="carousel slide normalSlider" data-ride="carousel"> 
49		 <div class="center"> 
50 
51			<button id="playButton" type="button" class="btn btnPlayPause btnPlay" aria-label="${playButtonText}"> 
52			  <span class="sr-only">${playButtonText}</span> 
53	          <i class="icon-play"></i> 
54	       	</button> 
55		      <button id="pauseButton" type="button" class="btn btnPlayPause" aria-label="${stopButtonText}"> 
56		      	  <span class="sr-only">${stopButtonText}</span> 
57		          <i class="icon-pause"></i> 
58		      </button> 
59 
60			 <ol class="carousel-indicators"> 
61				  <#assign active = "active" /> 
62				  <#list entries as curEntry> 
63						 
64						<#assign renderer = curEntry.getAssetRenderer() /> 
65						<#assign className = renderer.getClassName() />   
66						<#assign journalArticle = renderer.getArticle() /> 
67						<#assign listaContenidos = listaContenidos + [journalArticle]> 
68						<#assign listaRenderersContenidos = listaRenderersContenidos + [renderer]> 
69						 
70						<li class="${active}"> 
71								<a href="#"  data-target="#myCarousel" data-slide-to="${curEntry?index}"> 
72									<span class="sr-only">${indicatorText} ${curEntry?index}</span> 
73								</a> 
74							</li> 
75						 
76						<#assign active = "" /> 
77				  </#list> 
78				  
79			 </ol> 
80			 </div> 
81				  
82				<div class="carousel-inner"> 
83					<#assign active ="active" /> 
84					 
85					<#if listaContenidos?has_content> 
86					<#list listaContenidos as contenido> 
87	 
88						 
89						<#assign currentRenderer = listaRenderersContenidos[contenido_index]> 
90						 
91						<div class="${active} carousel-item item">   
92							<div class="lfr-meta-actions asset-actions"> 
93 
94								<#if currentRenderer.hasEditPermission(themeDisplay.getPermissionChecker())> 
95 
96									<#assign redirectURL = renderResponse.createRenderURL()> 
97									<#assign ignore = redirectURL.setParameter("struts_action", "/asset_publisher/add_asset_redirect")> 
98									<#assign ignore = redirectURL.setWindowState("pop_up")> 
99 
100									<#assign editPortletURL = currentRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("pop_up"), redirectURL)> 
101 
102									<#if editPortletURL?? && editPortletURL?has_content> 
103										<#assign title = languageUtil.format(locale, "edit-x", currentRenderer.getTitle(locale))> 
104	 
105									  
106 
107										<#assign namespace = renderResponse.getNamespace()> 
108										<#assign escapedURL = htmlUtil.escapeURL(editPortletURL?string)> 
109										<#assign jsURL = "javascript:Liferay.Util.openWindow({dialog: {width: 960}, id:'${namespace}editAsset', title:'${currentRenderer.getTitle(locale)}', uri:'${escapedURL}'})"> 
110 
111										 
112											 
113											<@liferay_ui["icon"] 
114													image="edit" 
115													message=title 
116													url=jsURL 
117											/> 
118 
119									</#if> 
120								</#if> 
121							</div> 
122						 
123									 
124					<#assign article = JournalArticleLocalService.getArticle(contenido.getGroupId(), contenido.getArticleId() ) /> 
125				  ${JournalArticleLocalService.getArticleContent(contenido.getGroupId(),contenido.getArticleId() , null , article.getDDMTemplateKey(), locale.toString(), null, themeDisplay)} 
126	 
127						</div> 
128						<#assign active ="" /> 
129					</#list> 
130					</#if> 
131 
132				</div> 
133		</div> 
134	  
135	<#else>				 
136		 
137		<div class="carousel normalSlider"> 
138				<#assign curEntry= entries[0] /> 
139				<#assign currentRenderer = curEntry.getAssetRenderer()/> 
140				<#assign className = currentRenderer.getClassName() />   
141				<#assign journalArticle = currentRenderer.getArticle()/> 
142				<#assign contenido = journalArticle /> 
143			 
144			  <div class="carousel-inner">  
145			<div class="carousel-item item active"> 
146 
147				<div class="lfr-meta-actions asset-actions"> 
148 
149								<#if currentRenderer.hasEditPermission(themeDisplay.getPermissionChecker())> 
150 
151									<#assign redirectURL = renderResponse.createRenderURL()> 
152									<#assign ignore = redirectURL.setParameter("struts_action", "/asset_publisher/add_asset_redirect")> 
153									<#assign ignore = redirectURL.setWindowState("pop_up")> 
154 
155									<#assign editPortletURL = currentRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("pop_up"), redirectURL)> 
156 
157									<#if editPortletURL?? && editPortletURL?has_content> 
158										<#assign title = languageUtil.format(locale, "edit-x", currentRenderer.getTitle(locale))> 
159	 
160									 <#-- <#assign icono = taglibLiferay.getIconTag()> 
161										<#assign ignore = icono.setImage("edit")> 
162										<#assign ignore = icono.setMessage(title)> --> 
163 
164										<#assign namespace = renderResponse.getNamespace()> 
165										<#assign escapedURL = htmlUtil.escapeURL(editPortletURL?string)> 
166										<#assign jsURL = "javascript:Liferay.Util.openWindow({dialog: {width: 960}, id:'${namespace}editAsset', title:'${currentRenderer.getTitle(locale)}', uri:'${escapedURL}'})"> 
167 
168										<#-- <#assign ignore = icono.setUrl(jsURL)> --> 
169											 
170											<@liferay_ui["icon"] 
171													image="edit" 
172													message=title 
173													url=jsURL 
174											/> 
175 
176									</#if> 
177								</#if> 
178							</div> 
179											 
180					<#assign article = JournalArticleLocalService.getArticle(contenido.getGroupId(), contenido.getArticleId() ) /> 
181				  ${JournalArticleLocalService.getArticleContent(contenido.getGroupId(),contenido.getArticleId() , null , article.getDDMTemplateKey(), locale.toString(), null, themeDisplay)} 
182											 
183											 
184				</div> 
185			</div> 
186		</div> 
187	</#if> 
188</#if> 

Bnnae bienvenida CEO_HOME bienvenida FR movil.png

Quality Management

ISO 9001 AENORFCC Medio Ambiente Quality Management System complies with the UNE-EN ISO 9001:2015 international standard and has been audited by AENOR, certified under ER-0278/1997 in 1997.

The main requirements of this international standard include the development of documented management policies and procedures for the correct operational development of the organisation, the analysis and review of the needs and expectations of stakeholders to achieve the expected quality levels, the determination of legal or other requirements that may affect the organisation in relation to its control and compliance, and the monitoring, measurement, analysis and improvement of the management system. It is for this reason that FCC's Management System is based on the PDCA methodology (Plan-Do-Check and Act), the principle of continuously improving the activities it develops and which require ensuring the effective and excellent provision of services to our customers, also based on citizen satisfaction.

 

Mixed washing system at the Third Millennium Bridge (Zaragoza)

Mixed washing system at the Third Millennium Bridge (Zaragoza)