Gruppo Hera Luce e GasCasaMobilità sostenibileRicarica pubblica

HeraRicarica Pubblica

HeraRicarica Pubblica

Fai il pieno di energia  al tuo veicolo con le colonnine e usufruisci dello stesso prezzo tra ricarica Quick e Fast!

Compatibile con tutte le colonnine nazionali

Stesso prezzo per la ricarica Quick e Fast

Comodo pagamento in bolletta

Gruppo Hera Luce e GasCasaMobilità sostenibileRicarica pubblica

HeraRicarica Pubblica

Fai il pieno di energia  al tuo veicolo con le colonnine e usufruisci dello stesso prezzo tra ricarica Quick e Fast!

Compatibile con tutte le colonnine nazionali

Stesso prezzo per la ricarica Quick e Fast

Comodo pagamento in bolletta

Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> serviceLocator  [in template "20099#20135#145502" at line 458, column 95]

----
Tip: If the failing expression is known to be 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 dlFileEntryService = serviceL...  [in template "20099#20135#145502" at line 458, column 65]
----
1<style> 
2    @media (max-width: 767px) { 
3        .testataBackgroundImage { 
4            min-height: 525px; 
5
6        .testataBackgroundImage .container { 
7            padding: 15px!important; 
8
9        .testataBackgroundImage .fixed-widget-offerta-inner-container { 
10            margin-top: 0px!important; 
11
12        .testataBackgroundImage .col-xs-4 p { 
13            margin-bottom: 0px!important; 
14
15        .testataBackgroundImage .pl-lg-5.pt-3 { 
16            padding-top: 0px!important; 
17
18        .testataBackgroundImage img.pb-3 { 
19            padding-bottom: 0px!important; 
20
21        #heraricarica .container.py-5, #offerte-mobilita .container-fluid.py-5, #offerte-mobilita .container.pt-5, #doc-list.pb-4 { 
22            padding-bottom: 0px!important; 
23
24        #offerte-mobilita .container-fluid.py-5, #offerte-mobilita .container.pt-5, .waves-banner.pt-5, .waves-banner .container.pt-5, #doc-list.pt-5 { 
25            padding-top: 0px!important; 
26
27        #offerte-mobilita .container.pt-5 .row.mt-5, #doc-list.pt-5 .container.py-5 .title-big.mt-5 { 
28            margin-top: 0px!important; 
29
30
31</style> 
32<#assign 
33    infoAgg = false 
34    classCol = "col-lg-12" 
35	title = .vars['reserved-article-title'].data 
36	urlcustom = themeDisplay.getURLCurrent()?keep_before("?") 
37    showWidget = false 
38    journalArticleServiceUtil = objectUtil("com.liferay.journal.service.JournalArticleServiceUtil") 
39  	assetVocabularyServiceUtil = objectUtil("com.liferay.asset.kernel.service.AssetVocabularyServiceUtil") 
40  	vocabularyId = 0 
41/> 
42<#if themeDisplay.getScopeGroup().getParentGroupId() gt 0> 
43	<#assign 
44		vocabulariesList = assetVocabularyServiceUtil.getGroupVocabularies(themeDisplay.getScopeGroup().getParentGroupId()) 
45		journalArticle = journalArticleServiceUtil.getArticle(getterUtil.getLong(themeDisplay.getScopeGroup().getParentGroupId()), .vars['reserved-article-id'].data) 
46	/> 
47<#else> 
48	<#assign 
49		vocabulariesList = assetVocabularyServiceUtil.getGroupVocabularies(themeDisplay.getScopeGroupId()) 
50		journalArticle = journalArticleServiceUtil.getArticle(getterUtil.getLong(scopeGroupId), .vars['reserved-article-id'].data) 
51	/> 
52</#if> 
53<#assign 
54  	assetCategoryServiceUtil = objectUtil("com.liferay.asset.kernel.service.AssetCategoryServiceUtil") 
55  	journalArticleCategories = assetCategoryServiceUtil.getCategories("com.liferay.journal.model.JournalArticle", journalArticle.getResourcePrimKey()) 
56    hasFlat = false 
57    hasConsumo = false 
58	prefUrl = urlcustom?keep_before("/mobilita-sostenibile/") 
59	prefUrlCondividi = themeDisplay.getPortalURL() 
60/> 
61<#list vocabulariesList as vocabulary> 
62    <#assign vocabularyName = vocabulary.getName() /> 
63    <#if vocabularyName?? && vocabularyName?lower_case == "offerta"> 
64        <#assign vocabularyId = vocabulary.getVocabularyId() /> 
65    </#if> 
66</#list> 
67<#assign 
68    formUrl = "mobilita-sostenibile/sottoscrizione" 
69    target = "" 
70    subtarget = "" 
71    offerta = urlcustom?keep_after_last("/mobilita-sostenibile/") 
72 /> 
73<#if urlcustom?contains("/business/")> 
74  <#assign 
75    isCasa = false 
76    target = "business" 
77    subtarget = urlcustom?keep_after_last("/business/") 
78    subtarget = subtarget?keep_before("/mobilita-sostenibile/") 
79  /> 
80<#else> 
81    <#assign 
82        isCasa = true 
83        target = "casa" 
84    /> 
85</#if> 
86<#assign formUrl = prefUrl + "/" + formUrl /> 
87<#-- ***************** Widget ********************************************--> 
88<#list journalArticleCategories as category> 
89    <#if category.vocabularyId == vocabularyId> 
90        <#switch category.name?lower_case> 
91            <#case "flat"> 
92                <#assign hasFlat = true /> 
93                <#break /> 
94            <#case "consumo"> 
95                <#assign hasConsumo = true /> 
96                <#break /> 
97            <#default> 
98                <#break /> 
99        </#switch> 
100    </#if> 
101</#list> 
102<#if InformazioniAggiuntiveIntro??> 
103    <#if InformazioniAggiuntiveIntro.getData() != ""> 
104        <#assign 
105            infoAgg = true 
106            classCol = "col-lg-6" 
107        /> 
108    </#if> 
109</#if> 
110<#if MostraWidgetAttivaOra??> 
111    <#if MostraWidgetAttivaOra.getData()?? && MostraWidgetAttivaOra.getData() == "si"> 
112        <#assign showWidget = true /> 
113    </#if> 
114</#if> 
115<#-- Widget --> 
116<#if showWidget> 
117	<section id="widget-offerta" class="d-none d-lg-block"> 
118		<div class="container position-relative py-5"> 
119			<div class="row"> 
120				<div class="offset-lg-8 col-lg-4 col-widget-offerta px-0 px-sm-3"> 
121					<div class="fixed-widget-offerta-container"> 
122						<div class="fixed-widget-offerta-inner-container white-box position-relative text-center px-4 pt-4 pb-5 mt-4"> 
123							<h4 class="gradient-text text-uppercase small bolder mb-1">Mobilità sostenibile</h4> 
124							<div class="black-three big letter-spacing-sm">HeraRicarica pubblica</div> 
125 
126								<div class=" col-lg-12 justify-content-center"> 
127								    <a data-senna-off="true" href="${formUrl}" 
128								    style="color:white;border-radius:5px" 
129								    class="btn gradient white px-5 justify-content-center mt-3 mb-3" 
130								    id="attivaoramob">Richiedi informazioni</a> 
131								 
132								<p class="black text-center">  
133								Potrai scegliere la tariffa di interesse  
134								nella richiesta di informazioni</p> 
135								</div> 
136						</div> 
137						<div class="white-two-bg position-relative text-center px-4 pb-3"> 
138							<h4 class="greyish-brown text-uppercase small bolder mb-3">Hai bisogno di aiuto?</h4> 
139							<div class="row text-center"> 
140								<div class="col-xl-12 pb-2"> 
141                                    <a id="" class="font-weight-bold" href="#" style=""> 
142                                        <p style="color: green !important;">Numero Verde Mobilità Elettrica </p> 
143                                        <p class="title-mid" style="color: green; margin-bottom: -5px; margin-top: -15px;">800.087.591 </p> 
144                                        <p class="black-three small medium"> per informazioni contrattuali dal lunedì al venerdì dalle 8:00 alle 18:00, il sabato dalle 8:30 alle 13:00 </br> per assistenza tecnica tutti i giorni 24h su 24h</p> 
145                                        <p></p> 
146                                    </a> 
147								</div> 
148						        <!-- <div class="col-xl-6 pb-2"> 
149								    <a class="gradient-text font-weight-bold" href="#" style="font-size:14px"> 
150									    <i class="icon-info-alt title-mid gradient-text big align-sub mr-1"></i> 
151									    Attiva la chat 
152								    </a> 
153								</div> --> 
154							</div> 
155						</div> 
156					</div> 
157				</div> 
158			</div> 
159		</div> 
160	</section> 
161 
162	<!-- Mobile--> 
163<section class="container mobile d-lg-none" style="margin-top:70%;"> 
164    <div class="container position-relative pt-5"> 
165        <div class="row"> 
166            <div class="offset-lg-8 col-lg-4 px-0 px-sm-3"> 
167                <div class="fixed-widget-offerta-container"> 
168                    <div 
169                        class="fixed-widget-offerta-inner-container white-box position-relative text-center px-4 pt-4 pb-5 mt-4"> 
170                        <h4 class="gradient-text text-uppercase small bolder mb-1">Mobilità</h4> 
171                        <div class="black-three big letter-spacing-sm">HeraRicarica pubblica</div> 
172 
173                        <div class=" col-sm-12 justify-content-center"> 
174                            <a id="attivaoramobmobile" href="${formUrl}" class="btn gradient white w-100 justify-content-center mt-3 mb-3">Richiedi informazioni</a> 
175                        </div> 
176 
177                    </div> 
178                    <div class="white-two-bg position-relative text-center px-4 pb-3"> 
179                        <h4 class="greyish-brown text-uppercase small bolder mb-3">Hai bisogno di aiuto?</h4> 
180                        <div class="row text-left"> 
181                            <div class="col-xl-12 pb-2 text-center"> 
182                                <p class="font-weight-bold" style="color: green !important;">Numero Verde Mobilità 
183                                    Elettrica </p> 
184                                <p class="title-mid" style="color: green; margin-bottom: -5px; margin-top: -15px;"> 
185                                    800.087.591 </p> 
186                                <p class="black-three"> per informazioni contrattuali dal lunedì al venerdì dalle 8:00 
187                                    alle 18:00, il sabato dalle 8:30 alle 13:00 </br> per assistenza tecnica tutti i 
188                                    giorni 24h su 24h</p> 
189                                <p></p> 
190                            </div> 
191                            <!-- <div class="col-xl-6 pb-2"> 
192                                <a class="gradient-text letter-spacing-sm font-weight-bold" href="#"> 
193                                    <i class="icon-info-alt big align-sub mr-1"></i> 
194                                    Attiva la chat 
195                                </a> 
196                            </div> --> 
197                        </div> 
198                    </div> 
199                </div> 
200            </div> 
201        </div> 
202    </div> 
203</section> 
204<div class="showmobilewidget mobile d-lg-none container gradient active" 
205    style="position: fixed;bottom: 0px;z-index: 50;"> 
206    <div class="px-5 justify-content-center d-flex"> 
207        <a href="${formUrl}" class="white text-center bold x-bigger my-2"> Richiedi informazioni </a> 
208    </div> 
209</div> 
210 
211 
212</#if> 
213 
214<#-- ************* Modale per avviso Condividi ************** --> 
215<style> 
216    /* The Modal (background) */ 
217    .offerta-modal { 
218        display: none; /* Hidden by default */ 
219        position: fixed; /* Stay in place */ 
220        z-index: 1; /* Sit on top */ 
221        padding-top: 300px; /* Location of the box */ 
222        left: 0; 
223        top: 0; 
224        width: 100%; /* Full width */ 
225        height: 100%; /* Full height */ 
226        overflow: auto; /* Enable scroll if needed */ 
227        background-color: rgb(0,0,0); /* Fallback color */ 
228        background-color: rgba(0,0,0,0.4); /* Black w/ opacity */ 
229
230 
231    /* Modal Content */ 
232    .offerta-modal-content { 
233        background-color: #fefefe; 
234        margin: auto; 
235        padding: 20px; 
236        border: 1px solid #888; 
237        width: 80%; 
238
239 
240    /* The close_offerta Button */ 
241    .close_offerta { 
242        color: #aaaaaa; 
243        float: right; 
244        font-size: 28px; 
245        font-weight: bold; 
246
247 
248    .close_offerta:hover, 
249    .close_offerta:focus { 
250        color: #000; 
251        text-decoration: none; 
252        cursor: pointer; 
253
254</style> 
255 
256<#assign completeUrl = prefUrlCondividi + urlcustom /> 
257<!-- The Modal --> 
258<div id="myModal" class="modal offerta-modal" style="z-index:100"> 
259    <!-- Modal content --> 
260    <div class="modal-content offerta-modal-content col-lg-3"> 
261	   <span class="close_offerta text-right" style="color:red;">&times;</span> 
262	<div> 
263		<h3 class="bigger text-center mb-3">Condividi l'offerta coi tuoi amici inoltrandogli questo link</h3> 
264	<input type="text" value="${completeUrl}" id="myInput" class="text-center" disabled> 
265	</div> 
266	<div class="text-center"> 
267		<button id="copyLinkButton" onclick="copyToClipBoard()" class="btn gradient white text-center mt-3">Copia Link</button> 
268	</div> 
269  </div> 
270</div> 
271 
272<script> 
273    /* 
274    // Get the modal 
275    var modal = document.getElementById("myModal"); 
276 
277    // Get the button that opens the modal 
278    var btn = document.getElementById("myBtn"); 
279    var btnMobile = document.getElementById("myBtn_mobile"); 
280 
281    // Get the <span> element that closes the modal 
282    var span = document.getElementsByClassName("close_offerta")[0]; 
283 
284    // When the user clicks the button, open the modal 
285    btn.onclick = function() { 
286        modal.style.display = "block"; 
287        $("#copyLinkButton").prop("disabled", false); 
288
289 
290    btnMobile.onclick = function() { 
291        modal.style.display = "block"; 
292        $("#copyLinkButton").prop("disabled", false); 
293
294 
295    // When the user clicks on <span> (x), close the modal 
296    span.onclick = function() { 
297        modal.style.display = "none"; 
298        $("#copiedToClipboard").remove(); 
299
300 
301    // When the user clicks anywhere outside of the modal, close it 
302    window.onclick = function(event) { 
303        if (event.target == modal) { 
304            modal.style.display = "none"; 
305
306
307 
308    function copyToClipBoard() { 
309        var copyText = document.getElementById("myInput"); 
310        copyText.select(); 
311        document.execCommand("copy"); 
312        $("#copyLinkButton").after('<div id="copiedToClipboard" class="text-center"><font color="green" size="2">Copiato</font></div>'); 
313        $("#copyLinkButton").prop("disabled", true); 
314
315    */ 
316</script> 
317 
318<#-- ***************** Sezione Top - con Hera fai il pieno di energia **** --> 
319<#if TestoGrandeRicarica.getData() != "" || ContenutoRicarica.getData() != ""> 
320	<section id="heraricarica" class="quote-section"> 
321		<div class="container position-relative py-5"> 
322			<div class="row"> 
323				<div class="col-lg-8 order-2"> 
324					<h3 class="gradient-text title-big letter-spacing-sm bolder mb-3">${TestoGrandeRicarica.getData()}</h3> 
325					<div class="row align-items-center"> 
326						<div class="col-lg-7"> 
327							<blockquote class="black-three big letter-spacing-sm l15 pr-lg-5">${ContenutoRicarica.getData()}</blockquote> 
328						</div> 
329						<div class="col-lg-5"> 
330							<img alt="${ImmagineRicarica.getAttribute("alt")}"  
331                            src="${ImmagineRicarica.getData()}" class="img-fluid"> 
332						</div> 
333					</div> 
334				</div> 
335			</div> 
336		</div> 
337	</section> 
338</#if> 
339 
340<#-- ************* Sezione Offerte Mobilità ********************** --> 
341<#if OffertaRicarica.getSiblings()?has_content && OffertaRicarica.getData()!=""> 
342	<section id="offerte-mobilita"> 
343		<div class="container-fluid card-deck-bg-alt mobilita py-5"> 
344			<div class="container pt-5"> 
345				<div class="row mt-5"> 
346					<div class="col-lg-8 mt-5"> 
347						<div class="row mt-5"> 
348							<#list OffertaRicarica.getSiblings() as cur_OffertaRicarica> 
349								<div class="col-lg-6"> 
350									<h2 class="gradient-text title-big bolder letter-spacing-sm">${cur_OffertaRicarica.getData()}</h2> 
351									<p class="black-three big letter-spacing-sm">${cur_OffertaRicarica.DettaglioOfferta.getData()}</p> 
352									<div class="card-deck"> 
353										<div class="card pb-2"> 
354											<div class="card-top gradient"> 
355												<div class="row"> 
356													<#assign classOfferta = "col-md-12" /> 
357													<#if cur_OffertaRicarica.kWInclusiAlMese.getData() != ""> 
358														<#assign classOfferta = "col-xs-7" /> 
359													</#if> 
360													<div class="${classOfferta}"> 
361														<h4 class="white big letter-spacing-sm">Canone mensile</h4> 
362														<h5 class="white x-bigger bolder letter-spacing-sm"><span class="title-xx-bigger">${cur_OffertaRicarica.CanoneMensile.getData()}</span> €/mese</h5> 
363													</div> 
364													<#if cur_OffertaRicarica.kWInclusiAlMese.getData() != ""> 
365														<div class="col-xs-5"> 
366															<div class="card-oval"> 
367																<div class="darkish-color bolder l12"> 
368																	<div class="title-big">${cur_OffertaRicarica.kWInclusiAlMese.getData()} <span class="x-bigger">kwh</span></div> 
369																	<div class="normal">mese<br>inclusi</div> 
370																</div> 
371															</div> 
372														</div> 
373													</#if> 
374												</div> 
375											</div> 
376											<div class="card-body"> 
377												<h5 class="card-title mb-0"><a href="#" class="black-three letter-spacing-sm">${cur_OffertaRicarica.EtichettaConsumiExtraTariffa.getData()}</a></h5> 
378												<h6 class="gradient-text x-bigger bolder letter-spacing-sm"><span class="title-xx-bigger">${cur_OffertaRicarica.ExtraConsumi.getData()}</span> €/kwh</h6> 
379											</div> 
380										</div> 
381									</div> 
382								</div> 
383							</#list> 
384						</div> 
385					</div> 
386				</div> 
387			</div> 
388		</div> 
389		<#if AbstractOfferte.getSiblings()?has_content && AbstractOfferte.getData()!=""> 
390			<div class="container-fluid mobilita py-5"> 
391				<div class="container"> 
392					<div class="row"> 
393						<div class="col-lg-8"> 
394							<blockquote class="black-three big letter-spacing-sm l15 pr-lg-5">${AbstractOfferte.getData()}</blockquote> 
395						</div> 
396					</div> 
397				</div> 
398			</div> 
399		</#if> 
400	</section> 
401</#if> 
402 
403<#-- ************* Sezione "L'offerta nel dettaglio" ************* --> 
404<#if TestoDettaglioOfferta.getSiblings()?has_content  && TestoDettaglioOfferta.getData()!=""> 
405	<section id="list" class="white-two-bg py-5"> 
406		<div class="container py-3"> 
407			<h3 class="title-big black-three letter-spacing-sm bolder">L'offerta nel dettaglio</h3> 
408			<div class="row mt-4 pt-3"> 
409				<div class="col-lg-8"> 
410					<ul class="pl-lg-5 list-unstyled greyish-brown big letter-spacing-sm"> 
411						<#list TestoDettaglioOfferta.getSiblings() as cur_TestoDettaglioOfferta> 
412							<#assign colorCheck = cur_TestoDettaglioOfferta.ColoreElencoPuntato.getData() /> 
413							<#if colorCheck=="verde"> 
414								<li class="${colorCheck}">${cur_TestoDettaglioOfferta.getData()}</li> 
415							<#else> 
416								<li>${cur_TestoDettaglioOfferta.getData()}</li> 
417							</#if> 
418						</#list> 
419					</ul> 
420				</div> 
421			</div> 
422		</div> 
423	</section> 
424</#if> 
425 
426<#-- ************* Sezione Banner Passa a Hera ********************--> 
427<#if SottoscrizioneAdOffertaHeraObbligatoria??> 
428	<#if SottoscrizioneAdOffertaHeraObbligatoria.getData() == 'si'> 
429		<section class="waves-banner white-waves-bg pt-5" id="vuoi-risparmiare-tempo"> 
430			<div class="container pt-5"> 
431				<div class="row align-items-left"> 
432					<div class="col-lg-12"> 
433						<p class="black-three big letter-spacing-sm">La soluzione innovativa può essere acquistata <strong>se hai già attiva una nostra offerta</strong></p> 
434						<h3 class="x-bigger bolder letter-spacing-sm d-inline-block mr-4 gradient-text pb-2">Non hai ancora una fornitura HERA attiva?</h3> 
435						<br /> 
436                        <#if urlcustom?contains("/business/")> 
437						      <a class="btn gradient white mb-2" href="${prefUrl}/offerte-luce-gas/partite-iva-professionisti"><span>Passa a Hera</span></a> 
438						<#else> 
439						      <a class="btn gradient white mb-2" href="${prefUrl}/offerte-luce-gas"><span>Passa a Hera</span></a> 
440						</#if> 
441					</div> 
442				</div> 
443			</div> 
444		</section> 
445	</#if> 
446</#if> 
447 
448<#-- ************* Sezione "Documenti e Modulistica" ************* --> 
449<#if DocumentiEModulistica.getData()!=""> 
450	<#if DocumentiEModulistica.getSiblings()?has_content> 
451		<section id="doc-list" class="pt-5 pb-4" > 
452			<div class="container py-5"> 
453				<h3 class="title-big black-three letter-spacing-sm bolder mt-5 pt-3">Documenti e Modulistica</h3> 
454				<div class="row"> 
455					<div class="col-lg-8"> 
456						<div class="row mt-5 pl-lg-5"> 
457							<#list DocumentiEModulistica.getSiblings() as cur_documentoAllegato> 
458								<#assign dlFileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryService") /> 
459								<#if cur_documentoAllegato.getData() != ""> 
460									<#assign counterDocAll = 0 /> 
461									<#list "${cur_documentoAllegato.getData()}"?split("/") as xDocAll> 
462										<#if counterDocAll == 2> 
463											<#assign groupIdDocAll = xDocAll?number /> 
464										</#if> 
465										<#if counterDocAll == 5> 
466											<#assign uuIdDocAll = xDocAll /> 
467											<#assign counterUuIdDocAll = 0 > 
468											<#list "${xDocAll}"?split("?") as xUuIdDocAll> 
469												<#if counterUuIdDocAll == 0> 
470													<#assign uuIdDocAll = xUuIdDocAll /> 
471												</#if> 
472												<#assign counterUuIdDocAll = counterUuIdDocAll + 1 /> 
473											</#list> 
474										</#if> 
475										<#assign counterDocAll = counterDocAll + 1 /> 
476									</#list> 
477									<#assign fileDocAll = dlFileEntryService.getFileEntryByUuidAndGroupId(uuIdDocAll, groupIdDocAll) /> 
478									<div class="col-md-4 col-sm-6"> 
479										<div class="row mb-3"> 
480											<div class="col-2 text-xl-center"> 
481												<i class="icon-doc gradient-text x-bigger"></i> 
482											</div> 
483											<div class="col-10 pl-md-0"> 
484												<a href="${cur_documentoAllegato.getData()}" class="black-three big letter-spacing-sm" target="_blank"> 
485													${fileDocAll.fileName?replace('.pdf|.PDF', '', 'r')} 
486												</a> 
487											</div> 
488										</div> 
489									</div> 
490								</#if> 
491							</#list> 
492						</div> 
493					</div> 
494				</div> 
495			</div> 
496		</section> 
497	</#if> 
498</#if>