Comunicazione ai fornitori - Evoluzione Sistema Socio Sanitario Lombardo - L.R. 23/2015
Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> parts[2]  [in template "192914#192948#141954" at line 262, column 22]

----
Tip: It's the final [] step that caused this error, not those before it.
----
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 groupId = parts[2]?number  [in template "192914#192948#141954" in function "getDlFileEntry" at line 262, column 5]
	- Reached through: #assign file = getDlFileEntry(node.ge...  [in template "192914#192948#141954" at line 169, column 21]
----
1<#assign groupService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")> 
2<#-- Get themeDisplay --> 
3<#assign serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() /> 
4<#assign themeDisplay = serviceContext.getThemeDisplay() /> 
5 
6<#-- Data format --> 
7<#setting time_zone = languageUtil.get(locale, "template-timezone") /> 
8<#assign originalLocale = locale /> 
9<#setting locale = localeUtil.getDefault() /> 
10<#assign displayDate = .vars['reserved-article-modified-date'].data /> 
11<#assign displayDate = displayDate?datetime("EEE, d MMM yyyy HH:mm:ss Z") /> 
12<#setting locale = originalLocale /> 
13<#assign displayDateDay = displayDate?string("dd") /> 
14<#assign displayDateMonth = displayDate?string("MM") /> 
15<#assign displayDateYear = displayDate?string("YYYY") /> 
16 
17<#-- Get info File --> 
18<#assign dLFileLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> 
19<#assign textFormatter = staticUtil["com.liferay.portal.kernel.util.TextFormatter"]> 
20 
21<#-- Get Category --> 
22<#assign vocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")> 
23<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
24<#assign categoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")> 
25<#assign catpropertyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryPropertyLocalService") /> 
26<#assign vocabularyDoc = vocabularyService.getGroupVocabulary(groupId, "Tipo Documento") /> 
27<#if vocabularyService.fetchGroupVocabulary(groupId, "Tipo Produttore")?? > 
28<#assign vocabularyTipoProduttore = vocabularyService.getGroupVocabulary(groupId, "Tipo Produttore") /> 
29</#if> 
30<#assign vocabularyHoncode = vocabularyService.getGroupVocabulary(groupId, "Honcode") /> 
31<#assign currentArticle = journalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) /> 
32 <#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey() /> 
33<#assign categoryList=categoryService.getCategories("com.liferay.journal.model.JournalArticle",currentArticleResourcePrimKey) > 
34 
35<#-- Get Tag --> 
36<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
37<#assign assetTagLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetTagLocalService")> 
38 
39<#assign arcaLocalService = serviceLocator.findService("it.arca.service.service.ArcaLocalService") /> 
40<#assign classeColore = arcaLocalService.getSelettoreCss(.vars['reserved-article-id'].data,'0') /> 
41<#assign arcaSezioniBackgroundcolorCss = 'arca-sezioni-backgroundcolor-' + classeColore /> 
42<#assign arcaSezioniColorCss = 'arca-sezioni-color-' + classeColore /> 
43<#assign arcaSezioniBorderColorCss = 'arca-sezioni-bordercolor-' + classeColore /> 
44<#assign arcaSezioniHrcolor = 'arca-sezioni-hrcolor-' + classeColore /> 
45 
46<div class="detail row"> 
47    <div class="col-md-10 col-md-offset-1"> 
48        <div class="row"> 
49            <div class="col-md-6 col-md-offset-3"> 
50                <#if titolo?has_content && titolo.getData() !=''> 
51                    <h1 class="hr text-center ${arcaSezioniColorCss} ${arcaSezioniHrcolor}"> 
52                        ${titolo.getData()} 
53                    </h1> 
54                </#if> 
55                <h2 class="type text-center"> 
56                    <#list categoryList as categoryList> 
57                        <#if categoryList.vocabularyId == vocabularyDoc.vocabularyId> 
58                            <span class="category">${categoryList.getName()}</span> 
59                        </#if> 
60                    </#list> 
61                </h2> 
62				<h2 class="type text-center dettaglio-tipo-produttore"> 
63					<#if vocabularyTipoProduttore?? > 
64						<#list categoryList as categoryList> 
65							<#if categoryList.vocabularyId == vocabularyTipoProduttore.vocabularyId> 
66								<span class="category">${categoryList.getName()}</span> 
67							</#if> 
68						</#list> 
69					</#if> 
70                </h2> 
71            </div> 
72        </div> 
73		 
74		<#if   
75		     (numeroProtocolloDocumento?? && numeroProtocolloDocumento.getData() != '') || 
76    		 (descrizione?? && descrizione.getData() != '')> 
77			 <div class="well dettaglio-asset-documento"> 
78				<#if numeroProtocolloDocumento?? && numeroProtocolloDocumento.getData() !=''> 
79					 <p class="dettaglio-numero-protocollo"><strong>Numero Protocollo: </strong> 
80									${numeroProtocolloDocumento.getData()} 
81					</p> 
82				</#if> 
83				 
84				<#if descrizione?? && descrizione.getData() !='' > 
85					<#if getterUtil.getBoolean(descrizione.flAccordionDescrizione.getData() == "true") > 
86							<#assign descrLength = descrizione.getData()?length /> 
87 
88							 
89							<div class="eus-read-more module"> 
90								<div role="heading" class="collapse" id="${themeDisplay.getPortletDisplay().getId()}_collapseExample" aria-expanded="false"> 
91									<div id="${themeDisplay.getPortletDisplay().getId()}_id-arca-shadow" class="arca-shadow"></div>  
92									<p>${descrizione.getData()}</p> 
93								</div> 
94								<a role="button" class="${arcaSezioniColorCss} collapsed ${themeDisplay.getPortletDisplay().getId()}_lastLink lastLink" data-toggle="collapse" href="#${themeDisplay.getPortletDisplay().getId()}_collapseExample" aria-expanded="false" aria-controls="${themeDisplay.getPortletDisplay().getId()}_collapseExample"></a> 
95							</div> 
96								 
97							 
98						<#else> 
99						  <div class="eus-read-more"> 
100								<p>${descrizione.getData()}</p> 
101						  </div> 
102					</#if> 
103				</#if> 
104			  
105			 </div> 
106		</#if> 
107		 
108		<#if (codiceDocumento?? && codiceDocumento.getData() !='') ||  
109			 (dataDocumento?? && dataDocumento.getData() !='') || 
110			 (revisioneDocumento?? && revisioneDocumento.getData() != '') || 
111    		 (descrizione?? && descrizione.getData() != '') > 
112			 <div class="well dettaglio-asset-documento-aziendale"> 
113				<#if codiceDocumento?? && codiceDocumento.getData() !=''> 
114					<p class="dettaglio-codice-documento"><strong>Codice: </strong> 
115									${codiceDocumento.getData()} 
116							  </p> 
117				</#if> 
118				<#if dataDocumento?? && dataDocumento.getData() !=''> 
119					<#assign dataDocumento_DateObj = dateUtil.parseDate("yyyy-MM-dd", dataDocumento.getData(), locale)> 
120					 
121					 
122				 <p class="dettaglio-data-documento"><strong>Data: </strong> 
123								${dateUtil.getDate(dataDocumento_DateObj, "dd/MM/yyyy", locale)} 
124						  </p> 
125				</#if> 
126			 
127				<#if revisioneDocumento?? && revisioneDocumento.getData() !=''> 
128				 <p class="dettaglio-revisione-documento"><strong>Revisione: </strong> 
129								${revisioneDocumento.getData()} 
130						  </p> 
131				</#if> 
132			 
133 
134				<#if descrizione?? && descrizione.getData() !=''> 
135					<#if getterUtil.getBoolean(descrizione.flAccordionDescrizione.getData() == "true") > 
136							<#assign descrLength = descrizione.getData()?length /> 
137 
138							 
139							<div class="eus-read-more module"> 
140								<div role="heading" class="collapse" id="${themeDisplay.getPortletDisplay().getId()}_collapseExample" aria-expanded="false"> 
141									<div id="${themeDisplay.getPortletDisplay().getId()}_id-arca-shadow" class="arca-shadow"></div>  
142									<p>${descrizione.getData()}</p> 
143								</div> 
144								<a role="button" class="${arcaSezioniColorCss} collapsed ${themeDisplay.getPortletDisplay().getId()}_lastLink lastLink" data-toggle="collapse" href="#${themeDisplay.getPortletDisplay().getId()}_collapseExample" aria-expanded="false" aria-controls="${themeDisplay.getPortletDisplay().getId()}_collapseExample"></a> 
145							</div> 
146								 
147							 
148						<#else> 
149						  <div class="eus-read-more"> 
150								<p>${descrizione.getData()}</p> 
151						  </div> 
152					</#if> 
153				</#if> 
154			  
155				 
156			 </div> 
157		</#if> 
158		 
159		<#if tagList??> 
160            <div class="tags"> 
161                <#list tagList as tagList> 
162                    <span class="tag">${tagList.getName()}</span> 
163                </#list> 
164            </div> 
165        </#if> 
166        <ul class="download"> 
167            <#if documentoAllegato.getData() !=''> 
168            	<#list documentoAllegato.getSiblings() as node> 
169            	    <#assign file=getDlFileEntry(node.getData()) /> 
170            		<li> 
171            		    <a href="${node.getData()}">${file.getTitle()}</a> 
172            		    <span> - ${file.getExtension()} ${textFormatter.formatStorageSize(file.size, locale)}</span> 
173            		</li> 
174            	</#list> 
175            </#if> 
176        </ul> 
177        <div class="honcode"> 
178            <div class="row"> 
179                <div class="col-md-7"> 
180                    <#list categoryList as categoryList> 
181                        <#if categoryList.vocabularyId == vocabularyHoncode.vocabularyId> 
182                            Responsabile della pubblicazione: ${categoryList.getName()} 
183                        </#if> 
184                    </#list> 
185                </div> 
186                <div class="col-md-5 text-right"> 
187                    Ultimo aggiornamento: ${displayDateDay}/${displayDateMonth}/${displayDateYear} 
188                </div> 
189            </div> 
190            <#if Separatorefvnw.noteHONcode.getData() !=''> 
191                <div class="row note"> 
192                    <div class="col-md-12"> 
193                        <p><strong>NOTE: </strong>${Separatorefvnw.noteHONcode.getData()}</p> 
194                    </div> 
195                </div> 
196            </#if> 
197        </div> 
198 
199    </div> 
200</div> 
201 
202<script> 
203	AUI().use('aui-base', function(A) { 
204	    if(A.one('.text .accordion')){ 
205 
206      var allps = A.one('.text .accordion').all('p'); 
207      var pHeight = 0; 
208 
209      if(allps){ 
210 
211        allps.each(function(p){ 
212          pHeight = pHeight + p.height(); 
213        }); 
214 
215        if(pHeight > 170){ 
216          A.one(".text .icon-angle-down").show(); 
217        }else{ 
218          A.one(".text .icon-angle-down").hide(); 
219
220
221 
222        A.one(".text .icon-angle-down").on('click', function(event) { 
223          A.one(".accordion").setStyle('height', 'auto'); 
224          A.one(".text .icon-angle-down").hide(); 
225          A.one(".text .icon-angle-up").show(); 
226          A.one(".text .gradient").hide(); 
227        }); 
228        A.one(".text .icon-angle-up").on('click', function(event) { 
229          A.one(".accordion").setStyle('height', '190px'); 
230          A.one(".text .icon-angle-down").show(); 
231          A.one(".text .icon-angle-up").hide(); 
232          A.one(".text .gradient").show(); 
233        }); 
234
235	}); 
236</script> 
237<script> 
238$(document).ready(function() { 
239     
240		var idCollapseExample = '#${themeDisplay.getPortletDisplay().getId()}_collapseExample'; 
241		var idArcaShadow = '#${themeDisplay.getPortletDisplay().getId()}_id-arca-shadow'; 
242		var lastLink = '.${themeDisplay.getPortletDisplay().getId()}_lastLink';		  
243		 
244		if ($(idCollapseExample) && $(idCollapseExample)[0] && $(idCollapseExample)[0].scrollHeight && $(idCollapseExample).innerHeight() ) 
245
246			if ($(idCollapseExample)[0].scrollHeight > $(idCollapseExample).innerHeight()) { 
247				//$('#id-arca-shadow').show(); 
248				//$('#lastLink').show(); 
249
250			else 
251
252				$(idArcaShadow).hide(); 
253				$(lastLink).hide(); 
254				$(idCollapseExample).removeClass("collapse"); 
255
256
257    }) 
258</script> 
259 
260<#function getDlFileEntry url> 
261    <#assign parts=url?string?split("/") /> 
262    <#assign groupId=parts[2]?number /> 
263    <#assign uuid=parts[5]?string?split("?")[0] /> 
264    <#assign dlFileEntry=dLFileLocalService.fetchDLFileEntryByUuidAndGroupId(uuid, groupId)! /> 
265    <#return dlFileEntry /> 
266</#function>