La raccolta nel tuo comune
The following has evaluated to null or missing:
==> themeDisplay.getURLCurrent()?split('?comune=')[1] [in template "20099#20135#850909" at line 377, column 27]
----
Tip: It's the final [] step 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 QScomune = themeDisplay.getUR... [in template "20099#20135#850909" at line 377, column 9]
----
1<#noparse>
2<script>
3// Funzione standalone per override completo di HERAcquaModena come se fosse Hera
4function overrideHERAcquaModenaAsHera() {
5 const selectedComuneServices = sessionStorage.getItem(
6 "selectedComuneServices"
7 )
8 ? JSON.parse(sessionStorage.getItem("selectedComuneServices"))
9 : getServicesForSelectedComune();
10
11 // Controlla se ci sono servizi disponibili
12 if (!selectedComuneServices || !selectedComuneServices.comune ||
13 selectedComuneServices.tipologieCliente.length === 0) {
14 return;
15 }
16
17 // Determina il tipo di cliente (Casa o Business)
18 const type = location.pathname.split("/").includes("casa") ? "Casa" : "Business";
19 const tipologiaCliente = selectedComuneServices.tipologieCliente.find(
20 (el) => el.nomeTipologia === type
21 );
22
23 if (!tipologiaCliente) return;
24
25 // Cerca se c'è almeno un servizio con HERAcquaModena
26 const hasHERAcquaModena = tipologiaCliente.serviziSocieta.some(
27 (el) => el.societa === "HERAcquaModena"
28 );
29
30 console.log("DEBUG Override - Ha HERAcquaModena:", hasHERAcquaModena);
31 console.log("DEBUG Override - Tutti i servizi:", tipologiaCliente.serviziSocieta);
32
33 // Override solo se c'è almeno un servizio HERAcquaModena
34 if (hasHERAcquaModena) {
35 console.log("DEBUG Override - Applicando override completo per HERAcquaModena");
36
37 // Forza la visualizzazione di TUTTI i menu come se fosse Hera
38 $(".verifycomunemenu").each(function (index) {
39 const menu = $(this).attr("data-menu");
40
41 // Lista dei menu principali da mostrare
42 const menuDaMostrare = [
43 "Richieste multiservizio",
44 "Acqua e Fognatura",
45 "Gas",
46 "Energia Elettrica",
47 "Teleriscaldamento"
48 ];
49
50 if (menuDaMostrare.includes(menu)) {
51 console.log("DEBUG Override - Forzando visualizzazione menu:", menu);
52 $(this).show();
53 $(this).removeClass("d-none");
54
55 // Assicurati che anche i sottomenu siano visibili
56 $(this).find(".verifycomunemenu").each(function() {
57 $(this).show();
58 $(this).removeClass("d-none");
59 });
60
61 // Rimuovi eventuali style="display: none" inline
62 $(this).css('display', '');
63 $(this).find(".verifycomunemenu").css('display', '');
64 }
65
66 // Gestione speciale per link senza data-menu ma con classi verifycomunemenu
67 if (!menu && $(this).hasClass("verifycomunemenu")) {
68 // Controlla se il parent ha un menu che dovrebbe essere visibile
69 const parentMenu = $(this).closest('[data-menu]').attr("data-menu");
70 if (menuDaMostrare.includes(parentMenu)) {
71 console.log("DEBUG Override - Forzando visualizzazione sottomenu di:", parentMenu);
72 $(this).show();
73 $(this).removeClass("d-none");
74 $(this).css('display', '');
75 }
76 }
77 });
78
79 // Override anche per elementi con data-menu="Ambiente" se presente
80 $('[data-menu="Ambiente"]').each(function() {
81 console.log("DEBUG Override - Forzando visualizzazione menu Ambiente");
82 $(this).show();
83 $(this).removeClass("d-none");
84 $(this).css('display', '');
85 });
86 }
87
88}
89
90// Auto-esecuzione al caricamento della pagina
91$(window).on('load', function() {
92 overrideHERAcquaModenaAsHera();
93});
94
95// Esegui anche dopo il cambio comune
96if (typeof initCallback !== 'undefined') {
97 const originalInitCallback = initCallback;
98 initCallback = function() {
99 originalInitCallback();
100 overrideHERAcquaModenaAsHera();
101 };
102}
103
104// Listener per cambio sessionStorage
105$(window).on('storage', function(e) {
106 if (e.originalEvent.key === 'selectedComuneServices') {
107 overrideHERAcquaModenaAsHera();
108 }
109});
110
111// Override delle funzioni esistenti che gestiscono i menu
112if (typeof showhidepanels !== 'undefined') {
113 const originalShowhidepanels = showhidepanels;
114 showhidepanels = function() {
115 const result = originalShowhidepanels.apply(this, arguments);
116 overrideHERAcquaModenaAsHera();
117 return result;
118 };
119}
120
121// Override anche per la funzione che gestisce i comuni
122$(document).on('click', '.inputcomune', function() {
123 setTimeout(function() {
124 overrideHERAcquaModenaAsHera();
125 }, 600);
126});
127
128// Override per eventi di selezione comune
129$(document).on('DOMSubtreeModified', function() {
130 const selectedComuneServices = sessionStorage.getItem("selectedComuneServices");
131 if (selectedComuneServices) {
132 const services = JSON.parse(selectedComuneServices);
133 if (services.comune && services.tipologieCliente) {
134 overrideHERAcquaModenaAsHera();
135 }
136 }
137});
138
139</script>
140</#noparse>
141
142
143
144<#assign colorbackground="" />
145<#if ColoreSezione.getData() !="" && ColoreSfondo.getData()!="#" && ColoreSfondo.getData()!="#00000">
146 <#assign colorbackground=ColoreSfondo.getData() />
147<#elseif ColoreSezione.getData() !="">
148 <#assign colorbackground=ColoreSezione.getData() />
149
150<#else>
151 <#assign colorbackground=ColoreSfondo.getData() />
152</#if>
153
154<#assign prefUrlCondividi=themeDisplay.getPortalURL() urlcustom=themeDisplay.getURLCurrent()?keep_before("?")
155currentURL=htmlUtil.escapeURL(themeDisplay.getURLCurrent())
156assistenzaUrl="/assistenza" ambienteUrl="/ambiente" mobileMenuClass="" />
157
158<script>
159
160 var timeElapsed = 0;
161 var interval = setInterval(function() {
162 timeElapsed += 100;
163 $('li.text-decoration-underline').each(function() {
164 // Cerca il tag <a> con il testo "Comunicati stampa" all'interno del <li>
165 var link = $(this).find('a').filter(function() {
166 return $(this).text().trim() === 'Comunicati stampa';
167 });
168
169 // Se il tag <a> con il testo "Comunicati stampa" � trovato, rimuovi l'after
170 if (link.length > 0) {
171 $(this).css('content', 'none'); // Rimuovi l'after
172 }
173 });
174
175 var comunicatiLink = $('a').filter(function() {
176 return $(this).text().trim() === 'Comunicati stampa';
177 });
178
179 if (comunicatiLink.length > 0) {
180 comunicatiLink.closest('.col-10')
181 .siblings()
182 .remove();
183
184 clearInterval(interval);
185 }
186
187 if (timeElapsed >= 5000) {
188 clearInterval(interval);
189 }
190 }, 100);
191</script>
192
193<style>
194
195
196@media(max-width:769px){
197
198.tilewrapper.pl-5.pr-2 {
199 padding: 0!Important;
200}
201
202.tilewrapper li {
203 list-style: none!Important;
204}
205}
206
207 .modal.show .modal-dialog {
208 width: 60%;
209 }
210 .header-breadcrumb li.text-decoration-underline::after{
211 content: '>';
212 display: inline-block;
213 margin-right: 7px;
214 }
215 .testatabreadcrumb .offerta-modal {
216 z-index: 100;
217 display: block;
218 position: absolute;
219 height: max-content;
220 width: max-content;
221 right: 85px;
222 top: 80px;
223 box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
224 margin: 3px;
225 }
226 @media (max-width: 991px) {
227 .testatabreadcrumb .offerta-modal {
228 right: 30px;
229 top: 70px;
230 }
231 }
232 .testatabreadcrumb .offerta-modal-content {
233 background-color: #fefefe;
234 margin: auto;
235 padding: 20px;
236 border-radius: 0.75rem !important;
237 }
238 .testatabreadcrumb .close_offerta {
239 color: #aaa;
240 float: right;
241 font-size: 28px;
242 font-weight: bold;
243 }
244 .testatabreadcrumb .close_offerta:hover, .testatabreadcrumb .close_offerta:focus {
245 color: #000;
246 text-decoration: none;
247 cursor: pointer;
248 }
249 .testatabreadcrumb .close-icon {
250 position: absolute !important;
251 right: 20px;
252 top: 2px;
253 }
254 .testatabreadcrumb .social__wrapper {
255 list-style-type: none;
256 padding-left: 0;
257 }
258 .testatabreadcrumb .social__icon {
259 border: none;
260 border-radius: 50%;
261 padding: 8px;
262 width: 40px;
263 height: 40px;
264 cursor: pointer;
265 }
266 .testatabreadcrumb .social__title {
267 letter-spacing: 0.5px;
268 font-weight: 600;
269 }
270 .testatabreadcrumb .social__iconFacebook {
271 background-color: #3b5998;
272 color: #fff;
273 }
274 .testatabreadcrumb .social__iconLinkedIn {
275 background-color: #0e76a8;
276 color: #fff;
277 }
278 .testatabreadcrumb .social__iconTwitter {
279 background-color: black;
280 color: #fff;
281 }
282 .testatabreadcrumb .social__iconMail {
283 background-color: #018982;
284 color: #fff;
285 }
286 .testatabreadcrumb .social__iconCopyLink {
287 background-color: #018982;
288 color: #fff;
289 }
290 .testatabreadcrumb .social__iconWhatsapp {
291 background-color: #25d366;
292 color: #fff;
293 }
294 .testatabreadcrumb .fa-whatsapp:before {
295 content: "\f232";
296 }
297 .testatabreadcrumb .social__titleWrapper {
298 border: 0;
299 padding: 0;
300 background-color: transparent;
301 color: #018982;
302 cursor: pointer;
303 min-width: 81px;
304 }
305
306 .sharetext{
307color: white;
308margin-top: 14px;
309}
310</style>
311
312<#assign completeUrl=prefUrlCondividi + urlcustom />
313
314<script>
315
316 $(document).ready(function () {
317 $('#select-menu').click(function () {
318 if ($('#root-arrow').hasClass('icon-chevron-down')) {
319 $('#root-arrow').removeClass('icon-chevron-down');
320 $('#root-arrow').addClass('icon-chevron-up');
321 $('#select-menu .select-menu-container').addClass('open');
322 }
323 else {
324 $('#root-arrow').removeClass('icon-chevron-up');
325 $('#root-arrow').addClass('icon-chevron-down');
326 setTimeout(function () {
327 $('#select-menu .select-menu-container').removeClass('open');
328 }, 800);
329 }
330 });
331 });
332</script>
333<#assign nomepagina=themeDisplay.getLayout().getName(locale) />
334<#assign title=.vars['reserved-article-title'].data vocabularyId=0
335journalArticleServiceUtil=objectUtil("com.liferay.journal.service.JournalArticleServiceUtil")
336assetVocabularyServiceUtil=objectUtil("com.liferay.asset.kernel.service.AssetVocabularyLocalServiceUtil")
337vocabulariesList=assetVocabularyServiceUtil.getGroupVocabularies(themeDisplay.getScopeGroupId())
338journalArticle=journalArticleServiceUtil.getArticle(getterUtil.getLong(scopeGroupId),
339.vars['reserved-article-id'].data)
340assetCategoryServiceUtil=objectUtil("com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil")
341journalArticleCategories=assetCategoryServiceUtil.getCategories("com.liferay.journal.model.JournalArticle",
342journalArticle.getResourcePrimKey()) nomecomune=languageUtil.get(locale, "comune-generico" )
343comuniVar=languageUtil.get(locale, "COMUNI" ) yesVar=languageUtil.get(locale, "yesVar" )
344stringacondividi=languageUtil.get(locale, "stringacondividi" )
345stringachiusura=getterUtil.getString(themeDisplay.getThemeSetting("stringa-chiusura"))
346gruppoUrl=languageUtil.get(locale, "gruppo-internal-url" )
347gruppoEngUrl=languageUtil.get(locale, "gruppo-internal-eng-url" ) chiSiamoName=languageUtil.get(locale, "chi-siamo"
348) chiSiamoEngName=languageUtil.get(locale, "chi-siamo-eng" )
349offerteServiziUrl=languageUtil.get(locale, "offerte-internal-url" )
350assistenzaUrl=languageUtil.get(locale, "assistenza-internal-url" )
351assistenzaAmbienteUrl=languageUtil.get(locale, "ambiente-internal-url" ) fornitoriUrl="/fornitori"
352dlgblockVar="d-lg-block" trueVar="true" prefUrlCondividi=themeDisplay.getPortalURL()
353urlcustom=themeDisplay.getURLCurrent()?keep_before("?") />
354<#assign completeUrl=prefUrlCondividi + urlcustom />
355<#list vocabulariesList as vocabulary>
356 <#assign vocabularyName=vocabulary.getName() />
357 <#if vocabularyName==comuniVar>
358 <#assign vocabularyId=vocabulary.getVocabularyId() />
359 </#if>
360</#list>
361<#assign listcomuni=[] />
362<#list journalArticleCategories as category>
363 <#if category.vocabularyId==vocabularyId>
364 <#assign listcomuni=listcomuni + [category.name] />
365 </#if>
366</#list>
367<#list listcomuni as comune>
368 <#if (listcomuni?size gt 0)>
369 <#assign nomecomune=nomecomune +"@" + comune />
370 <#else>
371 <#assign nomecomune=comune />
372 </#if>
373</#list>
374<#assign selectedComune='' />
375<#if urlcustom?contains('/tariffa-puntuale') || urlcustom?contains('/ambiente/tari') || urlcustom?contains('/tributi-e-tariffe/tari') || urlcustom?contains('/tcp') || urlcustom?contains('/la-raccolta-nel-tuo-comune') || urlcustom?contains('/pulizia-strade')>
376 <#if themeDisplay.getURLCurrent()?matches('.*comune=.*')>
377 <#assign QScomune=themeDisplay.getURLCurrent()?split('?comune=')[1]?split('&')[0]/>
378 <#assign lista = assetCategoryServiceUtil.getCategories("com.liferay.portal.kernel.model.layout", themeDisplay.getLayout().getPrimaryKey())>
379 <#list lista as comune>
380 <#if heraContributorLocalService.normalize(comune.getName()) == heraContributorLocalService.normalize(QScomune)?upper_case>
381 <#assign selectedComune=comune.getName()?capitalize />
382 <#break>
383 </#if>
384 </#list>
385 <#elseif request.session.getAttribute('selectedComune')??>
386 <#assign selectedComune=request.session.getAttribute('selectedComune')?capitalize />
387 </#if>
388</#if>
389
390<#assign verifycomunemenu_class='' />
391<#if urlcustom?contains('/assistenza') || urlcustom?contains('/offerte-e-servizi/casa/ambiente')>
392 <#assign verifycomunemenu_class='verifycomunemenu' />
393</#if>
394
395
396
397<input type="hidden" name="nomecomune" value="${nomecomune}" />
398<div class="testatabreadcrumb bannershape position-relative" style="background-color:${colorbackground}">
399 <div class="container">
400 <div class="row">
401 <div class="col-lg-4 col-md-12">
402 <#assign actualUrl=themeDisplay.getLayout().getName(locale) breadcrumbName="" breadcrumbURLS=""
403 breadcrumb="" pageName="" pageNameUrl="" fulllayout="" breadcrumbNames=[] breadcrumbURLS=[]
404 idnumber=0 viewinmenu=true brothersviewmenu=[] currentindex=0 breadcrumbURL="" />
405 <#list themeDisplay.getLayout().getAncestors() as ancestor>
406 <#if (ancestor?index==0)>
407 <#assign
408 fulllayout=ancestor
409 publiclayout=fulllayout.isPublicLayout()
410 breadcrumbName=ancestor.getName(locale) breadcrumbURL=ancestor.getFriendlyURL()
411 breadcrumbNames +=[ancestor.getName(locale)]
412 />
413 </#if>
414 </#list>
415 <#assign breadcrumbNames=breadcrumbNames?reverse />
416 <#assign ancestorIndex=1 />
417 <#if breadcrumbURL?contains(gruppoUrl)>
418 <#if breadcrumbURL?contains(fornitoriUrl)>
419 <#assign ancestorIndex=3 />
420 <#else>
421 <#assign ancestorIndex=2 />
422 </#if>
423 <#elseif breadcrumbURL?contains(offerteServiziUrl)>
424 <#assign ancestorIndex=3 />
425 <#elseif breadcrumbURL?contains(assistenzaUrl)>
426 <#if breadcrumbURL?contains(assistenzaAmbienteUrl)>
427 <#assign ancestorIndex=3 />
428 <#else>
429 <#assign ancestorIndex=2 />
430 </#if>
431 <#elseif breadcrumbURL?contains("investorNews")>
432 <#if breadcrumbURL?contains("edizioni")>
433 <#assign ancestorIndex=4 />
434 <#else>
435 <#assign ancestorIndex=3 />
436 </#if>
437 </#if>
438 <#list themeDisplay.getLayout().getAncestors()?reverse as ancestor>
439 <#if (ancestor?index==ancestorIndex)>
440 <#assign fulllayout=ancestor />
441 <#break />
442 </#if>
443 </#list>
444 <#if fulllayout !="">
445 <#assign pageName=fulllayout.getName(locale) pageNameUrl=fulllayout.getFriendlyURL() />
446 </#if>
447 <#if TitoloBanner?? && (TitoloBanner.getData()?lower_case?trim==chiSiamoName?lower_case?trim ||
448 TitoloBanner.getData()?lower_case?trim==chiSiamoEngName?lower_case?trim)>
449 <#list fulllayout.getChildren() as ancestor>
450 <#if ancestor.getName(locale)?lower_case?trim==chiSiamoName?lower_case?trim ||
451 ancestor.getName(locale)?lower_case?trim==chiSiamoEngName?lower_case?trim>
452 <#assign fulllayout=ancestor pageName=fulllayout.getName(locale)
453 pageNameUrl=fulllayout.getFriendlyURL() />
454 <#break />
455 </#if>
456 </#list>
457 </#if>
458 <#if MostraMenuLaterale.getData()==dlgblockVar>
459 <#list fulllayout.getChildren() as children>
460 <#assign brotherschildnames=[] />
461 <#assign brotherschildurls=[] />
462 <#assign brothersviewmenu +=[children.getExpandoBridge().getAttribute("VisualizzabileInMenu")
463 ] />
464 <#list children.getChildren() as brotherschild>
465 <#assign brotherschildnames +=[brotherschild.getName(locale)] brotherschildurls
466 +=[brotherschild.getFriendlyURL()] />
467 </#list>
468 <#assign breadcrumbURL=layout.getGroup().getDisplayURL(themeDisplay, false) +
469 children.getName(locale) />
470 <#assign
471 assetVocabularyServiceUtil=objectUtil("com.liferay.asset.kernel.service.AssetVocabularyServiceUtil")
472 pageVocabularies=assetVocabularyServiceUtil.getGroupVocabularies(themeDisplay.getScopeGroupId(), "COMUNI"
473 , -1, -1, null)
474 assetCategoryServiceUtil=objectUtil("com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil")
475 pageCategories=assetCategoryServiceUtil.getCategories("com.liferay.portal.kernel.model.layout",
476 children.getPrimaryKey()) cssPageCategories="" pageVocabularyId=0 />
477 <#if pageVocabularies?size gt 0>
478 <#list pageVocabularies as pageVocabulary>
479 <#assign pageVocabularyId=pageVocabulary.getVocabularyId() />
480 </#list>
481 <#if pageCategories?size gt 0>
482 <#list pageCategories as pageCategory>
483 <#if pageCategory.getVocabularyId()==pageVocabularyId>
484 <#assign cssPageCategories +="@" + pageCategory.getName() />
485 </#if>
486 </#list>
487 </#if>
488 </#if>
489 <#if brotherschildnames?size !=0>
490 <#if brothersviewmenu[currentindex]?c==trueVar>
491 <#assign
492 isArrowDown=""
493 isItemOnCurrentParentText = ""
494 singleItemName = children.getName(locale)
495 currentPageName = themeDisplay.getLayout().getName(locale)
496 shouldFilterOnChildItem = "true"
497 menuStyle=""
498 />
499 <#if currentPageName?lower_case==singleItemName?lower_case>
500 <#assign
501 menuStyle="font-weight: 600"
502 iconChevron="icon-chevron-down"
503 collapse="collapse show"
504 shouldFilterOnChildItem = "false"
505 />
506 </#if>
507 <#if shouldFilterOnChildItem = "true">
508 <#list breadcrumbNames as breadcrumbName>
509 <#if breadcrumbName == singleItemName>
510 <#assign
511 isItemOnCurrentParentText = "true"
512 />
513 </#if>
514 </#list>
515
516 <#if isItemOnCurrentParentText == "true">
517 <#list children.getChildren() as brotherschild>
518 <#if actualUrl==brotherschild.getName(locale) || themeDisplay.getLayout().getName(locale) == brotherschild.getName(locale)>
519 <#assign iconChevron="icon-chevron-down" collapse="collapse show" isArrowDown="true"/>
520 </#if>
521 </#list>
522 </#if>
523
524 <#if isArrowDown != "true">
525 <#assign menuStyle="" iconChevron="icon-chevron-right" collapse="collapse" />
526 </#if>
527 </#if>
528 <#assign breadcrumbURLLink="<li><div class=\" dropdown px-2 py-2 ${verifycomunemenu_class}
529 ${cssPageCategories}\" data-menu=\"${children.getName(locale)}\">
530 <div class='row'>
531 <div class='col-10'><a class='d-inline pointer greyish-brown normal2'
532 style='${menuStyle}' href='" + children.getFriendlyURL() + "'>"
533 breadcrumbURLLink += children.getName(locale) + "</a></div>"
534 />
535 <#-- breadcrumbURLLink +="<div class='col-1'><div id='submenu_" + idnumber
536 + "' class=' pointer ${iconChevron} dropdown-toggle d-inline greyish-brown normal2' role='button' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false'></div>"
537 breadcrumbURLLink
538 +="<div style='top:-30px!important;' class='ml-4 dropdown-menu white' labelledby='submenu_"
539 + idnumber + "'>" idnumber=idnumber+1 -->
540 <#assign idArrowSubmenu=children.getName(locale)?replace(" ", "
541 -")?replace(",", "" )?replace(":", "" )?lower_case?trim
542 idnumber=idnumber+1 show_submenu=false />
543 <#list children.getChildren() as brotherschild>
544 <#if
545 brotherschild.getExpandoBridge().getAttribute("VisualizzabileInMenu")>
546 <#if
547 brotherschild.getExpandoBridge().getAttribute("VisualizzabileInMenu")?c==trueVar>
548 <#assign show_submenu=true />
549 </#if>
550 </#if>
551 <#if show_submenu>
552 <#break />
553 </#if>
554 </#list>
555 <#if show_submenu>
556 <#assign breadcrumbURLLink
557 +="<div class='col-1' ><div class='arrow-submenu pointer ${iconChevron} dropdown-toggle d-inline greyish-brown normal2' role='button' tabindex='0' aria-label='Espandi ${children.getName(locale)}' data-toggle='collapse' id='arrow-submenu-${idArrowSubmenu}' data-target='#submenu-${idnumber}' aria-haspopup='true' aria-expanded='false'></div></div>"
558 breadcrumbURLLink
559 +="<div class='col-11 pl-4 ${collapse}' id='submenu-" + idnumber
560 + "'><ul class='list-unstyled' style='list-style: none; padding: 0;'>" />
561 <#list children.getChildren() as brotherschild>
562 <#if
563 brotherschild.getExpandoBridge().getAttribute("VisualizzabileInMenu")>
564 <#assign
565 assetVocabularyServiceUtil=objectUtil("com.liferay.asset.kernel.service.AssetVocabularyServiceUtil")
566 pageVocabularies=assetVocabularyServiceUtil.getGroupVocabularies(themeDisplay.getScopeGroupId(), "COMUNI"
567 , -1, -1, null)
568 assetCategoryServiceUtil=objectUtil("com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil")
569 pageCategories=assetCategoryServiceUtil.getCategories("com.liferay.portal.kernel.model.layout",
570 brotherschild.getPrimaryKey()) cssPageCategories=""
571 pageVocabularyId=0 />
572 <#if pageVocabularies?size gt 0>
573 <#list pageVocabularies as pageVocabulary>
574 <#assign
575 pageVocabularyId=pageVocabulary.getVocabularyId() />
576 </#list>
577 <#if pageCategories?size gt 0>
578 <#list pageCategories as pageCategory>
579 <#if
580 pageCategory.getVocabularyId()==pageVocabularyId>
581 <#assign cssPageCategories +="@" +
582 pageCategory.getName() />
583 </#if>
584 </#list>
585 </#if>
586 </#if>
587 <#assign isItemOnCurrentParentText = "false" />
588 <#list breadcrumbNames as breadcrumbName>
589 <#if breadcrumbName == singleItemName>
590 <#assign
591 isItemOnCurrentParentText = "true"
592 />
593 </#if>
594 </#list>
595 <#assign menuStyle="" />
596 <#if actualUrl==brotherschild.getName(locale) && isItemOnCurrentParentText == "true">
597 <#assign menuStyle="font-weight: 600" />
598 </#if>
599 <#assign brotherschildname=brotherschild.getName(locale)
600 brotherschildurl=brotherschild.getFriendlyURL()
601 breadcrumbURLLink +="<li><a class=\" d-block pointer
602 greyish-brown normal2 px-1 py-1 ${verifycomunemenu_class}
603 ${cssPageCategories}\" data-menu=\"${children.getName(locale)}\" style='${menuStyle}'
604 href='" + brotherschildurl + "'>" +
605 brotherschildname + "</a></li>"
606 />
607 </#if>
608 </#list>
609 <#else>
610 <#assign breadcrumbURLLink
611 +="<div class='col-11 pl-4 ${collapse}' id='submenu-" + idnumber
612 + "'><ul class='list-unstyled' style='list-style: none; padding: 0;'>" />
613 </#if>
614 <#assign breadcrumbURLLink +="</ol></div></div></div></li>" />
615 <#assign breadcrumb=breadcrumb + breadcrumbURLLink />
616 </#if>
617 <#else>
618 <#if brothersviewmenu[currentindex]?c==trueVar>
619 <#assign menuStyle="" />
620 <#if actualUrl==children.getName(locale)>
621 <#assign menuStyle="font-weight: 600" />
622 </#if>
623 <#assign breadcrumbURLLink="<li><a class=\" d-block col-10 greyish-brown
624 normal2 px-2 py-2 verifycomunemenu ${cssPageCategories}\"
625 data-menu=\"${children.getName(locale)}\" style='${menuStyle}' href='" + children.getFriendlyURL() + "'>" +
626 children.getName(locale) + "</a></li>"
627 breadcrumb = breadcrumb + breadcrumbURLLink
628 />
629 </#if>
630 </#if>
631 <#assign currentindex=currentindex+1 />
632 </#list>
633 </#if>
634 <#assign breadcrumbBuckup=breadcrumb />
635 <div class="container sidemenucontent ${MostraMenuLaterale.getData()}">
636 <div class="tile" id="menu-laterale">
637 <div class="tile-content">
638 <div class="tilewrapper">
639 <nav aria-label="Navigazione ${pageName}">
640 <ul class='list-unstyled' style="list-style: none; padding: 0;">
641 <li>
642 <a class="${ColoreTesto.getData()}" href="${pageNameUrl}">
643 <p class="bolder greyish-brown normal2 px-2 text-uppercase">${pageName}</p>
644 </a>
645 <hr class="my-3 mx-2">
646 </li>
647
648 ${breadcrumb}
649 </ul>
650 </nav>
651 </div>
652 </div>
653 </div>
654 </div>
655 </div>
656 <div class="col-lg-7 col-md-10 col-sm-10 col-xs-8">
657 <#assign actualUrl="<li class='actualurlbread ${ColoreTesto.getData()}'>" +
658 themeDisplay.getLayout().getName(locale) + "</li>" breadcrumbNames=[] breadcrumbURLS=[]
659 rightAngleBracket="<span class='right-angle-bracket ${ColoreTesto.getData()}'> > </span>"
660 breadcrumb="" />
661 <#list themeDisplay.getLayout().getAncestors() as ancestor>
662 <#assign breadcrumbNames +=[ancestor.getName(locale)] breadcrumbURLS
663 +=[ancestor.getFriendlyURL()] />
664 </#list>
665 <#assign breadcrumbNames=breadcrumbNames?reverse breadcrumbURLS=breadcrumbURLS?reverse />
666 <#list breadcrumbNames as breadcrumbName>
667 <#if breadcrumbName !="Super Homepage">
668 <#assign menuStyle="" />
669 <#if actualUrl==breadcrumbName>
670 <#assign menuStyle="font-weight: 600" />
671 </#if>
672 <#assign breadcrumbIndex=breadcrumbName?index breadcrumbURL=breadcrumbURLS[breadcrumbIndex]
673 breadcrumbURL=layout.getGroup().getDisplayURL(themeDisplay, false) + breadcrumbURL
674 breadcrumbURLLink="<li class='text-decoration-underline'><a class='${ColoreTesto.getData()} pr-2' style='${menuStyle}' href='" + breadcrumbURL
675 + "'>" + breadcrumbName + "</a></li>" breadcrumb=breadcrumb + breadcrumbURLLink/>
676 <#if (ancestorIndex + 1)==breadcrumbName?index>
677 <#assign idSubmenuArrow=breadcrumbName?string?replace(" ", " -")?replace(",", "" )?replace(":", ""
678 )?lower_case?trim />
679 <script>
680 var id = String("${idSubmenuArrow}");
681 var arrowId = "#arrow-submenu-" + id;
682 var submenu="#submenu-" + id;
683 if($(submenu) && $(submenu).length > 0) {
684 $(submenu).click(() => {
685 if ($(submenu).hasClass('icon-chevron-right')) {
686 $(submenu).removeClass('icon-chevron-right');
687 $(submenu).addClass('icon-chevron-down');
688 } else {
689 $(submenu).removeClass('icon-chevron-down');
690 $(submenu).addClass('icon-chevron-right');
691 }
692 });
693 }
694
695 </script>
696 </#if>
697 </#if>
698 </#list>
699 <#assign breadcrumb=breadcrumb + actualUrl />
700 <div class="pb-4">
701 <h1 id="pagename" class="${ColoreTesto.getData()} title-bigger bold pt-4 pt-md-2 pt-lg-5 mb-2">
702 ${htmlUtil.unescape(TitoloBanner.getData())}
703 <#if selectedComune??>
704 ${selectedComune}
705 </#if>
706 </h1>
707 <#if TestoAggiuntivo??>
708 <#if TestoAggiuntivo.getData() !="">
709 <p class="${ColoreTesto.getData()} normal bold">${TestoAggiuntivo.getData()}</p>
710 </#if>
711 </#if>
712 <#if (MostraBreadcrumb.getData()==yesVar)>
713 <nav class="header-breadcrumb ${ColoreTesto.getData()}" aria-label="Percorso di navigazione"><ol class="d-flex flex-wrap" style='list-style: none; padding: 0;'>${breadcrumb}
714
715 <#if selectedComune??>
716 <span class="white">${selectedComune}</span>
717 </#if>
718 </ol>
719 </nav>
720
721 </#if>
722 </div>
723 </div>
724 <div class="col-lg-1 col-md-2 col-sm-2 col-xs-4">
725 <div class="text-center float-right">
726 <div class="position-relative">
727 <button id="myButtonShare" class="pointer bg-transparent border-0" style="display:none;">
728 <p class="${ColoreTesto.getData()} title-bigger bold pt-lg-5 pt-4"></p>
729 <img alt=""
730 src="/o/gruppohera-theme/images/share-heart-${ColoreTesto.getData()}.png" />
731 <p class="sharetext black">${stringacondividi}</p>
732 </button>
733 <div id="myModalBreadcrumb" class="offerta-modal" style="min-width: 240px; display: none">
734 <div class="offerta-modal-content position-relative">
735 <div class="float-right">
736 <span id="close_offerta" class="close_offerta text-right close-icon">×</span>
737 </div>
738 <p class="h4 text-left mb-3 greyish-brown">Condividi</p>
739 <ul class="social__wrapper">
740 <li class="d-flex align-items-center mb-2">
741 <div class="mr-2" style="width: 40px; height: 40px;"><span
742 class="social__icon d-flex align-items-center justify-content-center icon-facebook social__iconFacebook"></span>
743 </div><a class="h6 mb-0 greyish-brown" id="facebook_share" href=""
744 target="_blank" style="font-size: 1.1rem;color: #018982;">Facebook</a>
745 </li>
746 <li class="d-flex align-items-center mb-2">
747 <div class="mr-2" style="width: 40px; height: 40px;"><span
748 class="social__icon d-flex align-items-center justify-content-center icon-linkedin social__iconLinkedIn"></span>
749 </div><a class="h6 mb-0 greyish-brown position-relative" id="linkedin_share"
750 href="" target="_blank" style="font-size: 1.1rem;color: #018982;">
751 LinkedIn
752 <div style="opacity: 0;top:0;" class="position-absolute w-100">
753 <script src="https://platform.linkedin.com/in.js"
754 type="text/javascript">lang: it_IT</script>
755 <script type="IN/Share"
756 data-url="https://www.gruppohera.it${currentURL}"></script>
757 </div>
758 </a>
759 </li>
760 <li class="d-flex align-items-center mb-2">
761 <div class="mr-2" style="width: 40px; height: 40px;"><img src="/documents/688182/0/logo-white-x.png/82ded04f-f3ee-3f23-e167-ed8a0cc95913?t=1707295919187"
762 class="social__icon d-flex align-items-center justify-content-center social__iconTwitter"></img>
763 </div><a class="h6 mb-0 greyish-brown" id="twitter_share" href=""
764 target="_blank" style="font-size: 1.1rem;color: #018982;">X</a>
765 </li>
766 <li class="d-flex align-items-center mb-2">
767 <div class="mr-2" style="width: 40px; height: 40px;">
768 <span
769 class="social__icon d-flex align-items-center justify-content-center social__iconWhatsapp text-left">
770 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"
771 fill="#fff" viewBox="0 0 24 24">
772 <path
773 d="M.057 24l1.687-6.163c-1.041-1.804-1.588-3.849-1.587-5.946.003-6.556 5.338-11.891 11.893-11.891 3.181.001 6.167 1.24 8.413 3.488 2.245 2.248 3.481 5.236 3.48 8.414-.003 6.557-5.338 11.892-11.893 11.892-1.99-.001-3.951-.5-5.688-1.448l-6.305 1.654zm6.597-3.807c1.676.995 3.276 1.591 5.392 1.592 5.448 0 9.886-4.434 9.889-9.885.002-5.462-4.415-9.89-9.881-9.892-5.452 0-9.887 4.434-9.889 9.884-.001 2.225.651 3.891 1.746 5.634l-.999 3.648 3.742-.981zm11.387-5.464c-.074-.124-.272-.198-.57-.347-.297-.149-1.758-.868-2.031-.967-.272-.099-.47-.149-.669.149-.198.297-.768.967-.941 1.165-.173.198-.347.223-.644.074-.297-.149-1.255-.462-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.521.151-.172.2-.296.3-.495.099-.198.05-.372-.025-.521-.075-.148-.669-1.611-.916-2.206-.242-.579-.487-.501-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.263.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.719 2.006-1.413.248-.695.248-1.29.173-1.414z" />
774 </svg>
775 </span>
776 </div>
777 <a class="h6 mb-0 greyish-brown" id="whatsApp_social" href="" target="_blank"
778 style="font-size: 1.1rem;color: #018982;">WhatsApp</a>
779 </li>
780 <li class="d-flex align-items-center mb-2">
781 <div class="mr-2" style="width: 40px; height: 40px;"><span
782 class="social__icon d-flex align-items-center justify-content-center icon-mail social__iconMail"></span>
783 </div><a class="h6 mb-0 greyish-brown"
784 href="https://mail.google.com/mail/?view=cm&fs=1&to=someone@example.com&su=Gruppo Hera&body=https://www.gruppohera.it${themeDisplay.getLayout().getFriendlyURL()}"
785 target="_blank" style="font-size: 1.1rem;color: #018982;">Email</a>
786 </li>
787 <li class="d-flex align-items-center mb-2">
788 <div class="mr-2" style="width: 40px; height: 40px;"><span
789 class="social__icon d-flex align-items-center justify-content-center icon-link social__iconCopyLink"></span>
790 </div><button
791 class="h6 mb-0 greyish-brown pointer bg-transparent border-0 social__titleWrapper text-left"
792 id="copyShareLinkButton" target="_blank"
793 style="font-size: 1.1rem;color: #018982;" onclick="copyShareLink()">Copia il
794 link</button>
795 </li>
796 </ul>
797 </div>
798 </div>
799 </div>
800 </div>
801 </div>
802 </div>
803 </div>
804</div>
805
806<#if currentURL?contains(assistenzaUrl)>
807 <#if currentURL?contains(ambienteUrl)>
808 <#assign mobileMenuClass="selectMenu__absolutePosition mb-4" />
809 <#else>
810 <#assign mobileMenuClass="" />
811 </#if>
812 <section id="assistenzamenu">
813 <div class="d-block d-lg-none mx-auto w-sm-75 w-md-100 px-4 ${mobileMenuClass} pt-4 pt-md-0">
814 <a id="select-menu" data-toggle="collapse" href="#collapse-menu-laterale" role="button" aria-expanded="true"
815 aria-controls="collapse-menu-laterale">
816 <div class="select-menu-container mt-2 bg-white">
817 <span class="text-uppercase color-gray">Assistenza</span>
818 <div id="root-arrow" class="icon-chevron-down root-arrow float-right mr-2 h-100"
819 style="/*writing-mode: vertical-lr;*/"></div>
820 </div>
821 </a>
822 <div class="collapse mx-4" id="collapse-menu-laterale">
823 <div class="py-3">
824 <div class="tilewrapper pl-5 pr-2">
825 ${breadcrumbBuckup}
826 </div>
827 </div>
828 </div>
829 </div>
830 </section>
831</#if>
832<script>
833
834 var shareModal = document.getElementById("myShareModal");
835 var shareBtn = document.getElementById("myShareBtn");
836 var shareCloseSpan = document.getElementsByClassName("my-share-close")[0];
837 var shareCloseBtn = document.getElementsByClassName("my-share-close-btn")[0];
838
839 if (shareBtn !== null) {
840 shareBtn.onclick = function() {
841 shareModal.style.display = "block";
842 $( "#copyShareLinkButton" ).prop( "disabled", false );
843 }
844 }
845
846 if (shareCloseSpan!==undefined && shareCloseSpan!="" && shareCloseSpan!== null){
847 shareCloseSpan.onclick = function() {
848 shareModal.style.display = "none";
849 $("#myShareCopiedToClipboard").remove();
850 }
851
852 shareCloseBtn.onclick = function() {
853 shareModal.style.display = "none";
854 $("#myShareCopiedToClipboard").remove();
855 $(".social__titleWrapper").text("Copia il link");
856 $(".social__titleWrapper").prop("disabled", false);
857 }
858 }
859
860 /* copy share link event */
861 function copyShareLink() {
862 navigator.clipboard.writeText(window.location.href);
863 $(".social__titleWrapper").text("Link Copiato!");
864 $(".social__titleWrapper").prop("disabled", true);
865 };
866
867 /* share social medial modal events */
868 var modal = document.getElementById("myModalBreadcrumb");
869 var btnShare = document.getElementById("myButtonShare");
870 var span = document.getElementById("close_offerta");
871
872 if (btnShare !== undefined && btnShare !== null) {
873 btnShare.onclick = function () {
874 console.log("cliccato")
875 modal.style.display = "block";
876 $("#copyLinkButton").prop("disabled", false);
877 }
878 }
879
880 // When the user clicks on <span> (x), close the modal
881 if (span !== undefined && span !== null) {
882 span.onclick = function () {
883 modal.style.display = "none";
884 $("#copiedToClipboard").remove();
885 $(".social__titleWrapper").text("Copia il link");
886 $(".social__titleWrapper").prop("disabled", false);
887 }
888 }
889 /* --share social medial modal events-- */
890
891 window.onclick = function(event) {
892 if (event.target == shareModal) {
893 shareModal.style.display = "none";
894 }
895 }
896
897
898 //Gestione Composizione Link Share Social
899 var url = window.location.href.includes("auth") ? window.location.href.replace("https://auth-", "https://") : window.location.href;
900 var encodedUri = encodeURI(url);
901
902 //LINKEDIN
903 function createLinkedinLink(url) {
904 var shareLink = "https://www.linkedin.com/shareArticle?mini=true&";
905 shareLink += "url=" + encodeURIComponent(url);
906 return shareLink;
907 }
908 var linkedinAncor = $("#linkedin_share");
909 linkedinAncor.attr("href", createLinkedinLink(encodedUri))
910
911 //FACEBOOK
912 function createFbShareLink(url) {
913 var shareLink = 'https://www.facebook.com/sharer/sharer.php?kid_directed_site=0&';
914 shareLink += 'u=' + encodeURIComponent(url);
915 shareLink += '&display=popup&ref=plugin&src=share_button';
916 return shareLink;
917 }
918 var facebookAncor = $("#facebook_share");
919 facebookAncor.attr("href", createFbShareLink(encodedUri));
920
921 //TWITTER
922 function createTwitterShareLink(url, title){
923 var shareLink = 'https://twitter.com/intent/tweet?';
924 shareLink += 'url=' + encodeURIComponent(url);
925 shareLink += '&text=' + 'Gruppo Hera -' + title;
926 return shareLink;
927 }
928 var twitterAncor = $("#twitter_share");
929 twitterAncor.attr("href", createTwitterShareLink(encodedUri, $("#pagename").text()));
930
931 //WHATSAPP
932 var whatsAppAncor = $("#whatsApp_social");
933 whatsAppAncor.attr("href", "https://wa.me/?text=" + encodeURIComponent(encodedUri));
934 /* ------ FINE GESTIONE SOCIAL ------ */
935
936 document.addEventListener('DOMContentLoaded', function() {
937 console.log("dom loaded");
938 function getHashParam() {
939 return window.location.hash.substring(1);
940 }
941
942 function openAccordion(collapseId) {
943 var collapseElement = document.getElementById(collapseId);
944 console.log("---> accordion")
945 if (collapseElement) {
946 var bootstrapCollapse = new bootstrap.Collapse(collapseElement, {
947 toggle: true
948 });
949 }
950 }
951
952 const accordionParam = getHashParam();
953
954 if (accordionParam) {
955 console.log("parametro esistente", accordionParam)
956 openAccordion(accordionParam);
957 }
958 });
959
960</script>
HeraAssetPublisherFilterComuneSelector
Aggregatore Risorse
Nel 2017 i servizi ambientali nel Comune di Bastiglia, gestiti già dal Gruppo Hera, sono stati modificati e aggiornati in ottemperanza alle direttive regionali ed europee con l’attivazione della Tariffa Corrispettiva Puntuale a partire dal 1° gennaio 2018.
Oggi i servizi ambientali sono stati assegnati attraverso una gara ad evidenza pubblica che l’Agenzia Territoriale dell’Emilia-Romagna per i Servizi Idrici e Rifiuti ha bandito, ed Hera, capofila di un raggruppamento temporaneo di imprese con la Brodolini ed Ecobi, si è aggiudicata.
Per questo motivo, per i prossimi 15 anni, il Gruppo Hera continuerà ad occuparsi di raccolta rifiuti e pulizia della città, intervenendo quando necessario sulle modalità di svolgimento dei servizi, secondo le indicazioni tecniche e operative contenute nel Bando di gara, al fine principale di aumentare la raccolta differenziata e migliorare il decoro ambientale dell’ambiente in cui viviamo.
La partecipazione attiva e consapevole di tutta la cittadinanza è stata e sarà fondamentale per conservare la bellezza e la pulizia delle città.
Siamo certi che “Insieme” potremo contribuire al meglio per rendere la nostra città più bella e dare un contributo per migliorare l’ambiente in cui viviamo.
Ritiro del kit per la raccolta
Per ritirare la NUOVA Carta Smeraldo recati dal 14 al 27 gennaio 2025 presso una delle Case Smeraldo attive a Bastiglia e Bomporto.
Tutte le altre attrezzature sono disponibili presso gli Sportelli Clienti Hera o le Stazioni Ecologiche di Bastiglia e Bomporto, consulta gli orari di apertura e le modalità di ritiro alla sezione PUNTI DI DISTRIBUZIONE del ilRifiutologo (dal sito o da App).
Il kit può essere ritirato dal titolare del contratto di Igiene Ambientale (TCP) o da suo delegato utilizzando il modulo di delega presente nella sezione Moduli.
Attenzione, tutte le dotazioni fornite, tessere, contenitori, sacchi sono caratterizzate da codici univoci che vengono associati nominalmente ad ogni utenza TCP. Quindi è necessario prestare attenzione alle proprie specifiche attrezzature così da non confonderle con altre. Si consiglia, in caso di esposizione di bidoncini nei servizi porta a porta, di personalizzare i propri contenitori in modo da riconoscerli facilmente fra gli altri.
Consulta ilRifiutologo per conoscere il servizio di raccolta attivo a casa tua.
Sistema di raccolta stradale con cassonetti informatizzati
Nelle aree maggiormente abitate del Comune di Bastiglia, la raccolta dei principali rifiuti si svolge con cassonetti stradali distribuiti in accordo con l’Amministrazione Comunale, a seconda del numero di cittadini e nel rispetto della sicurezza stradale, in Isole Ecologiche di Base contenenti i seguenti materiali differenziabili: carta, plastica e lattine, organico, vetro, sfalci e ramaglie, indifferenziato.
I cassonetti per i rifiuti indifferenziati hanno un “cassetto” apribile con la Carta Smeraldo (la tessera Hera per i servizi ambientali). Questo sistema consente di monitorare i conferimenti di ciascuna utenza, azione necessaria per l’applicazione della Tariffazione Corrispettiva Puntuale (TCP), come prevede la Normativa Regionale.
Scopri nel dettaglio come funziona il cassonetto con cassetto (Smarty)
Anche i cassonetti per carta e plastica/lattine sono informatizzati e dotati di un’apertura più piccola per limitare i conferimenti non conformi. I conferimenti di rifiuti differenziati effettuati con Carta Smeraldo sono illimitati e sempre gratuiti.
Per conferire sfalci e ramaglie nei contenitori dedicati è necessaria invece una chiave – disponibile presso i punti di distribuzione – con cui aprire la serratura nella parte laterale del cassonetto.
I contenitori per organico e vetro sono invece a conferimento libero, cioè non serve la Carta Smeraldo per aprirli.
Nelle zone con raccolta stradale con cassonetti informatizzati, il kit è costituito da:
- Carta Smeraldo
- Bidoncino “sotto lavello” marrone da 10 litri da cucina per la raccolta domestica del rifiuto organico e dotazione sacchi in mater-bi
- Chiave triangolare per l’apertura dei cassonetti per sfalci/ramaglie
Sistema di raccolta porta a porta
Nelle zone rurali e case sparse e nelle Zone Artigianali Industriali, la raccolta di carta, plastica, organico, indifferenziato e vetro viene effettuata con un sistema “porta a porta”: i rifiuti vanno gestiti all’interno della proprietà ed esposti per essere raccolti nei diversi giorni della settimana, seguendo il calendario allegato e utilizzando le attrezzature consegnate.
A tutte le utenze viene comunque consegnata la Carta Smeraldo che permette di avere accesso a tutti i cassonetti della città in qualunque momento.
Il kit per la raccolta nelle zone porta a porta è costituito da:
- bidoncino marrone da 25 litri per la raccolta del rifiuto organico da mettere in strada
- bidoncino “sotto lavello” marrone da 10 litri da cucina per la raccolta domestica del rifiuto organico
- sacchi blu per la raccolta della carta
- sacchi gialli per la raccolta di plastica/lattine
- bidoncino verde da 30 litri per la raccolta del vetro da mettere in strada
- bidoncino grigio da 40 litri per la raccolta dell’indifferenziato da mettere in strada
- Carta Smeraldo per poter conferire nei cassonetti delle aree vicine
- chiave triangolare per l’apertura dei cassonetti per sfalci/ramaglie
- calendario di raccolta
I sacchi di indifferenziato depositati in strada, non saranno prelevati e verranno considerati a tutti gli effetti scarichi abusivi come da Regolamento ATERSIR e quindi potenzialmente soggetti a sanzione amministrativa. Si ricorda che nel contenitore dei rifiuti indifferenziati, oggetto di tariffazione puntuale, va conferito solo ciò che rimane, dopo aver separato bene tutti i rifiuti differenziabili.
Altre raccolte territoriali
Ritiro gratuito a domicilio di ingombranti e potature
Abbandonare i rifiuti, oltre a non essere responsabile, è un atto che ha un grande costo per la collettività, provoca il degrado dell’ambiente e della città ed è sanzionabile per legge.
Per questo abbiamo istituito un servizio di ritiro gratuito a domicilio: prenota il tuo appuntamento chiamando il Servizio Clienti Hera all’800.999.500 o tramite l’app Il Rifiutologo per il ritiro di:
- rifiuti ingombranti (mobilio, materassi, ecc.)
- Apparecchiature Elettriche ed Elettroniche di grandi dimensioni (frigo, lavatrici, ecc.)
- cemento/amianto – eternit (piccole quantità e previa autorizzazione della AUSL)
- Alcune tipologie di rifiuti da piccole demolizioni domestiche fai da te (solo carta catramata, cartongesso, guaina bituminosa, lana di vetro, lana di roccia, vetroresina)
Servizi aggiuntivi per utenze non domestiche
Per utenze come negozi, attività commerciali, artigianali, industriali o altre utenze diverse da cittadini/famiglie che hanno esigenze particolari che non possono essere soddisfatte dai servizi standard, è necessario segnalare la necessità in fase di apertura contratto TCP o di ritiro del kit allo sportello oppure chiamando il numero gratuito del Servizio Clienti Hera 800 999 700 per concordare un sopralluogo con un tecnico.
Da fine gennaio 2025 arrivano anche a Bomporto i cassonetti di ultima generazione apribili con una nuova Carta Smeraldo.
Dove ritiro la nuova Carta Smeraldo?
Ti aspettiamo alle Case Smeraldo dal 14 al 27 gennaio secondo questo calendario.
| BASTIGLIA | BOMPORTO | SOLARA | SORBARA |
|---|---|---|---|
|
CASA DEL POPOLO |
SALA CIVICA TORNACANALE |
UFFICIO ACCANTO TABACCHERIA |
SALA LOMBRICO |
| GIORNO | ORA | LUOGO | |||
| martedì 14 gennaio | 08:30 – 12:30 | SORBARA | |||
| 14:30 – 18:30 | BASTIGLIA | SOLARA | |||
| mercoledì 15 gennaio | 08:30 – 12:30 | BASTIGLIA | BOMPORTO | ||
| 14:30 – 20:00 | SORBARA | ||||
| giovedì 16 gennaio | 08:30 – 12:30 e 14:30 – 20:00 | BASTIGLIA | BOMPORTO | ||
| venerdì 17 gennaio | 08:30 – 12:30 | BASTIGLIA | SOLARA | ||
| 14:30 – 18:30 | BASTIGLIA | SORBARA | |||
| sabato 18 gennaio | 08:30 – 12:30 | BASTIGLIA | SOLARA | BOMPORTO | |
| domenica 19 gennaio | 08:30 – 12:30 | BASTIGLIA | SORBARA | ||
| lunedì 20 gennaio | 08:30 – 12:30 | BASTIGLIA | SORBARA | ||
| 14:30 – 18:30 | BOMPORTO | ||||
| martedì 21 gennaio | 08:30 – 12:30 | SORBARA | |||
| 14:30 – 20:00 | BASTIGLIA | SOLARA | |||
| mercoledì 22 gennaio | 08:30 – 12:30 | BASTIGLIA | BOMPORTO | ||
| 14:30 – 18:30 | SORBARA | ||||
| giovedì 23 gennaio | 08:30 – 12:30 e 14:30 – 20:00 | BASTIGLIA | BOMPORTO | ||
| venerdì 24 gennaio | 08:30 – 12:30 | BASTIGLIA | SOLARA | ||
| 14:30 – 18:30 | BASTIGLIA | SORBARA | |||
| sabato 25 gennaio | 08:30 – 12:30 | BASTIGLIA | SOLARA | SORBARA | |
| domenica 26 gennaio | 08:30 – 12:30 | BASTIGLIA | BOMPORTO | ||
| lunedì 27 gennaio | 08:30 – 12:30 | BASTIGLIA | SORBARA | ||
| 14:30 – 18:30 | BOMPORTO |
Tutte le batterie di cassonetti saranno costituite da un nuovo cassonetto Smarty per i rifiuti indifferenziati, che sostituirà quello a calotta: accostando la tessera al lettore, contraddistinto da un simbolo con i cerchi concentrici, si aprirà automaticamente il cassetto in cui va inserito il sacchetto da 30 litri. Per richiuderlo basterà azionare la pedaliera. Il nuovo sistema permette quindi di conferire i rifiuti senza toccare il cassonetto.
Anche i contenitori per plastica, carta e cartone saranno informatizzati e dotati di un’apertura più piccola per limitare i conferimenti non conformi: basterà avvicinare la Carta Smeraldo per sbloccare il cassonetto, mentre l’apertura sarà a pedale.
I cassonetti per sfalci e ramaglie saranno invece apribili con chiave, mentre quelli del vetro, in sostituzione delle attuali campane, saranno a conferimento libero.
Nulla cambia, infine, per l’organico, che va gettato nei contenitori con oblò già presenti sul territorio.
Tutti i nuovi cassonetti informatizzati si potranno aprire anche con lo smartphone (sia con sistema operativo Android sia con IOS), attivando la Carta Smeraldo virtuale tramite l’app Il Rifiutologo.
Il calcolo della tariffa corrispettiva puntuale (TCP) non cambia e saranno conteggiati come sempre solo i conferimenti dei rifiuti indifferenziati.
Per tutte le informazioni sulla Tariffa Puntuale clicca sul link: La Tariffa Puntuale.
Nella calotta dell'indifferenziato si possono inserire solo sacchetti di una certa dimensione?
Sì, nella calotta può essere inserito un sacchetto della capienza massima di 30 litri, circa la dimensione di un sacchetto della spesa. Con la calotta si limita la quantità di rifiuto indifferenziato conferito incentivando la raccolta differenziata e disincentivando l'inserimento di oggetti molto grandi, che riempirebbero velocemente tutto il cassonetto, impedendo il normale conferimento dei rifiuti.
Come faccio se il sacco o l'oggetto che voglio conferire ha grandi dimensioni e non entra nella calotta?
Nel caso di un sacchetto di grandi dimensioni questo va diviso in sacchetti più piccoli, dalla capienza massima di 30 litri. Gli oggetti troppo grandi che non entrano nella calotta andranno portati alla stazione ecologica più vicina, oppure si potrà richiedere il servizio gratuito di ritiro a domicilio degli ingombranti chiamando il servizio Clienti al numero 800.999.500.
Come comportarsi in caso di smarrimento, furto o danneggiamento di un dispositivo in dotazione (Carta Smeraldo o contenitore porta a porta)?
È necessario denunciare il fatto il prima possibile presso lo Sportello Clienti o la Stazione Ecologica di Bastiglia o Bomporto in quanto i dispositivi associati alle utenze sono strettamente personali. Saranno riconsegnate all'utenza nuove tessere o contenitori.
Cosa fare in caso di chiusura del proprio contratto TCP?
I contribuenti sono tenuti a riconsegnare i contenitori in dotazione presso le Stazioni Ecologiche di Bomporto o Bastiglia e recarsi presso lo Sportello Clienti per restituire le tessere e chiudere il contratto. La chiusura del contratto può essere effettuata anche telefonando al numero gratuito 800.999.500 (per utenze domestiche) o 800.999.700 (per utenze non domestiche).
Per la restituzione di contenitori di grandi dimensioni in dotazione alle utenze non domestiche è necessario richiedere il ritiro al numero gratuito 800.999.700
Risparmiamo energia, insieme.
Il sito è in modalità risparmio energetico per ridurre i consumi, basta un click per ripartire.
Clicca in un punto qualsiasi per continuare a navigare