From a2907a7f56d49759e9c09bbe74e34763e3095dd3 Mon Sep 17 00:00:00 2001 From: wilian Date: Fri, 12 Jun 2015 21:59:56 +0000 Subject: [PATCH] fixes bug #6376 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@44982 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../impl/RelatorioVendasPacotesDetalhado.java | 191 +++++++++++++++ .../impl/RelatorioVendasPacotesResumido.java | 44 ++-- ...ioVendasPacotesDetalhadoItem_es.properties | 11 + ...endasPacotesDetalhadoItem_pt_BR.properties | 11 + ...atorioVendasPacotesDetalhado_es.properties | 15 ++ ...rioVendasPacotesDetalhado_pt_BR.properties | 15 ++ ...latorioVendasPacotesResumido_es.properties | 15 ++ ...orioVendasPacotesResumido_pt_BR.properties | 19 ++ .../render/RenderRelatorioJasper.java | 15 +- .../RelatorioVendasPacotesDetalhado.jasper | Bin 0 -> 26181 bytes .../RelatorioVendasPacotesDetalhado.jrxml | 117 +++++++++ ...RelatorioVendasPacotesDetalhadoItem.jasper | Bin 0 -> 31663 bytes .../RelatorioVendasPacotesDetalhadoItem.jrxml | 226 ++++++++++++++++++ .../RelatorioVendasPacotesResumido.jasper | Bin 27898 -> 29666 bytes .../RelatorioVendasPacotesResumido.jrxml | 66 ++--- .../relatorios/utilitarios/Relatorio.java | 11 +- .../RelatorioVendasPacotesDetalhadoBean.java | 208 ++++++++++++++++ ...> RelatorioVendasPacotesResumidoBean.java} | 4 +- ...torioVendasPacotesDetalhadoController.java | 118 +++++++++ ...atorioVendasPacotesResumidoController.java | 10 - ...emMenuRelatorioVendasPacotesDetalhado.java | 29 +++ ...temMenuRelatorioVendasPacotesResumido.java | 3 - web/WEB-INF/i3-label_es_MX.label | 10 +- web/WEB-INF/i3-label_pt_BR.label | 10 +- .../filtroRelatorioVendasPacotesDetalhado.zul | 57 +++++ 25 files changed, 1131 insertions(+), 74 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasPacotesDetalhado.java create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesDetalhadoItem_es.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesDetalhadoItem_pt_BR.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesDetalhado_es.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesDetalhado_pt_BR.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesResumido_es.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesResumido_pt_BR.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesDetalhado.jasper create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesDetalhado.jrxml create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesDetalhadoItem.jasper create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesDetalhadoItem.jrxml create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioVendasPacotesDetalhadoBean.java rename src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/{RelatorioVendasPacotesBean.java => RelatorioVendasPacotesResumidoBean.java} (87%) create mode 100644 src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasPacotesDetalhadoController.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioVendasPacotesDetalhado.java create mode 100644 web/gui/relatorios/filtroRelatorioVendasPacotesDetalhado.zul diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasPacotesDetalhado.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasPacotesDetalhado.java new file mode 100644 index 000000000..59a41d9f0 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasPacotesDetalhado.java @@ -0,0 +1,191 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.sql.Date; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +import org.apache.log4j.Logger; + +import com.rjconsultores.ventaboletos.enums.LocalEnderecoApanhe; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioVendasPacotesDetalhadoBean; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +public class RelatorioVendasPacotesDetalhado extends Relatorio { + + private static Logger log = Logger.getLogger(RelatorioVendasPacotesDetalhado.class); + + private SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + + private List lsDadosRelatorio; + + private Date fecInicio; + private Date fecFinal; + private Integer empresaId; + private Integer pacoteId; + + public RelatorioVendasPacotesDetalhado(Map parametros, Connection conexao, final String nomeSubReporte) throws Exception { + super(parametros, conexao); + + this.setCustomDataSource(new DataSource(this) { + @Override + public void initDados() throws Exception { + Map parametros = this.relatorio.getParametros(); + fecInicio = new java.sql.Date(sdf.parse(parametros.get("fecInicio").toString()).getTime()); + fecFinal = new java.sql.Date(sdf.parse(parametros.get("fecFinal").toString()).getTime()); + empresaId = parametros.get("empresaId") != null && !parametros.get("empresaId").equals("null") ? Integer.valueOf(parametros.get("empresaId").toString()) : null; + pacoteId = parametros.get("pacoteId") != null && !parametros.get("pacoteId").equals("null") ? Integer.valueOf(parametros.get("pacoteId").toString()) : null; + + Connection conexao = this.relatorio.getConexao(); + processarVendasPacote(conexao); + + setNomeSubReporte(nomeSubReporte); + setLsDadosRelatorio(lsDadosRelatorio); + } + }); + } + + private void processarVendasPacote(Connection conexao) { + ResultSet rset = null; + NamedParameterStatement stmt = null; + + try { + String sql = getSqlPacotes(); + + log.info(sql); + + stmt = new NamedParameterStatement(conexao, sql); + + if(fecInicio != null) { + stmt.setDate("fecInicio", fecInicio); + } + if(fecFinal != null) { + stmt.setDate("fecFinal", fecFinal); + } + if (empresaId != null){ + stmt.setInt("empresaId", empresaId); + } + + if (pacoteId != null){ + stmt.setInt("pacoteId", pacoteId); + } + + rset = stmt.executeQuery(); + + if(lsDadosRelatorio == null) { + lsDadosRelatorio = new ArrayList(); + } + + while (rset.next()) { + RelatorioVendasPacotesDetalhadoBean relatorioVendasPacotesBean = new RelatorioVendasPacotesDetalhadoBean(); + relatorioVendasPacotesBean.setPacoteId(rset.getLong("pacote_id")); + relatorioVendasPacotesBean.setNompacote(rset.getString("nompacote")); + + Integer idx = null; + if(lsDadosRelatorio.contains(relatorioVendasPacotesBean)) { + idx = lsDadosRelatorio.indexOf(relatorioVendasPacotesBean); + relatorioVendasPacotesBean = lsDadosRelatorio.get(idx); + } + + RelatorioVendasPacotesDetalhadoBean.RelatorioVendasPacotesDetalhadoItemBean relatorioVendasPacotesDetalhadoItemBean = new RelatorioVendasPacotesDetalhadoBean().new RelatorioVendasPacotesDetalhadoItemBean(); + relatorioVendasPacotesDetalhadoItemBean.setDatapacote(rset.getDate("datapacote")); + relatorioVendasPacotesDetalhadoItemBean.setDatavenda(rset.getDate("datavenda")); + relatorioVendasPacotesDetalhadoItemBean.setDeschotel(rset.getString("deschotel")); + relatorioVendasPacotesDetalhadoItemBean.setDesconto(rset.getBigDecimal("desconto")); + relatorioVendasPacotesDetalhadoItemBean.setLocalEnderecoApanhe(LocalEnderecoApanhe.getLocalEnderecoApanhe(rset.getInt("local"))); + relatorioVendasPacotesDetalhadoItemBean.setNombusuario(rset.getString("nombusuario")); + relatorioVendasPacotesDetalhadoItemBean.setNumoperacion(rset.getString("numoperacion")); + relatorioVendasPacotesDetalhadoItemBean.setQtdeTarifas(rset.getLong("qtdetarifas")); + relatorioVendasPacotesDetalhadoItemBean.setRazaoSocialCliente(rset.getString("razao_social")); + relatorioVendasPacotesDetalhadoItemBean.setSubTotal(rset.getBigDecimal("subtotal")); + relatorioVendasPacotesDetalhadoItemBean.setTotal(rset.getBigDecimal("total")); + relatorioVendasPacotesDetalhadoItemBean.setVendapacoteId(rset.getLong("vendapacote_id")); + + if(relatorioVendasPacotesBean.getRelatorioVendasPacotesDetalhadoItemBeans() == null) { + relatorioVendasPacotesBean.setRelatorioVendasPacotesDetalhadoItemBeans(new ArrayList()); + } + relatorioVendasPacotesBean.getRelatorioVendasPacotesDetalhadoItemBeans().add(relatorioVendasPacotesDetalhadoItemBean); + + if(idx != null) { + lsDadosRelatorio.set(idx, relatorioVendasPacotesBean); + } else { + lsDadosRelatorio.add(relatorioVendasPacotesBean); + } + } + + } catch (Exception e) { + log.error(e.getMessage(), e); + } finally { + try { + if(rset != null) { + rset.close(); + } + if(stmt != null) { + stmt.close(); + } + } catch (SQLException e) { + log.error(e.getMessage(), e); + } + } + + } + + protected String getSqlPacotes() { + StringBuilder sQuery = new StringBuilder(); + + sQuery.append("SELECT P.PACOTE_ID, VP.VENDAPACOTE_ID, P.NOMPACOTE, VP.NUMOPERACION, VP.DATAVENDA, VP.DATAPACOTE, EA.DESCHOTEL, EA.LOCAL, CP.RAZAO_SOCIAL, U.NOMBUSUARIO, VP.SUBTOTAL, VP.DESCONTO, VP.TOTAL, COUNT(TVP.TARIFAVENDAPACOTE_ID) AS QTDETARIFAS ") + .append("FROM VENDA_PACOTE VP ") + .append("LEFT JOIN PACOTE P ON P.PACOTE_ID = VP.PACOTE_ID ") + .append("LEFT JOIN TARIFA_VENDA_PACOTE TVP ON TVP.VENDAPACOTE_ID = VP.VENDAPACOTE_ID ") + .append("LEFT JOIN BOLETO B ON B.BOLETO_ID = TVP.BOLETO_ID ") + .append("LEFT JOIN ENDERECO_APANHE EA ON EA.ENDERECOAPANHE_ID = VP.ENDERECOAPANHE_ID ") + .append("LEFT JOIN CLIENTE_PACOTE CP ON CP.CLIENTEPACOTE_ID = VP.CLIENTEPACOTE_ID ") + .append("LEFT JOIN USUARIO U ON U.USUARIO_ID = VP.USUARIO_ID ") + .append("WHERE P.ACTIVO = 1 ") + .append("AND B.ACTIVO = 1 ") + .append("AND B.INDSTATUSBOLETO = 'V' "); + + if(empresaId != null) { + sQuery.append("AND P.EMPRESA_ID = :empresaId "); + } + + if(pacoteId != null) { + sQuery.append("AND P.PACOTE_ID = :pacoteId "); + } + + if(fecInicio != null) { + sQuery.append("AND VP.DATAPACOTE >= :fecInicio "); + } + + if(fecFinal != null) { + sQuery.append("AND VP.DATAPACOTE <= :fecFinal "); + } + + sQuery.append("GROUP BY P.PACOTE_ID, VP.VENDAPACOTE_ID, P.NOMPACOTE, VP.NUMOPERACION, VP.DATAVENDA, VP.DATAPACOTE, EA.DESCHOTEL, EA.LOCAL, CP.RAZAO_SOCIAL, U.NOMBUSUARIO, VP.SUBTOTAL, VP.DESCONTO, VP.TOTAL ") + .append("ORDER BY P.NOMPACOTE, VP.DATAPACOTE, VP.DATAVENDA "); + + return sQuery.toString(); + } + + @Override + protected void processaParametros() throws Exception { + } + + public List getLsDadosRelatorio() { + return lsDadosRelatorio; + } + + public void setLsDadosRelatorio(List lsDadosRelatorio) { + this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio)); + this.lsDadosRelatorio = lsDadosRelatorio; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasPacotesResumido.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasPacotesResumido.java index d81b68480..ba8214533 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasPacotesResumido.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasPacotesResumido.java @@ -15,17 +15,16 @@ import org.apache.log4j.Logger; import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; -import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioAproveitamentoBean; -import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioVendasPacotesBean; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioVendasPacotesResumidoBean; import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; public class RelatorioVendasPacotesResumido extends Relatorio { - private static Logger log = Logger.getLogger(RelatorioVendasPacotesBean.class); + private static Logger log = Logger.getLogger(RelatorioVendasPacotesResumido.class); private SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); - private List lsDadosRelatorio; + private List lsDadosRelatorio; private Date fecInicio; private Date fecFinal; @@ -75,16 +74,16 @@ public class RelatorioVendasPacotesResumido extends Relatorio { rset = stmt.executeQuery(); if(lsDadosRelatorio == null) { - lsDadosRelatorio = new ArrayList(); + lsDadosRelatorio = new ArrayList(); } while (rset.next()) { - RelatorioVendasPacotesBean relatorioVendasPacotesBean = new RelatorioVendasPacotesBean(); - relatorioVendasPacotesBean.setPacoteId(rset.getLong("pacote_id")); - relatorioVendasPacotesBean.setNompacote(rset.getString("nompacote")); - relatorioVendasPacotesBean.setTotalPacotes(rset.getBigDecimal("totalpacote")); - relatorioVendasPacotesBean.setQtdePacotes(rset.getLong("qtdepacote")); - lsDadosRelatorio.add(relatorioVendasPacotesBean); + RelatorioVendasPacotesResumidoBean relatorioVendasPacotesResumidoBean = new RelatorioVendasPacotesResumidoBean(); + relatorioVendasPacotesResumidoBean.setPacoteId(rset.getLong("pacote_id")); + relatorioVendasPacotesResumidoBean.setNompacote(rset.getString("nompacote")); + relatorioVendasPacotesResumidoBean.setTotalPacotes(rset.getBigDecimal("totalpacote")); + relatorioVendasPacotesResumidoBean.setQtdePacotes(rset.getLong("qtdepacote")); + lsDadosRelatorio.add(relatorioVendasPacotesResumidoBean); } } catch (Exception e) { @@ -128,20 +127,21 @@ public class RelatorioVendasPacotesResumido extends Relatorio { rset = stmt.executeQuery(); if(lsDadosRelatorio == null) { - lsDadosRelatorio = new ArrayList(); + lsDadosRelatorio = new ArrayList(); } while (rset.next()) { - RelatorioVendasPacotesBean relatorioVendasPacotesBean = new RelatorioVendasPacotesBean(); - relatorioVendasPacotesBean.setPacoteId(rset.getLong("pacote_id")); - relatorioVendasPacotesBean.setNompacote(rset.getString("nompacote")); - relatorioVendasPacotesBean.setTotalBoletos(rset.getBigDecimal("totalboletos")); + RelatorioVendasPacotesResumidoBean relatorioVendasPacotesResumidoBean = new RelatorioVendasPacotesResumidoBean(); + relatorioVendasPacotesResumidoBean.setPacoteId(rset.getLong("pacote_id")); + relatorioVendasPacotesResumidoBean.setNompacote(rset.getString("nompacote")); + relatorioVendasPacotesResumidoBean.setTotalBoletos(rset.getBigDecimal("totalboletos")); - if(lsDadosRelatorio.contains(relatorioVendasPacotesBean)) { - RelatorioVendasPacotesBean relatorioVendasPacotesBeanAux = lsDadosRelatorio.get(lsDadosRelatorio.indexOf(relatorioVendasPacotesBean)); - relatorioVendasPacotesBeanAux.setTotalBoletos(relatorioVendasPacotesBean.getTotalBoletos()); + if(lsDadosRelatorio.contains(relatorioVendasPacotesResumidoBean)) { + RelatorioVendasPacotesResumidoBean relatorioVendasPacotesBeanAux = lsDadosRelatorio.get(lsDadosRelatorio.indexOf(relatorioVendasPacotesResumidoBean)); + relatorioVendasPacotesBeanAux.setTotalBoletos(relatorioVendasPacotesResumidoBean.getTotalBoletos()); + relatorioVendasPacotesBeanAux.setTotalPacotes(relatorioVendasPacotesBeanAux.getTotalPacotes().subtract(relatorioVendasPacotesBeanAux.getTotalBoletos())); } else { - lsDadosRelatorio.add(relatorioVendasPacotesBean); + lsDadosRelatorio.add(relatorioVendasPacotesResumidoBean); } } @@ -220,11 +220,11 @@ public class RelatorioVendasPacotesResumido extends Relatorio { protected void processaParametros() throws Exception { } - public List getLsDadosRelatorio() { + public List getLsDadosRelatorio() { return lsDadosRelatorio; } - public void setLsDadosRelatorio(List lsDadosRelatorio) { + public void setLsDadosRelatorio(List lsDadosRelatorio) { this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio)); this.lsDadosRelatorio = lsDadosRelatorio; } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesDetalhadoItem_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesDetalhadoItem_es.properties new file mode 100644 index 000000000..c2bd32af8 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesDetalhadoItem_es.properties @@ -0,0 +1,11 @@ +#Labels +label.qtde=Qtde +label.localizador=Localizador +label.usuario=Usuário +label.cliente=Cliente +label.apanhe=Apanhe +label.dtPacote=DT Pacote +label.dtVenda=DT Venda +label.subTotal=SubTotal +label.desconto=Desconto +label.total=Total \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesDetalhadoItem_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesDetalhadoItem_pt_BR.properties new file mode 100644 index 000000000..c2bd32af8 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesDetalhadoItem_pt_BR.properties @@ -0,0 +1,11 @@ +#Labels +label.qtde=Qtde +label.localizador=Localizador +label.usuario=Usuário +label.cliente=Cliente +label.apanhe=Apanhe +label.dtPacote=DT Pacote +label.dtVenda=DT Venda +label.subTotal=SubTotal +label.desconto=Desconto +label.total=Total \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesDetalhado_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesDetalhado_es.properties new file mode 100644 index 000000000..1ecd72247 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesDetalhado_es.properties @@ -0,0 +1,15 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + +#Labels cabeçalho +cabecalho.nome=Relatório Vendas de Pacotes - Detalhado +cabecalho.relatorio=Relatório: +cabecalho.periodo=Período: +cabecalho.periodoA=à +cabecalho.dataHora=Data/Hora: +cabecalho.impressorPor=Impressor por: +cabecalho.pagina=Página +cabecalho.de=de +cabecalho.filtros=Filtros: +label.empresa=Empresa: +label.pacote=Pacote: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesDetalhado_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesDetalhado_pt_BR.properties new file mode 100644 index 000000000..1ecd72247 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesDetalhado_pt_BR.properties @@ -0,0 +1,15 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + +#Labels cabeçalho +cabecalho.nome=Relatório Vendas de Pacotes - Detalhado +cabecalho.relatorio=Relatório: +cabecalho.periodo=Período: +cabecalho.periodoA=à +cabecalho.dataHora=Data/Hora: +cabecalho.impressorPor=Impressor por: +cabecalho.pagina=Página +cabecalho.de=de +cabecalho.filtros=Filtros: +label.empresa=Empresa: +label.pacote=Pacote: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesResumido_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesResumido_es.properties new file mode 100644 index 000000000..c2ee604aa --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesResumido_es.properties @@ -0,0 +1,15 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + +#Labels cabeçalho +cabecalho.nome=Relatório Vendas de Pacotes - Resumido +cabecalho.relatorio=Relatório: +cabecalho.periodo=Período: +cabecalho.periodoA=à +cabecalho.dataHora=Data/Hora: +cabecalho.impressorPor=Impressor por: +cabecalho.pagina=Página +cabecalho.de=de +cabecalho.filtros=Filtros: +label.empresa=Empresa: +label.pacote=Pacote: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesResumido_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesResumido_pt_BR.properties new file mode 100644 index 000000000..3ff3c473c --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesResumido_pt_BR.properties @@ -0,0 +1,19 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + +#Labels cabeçalho +cabecalho.nome=Relatório Vendas de Pacotes - Resumido +cabecalho.relatorio=Relatório: +cabecalho.periodo=Período: +cabecalho.periodoA=à +cabecalho.dataHora=Data/Hora: +cabecalho.impressorPor=Impressor por: +cabecalho.pagina=Página +cabecalho.de=de +cabecalho.filtros=Filtros: +label.empresa=Empresa: +label.pacote=Pacote +label.quantidade=Quantidade +label.totalBoletos=Total Bilhetes +label.totalPacotes=Total Pacotes +label.total=Total \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/render/RenderRelatorioJasper.java b/src/java/com/rjconsultores/ventaboletos/relatorios/render/RenderRelatorioJasper.java index 7de190ef7..e44c9ca99 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/render/RenderRelatorioJasper.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/render/RenderRelatorioJasper.java @@ -15,6 +15,8 @@ import net.sf.jasperreports.engine.export.JExcelApiExporterParameter; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.relatorios.utilitarios.SaidaRelatorio; + +import org.apache.commons.lang.StringUtils; import org.zkoss.util.Locales; /** @@ -28,7 +30,7 @@ public class RenderRelatorioJasper { protected JasperPrint jasperPrint; private Relatorio relatorio; - + /** * @param relatorio * Enum do tipo Relatorio contendo as configurações de geração de todos os relatórios @@ -41,7 +43,7 @@ public class RenderRelatorioJasper { public RenderRelatorioJasper(Relatorio relatorio) throws Exception { this.relatorio = relatorio; } - + public void preRender() { this.initBundler(); this.initLocale(); @@ -56,14 +58,17 @@ public class RenderRelatorioJasper { ResourceBundle resource = ResourceBundle.getBundle("com.rjconsultores.ventaboletos.relatorios.internacionalizacao." + this.relatorio.getNome(), locale); this.relatorio.getParametros().put(JRParameter.REPORT_RESOURCE_BUNDLE, resource); + + if(StringUtils.isNotBlank(this.relatorio.getNomeSubReporte())) { + ResourceBundle resourceSubReporte = ResourceBundle.getBundle("com.rjconsultores.ventaboletos.relatorios.internacionalizacao." + this.relatorio.getNomeSubReporte(), locale); + this.relatorio.getParametros().put("SUBREPORT_RESOURCE_BUNDLE", resourceSubReporte); + } } catch (Exception e) { } } private void initLocale() { - // TODO Alterar para injeção de acordo com usuário logado ou outro meio para obter o Locale correto - Locale locale = new Locale("pt", "BR"); - this.relatorio.getParametros().put(JRParameter.REPORT_LOCALE, locale); + this.relatorio.getParametros().put(JRParameter.REPORT_LOCALE, Locales.getCurrent()); } protected InputStream getTemplateInputStream() throws Exception { diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesDetalhado.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesDetalhado.jasper new file mode 100644 index 0000000000000000000000000000000000000000..30867ffd97af325e8e773f89241c7923dbcc5dec GIT binary patch literal 26181 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%0DFwle%g(*<~;}#?gbm} zqtBw`I31vG)3x*y`cwKfnD`AE7j1M>X*=4J*c@3xMP|HIh%9q9=HFI_#lJW*oHJ(2cMII`WQ1Y~=B#V;&>?z5k!flgU^@oc@&@1_-j#{^QZW^PPMtiRsI22`Sq^ytgC#YtK+Xv(9Z#V?_>1hzLWF|JPtiZFYW8<_;09q zgnoUJUhViFC+PQG$LZh+dhHawj4vnXU(oP;)$m`-8t$|ks;(XX2Tjn;0yJ#bOF;B9 z38+(uGDzD?T0W#()|It9bVAghq8CnxCN)Z@X!Z{3G*E+1EjZ}R3DM%3CluLn8e~L7 zXy^;n{g`Omhmt97CE8DlP86Pnf|P8s4Br-Yb&3@jedyu`vA|0Ad=`3xpbY|aE4JS4 zV2?YXH$Dm$`55^BlVFp(!FHbktK37k(C5J}_tIT-AHIDF`r-kw&4c)N9IW#&eFN9i z^mT0F$H7A1q#xkhYxE?&4!>syJuUj_S+LXh#VkD!minQ1gnkUR`iXc6e#5KubMZU+ zJFwSFfd+ax&`z%eI_Vz*tLXO#!LR&xM*la!=&PzRx^7Sdqn}d~qn~rejQ$1~{f~65 zKs->?L3cFKbs|WnK=4eoB22b~J|sF2fm%*?iWLX|t)hFxIS9I}p)ZR!BMNc>Jt{6l zM52pMi}i5ud%(^c;A?ND*N{m3y0~2I5LbwPaiusU-X>=8^spEZkBFV(MG+A%i6QZ- z7#6=1u|Pn?0}WzNpk3?@bc$;Ot3(QnzWU!8{oeqiuc^l9xe=r@4T-vdT}FBttMF!~3<=(m8;Zv~^@4o1HNjQ&wD`p3ZNp9G`d z4MzVA82uhF`scyu_kz*y1EYTl?EL^3{XsDLaWMMBVDv}9=wAn;KMqF!CK&xR82w2w x`gg(TPlM5)1*886jQ(b59k^{KEvtC$il5{{pV2^NRog literal 0 HcmV?d00001 diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesDetalhado.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesDetalhado.jrxml new file mode 100644 index 000000000..1e91265ad --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesDetalhado.jrxml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + <band height="84" splitType="Stretch"> + <textField> + <reportElement x="0" y="0" width="301" height="20" uuid="43b2c28d-4760-4890-b00d-25e931e79c74"/> + <textElement markup="none"> + <font size="14" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{cabecalho.nome}]]></textFieldExpression> + </textField> + <textField pattern="dd/MM/yyyy HH:mm"> + <reportElement x="391" y="0" width="164" height="20" uuid="4d1bcd65-c9a6-44b4-8dca-cc3c4c20c9a5"/> + <textElement textAlignment="Right"> + <font isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression> + </textField> + <textField> + <reportElement x="0" y="20" width="301" height="20" uuid="a16eb33b-78ca-4fb4-80c2-f5c85a0d09c3"/> + <textElement> + <font isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{label.empresa} + " " + $P{empresa}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="0" y="40" width="301" height="20" uuid="fd05bd35-30d9-4baf-aa56-f8e5d3c3268b"/> + <textElement> + <font isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{cabecalho.periodo} + " " + $P{fecInicio} + " " + $R{cabecalho.periodoA} + " " + $P{fecFinal}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="0" y="60" width="301" height="20" uuid="66f394e2-0568-447d-9f46-c358a05628c5"/> + <textElement> + <font isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{label.pacote} + " " + $P{nompacote}]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesDetalhadoItem.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesDetalhadoItem.jasper new file mode 100644 index 0000000000000000000000000000000000000000..1105f6d865d3878dd74b44e97b9bfc3381004282 GIT binary patch literal 31663 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 IWJ2oy0Wg_`&j0`b literal 0 HcmV?d00001 diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesDetalhadoItem.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesDetalhadoItem.jrxml new file mode 100644 index 000000000..57a966c87 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesDetalhadoItem.jrxml @@ -0,0 +1,226 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesResumido.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesResumido.jasper index 2bf1e34cf43f59ee4e56fe048c114adbd794d2d2..88269aafcf100e15cac30be72b89131456d71b32 100644 GIT binary patch literal 29666 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 diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesResumido.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesResumido.jrxml index 0d87dfc8e..1a3fbce6a 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesResumido.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesResumido.jrxml @@ -47,14 +47,14 @@ - + - + @@ -68,40 +68,40 @@ - + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - + + @@ -136,13 +136,13 @@ - - - + + + - - + + @@ -170,6 +170,14 @@ - + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/Relatorio.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/Relatorio.java index 89d408985..4d1e67492 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/Relatorio.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/Relatorio.java @@ -27,13 +27,14 @@ public abstract class Relatorio { private IParametros processadorParametros; private Set infoMsg; private JRBeanCollectionDataSource collectionDataSource; + private String nomeSubReporte; protected Relatorio(Map parametros, Connection conexao) { this.parametros = parametros; this.conexao = conexao; this.infoMsg = new HashSet(); } - + public Connection getConexao() { return conexao; } @@ -137,4 +138,12 @@ public abstract class Relatorio { this.infoMsg.add(msg); } + public String getNomeSubReporte() { + return nomeSubReporte; + } + + public void setNomeSubReporte(String nomeSubReporte) { + this.nomeSubReporte = nomeSubReporte; + } + } \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioVendasPacotesDetalhadoBean.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioVendasPacotesDetalhadoBean.java new file mode 100644 index 000000000..006f7f42f --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioVendasPacotesDetalhadoBean.java @@ -0,0 +1,208 @@ +package com.rjconsultores.ventaboletos.relatorios.utilitarios; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +import org.apache.commons.lang.StringUtils; + +import com.rjconsultores.ventaboletos.enums.LocalEnderecoApanhe; + +public class RelatorioVendasPacotesDetalhadoBean { + + private Long pacoteId; + private String nompacote; + private List relatorioVendasPacotesDetalhadoItemBeans; + + public Long getPacoteId() { + return pacoteId; + } + + public void setPacoteId(Long pacoteId) { + this.pacoteId = pacoteId; + } + + public String getNompacote() { + return nompacote; + } + + public void setNompacote(String nompacote) { + this.nompacote = nompacote; + } + + public List getRelatorioVendasPacotesDetalhadoItemBeans() { + return relatorioVendasPacotesDetalhadoItemBeans; + } + + public void setRelatorioVendasPacotesDetalhadoItemBeans(List relatorioVendasPacotesDetalhadoItemBeans) { + this.relatorioVendasPacotesDetalhadoItemBeans = relatorioVendasPacotesDetalhadoItemBeans; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((pacoteId == null) ? 0 : pacoteId.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + RelatorioVendasPacotesDetalhadoBean other = (RelatorioVendasPacotesDetalhadoBean) obj; + if (pacoteId == null) { + if (other.pacoteId != null) + return false; + } else if (!pacoteId.equals(other.pacoteId)) + return false; + return true; + } + + public class RelatorioVendasPacotesDetalhadoItemBean { + + private Long vendapacoteId; + private String numoperacion; + private String deschotel; + private LocalEnderecoApanhe localEnderecoApanhe; + private Date datavenda; + private Date datapacote; + private Long qtdeTarifas; + private BigDecimal subTotal; + private BigDecimal desconto; + private BigDecimal total; + private String nombusuario; + private String razaoSocialCliente; + + public Long getVendapacoteId() { + return vendapacoteId; + } + + public void setVendapacoteId(Long vendapacoteId) { + this.vendapacoteId = vendapacoteId; + } + + public String getNumoperacion() { + return numoperacion; + } + + public void setNumoperacion(String numoperacion) { + this.numoperacion = numoperacion; + } + + public String getDeschotel() { + return deschotel; + } + + public void setDeschotel(String deschotel) { + this.deschotel = deschotel; + } + + public LocalEnderecoApanhe getLocalEnderecoApanhe() { + return localEnderecoApanhe; + } + + public void setLocalEnderecoApanhe(LocalEnderecoApanhe localEnderecoApanhe) { + this.localEnderecoApanhe = localEnderecoApanhe; + } + + public Date getDatavenda() { + return datavenda; + } + + public void setDatavenda(Date datavenda) { + this.datavenda = datavenda; + } + + public Date getDatapacote() { + return datapacote; + } + + public void setDatapacote(Date datapacote) { + this.datapacote = datapacote; + } + + public Long getQtdeTarifas() { + return qtdeTarifas; + } + + public void setQtdeTarifas(Long qtdeTarifas) { + this.qtdeTarifas = qtdeTarifas; + } + + public BigDecimal getSubTotal() { + return subTotal; + } + + public void setSubTotal(BigDecimal subTotal) { + this.subTotal = subTotal; + } + + public BigDecimal getDesconto() { + return desconto; + } + + public void setDesconto(BigDecimal desconto) { + this.desconto = desconto; + } + + public BigDecimal getTotal() { + return total; + } + + public void setTotal(BigDecimal total) { + this.total = total; + } + + public String getNombusuario() { + return nombusuario; + } + + public void setNombusuario(String nombusuario) { + this.nombusuario = nombusuario; + } + + public String getRazaoSocialCliente() { + return razaoSocialCliente; + } + + public void setRazaoSocialCliente(String razaoSocialCliente) { + this.razaoSocialCliente = razaoSocialCliente; + } + + public String getDescLocalEnderecoApanhe() { + return StringUtils.isNotBlank(deschotel) ? deschotel : localEnderecoApanhe != null ? localEnderecoApanhe.toString() : ""; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((vendapacoteId == null) ? 0 : vendapacoteId.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + RelatorioVendasPacotesDetalhadoItemBean other = (RelatorioVendasPacotesDetalhadoItemBean) obj; + if (vendapacoteId == null) { + if (other.vendapacoteId != null) + return false; + } else if (!vendapacoteId.equals(other.vendapacoteId)) + return false; + return true; + } + + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioVendasPacotesBean.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioVendasPacotesResumidoBean.java similarity index 87% rename from src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioVendasPacotesBean.java rename to src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioVendasPacotesResumidoBean.java index df2102246..6a9e243fa 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioVendasPacotesBean.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioVendasPacotesResumidoBean.java @@ -2,7 +2,7 @@ package com.rjconsultores.ventaboletos.relatorios.utilitarios; import java.math.BigDecimal; -public class RelatorioVendasPacotesBean { +public class RelatorioVendasPacotesResumidoBean { private Long pacoteId; private String nompacote; @@ -58,7 +58,7 @@ public class RelatorioVendasPacotesBean { return false; if (getClass() != obj.getClass()) return false; - RelatorioVendasPacotesBean other = (RelatorioVendasPacotesBean) obj; + RelatorioVendasPacotesResumidoBean other = (RelatorioVendasPacotesResumidoBean) obj; if (pacoteId == null) { if (other.pacoteId != null) return false; diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasPacotesDetalhadoController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasPacotesDetalhadoController.java new file mode 100644 index 000000000..09f1ce448 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasPacotesDetalhadoController.java @@ -0,0 +1,118 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.sql.DataSource; + +import net.sf.jasperreports.engine.JasperReport; +import net.sf.jasperreports.engine.util.JRLoader; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Controller; +import org.zkoss.util.resource.Labels; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zul.Comboitem; +import org.zkoss.zul.Datebox; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.Pacote; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioVendasPacotesDetalhado; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.service.EmpresaService; +import com.rjconsultores.ventaboletos.service.PacoteService; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; + +@Controller("relatorioVendasPacotesDetalhadoController") +@Scope("prototype") +public class RelatorioVendasPacotesDetalhadoController extends MyGenericForwardComposer { + + private static final long serialVersionUID = 1L; + + @Autowired + private DataSource dataSourceRead; + + @Autowired + private EmpresaService empresaService; + + @Autowired + private PacoteService pacoteService; + + private List lsEmpresa; + private List lsPacote; + private Datebox dataInicial; + private Datebox dataFinal; + private MyComboboxEstandar cmbEmpresa; + private MyComboboxEstandar cmbPacote; + + public List getLsEmpresa() { + return lsEmpresa; + } + + public void setLsEmpresa(List lsEmpresa) { + this.lsEmpresa = lsEmpresa; + } + + @Override + public void doAfterCompose(Component comp) throws Exception { + lsEmpresa = empresaService.obtenerTodos(); + lsPacote = pacoteService.obtenerTodos(); + super.doAfterCompose(comp); + } + + public void onClick$btnExecutarRelatorio(Event ev) throws Exception { + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + Date dataDe = dataInicial.getValue(); + Date dataAte = dataFinal.getValue(); + + Map parametros = new HashMap(); + parametros.put("fecInicio", sdf.format(dataDe)); + parametros.put("fecFinal", sdf.format(dataAte)); + + Comboitem cbiEmpresa = cmbEmpresa.getSelectedItem(); + String empresaId = null; + parametros.put("empresa", ""); + if (cbiEmpresa != null) { + Empresa empresa = (Empresa) cbiEmpresa.getValue(); + empresaId = empresa.getEmpresaId().toString(); + parametros.put("empresa", empresa.getNombempresa()); + } + parametros.put("empresaId", empresaId); + + Comboitem cbiPacote = cmbPacote.getSelectedItem(); + String pacoteId = null; + parametros.put("nompacote", ""); + if (cbiPacote != null) { + Pacote pacote = (Pacote) cbiPacote.getValue(); + pacoteId = pacote.getPacoteId().toString(); + parametros.put("nompacote", pacote.getNompacote()); + } + parametros.put("pacoteId", pacoteId); + + JasperReport subRelatorioVendasPacotesResumidoItens = (JasperReport) JRLoader.loadObject(this.getClass().getResourceAsStream("/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesDetalhadoItem.jasper")); + parametros.put("subreporte", subRelatorioVendasPacotesResumidoItens); + + Relatorio relatorio = new RelatorioVendasPacotesDetalhado(parametros, dataSourceRead.getConnection(), "RelatorioVendasPacotesDetalhadoItem"); + + Map args = new HashMap(); + args.put("relatorio", relatorio); + + openWindow("/component/reportView.zul", + Labels.getLabel("relatorioVendasPacotesDetalhadoController.window.title"), args, MODAL); + } + + public List getLsPacote() { + return lsPacote; + } + + public void setLsPacote(List lsPacote) { + this.lsPacote = lsPacote; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasPacotesResumidoController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasPacotesResumidoController.java index 06770f58a..db928c7f1 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasPacotesResumidoController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasPacotesResumidoController.java @@ -55,16 +55,6 @@ public class RelatorioVendasPacotesResumidoController extends MyGenericForwardCo super.doAfterCompose(comp); } - private void executarPesquisa() { - } - - public void onClick$btnLimpar(Event ev) { - } - - public void onClick$btnPesquisa(Event ev) { - executarPesquisa(); - } - public void onClick$btnExecutarRelatorio(Event ev) throws Exception { SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); Date dataDe = dataInicial.getValue(); diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioVendasPacotesDetalhado.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioVendasPacotesDetalhado.java new file mode 100644 index 000000000..ba6a62187 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioVendasPacotesDetalhado.java @@ -0,0 +1,29 @@ +package com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios; + +import org.zkoss.util.resource.Labels; + +import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria; +import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema; + +/** + * @author Wilian Domingues + * + */ +public class ItemMenuRelatorioVendasPacotesDetalhado extends DefaultItemMenuSistema { + + public ItemMenuRelatorioVendasPacotesDetalhado() { + super("indexController.mniRelatorioVendasPacotesDetalhado.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS.MENU.RELATORIOVENDASPACOTESDETALHADO"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/relatorios/filtroRelatorioVendasPacotesDetalhado.zul", + Labels.getLabel("relatorioVendasPacotesDetalhadoController.window.title"), getArgs() ,desktop); + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioVendasPacotesResumido.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioVendasPacotesResumido.java index 4c242bf91..73609ce23 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioVendasPacotesResumido.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioVendasPacotesResumido.java @@ -1,6 +1,3 @@ -/** - * - */ package com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios; import org.zkoss.util.resource.Labels; diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index a85468136..23e1d634c 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -242,6 +242,7 @@ indexController.mniRelatorioCorridas.label = Reporte de Corridas indexController.mniRelatorioDemandas.label = Reporte de Demandas indexController.mniPrecoApanhe.label = Preço Apanhe indexController.mniRelatorioVendasPacotesResumido.label = Ventas de Paquetes Resumido +indexController.mniRelatorioVendasPacotesDetalhado.label = Ventas de Paquetes Detalhado indexController.mniSubMenuClientePacote.label=Pacote indexController.mniAlterarEnderecoApanhe.label=Alterar Endereço Apanhe @@ -5270,4 +5271,11 @@ editarAlterarEnderecoApanheController.lhDataPacote.label = Fecha Pacote relatorioVendasPacotesResumidoController.window.title = Relatório Vendas de Pacotes Resumido relatorioVendasPacotesResumidoController.lbDataIni.value = Fecha Inicio relatorioVendasPacotesResumidoController.lbDataFin.value = Fecha Final -relatorioVendasPacotesResumidoController.lblEmpresa.value = Empresa \ No newline at end of file +relatorioVendasPacotesResumidoController.lblEmpresa.value = Empresa + +# Relatorio Vendas Pacotes Detalhado +relatorioVendasPacotesDetalhadoController.window.title = Relatório Vendas de Pacotes Detalhado +relatorioVendasPacotesDetalhadoController.lbDataIni.value = Fecha Inicio +relatorioVendasPacotesDetalhadoController.lbDataFin.value = Fecha Final +relatorioVendasPacotesDetalhadoController.lblEmpresa.value = Empresa +relatorioVendasPacotesDetalhadoController.lblPacote.value = Pacote \ No newline at end of file diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index addbdd690..29f019f3c 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -247,6 +247,7 @@ indexController.mniRelatorioCorridas.label = Relatório de Serviços indexController.mniRelatorioDemandas.label = Relatório de Demandas indexController.mniPrecoApanhe.label = Preço Apanhe indexController.mniRelatorioVendasPacotesResumido.label = Vendas de Pacotes Resumido +indexController.mniRelatorioVendasPacotesDetalhado.label = Ventas de Pacotes Detalhado indexController.mnSubMenuImpressaoFiscal.label=Impressão Fiscal indexController.mniTotnaofiscalEmpresa.label=Totalizadoes Não-fiscais @@ -5397,4 +5398,11 @@ editarAlterarEnderecoApanheController.lhDataPacote.label = Data Pacote relatorioVendasPacotesResumidoController.window.title = Relatório Vendas de Pacotes Resumido relatorioVendasPacotesResumidoController.lbDataIni.value = Data Inicial relatorioVendasPacotesResumidoController.lbDataFin.value = Data Final -relatorioVendasPacotesResumidoController.lblEmpresa.value = Empresa \ No newline at end of file +relatorioVendasPacotesResumidoController.lblEmpresa.value = Empresa + +# Relatorio Vendas Pacotes Detalhado +relatorioVendasPacotesDetalhadoController.window.title = Relatório Vendas de Pacotes Detalhado +relatorioVendasPacotesDetalhadoController.lbDataIni.value = Data Inicial +relatorioVendasPacotesDetalhadoController.lbDataFin.value = Data Final +relatorioVendasPacotesDetalhadoController.lblEmpresa.value = Empresa +relatorioVendasPacotesDetalhadoController.lblPacote.value = Pacote \ No newline at end of file diff --git a/web/gui/relatorios/filtroRelatorioVendasPacotesDetalhado.zul b/web/gui/relatorios/filtroRelatorioVendasPacotesDetalhado.zul new file mode 100644 index 000000000..b2a8c1bc1 --- /dev/null +++ b/web/gui/relatorios/filtroRelatorioVendasPacotesDetalhado.zul @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +