@ -1,3 +1,5 @@
<%@page import="java.util.Map.Entry"%>
<%@page import="java.text.DateFormat"%>
<%@page import="reportistica.Reportistica"%>
<%@page import="com.liferay.portal.kernel.language.LanguageUtil"%>
<%@page import="java.util.TreeMap"%>
@ -20,214 +22,285 @@
<%@page import="com.liferay.portal.kernel.util.ParamUtil"%>
<%@page import="com.liferay.portal.kernel.util.DateFormatFactoryUtil"%>
<%@page import="com.liferay.portlet.PortletURLFactoryUtil"%>
<%@page import="com.liferay.portal.kernel.util.ListUtil"%>
<%@ include file="/html/init.jsp"%>
<%
Date dataInizioLavori = ParamUtil.getDate(request, "dataInizioInput", DateFormatFactoryUtil.getSimpleDateFormat("yyyy-MM-dd"));
Date dataFineLavori = ParamUtil.getDate(request, "dataFineInput", DateFormatFactoryUtil.getSimpleDateFormat("yyyy-MM-dd"));
%>
<aui:row>
<h1>
<%= LanguageUtil.get(pageContext, "titolo_pagina_reportistica") %>
</h1>
</aui:row>
<div style="padding-bottom: 10px; padding-top: 15px;">
<aui:field-wrapper label="regione_sicilia_paesaggistica" helpMessage="portale_liferay_tooltip"> <aui:fieldset label="pagina_reportistica" helpMessage="filtra_pratiche_tooltip" column="true">
<aui:row>
<h1><%= LanguageUtil.get(pageContext, "titolo_pagina_reportistica") %></h1>
</aui:row>
<aui:row style="padding-bottom: 10px; padding-top: 15px;">
<h4>
<%= LanguageUtil.get(pageContext, "titolo_campi_filtro") %>
</h4>
</aui:row>
</div>
<aui:row>
<liferay-portlet:renderURL var="filtraPerRangeDataURL" >
<liferay-portlet:param name="mvcPath" value="/html/view.jsp"/>
</liferay-portlet:renderURL>
<aui:form action="<%= filtraPerRangeDataURL %>" method="post">
<div style="display:flex;">
<aui:row>
<aui:column>
<aui:input
name="dataInizioInput"
inlineLabel="left"
label="date_picker_inizio"
type="date"
value='<%= DateFormatFactoryUtil.getSimpleDateFormat("yyyy-MM-dd").format(dataInizioLavori) %>'>
</aui:input>
</aui:column>
<aui:column>
<aui:input
name="dataFineInput"
inlineLabel="left"
label="date_picker_fine"
type="date"
value='<%= DateFormatFactoryUtil.getSimpleDateFormat("yyyy-MM-dd").format(dataFineLavori) %>'>
</aui:input>
</aui:column>
<aui:column>
<aui:button
value="pulsante_filtra_submit"
cssClass="btn-primary"
type="submit"
/>
</aui:column>
</aui:row>
</div>
</aui:form>
</aui:row>
<aui:row>
<liferay-portlet:renderURL var="filtraPerRangeDataURL" >
<liferay-portlet:param name="mvcPath" value="/html/view.jsp"/>
</liferay-portlet:renderURL>
<aui:form action="<%= filtraPerRangeDataURL %>" method="post">
<div style="display:flex;">
<aui:row>
<aui:column>
<aui:input
name="dataInizioInput"
inlineLabel="left"
label="date_picker_inizio"
type="date"
value='<%= DateFormatFactoryUtil.getSimpleDateFormat("yyyy-MM-dd").format(dataInizioLavori) %>'>
</aui:input>
</aui:column>
<aui:column>
<aui:input
name="dataFineInput"
inlineLabel="left"
label="date_picker_fine"
type="date"
value='<%= DateFormatFactoryUtil.getSimpleDateFormat("yyyy-MM-dd").format(dataFineLavori) %>'>
</aui:input>
</aui:column>
<aui:column>
<aui:button style="margin-top: 25px;"
value="pulsante_filtra_submit"
cssClass="btn-primary"
type="submit"
/>
</aui:column>
</aui:row>
</div>
</aui:form>
</aui:row>
</aui:fieldset></aui:field-wrapper>
<hr>
<%
Map<String, BigInteger> stati = new TreeMap<String, BigInteger>();
Map<String, BigInteger> integrazioni = new TreeMap<String, BigInteger>();
Map<String, BigInteger> autorizzazioni = new TreeMap<String, BigInteger>();
for(int p=1;p<=10;p++){
stati.put("P"+p, BigInteger.valueOf(0));
stati.put("Q"+p, BigInteger.valueOf(0));
integrazioni.put("P"+p, BigInteger.valueOf(0));
integrazioni.put("Q"+p, BigInteger.valueOf(0));
autorizzazioni.put("P"+p, BigInteger.valueOf(0));
autorizzazioni.put("Q"+p, BigInteger.valueOf(0));
}
List<Object[]> i = IntPraticaLocalServiceUtil.filtraPraticheStato(dataInizioLavori, dataFineLavori);
List<Object[]> j = IntPraticaLocalServiceUtil.filtraPraticheIntegrazioni(dataInizioLavori, dataFineLavori);
List<Object[]> k = IntPraticaLocalServiceUtil.filtraPraticheAutorizzate(dataInizioLavori, dataFineLavori);
DateFormat formatter = DateFormat.getDateInstance(DateFormat.SHORT);
String nel_periodo = LanguageUtil.get(pageContext, "titolo_period") +
" " +
formatter.format(dataInizioLavori) +
"-" +
formatter.format(dataFineLavori);
%>
<div>
<aui:row>
<h2><%= LanguageUtil.get(pageContext, "titolo_tabella_risultati_stato") %> <%= LanguageUtil.get(pageContext, "titolo_period") %>
</h2>
<% if(Validator.isNotNull(i)&&!i.isEmpty()){
for(Object[] record : i){
String tipoprocedura = (String)record[0];
String statopratica = (String)record[1];
BigInteger countStati = (BigInteger)record[2];
BigInteger rigaCountMappa = stati.get(tipoprocedura);
if(Validator.isNotNull(countStati)&&Validator.isNotNull(rigaCountMappa))
stati.put(tipoprocedura, countStati.add(rigaCountMappa));
%>
<aui:row>
<% if(null!=record){%>
<aui:column><%=tipoprocedura %></aui:column>
<aui:column><%=statopratica %></aui:column>
<aui:column><%=countStati %></aui:column>
<%}%>
</aui:row>
<%}%>
<aui:row>
<aui:col span="3">
<portlet:resourceURL var="azioneScarica1URL" id="azioneScarica1">
</portlet:resourceURL>
<aui:button
cssClass="btn-primary"
value="pulsante_scarica_report_1"
href="<%= azioneScarica1URL %>"
>
</aui:button>
</aui:col>
</aui:row>
<%}else{
%><p style="color: #007bff;"><%=LanguageUtil.get(pageContext, "stringa_csv_vuoto_stato") %></p>
<%} %>
<aui:row>
<h3><%= LanguageUtil.get(pageContext, "titolo_risultati_aggregati_stato") %>
</h3>
<p><%=stati.toString()%></p>
</aui:row>
</aui:row>
<aui:row>
<h2><%= LanguageUtil.get(pageContext, "titolo_tabella_risultati_integrazioni") %> <%= LanguageUtil.get(pageContext, "titolo_period") %>
</h2>
<% if(Validator.isNotNull(j)&&!j.isEmpty()){
for(Object[] record : j){
String tipoprocedura = (String)record[0];
BigInteger countIntegrazioni = (BigInteger)record[1];
BigInteger rigaCountMappa = integrazioni.get(tipoprocedura);
if(Validator.isNotNull(countIntegrazioni)&&Validator.isNotNull(rigaCountMappa))
integrazioni.put(tipoprocedura, countIntegrazioni.add(rigaCountMappa));
%>
<aui:row>
<% if(null!=record){%>
<aui:column><%=tipoprocedura %></aui:column>
<aui:column><%=countIntegrazioni %></aui:column>
<%}%>
</aui:row>
<%}%>
<aui:row>
<aui:col span="3">
<portlet:resourceURL var="azioneScarica2URL" id="azioneScarica2">
</portlet:resourceURL>
<aui:button
cssClass="btn-primary"
value="pulsante_scarica_report_2"
href="<%= azioneScarica2URL %>"
>
</aui:button>
</aui:col>
</aui:row>
<%}else{
%><p style="color: #007bff;"><%=LanguageUtil.get(pageContext, "stringa_csv_vuoto_integrazioni") %></p><%}%>
<aui:field-wrapper>
<aui:fieldset label="titolo_tabella_risultati_stato">
<aui:row>
<aui:col width="80">
<liferay-ui:search-container total="<%=i.size()%>" var="searchContainer" emptyResultsMessage="stringa_csv_vuoto_stato" >
<liferay-ui:search-container-results results="<%=i %>" />
<liferay-ui:search-container-row modelVar="o" className="java.lang.Object" >
<liferay-ui:search-container-column-text name="tipo_procedura" value="${o[0]}"/>
<liferay-ui:search-container-column-text name="traduzione_tipo_procedura" translate="true" value="tipo_procedura_${o[0]}"/>
<liferay-ui:search-container-column-text name="stato_pratica" value="${o[1]}"/>
<liferay-ui:search-container-column-text name="traduzione_stato_pratica" translate="true" value="stato-pratica-${o[1]}"/>
<liferay-ui:search-container-column-text name="numero_pratiche" value="${o[2]}"/>
</liferay-ui:search-container-row>
<liferay-ui:search-iterator paginate="false"/>
</liferay-ui:search-container>
</aui:col>
<aui:col width="20" style="margin-top: 25px;">
<portlet:resourceURL var="azioneScarica1URL" id="azioneScarica1">
</portlet:resourceURL>
<c:if test="<%= null!=i&&!i.isEmpty()%>">
<aui:button
cssClass="btn-primary"
value="pulsante_scarica_report_1"
href="<%= azioneScarica1URL %>"
>
</aui:button>
</c:if>
</aui:col>
</aui:row>
<h3><%= LanguageUtil.get(pageContext, "titolo_tabella_risultati_stato") %> | <%= LanguageUtil.get(pageContext, "titolo_report_aggreg") %> </h3>
<aui:row>
<h3>
<%= LanguageUtil.get(pageContext, "titolo_risultati_aggregati_integrazioni") %>
</h3>
<p>
<%= integrazioni.toString() %>
</p>
<%for(Object[] record : i)
{String tipoprocedura = (String)record[0];
BigInteger countStati = (BigInteger)record[2];
BigInteger rigaCountMappa = stati.get(tipoprocedura);
if(null!=countStati&null!=tipoprocedura)
{if(null!=rigaCountMappa)
{stati.put(tipoprocedura, countStati.add(rigaCountMappa));
}
else
{stati.put(tipoprocedura,countStati);
}
}
}
List<Entry<String, BigInteger>> statiEntryList=new ArrayList<Entry<String, BigInteger>>(stati.entrySet());
%>
<aui:col width="30">
<liferay-ui:search-container total="<%=statiEntryList.size()%>" var="searchContainer" emptyResultsMessage="report_stato_vuoto" >
<liferay-ui:search-container-results results="<%=statiEntryList %>" />
<liferay-ui:search-container-row modelVar="e" className="java.util.Map.Entry" >
<liferay-ui:search-container-column-text name="tipo_procedura" value="${e.getKey()}"/>
<liferay-ui:search-container-column-text name="numero_pratiche" value="${e.getValue()}"/>
</liferay-ui:search-container-row>
<liferay-ui:search-iterator paginate="false"/>
</liferay-ui:search-container>
</aui:col>
</aui:row>
</aui:row>
</aui:fieldset>
</aui:field-wrapper>
<aui:field-wrapper>
<aui:fieldset label="titolo_tabella_risultati_integrazioni">
<aui:row>
<aui:col width="80">
<liferay-ui:search-container total="<%=j.size()%>" var="searchContainer" emptyResultsMessage="stringa_csv_vuoto_integrazioni" >
<liferay-ui:search-container-results results="<%=j %>" />
<liferay-ui:search-container-row modelVar="o" className="java.lang.Object" >
<liferay-ui:search-container-column-text name="tipo_procedura" value="${o[0]}"/>
<liferay-ui:search-container-column-text name="traduzione_tipo_procedura" translate="true" value="tipo_procedura_${o[0]}"/>
<liferay-ui:search-container-column-text name="numero_pratiche" value="${o[1]}"/>
</liferay-ui:search-container-row>
<liferay-ui:search-iterator paginate="false"/>
</liferay-ui:search-container>
</aui:col>
<aui:col width="20" style="margin-top: 25px;">
<portlet:resourceURL var="azioneScarica2URL" id="azioneScarica2">
</portlet:resourceURL>
<c:if test="<%= null!=j&&!j.isEmpty()%>">
<aui:button
cssClass="btn-primary"
value="pulsante_scarica_report_2"
href="<%= azioneScarica2URL %>"
>
</aui:button>
</c:if>
</aui:col>
</aui:row>
<h3><%= LanguageUtil.get(pageContext, "titolo_tabella_risultati_integrazioni") %> | <%= LanguageUtil.get(pageContext, "titolo_report_aggreg") %></h3>
<aui:row>
<h2><%= LanguageUtil.get(pageContext, "titolo_tabella_risultati_autorizzazioni") %> <%= LanguageUtil.get(pageContext, "titolo_period") %>
</h2>
<% if(Validator.isNotNull(k)&&!k.isEmpty()){
<%for(Object[] record : j)
{String tipoprocedura = (String)record[0];
BigInteger countInt = (BigInteger)record[1];
BigInteger rigaCountMappa = integrazioni.get(tipoprocedura);
if(null!=countInt&null!=tipoprocedura)
{if(null!=rigaCountMappa)
{integrazioni.put(tipoprocedura, countInt.add(rigaCountMappa));
}
else
{integrazioni.put(tipoprocedura,countInt);
}
}
}
List<Entry<String, BigInteger>> intEntryList=new ArrayList<Entry<String, BigInteger>>(integrazioni.entrySet());
%>
<aui:col width="30">
<liferay-ui:search-container total="<%=intEntryList.size()%>" var="searchContainer" emptyResultsMessage="report_integra_vuoto" >
<liferay-ui:search-container-results results="<%=intEntryList %>" />
<liferay-ui:search-container-row modelVar="e" className="java.util.Map.Entry" >
<liferay-ui:search-container-column-text name="tipo_procedura" value="${e.getKey()}"/>
<liferay-ui:search-container-column-text name="numero_pratiche" value="${e.getValue()}"/>
</liferay-ui:search-container-row>
<liferay-ui:search-iterator paginate="false"/>
</liferay-ui:search-container>
</aui:col>
</aui:row>
</aui:fieldset>
</aui:field-wrapper>
for(Object[] record : k){
String tipoprocedura = (String)record[0];
String statopratica = (String)record[1];
BigInteger countAutori = (BigInteger)record[2];
BigInteger rigaCountMappa = autorizzazioni.get(tipoprocedura);
if(Validator.isNotNull(countAutori)&&Validator.isNotNull(rigaCountMappa))
autorizzazioni.put(tipoprocedura, countAutori.add(rigaCountMappa));
%>
<aui:row>
<% if(null!=record){%>
<aui:column><%=tipoprocedura %></aui:column>
<aui:column><%=statopratica %></aui:column>
<aui:column><%=countAutori %></aui:column>
<%}%>
</aui:row>
<%}%>
<aui:row>
<aui:col span="3">
<portlet:resourceURL var="azioneScarica3URL" id="azioneScarica3">
</portlet:resourceURL>
<aui:button
cssClass="btn-primary"
value="pulsante_scarica_report_3"
href="<%= azioneScarica3URL %>"
>
</aui:button>
</aui:col>
</aui:row>
<%}else{
%><p style="color: #007bff;"><%=LanguageUtil.get(pageContext, "stringa_csv_vuoto_autorizzazioni") %></p><%}%>
<aui:row>
<h3><%= LanguageUtil.get(pageContext, "titolo_risultati_aggregati_autorizzazioni") %>
</h3>
<p><%=autorizzazioni.toString()%></p>
<aui:field-wrapper>
<aui:fieldset label="titolo_tabella_risultati_autorizzazioni">
<aui:row>
<aui:col width="80">
<liferay-ui:search-container total="<%=k.size()%>" var="searchContainer" emptyResultsMessage="stringa_csv_vuoto_autorizzazioni" >
<liferay-ui:search-container-results results="<%=k %>" />
<liferay-ui:search-container-row modelVar="o" className="java.lang.Object" >
<liferay-ui:search-container-column-text name="tipo_procedura" value="${o[0]}"/>
<liferay-ui:search-container-column-text name="traduzione_tipo_procedura" translate="true" value="tipo_procedura_${o[0]}"/>
<liferay-ui:search-container-column-text name="stato_pratica" value="${o[1]}"/>
<liferay-ui:search-container-column-text name="traduzione_stato_pratica" translate="true" value="stato-pratica-${o[1]}"/>
<liferay-ui:search-container-column-text name="numero_pratiche" value="${o[2]}"/>
</liferay-ui:search-container-row>
<liferay-ui:search-iterator paginate="false"/>
</liferay-ui:search-container>
</aui:col>
<aui:col width="20" style="margin-top: 25px;">
<portlet:resourceURL var="azioneScarica3URL" id="azioneScarica3">
</portlet:resourceURL>
<c:if test="<%= null!=k&&!k.isEmpty()%>">
<aui:button
cssClass="btn-primary"
value="pulsante_scarica_report_3"
href="<%= azioneScarica3URL %>"
>
</aui:button>
</c:if>
</aui:col>
</aui:row>
</aui:row>
</div>
<h3><%= LanguageUtil.get(pageContext, "titolo_tabella_risultati_autorizzazioni") %> | <%= LanguageUtil.get(pageContext, "titolo_report_aggreg") %> </h3>
<aui:row>
<%for(Object[] record : k)
{String tipoprocedura = (String)record[0];
BigInteger countAuto = (BigInteger)record[2];
BigInteger rigaCountMappa = autorizzazioni.get(tipoprocedura);
if(null!=countAuto&null!=tipoprocedura)
{if(null!=rigaCountMappa)
{autorizzazioni.put(tipoprocedura, countAuto.add(rigaCountMappa));
}
else
{autorizzazioni.put(tipoprocedura,countAuto);
}
}
}
List<Entry<String, BigInteger>> autoEntryList=new ArrayList<Entry<String, BigInteger>>(autorizzazioni.entrySet());
%>
<aui:col width="30">
<liferay-ui:search-container total="<%=autoEntryList.size()%>" var="searchContainer" emptyResultsMessage="report_autor_vuoto" >
<liferay-ui:search-container-results results="<%=autoEntryList %>" />
<liferay-ui:search-container-row modelVar="e" className="java.util.Map.Entry" >
<liferay-ui:search-container-column-text name="tipo_procedura" value="${e.getKey()}"/>
<liferay-ui:search-container-column-text name="numero_pratiche" value="${e.getValue()}"/>
</liferay-ui:search-container-row>
<liferay-ui:search-iterator paginate="false"/>
</liferay-ui:search-container>
</aui:col>
</aui:row>
</aui:fieldset>
</aui:field-wrapper>