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 000000000..30867ffd9 Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesDetalhado.jasper differ 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 000000000..1105f6d86 Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesDetalhadoItem.jasper differ 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 2bf1e34cf..88269aafc 100644 Binary files a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesResumido.jasper and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesResumido.jasper differ 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +