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>
Activities

Municipal Services
Learn more

Waste Treatment and Recycling
Learn more

Facility Management
Learn more

FCC Ámbito
Learn more
Quality Management
FCC 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)









