diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioGratuidadeAGR.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioGratuidadeAGR.java new file mode 100644 index 000000000..8fe8b0a8a --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioGratuidadeAGR.java @@ -0,0 +1,231 @@ +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.RelatorioGratuidadeAGRBean; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +public class RelatorioGratuidadeAGR extends Relatorio { + + private List lsDadosRelatorio; + + public RelatorioGratuidadeAGR(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") + " 00:00:00"; + } + String fecFinalVenda = null; + if (parametros.get("fecFinalVenda") != null) { + fecFinalVenda = parametros.get("fecFinalVenda")+ " 23:59:59"; + } + + String fecInicioViagem = null; + if (parametros.get("fecInicioViagem") != null) { + fecInicioViagem = parametros.get("fecInicioViagem") + " 00:00:00"; + } + String fecFinalViagem = null; + if (parametros.get("fecFinalViagem") != null) { + fecFinalViagem = parametros.get("fecFinalViagem") + " 23:59:59"; + } + + String tipGratuIds = parametros.get("tipGratuIds").toString(); + String clienteIds = parametros.get("clienteIds").toString(); + String linhaIds = parametros.get("linhaIds").toString(); + String empresa = parametros.get("empresa") != null ? parametros.get("empresa").toString() : ""; + + String sql = getSql(fecInicioVenda, fecFinalVenda, linhaIds, tipGratuIds, clienteIds, empresa); + + 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 (fecInicioViagem != null) { + stmt.setTimestamp("fecInicioViagem", new java.sql.Timestamp(sdf.parse(fecInicioViagem).getTime())); + } + + if (fecFinalViagem != null) { + stmt.setTimestamp("fecFinalViagem", new java.sql.Timestamp(sdf.parse(fecFinalViagem).getTime())); + } + + if(empresa != null && !empresa.equals("")){ + stmt.setInt("empresa_id", Integer.parseInt(empresa)); + } + + ResultSet rset = null; + + rset = stmt.executeQuery(); + + lsDadosRelatorio = new ArrayList(); + + while (rset.next()) { + RelatorioGratuidadeAGRBean gratuidadeBean = new RelatorioGratuidadeAGRBean(); + + 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.setDataViagem(rset.getString("dataviagem")); + gratuidadeBean.setHoraViagem(rset.getString("horaviagem")); + gratuidadeBean.setPoltrona(rset.getString("poltrona")); + gratuidadeBean.setPassageiro(rset.getString("nombpasajero")); + gratuidadeBean.setDoc1(rset.getString("doc1")); + gratuidadeBean.setTipoDoc1(rset.getString("tipodoc1")); + gratuidadeBean.setTipoDoc2(rset.getString("tipodoc2")); + gratuidadeBean.setDoc2(rset.getString("doc2")); + gratuidadeBean.setLinha(rset.getString("linha")); + gratuidadeBean.setDescLinha(rset.getString("desclinha")); + gratuidadeBean.setValor(rset.getBigDecimal("valor")); + + 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, String cliente, String empresa ) { + + StringBuilder sql = new StringBuilder(3400); + + sql.append(" SELECT "); + sql.append(" ca.desccategoria AS categoria, "); + sql.append(" to_date(b.fechorviaje, 'DD/MM/YY hh24:mi:ss') || '' AS dataviagem, "); + sql.append(" to_char(b.fechorviaje, 'HH24:MI') AS horaviagem, "); + 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(" b.numasiento AS poltrona, "); + sql.append(" b.nombpasajero AS nombpasajero, "); + sql.append(" NVL(b.descnumdoc, c.numidentificauno) AS doc1, "); + sql.append(" c.tipoidentificauno_id AS tipodoc1, "); + sql.append(" c.tipoidentificados_id AS tipodoc2, "); + sql.append(" NVL(b.descnumdoc2, c.numidentificados) AS doc2, "); + sql.append(" r.prefixo AS linha, "); + sql.append(" r.descruta AS desclinha, "); + sql.append(" NVL(t.precio, 0) + NVL(t.importepedagio, 0) AS valor "); + sql.append(" FROM boleto b "); + sql.append(" JOIN categoria ca ON b.categoria_id = ca.categoria_id "); + sql.append(" JOIN empresa e ON e.empresa_id = b.empresacorrida_id "); + sql.append(" JOIN marca m ON m.empresa_id = e.empresa_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(" JOIN ruta_combinacion rc ON rc.ruta_id = r.ruta_id "); + sql.append(" JOIN tramo tr ON ( tr.tramo_id = rc.tramo_id "); + sql.append(" AND ori.parada_id = tr.origen_id "); + sql.append(" AND des.parada_id = tr.destino_id ) "); + sql.append(" LEFT JOIN cliente c ON c.cliente_id = b.cliente_id "); + sql.append(" LEFT JOIN cliente_direccion cd ON cd.cliente_id = c.cliente_id "); + sql.append(" AND cd.activo = 1 "); + sql.append(" JOIN orgao_concedente oc ON r.orgaoconcedente_id = oc.orgaoconcedente_id "); + sql.append(" JOIN tarifa t ON r.ruta_id = t.ruta_id "); + sql.append(" AND b.origen_id = t.origen_id "); + sql.append(" AND b.destino_id = t.destino_id "); + sql.append(" AND b.claseservicio_id = t.claseservicio_id "); + sql.append(" AND m.marca_id = t.marca_id "); + sql.append(" AND tr.tramo_id = t.tramo_id "); + sql.append(" AND oc.orgaoconcedente_id = t.orgaoconcedente_id "); + sql.append(" JOIN vigencia_tarifa vt ON vt.vigenciatarifa_id = t.vigenciatarifa_id "); + sql.append(" AND b.fechorviaje BETWEEN vt.feciniciovigencia AND vt.fecfinvigencia "); + sql.append(" WHERE "); + sql.append(" m.activo = 1 "); + sql.append(" AND rc.activo = 1 "); + sql.append(" AND tr.activo = 1 "); + + if( fecInicioVenda != null && fecFinalVenda !=null ){ + sql.append(" AND b.fechorventa BETWEEN :fecInicioVenda AND :fecFinalVenda "); + }else { + sql.append(" AND b.fechorviaje BETWEEN :fecInicioViagem AND :fecFinalViagem "); + } + + sql.append(" AND ( b.motivocancelacion_id NOT IN ( 4 ) "); + sql.append(" OR b.motivocancelacion_id IS NULL ) "); + + if( tipoGratu != null && !tipoGratu.equals("Todas")) { + 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(") "); + } + + if( cliente != null && !cliente.equals("Todas")) { + sql.append(" AND b.cliente_id in (").append(cliente).append(") "); + } + + if (!empresa.isEmpty()){ + sql.append("AND b.empresacorrida_id =:empresa_id "); + } + + sql.append(" GROUP BY "); + sql.append(" ca.desccategoria, "); + sql.append(" b.motivocancelacion_id, "); + sql.append(" b.fechorviaje, "); + sql.append(" ori.cveparada, "); + sql.append(" ori.descparada, "); + sql.append(" des.cveparada, "); + sql.append(" des.descparada, "); + sql.append(" b.numasiento, "); + sql.append(" b.nombpasajero, "); + sql.append(" NVL(b.descnumdoc, c.numidentificauno), "); + sql.append(" c.tipoidentificauno_id, "); + sql.append(" c.tipoidentificados_id, "); + sql.append(" NVL(b.descnumdoc2, c.numidentificados), "); + sql.append(" r.prefixo, "); + sql.append(" r.descruta, "); + sql.append(" NVL(t.precio, 0) + NVL(t.importepedagio, 0) "); + sql.append(" ORDER BY "); + sql.append(" NVL(b.descnumdoc2, c.numidentificados), "); + sql.append(" NVL(b.descnumdoc, c.numidentificauno), "); + sql.append(" b.nombpasajero, "); + sql.append(" b.fechorviaje, "); + sql.append(" descorigem, "); + sql.append(" descdestino "); + + return sql.toString(); + } + +} \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioGratuidadeAGRCliente.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioGratuidadeAGRCliente.java new file mode 100644 index 000000000..9e62d6a20 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioGratuidadeAGRCliente.java @@ -0,0 +1,18 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.util.List; +import java.util.Map; + +import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioGratuidadeAGRBean; + +public class RelatorioGratuidadeAGRCliente extends RelatorioGratuidadeAGR { + + private List lsDadosRelatorio; + + public RelatorioGratuidadeAGRCliente(Map parametros, Connection conexao) throws Exception { + super(parametros, conexao); + //lsDadosRelatorio = super.get + } + +} \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeAGRCliente_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeAGRCliente_es.properties new file mode 100644 index 000000000..030f3a1bb --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeAGRCliente_es.properties @@ -0,0 +1,32 @@ +#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 +header.tipopassagem=Tipo Passagem\: + +#Labels label + +label.passageiro=Passageiro +label.cpf=CPF +label.documento=Documento +label.data.viagem=Data +label.hora.viagem=Hora +label.linha=Linha +label.origen=Origem +label.destino=Destino +label.poltrona=Polt. +label.valor=Preço +label.quantitativo=Quantitativo + +label.tot.cpf=Total Por Cpf: diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeAGRCliente_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeAGRCliente_pt_BR.properties new file mode 100644 index 000000000..47cb9c104 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeAGRCliente_pt_BR.properties @@ -0,0 +1,32 @@ +#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 +header.tipopassagem=Tipo Passagem\: + +#Labels label + +label.passageiro=Passageiro +label.cpf=CPF +label.documento=Documento +label.data.viagem=Data +label.hora.viagem=Hora +label.linha=Linha +label.origen=Origem +label.destino=Destino +label.poltrona=Polt. +label.valor=Preço +label.quantitativo=Quantitativo + +label.tot.cpf=Total Por Cpf: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeAGR_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeAGR_es.properties new file mode 100644 index 000000000..a55d13c71 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeAGR_es.properties @@ -0,0 +1,31 @@ +#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 +header.tipopassagem=Tipo Passagem\: + +#Labels label + +label.passageiro=Passageiro +label.cpf=CPF +label.documento=Documento +label.data.viagem=Data +label.hora.viagem=Hora +label.linha=Linha +label.origen=Origem +label.destino=Destino +label.poltrona=Polt. +label.valor=Preço + +label.tot.cpf=Total Por Cpf: diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeAGR_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeAGR_pt_BR.properties new file mode 100644 index 000000000..b0acdbab8 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeAGR_pt_BR.properties @@ -0,0 +1,31 @@ +#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 +header.tipopassagem=Tipo Passagem\: + +#Labels label + +label.passageiro=Passageiro +label.cpf=CPF +label.documento=Documento +label.data.viagem=Data +label.hora.viagem=Hora +label.linha=Linha +label.origen=Origem +label.destino=Destino +label.poltrona=Polt. +label.valor=Preço + +label.tot.cpf=Total Por Cpf: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidadeAGR.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidadeAGR.jasper new file mode 100644 index 000000000..33e9a85ff Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidadeAGR.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidadeAGR.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidadeAGR.jrxml new file mode 100644 index 000000000..8b6312fbf --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidadeAGR.jrxml @@ -0,0 +1,361 @@ + + + + + + + + + +