diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioGratuidadeANTT.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioGratuidadeANTT.java new file mode 100644 index 000000000..214e2e16f --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioGratuidadeANTT.java @@ -0,0 +1,133 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioGratuidadeANTTBean; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +public class RelatorioGratuidadeANTT extends Relatorio { + + private Integer orgaoConcedenteId; + + private List lsDadosRelatorio; + + public RelatorioGratuidadeANTT(Map parametros, Connection conexao) throws Exception { + super(parametros, conexao); + + this.setCustomDataSource(new DataSource(this) { + + @Override + public void initDados() throws Exception { + + Connection conexao = this.relatorio.getConexao(); + + Map parametros = this.relatorio.getParametros(); + + String fecInicioVenda = null; + if (parametros.get("fecInicioVenda") != null) { + fecInicioVenda = parametros.get("fecInicioVenda").toString() + " 00:00:00"; + } + String fecFinalVenda = null; + if (parametros.get("fecFinalVenda") != null) { + fecFinalVenda = parametros.get("fecFinalVenda").toString() + " 23:59:59"; + } + + String tipGratuIds = parametros.get("tipGratuIds").toString(); + String linhaIds = parametros.get("linhaIds").toString(); + + String sql = getSql(fecInicioVenda, fecFinalVenda, linhaIds, tipGratuIds); + + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss"); + NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); + + if (fecInicioVenda != null) { + stmt.setTimestamp("fecInicioVenda", new java.sql.Timestamp(sdf.parse(fecInicioVenda).getTime())); + } + if (fecFinalVenda != null) { + stmt.setTimestamp("fecFinalVenda", new java.sql.Timestamp(sdf.parse(fecFinalVenda).getTime())); + } + + if(orgaoConcedenteId != null){ + stmt.setInt("orgao_concedente_id", orgaoConcedenteId); + } + + ResultSet rset = null; + + rset = stmt.executeQuery(); + + lsDadosRelatorio = new ArrayList(); + + while (rset.next()) { + RelatorioGratuidadeANTTBean gratuidadeBean = new RelatorioGratuidadeANTTBean(); + + gratuidadeBean.setCategoria(rset.getString("categoria")); + + gratuidadeBean.setDescOrigem(rset.getString("descOrigem")); + gratuidadeBean.setDescDestino(rset.getString("descDestino")); + gratuidadeBean.setCodOrigem(rset.getString("codOrigem")); + gratuidadeBean.setCodDestino(rset.getString("codDestino")); + gratuidadeBean.setTotIda(rset.getInt("totalIda")); + gratuidadeBean.setTotVolta(rset.getInt("totalVolta")); + + + lsDadosRelatorio.add(gratuidadeBean); + } + + if (lsDadosRelatorio.size() > 0) { + setLsDadosRelatorio(lsDadosRelatorio); + } + } + }); + } + + public void setLsDadosRelatorio(List lsDadosRelatorio) { + this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio)); + this.lsDadosRelatorio = lsDadosRelatorio; + } + + @Override + protected void processaParametros() throws Exception { + } + + private String getSql(String fecInicioVenda, String fecFinalVenda, String linha, String tipoGratu ) { + + StringBuilder sql = new StringBuilder(); + + sql.append(" select "); + sql.append(" ca.DESCCATEGORIA AS categoria, "); + sql.append(" ori.CVEPARADA AS codOrigem, "); + sql.append(" ori.DESCPARADA AS descOrigem, "); + sql.append(" des.CVEPARADA AS codDestino, "); + sql.append(" des.DESCPARADA AS descDestino, "); + sql.append(" sum(case when (R.INDSENTIDOIDA = 1 ) then 1 else 0 end) as totalIda, "); + sql.append(" sum(case when (R.INDSENTIDOIDA = 0 ) then 1 else 0 end) as totalVolta "); + sql.append(" from BOLETO b "); + sql.append(" JOIN categoria ca ON b.categoria_id = ca.categoria_id "); + sql.append(" JOIN parada ori ON ori.parada_id = b.origen_id "); + sql.append(" JOIN parada des ON des.parada_id = b.destino_id "); + sql.append(" JOIN ruta r ON r.ruta_id = b.ruta_id "); + sql.append(" WHERE b.fechorventa BETWEEN :fecInicioVenda AND :fecFinalVenda "); + + if( tipoGratu != null ) { + sql.append(" AND b.CATEGORIA_ID in (").append(tipoGratu).append(") "); + } + + if( linha != null && !linha.equals("Todas")) { + sql.append(" AND r.ruta_id in (").append(linha).append(") "); + } + + sql.append(" group by ca.DESCCATEGORIA, ori.CVEPARADA, ori.DESCPARADA, des.CVEPARADA, des.DESCPARADA "); + sql.append(" ORDER BY descOrigem, descDestino, categoria "); + + return sql.toString(); + } +} \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeANTT_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeANTT_es.properties new file mode 100644 index 000000000..c35d69e0f --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeANTT_es.properties @@ -0,0 +1,56 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. +msg.a=à + +#Labels header +header.periodo=Período: +header.data.hora=Data/Hora\: +header.pagina=Página\: +header.filtro=Filtro\: +header.filtro.servico=Serviço\: +header.filtro.linha=Linha\: +header.filtro.grupo=Grupo de Linhas\: +header.empresa=Empresa\: +header.periodo.viagem=Período Viagem +header.periodo.venda=Período Venda + +#Labels detail + +detail.data=Data +detail.dataServico=Data Servi. +detail.origen=Origem +detail.destino=Destino +detail.km=Km +detail.linha=Linha +detail.servicio=Serviço +detail.hora=Hora +detail.tipobilhete=Tipo Venda +detail.tipopassagem=Tipo Passagem +detail.pasajero=Passageiro +detail.documento=Doc +detail.precio=Preço +detail.desconto=Desc.(%) +detail.valorCobrado=Vlr.Cobrado +detail.tarifa=Tarifa +detail.bilheteiro=Bilheteiro +detail.agencia=Agência +detail.dataMD=Data MD +detail.empresa=Empresa +detail.tipo=Tipo +detail.tipoDoc=Tipo Doc. +detail.tarifa=Tarifa +detail.seguro=Seguro +detail.utr=UTR +detail.tpp=TPP +detail.pedagio=Pedágio +detail.rg=RG +detail.status=Status +detail.codOrigem=Cod. Origem +detail.codDestino=Cod. Destino +detail.total=Total +detail.ccf=CCf + +linhas=Linhas + +detail.numfoliosistema=Bilhete +detail.numasiento=Poltrona diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeANTT_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeANTT_pt_BR.properties new file mode 100644 index 000000000..c35d69e0f --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeANTT_pt_BR.properties @@ -0,0 +1,56 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. +msg.a=à + +#Labels header +header.periodo=Período: +header.data.hora=Data/Hora\: +header.pagina=Página\: +header.filtro=Filtro\: +header.filtro.servico=Serviço\: +header.filtro.linha=Linha\: +header.filtro.grupo=Grupo de Linhas\: +header.empresa=Empresa\: +header.periodo.viagem=Período Viagem +header.periodo.venda=Período Venda + +#Labels detail + +detail.data=Data +detail.dataServico=Data Servi. +detail.origen=Origem +detail.destino=Destino +detail.km=Km +detail.linha=Linha +detail.servicio=Serviço +detail.hora=Hora +detail.tipobilhete=Tipo Venda +detail.tipopassagem=Tipo Passagem +detail.pasajero=Passageiro +detail.documento=Doc +detail.precio=Preço +detail.desconto=Desc.(%) +detail.valorCobrado=Vlr.Cobrado +detail.tarifa=Tarifa +detail.bilheteiro=Bilheteiro +detail.agencia=Agência +detail.dataMD=Data MD +detail.empresa=Empresa +detail.tipo=Tipo +detail.tipoDoc=Tipo Doc. +detail.tarifa=Tarifa +detail.seguro=Seguro +detail.utr=UTR +detail.tpp=TPP +detail.pedagio=Pedágio +detail.rg=RG +detail.status=Status +detail.codOrigem=Cod. Origem +detail.codDestino=Cod. Destino +detail.total=Total +detail.ccf=CCf + +linhas=Linhas + +detail.numfoliosistema=Bilhete +detail.numasiento=Poltrona diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidadeANTT.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidadeANTT.jasper new file mode 100644 index 000000000..3cd12d058 Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidadeANTT.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidadeANTT.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidadeANTT.jrxml new file mode 100644 index 000000000..9dd177bce --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidadeANTT.jrxml @@ -0,0 +1,251 @@ + + + + + + + + + +