Navegación por categorías

Se ha producido un error al procesar la plantilla.
Java method "com.sun.proxy.$Proxy68.getAssetCategory(long)" threw an exception when invoked on com.sun.proxy.$Proxy68 object "com.liferay.asset.categories.internal.service.AssetEntryAssetCategoryRelAssetCategoryLocalServiceWrapper@6f9345ac"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: category = assetCategoryService.getAs...  [in template "217051#217099#573763" at line 49, column 22]
	- Reached through: #assign-container  [in template "217051#217099#573763" at line 49, column 13]
----
1<#assign assetCategoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") 
2		 assetCategoryPropertyService =  serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") 
3		 SAXReaderUtil = staticUtil["com.liferay.portal.kernel.xml.SAXReaderUtil"] 
4		 HtmlUtil = staticUtil["com.liferay.portal.kernel.util.HtmlUtil"] 
5		 layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") 
6		 PortletURLFactoryUtil = staticUtil["com.liferay.portal.kernel.portlet.PortletURLFactoryUtil"] 
7		 PortletRequest = staticUtil["javax.portlet.PortletRequest"]     
8		 journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")   
9		 ParamUtil = staticUtil["com.liferay.portal.kernel.util.ParamUtil"]              
10         categoryId = ParamUtil.getLong(request,"categoryId", 0) 
11         title =  ParamUtil.getString(request,"title", "") 
12         maxLoop = 100          
13         imageId = ParamUtil.getString(request,"imageId","")          
14/> 
15 
16<#if (categoryId <= 0) > 
17	<#assign categoryId = ParamUtil.getLong(renderRequest,"categoryId", 0)/> 
18</#if> 
19 
20<#if (categoryId <= 0) > 
21    <#if entries?has_content> 
22		<#foreach aCategory in entries?first.getCategories()> 
23			<#assign aCategory = aCategory/> 
24			<#break> 
25		</#foreach> 
26		<#list 1..maxLoop as i> 
27			<#list 1..maxLoop as j> 
28				<#if aCategory.getParentCategory()?has_content> 
29					<#assign aCategory = aCategory.getParentCategory()/> 
30				<#else> 
31					<#assign categoryId = aCategory.getCategoryId()/> 
32			   </#if>   
33			   <#break> 
34			</#list> 
35			<#if (categoryId > 0) > 
36				<#break> 
37			</#if> 
38		</#list> 
39	 </#if> 
40</#if> 
41 
42 
43<nav aria-label="breadcrumb"> 
44    <ol class="breadcrumb"> 
45       <li class="breadcrumb-title"><span>${languageUtil.get(locale,"webasturias.breadcrumb-title")}</span></li> 
46       <#--<li class="breadcrumb-item"><a href="/">${languageUtil.get(locale,"webasturias.breadcrumb-asturias")}</a></li>-->         
47        <#if (categoryId > 0) > 
48 
49            <#assign category = assetCategoryService.getAssetCategory(categoryId) 
50                     categoryAncestors = category.getAncestors() 
51                     breadCrumbContent = ""/> 
52                      
53            <#if categoryAncestors?has_content> 
54                <#foreach categoryAncestor in categoryAncestors> 
55                	 
56                	<#assign hideCategory = false/> 
57                	 
58                	<#-- obtener el contenido de la categoría hija --> 
59                	<#assign contentId = (assetCategoryPropertyService.fetchCategoryProperty(categoryAncestor.getCategoryId(), "idContenido").getValue())!""/> 
60					<#if contentId ? has_content>			         
61		            	<#assign journalArticleSub = journalArticleService.getLatestArticle(groupId,contentId)/> 
62		        		 
63		        		<#if journalArticleSub?has_content> 
64			        		<#-- obtener el contenido de la categoría actual --> 
65			                <#assign document = SAXReaderUtil.read(journalArticleSub.getContentByLocale(locale)) 
66                    		 	pageDetailNode =  document.selectSingleNode("/root/dynamic-element[@name='paginaDetalle']/dynamic-content") 
67                    		 	/> 
68                    		 <#if document.selectSingleNode("/root/dynamic-element[@name='visibleMigas']/dynamic-content")?has_content> 
69                    		 	<#assign visibleMigasNode =  document.selectSingleNode("/root/dynamic-element[@name='visibleMigas']/dynamic-content")  
70                    		 			 visibleMigas =  visibleMigasNode.getText() 
71                    		 			 hideCategory = visibleMigas != "1"/> 
72                    		 </#if> 
73			        	</#if>		 	      		    	  
74			    	  
75				    	 <#if pageDetailNode?has_content && pageDetailNode.getText()?has_content> 
76			        		<#assign  pageDetail = pageDetailNode.getText()/> 
77			        		<#if (pageDetail?index_of("@")>0)> 
78		                		<#assign pageDetailPosition = (pageDetail?index_of("@")-1) 
79		                         	pageDetail = pageDetail[0..pageDetailPosition] 
80		                          	layoutDetail = layoutLocalService.getLayout(themeDisplay.getScopeGroupId(),false,pageDetail?number) 
81		                      	/> 
82		                	</#if> 
83			            <#else> 
84			            	<#assign detailPage = "general" 
85			            	 		 layoutDetail = layoutLocalService.getFriendlyURLLayout(themeDisplay.getScopeGroupId(), false, "/"+detailPage) /> 
86			            </#if> 
87			             
88			            <#assign categoryUrl = PortletURLFactoryUtil.create(request, "com_liferay_asset_categories_navigation_web_portlet_AssetCategoriesNavigationPortlet", layoutDetail.getPlid(), PortletRequest.RENDER_PHASE)    /> 
89	                    ${categoryUrl.setParameter("categoryId",categoryAncestor.getCategoryId()+"")} 
90	                 
91	                	<#if !(hideCategory?has_content && hideCategory)> 
92	                		<#if categoryAncestor.isRootCategory()> 
93		                		<#assign breadCrumbContent = "<li class='breadcrumb-item'><a href='"+categoryUrl+"'>"+categoryAncestor.getTitle(locale)+" </a> </li>"+breadCrumbContent/> 
94		                	<#else> 
95		                    	<#assign breadCrumbContent = "<li class='breadcrumb-item'><a href='"+categoryUrl+"'>"+categoryAncestor.getTitle(locale)+" </a> </li>"+breadCrumbContent/> 
96		                    </#if>	                   		 
97	                   	</#if> 
98                	</#if> 
99                </#foreach> 
100                 
101                ${breadCrumbContent} 
102                 
103            </#if> 
104             
105            <#assign hideCategory = false/> 
106            <#assign contentId = (assetCategoryPropertyService.fetchCategoryProperty(category.getCategoryId(), "idContenido").getValue())!""/> 
107			<#if contentId ? has_content>	 
108            	<#assign journalArticleSub = journalArticleService.getLatestArticle(groupId,contentId)/> 
109        		 
110        		<#if journalArticleSub?has_content> 
111	        		<#-- obtener el contenido de la categoría actual --> 
112	                <#assign document = SAXReaderUtil.read(journalArticleSub.getContentByLocale(locale)) 
113            		 	pageDetailNode =  document.selectSingleNode("/root/dynamic-element[@name='paginaDetalle']/dynamic-content") 
114            		 	/> 
115            		 <#if document.selectSingleNode("/root/dynamic-element[@name='visibleMigas']/dynamic-content")?has_content> 
116            		 	<#assign visibleMigasNode =  document.selectSingleNode("/root/dynamic-element[@name='visibleMigas']/dynamic-content")  
117            		 			 visibleMigas =  visibleMigasNode.getText() 
118            		 			 hideCategory = visibleMigas != "1"/> 
119            		 </#if> 
120	        	</#if>  	  
121	    	  
122		    	<#if pageDetailNode?has_content && pageDetailNode.getText()?has_content> 
123	        		<#assign  pageDetail = pageDetailNode.getText()/> 
124	        		<#if (pageDetail?index_of("@")>0)> 
125                		<#assign pageDetailPosition = (pageDetail?index_of("@")-1) 
126                         	pageDetail = pageDetail[0..pageDetailPosition] 
127                          	layoutDetail = layoutLocalService.getLayout(themeDisplay.getScopeGroupId(),false,pageDetail?number) 
128                      	/> 
129                	</#if> 
130	            <#else> 
131	            	<#if category.isRootCategory()> 
132	            		<#assign detailPage = "inicio"/> 
133	            	<#else> 
134	            		<#assign detailPage = "general"/> 
135	            	</#if> 
136	            	 
137	            	<#assign layoutDetail = layoutLocalService.getFriendlyURLLayout(themeDisplay.getScopeGroupId(), false, "/"+detailPage) /> 
138	            </#if> 
139	             
140	            <#assign categoryUrl = PortletURLFactoryUtil.create(request, "com_liferay_asset_categories_navigation_web_portlet_AssetCategoriesNavigationPortlet", layoutDetail.getPlid(), PortletRequest.RENDER_PHASE)    /> 
141                ${categoryUrl.setParameter("categoryId",category.getCategoryId()+"")} 
142             
143            	<#if !(hideCategory?has_content && hideCategory)> 
144            		<#if category.isRootCategory()> 
145                		<#if title?has_content> 
146                			<li class="breadcrumb-item"><a href="/inicio">${category.getTitle(locale)}</a></li>		                		 
147                		<#else> 
148                			<li class="breadcrumb-item active">${category.getTitle(locale)}</li> 
149                		</#if>  
150                	<#else> 
151                    	<#if title?has_content> 
152                			<li class="breadcrumb-item"><a href="${categoryUrl}<#if imageId ? has_content>?imageId=${imageId}&title=${HtmlUtil.escapeURL(category.getTitle(locale))}</#if>">${category.getTitle(locale)}</a></li>		                		 
153                		<#else> 
154                			<li class="breadcrumb-item active">${category.getTitle(locale)}</li> 
155                		</#if>  
156                    </#if>	                		               		 
157               	</#if> 
158        	</#if> 
159        </#if> 
160        <#if title ? has_content> 
161        	<li class="breadcrumb-item active">${title}</li>  
162        </#if> 
163    </ol> 
164</nav> 
165 
166<script type="text/javascript"> 
167	$( document ).ready(function() { 
168		 if(typeof ga !== "undefined") { 
169		 <#if title ? has_content> 
170		 	var pageName = '${title}'; 
171		 <#elseif category ? has_content> 
172		 	var pageName = '${category.getName()}'; 
173		 <#else> 
174		 	var pageName = location.pathname; 
175		 </#if> 
176			     ga( 'send', 'pageview', { 
177				    'page': pageName, 
178				    'title': pageName 
179				} ); 
180
181	}); 
182</script> 

Navegación por categorías

El Consorcio de Transportes invierte más de cinco millones en la renovación tecnológica de todos sus equipos y del billete único

13/05/2019
En los próximos 18 meses se habilitarán nuevos servicios para continuar con la modernización del CTA
Un momento de la reunión mantenida

El Consorcio de Transportes de Asturias (CTA) ha adjudicado el contrato de renovación de la tecnología de control y validación de los títulos del billete único a la empresa Informática El Corte Inglés S.A. por 5.090.348 euros, IVA incluido. Actualmente funciona con unos equipos y sistemas que datan de 2005 y cuya modernización se hace imprescindible.

En el contrato se prevé una primera fase de suministro de equipos y programación de sistemas en un plazo de 18 meses, durante el cual el consorcio incorporará:

   - Un nuevo sistema central de gestión de los títulos de transporte.
   - Un nuevo centro de monitorización de los servicios del CTA.
   - Un nuevo portal web.
   - Una nueva aplicación móvil de acceso a la información de servicios, recarga de tarjetas, etcétera.
   - Una nueva aplicación móvil de inspección.
   - Un mínimo de 700 nuevos pupitres (las máquinas embarcadas en la flota) para instalar en vehículos que facilitarán el uso de nuevos tipos de tarjetas con seguridad reforzada, medios de pago bancarios, códigos QR y localización GPS.
   - Un mínimo de 100 paneles informativos para instalar en los principales puntos de parada con información actualizada en tiempo real.
   - Diferentes equipos auxiliares necesarios para la gestión ordinaria de los medios de pago y de información del consorcio.

En la segunda fase, y hasta los 5 años desde la formalización del contrato, se prevé el mantenimiento del hardware y del software y la explotación del centro de monitorización.

Esta contratación posibilitará que el CTA renueve por completo sus medios de pago. Así, se pondrán en marcha nuevos títulos que pasarán a funcionar como monedero del que se descontarán los diferentes viajes realizados en cualquier medio de transporte público. Este sistema permitirá ofrecer descuentos progresivos según el uso, así como tarifas personalizadas en función de la pertenencia a determinados colectivos, ofertas específicas o descuentos por incidencias como situaciones de contaminación.

El consejo de administración del consorcio, presidido por el consejero de Infraestructuras, Ordenación del Territorio y Medio Ambiente, Fernando Lastra, ha destacado que la renovación tecnológica volverá a situar el sistema de transporte público del Principado a la vanguardia nacional, después de haber sido el primero en ofrecer la posibilidad de pagar con un mismo título sin contacto en transportes interurbanos y urbanos de autobús y ferrocarril, con transbordos gratuitos. Todo ello gracias a un sistema, el billete único, que este año alcanzará los 200 millones de usos.