null ZITO ANGELO

An error occurred while processing the template.
Java method "com.sun.proxy.$Proxy1680.getLatestArticle(long, String)" threw an exception when invoked on com.sun.proxy.$Proxy1680 object "it.comune.milano.jacategory.service.wrapper.CdmJacategoryServicewrapper@24674afe"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign currentArticle = journalArtic...  [in template "20097#20123#" at line 23, column 1]
----
1<#-- Get themeDisplay --> 
2<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() /> 
3<#assign themeDisplay = serviceContext.getThemeDisplay() /> 
4 
5<#-- Get SERVICE Start --> 
6<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
7<#assign categoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")> 
8<#assign vocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")> 
9<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
10<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") /> 
11<#assign dLFileLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
12<#assign textFormatter = staticUtil["com.liferay.portal.kernel.util.TextFormatter"]> 
13<#assign jsonFactoryUtil = serviceLocator.findService("com.liferay.portal.kernel.json.JSONFactoryUtil")/> 
14<#assign cdmLocalService = serviceLocator.findService("it.comune.milano.service.service.CdmLocalService") /> 
15<#assign layoutLocalService = staticUtil["com.liferay.portal.kernel.service.LayoutLocalServiceUtil"]> 
16<#assign dlAppServiceUtil = staticUtil["com.liferay.document.library.kernel.service.DLAppServiceUtil"] /> 
17<#assign dlUtil = staticUtil["com.liferay.document.library.kernel.util.DLUtil"] /> 
18<#assign workflowConst = staticUtil["com.liferay.portal.kernel.workflow.WorkflowConstants"] /> 
19<#assign pattern = staticUtil["java.util.regex.Pattern"] /> 
20<#-- Get SERVICE End --> 
21 
22<#-- Get Article Data--> 
23<#assign currentArticle = journalArticleLocalService.getLatestArticle(groupId, .vars['reserved-article-id'].data)/> 
24<#assign rootMioArticolo = saxReaderUtil.read(currentArticle.getContentByLocale(localeUtil.toLanguageId(localeUtil.getDefault()))).getRootElement() /> 
25<#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey() /> 
26 
27<#-- Get Category e Vocabulary --> 
28<#assign categoryList=categoryService.getCategories("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) > 
29<#assign vocabularyProfilo = vocabularyService.getGroupVocabulary(groupId, "Profilo"?lower_case) /> 
30<#assign vocabularyPosizione = vocabularyService.getGroupVocabulary(groupId, "Posizione"?lower_case) /> 
31<#assign vocabularyDirezione = vocabularyService.getGroupVocabulary(groupId, "Direzione (DC)"?lower_case) /> 
32<#assign vocabularyArea = vocabularyService.getGroupVocabulary(groupId, "Area"?lower_case) /> 
33<#assign vocabularyStatoIncarico = vocabularyService.getGroupVocabulary(groupId, "Stato Incarico"?lower_case) /> 
34 
35<#assign flDirigenteCessato=true> 
36 
37<#-- Get Related Asset --> 
38<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService") /> 
39<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
40<#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey) /> 
41<#assign currentArticleAssetEntryId = currentArticleAssetEntry.getEntryId() /> 
42<#assign currentArticleRelatedLinks = assetLinkLocalService.getDirectLinks(currentArticleAssetEntryId) /> 
43<#-- Get Related Asset End --> 
44 
45<#assign doc = ""> 
46<#assign relatedArticleId = ""> 
47<#assign arrayAllegati=[]> 
48<#assign countAllegati = 0 /> 
49 
50<#assign rootBreadcrumb = cdmLocalService.titoloRootBreadCrumb(themeDisplay, currentArticle.getDDMStructureKey())/> 
51 
52<#assign direzione = ""/> 
53<#assign area = ""/>  
54 
55<style> 
56    .component-title, .lfr-asset-anchor, .metadata-author { 
57        display: none !important; 
58
59     
60    #_com_liferay_site_navigation_breadcrumb_web_portlet_SiteNavigationBreadcrumbPortlet_breadcrumbs-defaultScreen { 
61    	display: none !important; 
62
63</style> 
64 
65<nav aria-label="Briciole di pane"> 
66	<ul class="breadcrumb breadcrumb-vertical"> 
67		<li class=""> 
68			<a href="/ricerca-dirigenti"> 
69				${rootBreadcrumb} 
70			</a> 
71		</li> 
72		<li class="active" aria-current="page"> 
73			${titolo.getData()?truncate(50)} 
74		</li> 
75	</ul> 
76</nav> 
77 
78<div class="row"> 
79	<div class="col-md-12">  
80		<h2>${nominativo.getData()}</h2> 
81		<section class="lista_generica"> 
82		  	<ul> 
83				<li> 
84					<#if categoryList?has_content> 
85						<#list categoryList as categoryList> 
86							<#if categoryList.vocabularyId == vocabularyProfilo.vocabularyId> 
87								<p><strong>Profilo: </strong> 
88									<span class="uppercase">${categoryList.getName()}</span> 
89								</p> 
90							</#if> 
91						</#list> 
92					</#if> 
93					<#if categoryList?has_content> 
94						<#list categoryList as categoryList> 
95							<#if categoryList.vocabularyId == vocabularyPosizione.vocabularyId> 
96								<p><strong>Posizione: </strong> 
97									<span class="uppercase">${categoryList.getName()}</span> 
98								</p> 
99							</#if> 
100						</#list> 
101					</#if> 
102					<#if categoryList?has_content> 
103						<#list categoryList as categoryList> 
104							<#if categoryList.vocabularyId == vocabularyDirezione.vocabularyId && categoryList.getName()?has_content> 
105								<#assign direzione = categoryList.getName() /> 
106								<p><strong>Direzione: </strong> 
107									<span class="uppercase">${categoryList.getName()}</span> 
108								</p> 
109							</#if> 
110						</#list> 
111					</#if> 
112					<#if categoryList?has_content> 
113						<#list categoryList as categoryList> 
114							<#if categoryList.vocabularyId == vocabularyArea.vocabularyId && categoryList.getName()?has_content && categoryList.getName() != direzione> 
115								<#assign area = categoryList.getName() /> 
116								<p><strong>Area: </strong> 
117									<span class="uppercase">${categoryList.getName()}</span> 
118								</p> 
119							</#if> 
120						</#list> 
121					</#if> 
122					<#if servizio?? && servizio.getData()?has_content && servizio.getData() != direzione && servizio.getData() != area> 
123						<p><strong>Unit&agrave;: </strong> 
124							<span>${servizio.getData()}</span> 
125						</p> 
126					</#if> 
127					<#if numProtGen?? && numProtGen.getData()?has_content> 
128						<p><strong>Numero Protocollo Generale: </strong> 
129							<span>${numProtGen.getData()}</span> 
130						</p> 
131					</#if> 
132					<#if numeroProvvedimento?? && numeroProvvedimento.getData()?has_content> 
133						<p><strong>Numero Provvedimento: </strong> 
134							<span>${numeroProvvedimento.getData()}</span> 
135						</p> 
136					</#if> 
137					<#if dataInizioIncarico?? && dataInizioIncarico.getData()?has_content> 
138						<p><strong>Data Inizio Incarico: </strong> 
139							<#assign objDatatInizioIncarico = dateUtil.parseDate('yyyy-MM-dd', dataInizioIncarico.getData(), locale)> 
140							<span>${dateUtil.getDate(objDatatInizioIncarico, "dd-MM-yyyy", locale)}</span> 
141						</p> 
142					</#if> 
143					<#if dataFineIncarico?? && dataFineIncarico.getData()?has_content> 
144						<p><strong>Data Fine Incarico: </strong> 
145							<#assign objDatatFineIncarico = dateUtil.parseDate('yyyy-MM-dd', dataFineIncarico.getData(), locale)> 
146							<span>${dateUtil.getDate(objDatatFineIncarico, "dd-MM-yyyy", locale)}</span> 
147						</p> 
148					</#if> 
149					<#if categoryList?has_content> 
150						<#list categoryList as categoryList> 
151							<#if categoryList.vocabularyId == vocabularyStatoIncarico.vocabularyId> 
152								<p><strong>Stato: </strong> 
153									<#if categoryList.getName()?lower_case == "Attivo"?lower_case> 
154										<#assign flDirigenteCessato=false> 
155										<strong class="uppercase text-success">Attivo</strong></p> 
156									<#else> 
157										<strong class="uppercase text-danger">Cessato</strong> 
158									</#if> 
159								</p> 
160							</#if> 
161						</#list> 
162					</#if> 
163				</li> 
164		  	</ul> 
165		</section> 
166 
167		<#if !flDirigenteCessato> 
168			<#if telefono.getData() != '' || mail.getData() != ''> 
169				<section id="accordionservizi1" class="accordion boxed servizi"> 
170					<article class="card"> 
171						<div class="card-header" id="headingservizi2"> 
172							<h4 class="mb-0"> 
173								<a class="collapsed" data-toggle="collapse" href="#collapseservizi2" aria-expanded="false" aria-controls="collapseservizi2">Contatti</a> 
174							</h4> 
175						</div> 
176						<div id="collapseservizi2" data-parent="#accordionservizi1" class="collapse" role="tabpanel" aria-labelledby="headingservizi2"> 
177						  	<div class="card-body"> 
178								<div class="content-editor blu"> 
179									<#if telefono?has_content && telefono.getData() != ''> 
180										<p>Telefono: ${telefono.getData()}</p> 
181									</#if> 
182									<#if mail?has_content && mail.getData() != ''> 
183										<p>Email: ${mail.getData()}</p> 
184									</#if> 
185								</div> 
186						  	</div> 
187						</div> 
188					</article> 
189				</section> 
190			</#if> 
191		</#if> 
192		 
193		<#if stipendioTabellare.getData() != '' || retribuzioneDiPosizione.getData() != '' || retribuzioneDiRisultato.getData() != '' || altro.getData() != '' || totaleannuolordo.getData() != '' || importoTrasferte.getData() != ''> 
194			<section id="accordion41" class="accordion boxed"> 
195				<h3 class="sr-only">Accordion</h3> 
196			  	<article class="card collegamenti"> 
197					<div class="card-header" id="heading41"> 
198				  		<h4 class="mb-0"> <a class="collapsed" data-toggle="collapse" href="#collapse41" aria-expanded="false" aria-controls="collapse41">Retribuzione annua lorda e importi trasferte e missioni</a></h4> 
199					</div> 
200					<div id="collapse41" class="collapse" role="tabpanel" aria-labelledby="heading41"> 
201				  		<div class="card-body"> 
202				  			<#if stipendioTabellare?has_content && stipendioTabellare.getData() != ''> 
203				  				<p>Stipendio Tabellare: ${stipendioTabellare.getData()} €</p> 
204				  			</#if> 
205							<#if retribuzioneDiPosizione?has_content && retribuzioneDiPosizione.getData() != ''> 
206				  				<p>Retribuzione di Posizione: ${retribuzioneDiPosizione.getData()} €</p> 
207				  			</#if> 
208							<#if retribuzioneDiRisultato?has_content && retribuzioneDiRisultato.getData() != ''> 
209				  				<p>Retribuzione di Risultato: ${retribuzioneDiRisultato.getData()} €</p> 
210				  			</#if> 
211				  			<#if altro?has_content && altro.getData() != ''> 
212				  				<p>Altro: ${altro.getData()} €</p> 
213				  			</#if> 
214				  			<#if totaleannuolordo?has_content && totaleannuolordo.getData() != ''> 
215				  				<p>Totale Annuo Lordo: ${totaleannuolordo.getData()} €</p> 
216				  			</#if> 
217							<#if importoTrasferte?has_content && importoTrasferte.getData() != ''> 
218				  				<p>Importo Trasferte e Missioni: ${importoTrasferte.getData()} €</p> 
219				  			</#if> 
220				  		</div> 
221					</div> 
222			  	</article> 
223			</section>		 
224		</#if> 
225		 
226		<#assign datiDiRitorno = "" /> 
227		 
228		<#list currentArticleRelatedLinks as related_entry> 
229		    <#assign relatedAssetEntry = assetEntryLocalService.getEntry(related_entry.getEntryId2()) /> 
230		    <#assign relatedArticle = journalArticleLocalService.getLatestArticle(relatedAssetEntry.getClassPK()) /> 
231		    <#assign relatedArticleStructureName = relatedArticle.getDDMStructure().getName(locale) /> 
232		    <#if relatedArticleStructureName == 'Asset Allegati Dirigenti'> 
233		    	<#assign datiDiRitorno = cdmLocalService.ordinaAnniAllegatiDirigenti(relatedArticle.articleId, flDirigenteCessato) /> 
234		    	<#assign countAllegati = countAllegati + 1> 
235		    	<#assign relatedArticle2 = journalArticleLocalService.getLatestArticle(groupId, relatedArticle.getArticleId(), workflowConst.STATUS_APPROVED) /> 
236		    	<#assign doc = saxReaderUtil.read(relatedArticle2.getContentByLocale(localeUtil.toLanguageId(localeUtil.getDefault()))) /> 
237		    </#if> 
238		</#list> 
239		 
240		<#if doc?? && doc != "" && countAllegati &gt; 0 > 
241		<section id="accordion31" class="accordion boxed"> 
242			<h3 class="sr-only">Accordion</h3> 
243				<article class="card allegati"> 
244					<div class="card-header" id="heading31"> 
245				  		<h4 class="mb-0"> <a class="collapsed" data-toggle="collapse" href="#collapse31" aria-expanded="false" aria-controls="collapse31"> Allegati </a> </h4> 
246					</div> 
247					<div id="collapse31" class="collapse" role="tabpanel" aria-labelledby="heading31"> 
248				  		<div class="card-body"> 
249				  			<#assign rootElement = doc.getRootElement() /> 
250				  			<#assign xPathSelectorCV = saxReaderUtil.createXPath("dynamic-element[@name='allegatoCV']") /> 
251				  			<#assign allegatoCV = xPathSelectorCV.selectSingleNode(rootElement).getStringValue()?replace('\n', '') /> 
252					        <#assign allegatoCV = allegatoCV?replace('\t', '') /> 
253					        <#if allegatoCV?? && allegatoCV != ''> 
254					        	<ul> 
255					        		<#assign jsonAllegatoCV = allegatoCV?eval> 
256				        			<#assign fileEntry = dlAppServiceUtil.getFileEntryByUuidAndGroupId(jsonAllegatoCV.uuid, groupId) /> 
257				        			<#assign urlFile = dlUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), null, " ", false, false)> 
258				        			 
259									<#assign doc=getDlFileEntry(urlFile) /> 
260									<#if doc != ''> 
261										<li class="${doc.getExtension()?lower_case}"> 
262											<a class="anchorNomeAllegato" href="${urlFile}" target="_blank">Curriculum Vitae</a> 
263											<span>(${doc.getExtension()} - ${textFormatter.formatStorageSize(doc.size, locale)})</span> 
264											<br/> 
265											<em>${doc.getDescription()}</em> 
266										</li> 
267									</#if> 
268								</ul> 
269							</#if> 
270							 
271							<#if countAllegati &gt; 0> 
272								<#assign returnSplit = datiDiRitorno?split("##") /> 
273								<#list returnSplit as retCiclo > 
274									<#assign annoAllegatiSplit = retCiclo?split("@@")/> 
275									<h4>${annoAllegatiSplit[0]}</h4> 
276					        		 
277					        		<#if annoAllegatiSplit[1]?has_content> 
278					        			<ul> 
279											<#list annoAllegatiSplit[1]?split(";") as allegati> 
280												<#assign allegatiData = allegati?split(":::")> 
281												<#if allegatiData?has_content && allegatiData[2]?has_content> 
282													<li class="${allegatiData[2]}"> 
283														<a class="anchorNomeAllegato" href="${allegatiData[1]}" target="_blank">${allegatiData[0]}</a> 
284														<span>(${allegatiData[2]} - ${allegatiData[3]})</span> 
285														<br/> 
286														<em>${allegatiData[4]}</em> 
287													</li> 
288												</#if> 
289											</#list> 
290										</ul> 
291									</#if> 
292								</#list> 
293							</#if> 
294				  		</div> 
295				  	</div> 
296				</article> 
297			</h3> 
298		</section> 
299		</#if> 
300		 
301		 
302		<#-- if doc?? && doc != ''> 
303			<section id="accordion31" class="accordion boxed"> 
304				<h3 class="sr-only">Accordion</h3> 
305			  	<article class="card allegati"> 
306			  		<div class="card-header" id="heading31"> 
307				  		<h4 class="mb-0"> <a class="collapsed" data-toggle="collapse" href="#collapse31" aria-expanded="false" aria-controls="collapse31"> Allegati </a> </h4> 
308					</div> 
309					<div id="collapse31" class="collapse" role="tabpanel" aria-labelledby="heading31"> 
310				  		<div class="card-body"> 
311				  		 
312				  		<#assign rootElement = doc.getRootElement() /> 
313				  		<#assign xPathSelectorCV = saxReaderUtil.createXPath("dynamic-element[@name='allegatoCV']") /> 
314				        <#assign xPathSelectorSeparatore = saxReaderUtil.createXPath("dynamic-element[@name='allegatiPerAnno']") /> 
315				         
316				        <#assign allegatoCV = xPathSelectorCV.selectSingleNode(rootElement).getStringValue()?replace('\n', '') /> 
317				        <#assign allegatoCV = allegatoCV?replace('\t', '') /> 
318				        <#if allegatoCV?? && allegatoCV != ''> 
319				        	<ul> 
320				        		<#assign jsonAllegatoCV = allegatoCV?eval> 
321			        			<#assign fileEntry = dlAppServiceUtil.getFileEntryByUuidAndGroupId(jsonAllegatoCV.uuid, groupId) /> 
322			        			<#assign urlFile = dlUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), null, " ", false, false)> 
323			        			 
324								<#assign doc=getDlFileEntry(urlFile) /> 
325								<#if doc != ''> 
326									<li class="${doc.getExtension()?lower_case}"> 
327										<a class="anchorNomeAllegato" href="${urlFile}" target="_blank">Curriculum Vitae</a> 
328										<span>(${doc.getExtension()} - ${textFormatter.formatStorageSize(doc.size, locale)})</span> 
329										<br/> 
330										<em>${doc.getDescription()}</em> 
331									</li> 
332								</#if> 
333							</ul> 
334						</#if> 
335				         
336				        <#list xPathSelectorSeparatore.selectNodes(rootElement) as cur_separatore_allegati_anno> 
337				        	<#assign xPathSelectorAnno = saxReaderUtil.createXPath("dynamic-element[@name='anno']") /> 
338				        	<#assign anno = xPathSelectorAnno.selectSingleNode(cur_separatore_allegati_anno).getStringValue()?replace('\n', '') /> 
339				        	<#assign anno = anno?replace('\t', '') /> 
340				        	<#assign currentYear = .now?string('yyyy')?number /> 
341				        	 
342				        	<#if !flDirigenteCessato> 
343				        		<#assign currentYear = currentYear - 5 /> 
344				        	<#else> 
345				        		<#assign currentYear = currentYear - 3 /> 
346				        	</#if> 
347				        	 
348				        	<#if anno?number &gt;= currentYear > 
349				        		<h4>${anno}</h4> 
350				        		 
351				        		<ul> 
352					        		<#assign xPathSelectorAttestazioneDLgs39_2013 = saxReaderUtil.createXPath("dynamic-element[@name='attestazioneDLgs39_2013']") /> 
353					        		<#assign attestazioneDLgs39_2013 = xPathSelectorAttestazioneDLgs39_2013.selectSingleNode(cur_separatore_allegati_anno).getStringValue()?replace('\n', '') /> 
354					        		<#assign attestazioneDLgs39_2013 = attestazioneDLgs39_2013?replace('\t', '') /> 
355					        		 
356					        		<#assign xPathSelectorDichexart14comma1DLgs33_2013 = saxReaderUtil.createXPath("dynamic-element[@name='dichexart14comma1DLgs33_2013']") /> 
357					        		<#assign dichexart14comma1DLgs33_2013 = xPathSelectorDichexart14comma1DLgs33_2013.selectSingleNode(cur_separatore_allegati_anno).getStringValue()?replace('\n', '') /> 
358					        		<#assign dichexart14comma1DLgs33_2013 = dichexart14comma1DLgs33_2013?replace('\t', '') /> 
359					        		 
360					        		<#assign xPathSelectorProvvedimentoDiIncarico = saxReaderUtil.createXPath("dynamic-element[@name='provvedimentoDiIncarico']") /> 
361					        		<#assign provvedimentoDiIncarico = xPathSelectorProvvedimentoDiIncarico.selectSingleNode(cur_separatore_allegati_anno).getStringValue()?replace('\n', '') /> 
362					        		<#assign provvedimentoDiIncarico = provvedimentoDiIncarico?replace('\t', '') /> 
363					        		 
364					        		<#assign xPathSelectorDichiarazione2 = saxReaderUtil.createXPath("dynamic-element[@name='dichexart14commalettd1DLgs33_2013']") /> 
365					        		<#assign dichiarazione2 = xPathSelectorDichiarazione2.selectSingleNode(cur_separatore_allegati_anno).getStringValue()?replace('\n', '') /> 
366					        		<#assign dichiarazione2 = dichiarazione2?replace('\t', '') /> 
367					        		 
368					        		<#if attestazioneDLgs39_2013?? && attestazioneDLgs39_2013 != ''> 
369					        			<#assign jsonAttestazioneDLgs39_2013 = attestazioneDLgs39_2013?eval> 
370					        			<#assign fileEntry = dlAppServiceUtil.getFileEntryByUuidAndGroupId(jsonAttestazioneDLgs39_2013.uuid, groupId) /> 
371					        			<#assign urlFile = dlUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), null, " ", false, false)> 
372					        			 
373										<#assign dlFile=getDlFileEntry(urlFile) /> 
374										<#if dlFile != ''> 
375											<li class="${dlFile.getExtension()?lower_case}"> 
376												<a class="anchorNomeAllegato" href="${urlFile}" target="_blank">Attestazione D. Lgs. 39-2013</a> 
377												<span>(${dlFile.getExtension()} - ${textFormatter.formatStorageSize(dlFile.size, locale)})</span> 
378												<br/> 
379												<em>${dlFile.getDescription()}</em> 
380											</li> 
381										</#if> 
382									</#if> 
383									 
384									<#if dichexart14comma1DLgs33_2013?? && dichexart14comma1DLgs33_2013 != ''> 
385										<#assign jsonDichexart14comma1DLgs33_2013 = dichexart14comma1DLgs33_2013?eval> 
386					        			<#assign fileEntry = dlAppServiceUtil.getFileEntryByUuidAndGroupId(jsonDichexart14comma1DLgs33_2013.uuid, groupId) /> 
387					        			<#assign urlFile = dlUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), null, " ", false, false)> 
388					        			 
389										<#assign dlFile=getDlFileEntry(urlFile) /> 
390										<#if dlFile != ''> 
391											<li class="${dlFile.getExtension()?lower_case}"> 
392												<a class="anchorNomeAllegato" href="${urlFile}" target="_blank">Dichiarazioni ex art. 14 comma 1-ter D.Lgs. 33-2013</a> 
393												<span>(${dlFile.getExtension()} - ${textFormatter.formatStorageSize(dlFile.size, locale)})</span> 
394												<br/> 
395												<em>${dlFile.getDescription()}</em> 
396											</li> 
397										</#if> 
398									</#if> 
399									 
400									<br> 
401									 
402									<#if provvedimentoDiIncarico?? && provvedimentoDiIncarico != ''> 
403										<#assign jsonProvvedimentoDiIncarico = provvedimentoDiIncarico?eval> 
404					        			<#assign fileEntry = dlAppServiceUtil.getFileEntryByUuidAndGroupId(jsonProvvedimentoDiIncarico.uuid, groupId) /> 
405					        			<#assign urlFile = dlUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), null, " ", false, false)> 
406					        			 
407										<#assign dlFile=getDlFileEntry(urlFile) /> 
408										<#if dlFile != ''> 
409											<li class="${dlFile.getExtension()?lower_case}"> 
410												<a class="anchorNomeAllegato" href="${urlFile}" target="_blank">Provvedimento di Incarico</a> 
411												<span>(${dlFile.getExtension()} - ${textFormatter.formatStorageSize(dlFile.size, locale)})</span> 
412												<br/> 
413												<em>${dlFile.getDescription()}</em> 
414											</li> 
415										</#if> 
416									</#if> 
417									 
418									<#if dichiarazione2?? && dichiarazione2 != ''> 
419										<#assign jsondichexart14commalettd1DLgs33_2013 = dichiarazione2?eval> 
420					        			<#assign fileEntry = dlAppServiceUtil.getFileEntryByUuidAndGroupId(jsondichexart14commalettd1DLgs33_2013.uuid, groupId) /> 
421					        			<#assign urlFile = dlUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), null, " ", false, false)> 
422					        			 
423										<#assign dlFile=getDlFileEntry(urlFile) /> 
424										<#if dlFile != ''> 
425											<li class="${dlFile.getExtension()?lower_case}"> 
426												<a class="anchorNomeAllegato" href="${urlFile}" target="_blank">Dichiarazioni ex art. 14 comma 1 lett.d) ed e), D.Lgs. 33-2013</a> 
427												<span>(${dlFile.getExtension()} - ${textFormatter.formatStorageSize(dlFile.size, locale)})</span> 
428												<br/> 
429												<em>${dlFile.getDescription()}</em> 
430											</li> 
431										</#if> 
432									</#if> 
433									 
434								</ul> 
435				        	</#if> 
436						</#list> 
437				  		 
438				  		</div> 
439				  	</div> 
440				</article> 
441			</section> 
442		</#if--> 
443		 
444		<#-- if allegatoCV.getData() != '' || attestazioneDLgs39_2013.getData() != '' || dichexart14comma1DLgs33_2013.getData() != '' || provvedimentoDiIncarico.getData() != ''> 
445			<section id="accordion31" class="accordion boxed"> 
446				<h3 class="sr-only">Accordion</h3> 
447			  	<article class="card allegati"> 
448			  		<div class="card-header" id="heading31"> 
449				  		<h4 class="mb-0"> <a class="collapsed" data-toggle="collapse" href="#collapse31" aria-expanded="false" aria-controls="collapse31"> Allegati </a> </h4> 
450					</div> 
451					<div id="collapse31" class="collapse" role="tabpanel" aria-labelledby="heading31"> 
452				  		<div class="card-body"> 
453							<ul> 
454								<#if allegatoCV?has_content && allegatoCV.getData() != ''> 
455									<#assign doc=getDlFileEntry(allegatoCV.getData()) /> 
456									<#if doc != ''> 
457										<li class="${doc.getExtension()?lower_case}"> 
458											<a href="${allegatoCV.getData()}" target="_blank">Curriculum Vitae</a> 
459											<span>(${doc.getExtension()} - ${textFormatter.formatStorageSize(doc.size, locale)})</span> 
460										</li> 
461									</#if> 
462								</#if> 
463								<#if !flDirigenteCessato> 
464									<#if attestazioneDLgs39_2013?has_content && attestazioneDLgs39_2013.getData() != ''> 
465										<#assign doc=getDlFileEntry(attestazioneDLgs39_2013.getData()) /> 
466										<#if doc != ''> 
467											<li class="${doc.getExtension()?lower_case}"> 
468												<a href="${attestazioneDLgs39_2013.getData()}" target="_blank">Attestazione D. Lgs. 39-2013</a> 
469												<span>(${doc.getExtension()} - ${textFormatter.formatStorageSize(doc.size, locale)})</span> 
470											</li> 
471										</#if> 
472									</#if> 
473									<#if dichexart14comma1DLgs33_2013?has_content && dichexart14comma1DLgs33_2013.getData() != ''> 
474										<#assign doc=getDlFileEntry(dichexart14comma1DLgs33_2013.getData()) /> 
475										<#if doc != ''> 
476											<li class="${doc.getExtension()?lower_case}"> 
477												<a href="${dichexart14comma1DLgs33_2013.getData()}" target="_blank">Dichiarazioni ex art. 14 comma 1 D.Lgs. 33-2013</a> 
478												<span>(${doc.getExtension()} - ${textFormatter.formatStorageSize(doc.size, locale)})</span> 
479											</li> 
480										</#if> 
481									</#if> 
482									<#if provvedimentoDiIncarico?has_content && provvedimentoDiIncarico.getData() != ''> 
483										<#assign doc=getDlFileEntry(provvedimentoDiIncarico.getData()) /> 
484										<#if doc != ''> 
485											<li class="${doc.getExtension()?lower_case}"> 
486												<a href="${provvedimentoDiIncarico.getData()}" target="_blank">Provvedimento di Incarico</a> 
487												<span>(${doc.getExtension()} - ${textFormatter.formatStorageSize(doc.size, locale)})</span> 
488											</li> 
489										</#if> 
490									</#if> 
491								</#if> 
492							</ul> 
493				  		</div> 
494					</div> 
495			  	</article> 
496			</section> 
497		</#if--> 
498		 
499	    <section class="infopage"> 
500    		<#if validator.isNotNull(currentArticle.getModifiedDate())> 
501    			<p class="updatedpage">Aggiornato il: ${dateUtil.getDate(currentArticle.getModifiedDate(), "dd/MM/yyyy", locale)}</p> 
502    		</#if> 
503    		<div> 
504    			<p class="printpage"> 
505    				<a href="#" onclick="window.print();" title="stampa il contenuto di questa pagina">Stampa<span class="sr-only"> questa pagina</span></a> 
506    			</p> 
507    		</div> 
508    	</section> 
509		 
510	</div> 
511</div> 
512 
513<#function getDlFileEntry url> 
514    <#assign parts=url?string?split("/") /> 
515	 
516    <#assign groupId=0 /> 
517    <#assign uuid='' /> 
518    <#assign dlFileEntry='' /> 
519 
520    <#list parts as curPart> 
521 
522      <#if curPart_index == 2> 
523        <#assign groupId=parts[2]?number /> 
524      </#if> 
525 
526      <#if curPart_index == 5> 
527        <#assign uuid=parts[5]?string?split("?")[0] /> 
528      </#if> 
529    </#list> 
530 
531    <#if groupId != 0 &&  uuid != ''> 
532        <#assign dlFileEntry=dLFileLocalService.fetchDLFileEntryByUuidAndGroupId(uuid, groupId)! /> 
533    </#if> 
534 
535    <#return dlFileEntry /> 
536 
537</#function> 
538 
539<script type="text/javascript" src="https://getbootstrap.com/docs/4.0/dist/js/bootstrap.min.js"></script>  
540<script type="text/javascript"> 
541// Codice JS per lo scrollTop all'apertura dell'accordion 
542$('.collapse').on('shown.bs.collapse', function(e) { 
543	var $card = $(this).closest('.card'), 
544    	$card_offset = $card.offset().top, 
545    	$header_group_h = $('.group-header').outerHeight(); // Altezza del gruppo header (inclusi margin, padding e border) 
546	$('html,body').animate({ 
547    	scrollTop: $card_offset - $header_group_h 
548	}, 200); 
549}); 
550</script>