Aquí empieza tu viaje

Descubre nuestras rutas y trenes

Se ha producido un error al procesar la plantilla.
Java method "com.sun.proxy.$Proxy103.getLayoutByUuidAndGroupId(String, long, boolean)" threw an exception when invoked on com.sun.proxy.$Proxy103 object "com.liferay.layout.internal.service.LayoutLocalServiceWrapper@32237707"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign layout = layoutLocalService.g...  [in template "87478545#87478592#89111243" at line 52, column 65]
----
1<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")/> 
2<#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")/> 
3<#assign ddmFieldLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMFieldLocalService")/> 
4 
5<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
6 
7<#if entries?has_content> 
8	<div class="container py-6"> 
9 
10		<div class="row"> 
11			<div class="col-12 mb-5"> 
12				<#assign totalEntries = entries?size /> 
13				<p class="c-counter">${totalEntries} <@liferay.language key="adt.result"/></p> 
14			</div> 
15		</div> 
16 
17		<div class="row"> 
18			<#list entries as curEntry> 
19			<#assign assetRenderer = curEntry.getAssetRenderer()/> 
20			<#assign journalArticle = assetRenderer.getAssetObject() /> 
21			<#assign ddmStructure = journalArticle.getDDMStructure() /> 
22			<#assign ddmForm = ddmStructure.getDDMForm()/> 
23			<#assign ddmFormValues = ddmFieldLocalService.getDDMFormValues(ddmForm, journalArticle.getId()) /> 
24			<#assign ddmFormFieldValues = ddmFormValues.getDDMFormFieldValues() /> 
25			<#assign classPK=curEntry.getClassPK()> 
26			<#assign assetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", classPK) /> 
27			<#assign assetCategories = assetEntry.getCategories() /> 
28			<#assign contentId = .vars["journalArticle"].getArticleId() /> 
29			<#assign landingPageURL = "" /> 
30				 
31			<#list ddmFormFieldValues as fieldName> 
32				<#switch fieldName.getFieldReference()> 
33					<#case "trainName"> 
34						<#assign title =  fieldName.getValue().getString(locale)!''> 
35					<#break> 
36					<#case "landingPageURL"> 
37							<#assign landingPageURL = "" /> 
38							<#assign layoutJson = fieldName.getValue().getString(locale)!"" /> 
39 
40							<#if layoutJson?has_content> 
41							     
42							    <#attempt> 
43							        <#assign layoutData = layoutJson?eval /> 
44							    <#recover> 
45							        <#assign layoutData = {} /> 
46							    </#attempt> 
47 
48							    <#assign groupId = (layoutData.groupId)!"" /> 
49							    <#assign layoutUuid = (layoutData.id)!(layoutData.value)!"" /> 
50 
51							    <#if groupId?has_content && layoutUuid?has_content> 
52							        <#assign layout = layoutLocalService.getLayoutByUuidAndGroupId(layoutUuid, groupId?number, false) /> 
53							        <#assign landingPageURL = themeDisplay.getPortalURL() + layout.getFriendlyURL() /> 
54							    </#if> 
55 
56							</#if> 
57						<#break> 
58						<#case "origenIDs"> 
59							<#assign origenIDs =  fieldName.getValue().getString(locale)!''> 
60							<#assign isUnavailable = !origenIDs?has_content> 
61						<#break> 
62							 
63						<#case "destinationID"> 
64							<#assign destinationID =  fieldName.getValue().getString(locale)!''> 
65						<#break> 
66 
67						<#case "trainType"> 
68							<#assign searchType =  fieldName.getValue().getString(locale)!''> 
69						<#break> 
70 
71             <#case "trainDateStart"> 
72							<#assign trainDateStart =  fieldName.getValue().getString(locale)!''> 
73						<#break> 
74 
75             <#case "trainDateFinish"> 
76							<#assign trainDateFinish =  fieldName.getValue().getString(locale)!''> 
77						<#break> 
78					<#case "trainShortDescriptionCard"> 
79						<#assign description =  fieldName.getValue().getString(locale)!''> 
80					<#break> 
81					<#case "trainPrice"> 
82						<#assign price =  fieldName.getValue().getString(locale)!''> 
83					<#break> 
84					<#case "trainDate"> 
85						<#assign date =  fieldName.getValue().getString(locale)!''> 
86					<#break> 
87					<#case "trainExperienceDescription"> 
88						<#assign experience =  fieldName.getValue().getString(locale)!''> 
89					<#break> 
90					<#case "trainInformation"> 
91						<#assign info =  fieldName.getValue().getString(locale)!''> 
92					<#break> 
93						 
94					<#case "trainImage"> 
95						<#assign imageJSON = fieldName.getValue().getString(locale)!''> 
96						<#if imageJSON?has_content> 
97							<#assign imageData = imageJSON?eval> 
98							<#assign imageUrl = imageData.url!''> 
99						</#if> 
100					<#break>						 
101				<#default> 
102				</#switch>        
103			</#list> 
104 
105				<#-- Creacion de URL: --> 
106				<#assign params = {} /> 
107 
108				<#if contentId?has_content> 
109          <#assign params = params + {"reference": contentId} /> 
110        </#if> 
111					 
112        <#if origenIDs?has_content> 
113          <#assign params = params + {"origins": origenIDs} /> 
114        </#if> 
115 
116        <#if destinationID?has_content> 
117          <#assign params = params + {"destination": destinationID} /> 
118        </#if> 
119 
120			  <#if searchType?has_content> 
121          <#assign params = params + {"searchType": searchType} /> 
122        </#if> 
123					 
124        <#if trainDateStart?has_content> 
125          <#assign params = params + {"trainDateStart": trainDateStart} /> 
126        </#if> 
127 
128        <#if trainDateFinish?has_content> 
129          <#assign params = params + {"trainDateFinish": trainDateFinish} /> 
130        </#if> 
131					 
132				<#assign queryString = "" /> 
133 
134        <#if params?size gt 0> 
135          <#assign first = true /> 
136          <#list params?keys as key> 
137            <#if first> 
138              <#assign queryString = "?" + key + "=" + params[key] /> 
139              <#assign first = false /> 
140            <#else> 
141              <#assign queryString = queryString + "&" + key + "=" + params[key] /> 
142            </#if> 
143          </#list> 
144        </#if> 
145			<#assign baseURL = "/checkout" /> 
146								 
147			<div class="col-12 col-md-6 col-lg-4 mb-5"> 
148				<div class="c-card"> 
149					<div class="c-card__content"> 
150						<#if imageUrl?has_content> 
151							<img class="c-card__image" src="${imageUrl}" alt="${title}" />	 
152						</#if> 
153						<#if price?has_content > 
154							<span class="c-tag c-tag--green">${price}</span> 
155						</#if> 
156						<h3 class="c-card__title"> 
157							${title!''} 
158						</h3> 
159						<div class="c-card__description"> 
160							<#if description?has_content > 
161								${description} 
162							</#if> 
163						</div> 
164						<ul class="c-list-icon mb-4"> 
165							<#if date?has_content > 
166							<li class="c-list-icon__item"> 
167								<i class="c-list-icon__icon alsa-tt-icon-calendar-1"></i> 
168								<p class="c-list-icon__text">${date}</p> 
169							</li> 
170							</#if> 
171							<#if experience?has_content > 
172							<li class="c-list-icon__item"> 
173								<i class="c-list-icon__icon alsa-tt-icon-ticket"></i> 
174								<p class="c-list-icon__text">${experience}</p> 
175							</li> 
176							</#if> 
177							<#if info?has_content > 
178							<li class="c-list-icon__item"> 
179								<i class="c-list-icon__icon alsa-tt-icon-bus"></i> 
180								<p class="c-list-icon__text">${info}</p> 
181							</li> 
182							</#if>    
183						</ul> 
184 
185						<#if isUnavailable> 
186							<button class="c-button c-button--blue c-button--large mx-auto mb-3" disabled><@liferay.language key="adt.soon"/></button> 
187							<p>.</p> 
188						<#else> 
189							<button class="c-button c-button--blue c-button--large mx-auto mb-3" 
190										onclick="window.location.href='${baseURL}${queryString}'"> 
191								<@liferay.language key="adt.book"/> 
192							</button> 
193							<a class="c-link c-link--blue" href="${landingPageURL!""}">${title!'<@liferay.language key="adt.information"/>'}</a> 
194						</#if> 
195						 
196						 
197						 
198					</div> 
199				</div> 
200			</div> 
201			</#list> 
202		</div> 
203	</div> 
204	 
205</#if>  
206 
207 
208<#function getPageDisplayUrl assetEntry> 
209	<#assign assetRenderer = assetEntry.getAssetRenderer() /> 
210	<#assign path = assetRenderer.getURLViewInContext(renderRequest, renderResponse, currentURL) /> 
211	<#if path?has_content> 
212		<#return path /> 
213	<#else> 
214		<#return "" /> 
215	</#if> 
216</#function>