diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasConexaoRuta.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasConexaoRuta.java index 1e6512192..b9aee4593 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasConexaoRuta.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasConexaoRuta.java @@ -15,6 +15,7 @@ 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.RelatorioVendasConexaoRutaBean; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; @@ -27,8 +28,8 @@ public class RelatorioVendasConexaoRuta extends Relatorio { private Timestamp fecInicio; private Timestamp fecFinal; - private Integer empresaId; - private Integer puntoventaId; + + private static final String FILTRO_POR_TODOS = "-1"; public RelatorioVendasConexaoRuta(Map parametros, Connection conexao) throws Exception { super(parametros, conexao); @@ -38,17 +39,14 @@ public class RelatorioVendasConexaoRuta extends Relatorio { @Override public void initDados() throws Exception { Map parametros = this.relatorio.getParametros(); - fecInicio = (Timestamp) parametros.get("dataFiltroInicial"); - fecFinal = (Timestamp) parametros.get("dataFiltroFinal"); - if(parametros.get("EMPRESA_ID")!=null){ - empresaId = Integer.valueOf(parametros.get("EMPRESA_ID").toString()); - } - if(parametros.get("PUNTOVENTA_ID")!=null){ - puntoventaId = Integer.valueOf(parametros.get("PUNTOVENTA_ID").toString()); - } - + fecInicio = new Timestamp(DateUtil.inicioFecha((Date) parametros.get("DATA_INICIAL")).getTime()); + fecFinal = new Timestamp(DateUtil.inicioFecha((Date) parametros.get("DATA_FINAL")).getTime()); + +// fecInicio = (Timestamp) parametros.get("DATA_INICIAL"); +// fecFinal = (Timestamp) parametros.get("DATA_INICIAL"); + Connection conexao = this.relatorio.getConexao(); - processarVendasConexao(conexao); + processarVendasConexao(conexao, parametros); setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio)); } @@ -56,13 +54,13 @@ public class RelatorioVendasConexaoRuta extends Relatorio { }); } - private void processarVendasConexao(Connection conexao) { + private void processarVendasConexao(Connection conexao, Map parametros) { ResultSet rset = null; NamedParameterStatement stmt = null; try { - stmt = carregarNamedParameterStatement(conexao); + stmt = carregarNamedParameterStatement(conexao, parametros); rset = stmt.executeQuery(); processarResultado(rset); fecharConexaoBanco(conexao, stmt, rset); @@ -100,7 +98,7 @@ public class RelatorioVendasConexaoRuta extends Relatorio { RelatorioVendasConexaoRutaBean bean = new RelatorioVendasConexaoRutaBean(); - bean.setServico((Integer) rset.getInt("numBPE")); + bean.setNumBpe((Integer) rset.getInt("numBPE")); bean.setPreco((BigDecimal) rset.getObject("preco")); bean.setTaxaEmbarque((BigDecimal) rset.getObject("taxaEmbarque")); bean.setPedagio((BigDecimal) rset.getBigDecimal("pedagio")); @@ -121,10 +119,14 @@ public class RelatorioVendasConexaoRuta extends Relatorio { bean.setCveusuario((String) rset.getObject("cveusuario")); bean.setNumoperacion((String) rset.getObject("numoperacion")); bean.setClasseServico((String) rset.getObject("classeServico")); - - total = total.add(bean.getPreco() != null ? bean.getPreco() : BigDecimal.ZERO); - - + bean.setSubSerie((String) rset.getObject("subSerie")); + bean.setDescricaoConexao((String) rset.getObject("descricaoConexao")); + bean.setIdCadastroConexao((Integer) rset.getInt("IdCadastroConexao")); + bean.setDescuento((String) rset.getObject("descuento")); + total = total.add(bean.getPreco() != null ? bean.getPreco() : BigDecimal.ZERO); + total = total.add(bean.getTaxaEmbarque() != null ? bean.getTaxaEmbarque() : BigDecimal.ZERO); + total = total.add(bean.getPedagio() != null ? bean.getPedagio() : BigDecimal.ZERO); + total = total.add(bean.getSeguro() != null ? bean.getSeguro() : BigDecimal.ZERO); lsDadosRelatorio.add(bean); } @@ -135,8 +137,8 @@ public class RelatorioVendasConexaoRuta extends Relatorio { } - private NamedParameterStatement carregarNamedParameterStatement(Connection conexao) throws SQLException { - String sql = getSql(); + private NamedParameterStatement carregarNamedParameterStatement(Connection conexao, Map parametros) throws SQLException { + String sql = getSql(parametros); log.info(sql); NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); @@ -147,27 +149,21 @@ public class RelatorioVendasConexaoRuta extends Relatorio { if(fecFinal != null) { stmt.setTimestamp("fecFinal", fecFinal); } - if(empresaId != null) { - stmt.setInt("EMPRESA_ID", empresaId); - } - if(puntoventaId != null && puntoventaId > -1) { - stmt.setInt("PUNTOVENTA_ID", puntoventaId); - } - + return stmt; } - protected String getSql() { + protected String getSql(Map parametros) { StringBuilder sb = new StringBuilder(); sb.append("SELECT c.numfoliosistema as bilhete,"); sb.append(" b.num_bpe as numBpe,"); - sb.append(" c.origen_id as codOrigem,"); + sb.append(" origen.cveparada as codOrigem,"); sb.append(" origen.descparada as descricaoOrigem,"); sb.append(" destino.descparada as descricaoDestino ,"); - sb.append(" c.destino_id as codDestino,"); + sb.append(" destino.cveparada as codDestino,"); sb.append(" r.numruta as numLinha, "); sb.append(" r.descruta as descricaoLinha, "); sb.append(" c.corrida_id as servico,"); @@ -175,14 +171,18 @@ public class RelatorioVendasConexaoRuta extends Relatorio { sb.append(" c.fechorviaje as dataEmbarque,"); sb.append(" c.fechorventa dataVenda,"); sb.append(" c.numasiento as poltrona,"); - sb.append(" tar.precio AS preco,"); + sb.append(" c.preciopagado AS preco,"); sb.append(" c.importetaxaembarque as taxaEmbarque,"); sb.append(" c.importeseguro as seguro,"); sb.append(" c.importepedagio as pedagio,"); sb.append(" pv.numpuntoventa as numeroAgencia, "); sb.append(" pv.nombpuntoventa as nomeAgencia, "); sb.append(" u.cveusuario as cveusuario, "); - sb.append(" c.numoperacion as numoperacion "); + sb.append(" c.numoperacion as numoperacion, "); + sb.append(" 'BPe' as subSerie, "); + sb.append(" conf.descricao descricaoConexao, "); + sb.append(" conf.conexionrutaconf_id IdCadastroConexao, "); + sb.append(" CONV.descconvenio as descuento "); sb.append("FROM caja c "); sb.append("JOIN boleto b on (c.transacao_id = b.boleto_id) "); sb.append("JOIN caja_formapago cfp ON cfp.caja_id = c.caja_id "); @@ -197,15 +197,14 @@ public class RelatorioVendasConexaoRuta extends Relatorio { sb.append("JOIN ruta r ON (r.ruta_id = c.ruta_id) "); sb.append("JOIN clase_servicio cs ON (c.claseservicio_id = cs.claseservicio_id) "); sb.append("INNER JOIN vigencia_tarifa vt ON c.fechorventa BETWEEN vt.feciniciovigencia AND vt.fecfinvigencia "); - sb.append("AND vt.activo = 1"); - sb.append("INNER JOIN tarifa tar ON (tar.ruta_id = c.ruta_id"); - sb.append(" AND tar.marca_id = m.marca_id"); - sb.append(" AND tar.claseservicio_id = c.claseservicio_id "); - sb.append(" AND tar.vigenciatarifa_id = vt.vigenciatarifa_id "); - sb.append(" AND tar.origen_id = c.origen_id "); - sb.append(" AND tar.destino_id = c.destino_id "); - sb.append(" AND tar.activo = 1)"); + sb.append("AND vt.activo = 1 "); sb.append("INNER JOIN usuario u ON (c.usuario_id = u.usuario_id) "); + sb.append("join conexion cc on cc.conexionctrl_id = c.conexionctrl_id and cc.activo =1 "); + sb.append("join conexion_ruta_tramo_ctrl ctr on ctr.conexionrutatramoctrl_id = cc.conexionrutatramoctrl_id and ctr.activo = 1 "); + sb.append("join conexion_ruta_ctrl ctrl on ctrl.conexionrutactrl_id = ctr.conexionrutactrl_id and ctrl.activo =1 "); + sb.append("join conexion_ruta_conf conf on conf.conexionrutaconf_id = ctrl.conexionrutaconf_id and conf.activo =1 "); + sb.append("left JOIN CONVENIO_DET CONV_D ON CONV_D.CONVENIODET_ID = c.CONVENIODET_ID "); + sb.append(" left join CONVENIO CONV ON CONV.CONVENIO_ID = CONV_D.CONVENIO_ID "); sb.append("WHERE c.indconexion = 1"); sb.append(" AND c.indreimpresion = 0"); sb.append(" AND c.tipoventa_id <> 6"); @@ -218,25 +217,64 @@ public class RelatorioVendasConexaoRuta extends Relatorio { sb.append(" JOIN punto_venta pv ON pv.puntoventa_id = c.puntoventa_id"); sb.append(" WHERE c.indconexion = 1"); sb.append(" AND c.indreimpresion = 0 and (c.indstatusboleto = 'V' or c.indstatusboleto = 'T' ) and c.motivocancelacion_id is null "); - sb.append(" AND c.tipoventa_id <> 6"); + sb.append(" AND c.tipoventa_id <> 6 "); + if(fecInicio != null) { sb.append("AND COALESCE(C.FECHORVENTA_H,C.FECHORVENTA) >= :fecInicio "); } if(fecFinal != null) { sb.append("AND COALESCE(C.FECHORVENTA_H,C.FECHORVENTA) <= :fecFinal "); } - if(empresaId != null) { - sb.append("AND E.EMPRESA_ID = :EMPRESA_ID "); + if ((String)parametros.get("EMPRESA_ID") != null && !filtrarTodos("EMPRESA_ID")) { + sb.append(" AND e.empresa_id IN ("+parametros.get("EMPRESA_ID")+")"); } - if(puntoventaId != null && puntoventaId > -1) { - sb.append("AND C.PUNTOVENTA_ID = :PUNTOVENTA_ID "); + if ((String)parametros.get("PUNTOVENTA_ID") != null && !filtrarTodos("PUNTOVENTA_ID")) { + sb.append(" AND b.puntoventa_id IN ("+parametros.get("PUNTOVENTA_ID")+")"); } + sb.append(") "); + sb.append(" group by "); + sb.append(" c.numfoliosistema ,"); + sb.append(" b.num_bpe ,"); + sb.append(" origen.cveparada ,"); + sb.append(" origen.descparada,"); + sb.append(" destino.descparada ,"); + sb.append(" destino.cveparada ,"); + sb.append(" r.numruta ,"); + sb.append(" r.descruta ,"); + sb.append(" c.corrida_id ,"); + sb.append(" cs.descclase ,"); + sb.append(" c.fechorviaje, "); + sb.append(" c.fechorventa , "); + sb.append(" c.numasiento , "); + sb.append(" c.preciopagado ,"); + sb.append(" c.importetaxaembarque ,"); + sb.append(" c.importeseguro, "); + sb.append(" c.importepedagio ,"); + sb.append(" pv.numpuntoventa ,"); + sb.append(" pv.nombpuntoventa ,"); + sb.append(" u.cveusuario ,"); + sb.append(" c.numoperacion ,"); + sb.append(" conf.descricao ,"); + sb.append(" conf.conexionrutaconf_id, CONV.descconvenio "); + sb.append(" order by c.fechorventa, c.numoperacion "); + + return sb.toString(); } + private boolean filtrarTodos(String parametro) { + String ids = (String)parametros.get(parametro); + for (int i = 0; i < ids.split(", ").length; i++) { + if (FILTRO_POR_TODOS.equals(ids.split(", ")[i])) { + return true; + } + } + return false; + } + @Override protected void processaParametros() throws Exception { } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasConexaoRuta_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasConexaoRuta_es.properties index 1fbd2fb26..eb80f96d2 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasConexaoRuta_es.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasConexaoRuta_es.properties @@ -2,8 +2,8 @@ msg.noData=Não foi possivel obter dados com os parâmetros informados. #Labels cabeçalho -cabecalho.nome=Relatório Vendas Conexão por Linha -cabecalho.relatorio=Relatório: +cabecalho.nome=Repoert Vendas Conexion por Ruta +cabecalho.relatorio=Report: cabecalho.periodo=Período: cabecalho.periodoA=à cabecalho.dataHora=Data/Hora: @@ -11,31 +11,35 @@ cabecalho.impressorPor=Impressor por: cabecalho.pagina=Página cabecalho.de=de cabecalho.filtros=Filtros: -cabecalho.puntoventa=Agência: +cabecalho.puntoventa=Punto Venta: cabecalho.usuario=Usuário: -label.bpe=Nº BPE -label.nomeAgencia=Pnuto Venta +label.bpe=BPE +label.subSerie=SubSerie +label.nomeAgencia=Punto Venta label.numeroAgencia=Nº Punto Venta -label.dataVenda=Fechor Venta -label.dataEmbarque=Fechor Embarque -label.bilhete=Folio -label.dataEmissao=Fechor Emissão -label.preco=Preço +label.dataVenda=Dt.Venda +label.dataEmbarque=Dt.Embarque +label.bilhete=Bilhete +label.dataEmissao=Dt.Emissão +label.preco=Tarifa label.taxaEmbarque=Taxa Emb. label.seguro=Seguro label.pedagio=Pedágio label.origem= Origem label.destino=Destino -label.numLinha=Nº Linha -label.descricaoLinha=Linha -label.servico=Servicio +label.numLinha=Nº Ruta +label.descricaoLinha=Ruta +label.servico=Corrida label.classeServico=Clase label.poltrona= Asiento label.dataInicial=Fechor Inicial: label.dataFinal=Fechor Final: label.cveusuario=Usuário label.empresa=Empresa: - +label.IDCesta=ID Cesta: +label.IDCadastroConexao=ID Conex. +label.descricaoDesconto=Desconto. +label.descricaoConexao=Nombre Conexion label.total=Total R$: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasConexaoRuta_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasConexaoRuta_pt_BR.properties index 0e4b0e40a..909022d36 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasConexaoRuta_pt_BR.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasConexaoRuta_pt_BR.properties @@ -15,14 +15,15 @@ cabecalho.puntoventa=Ag cabecalho.usuario=Usuário: -label.bpe=Nº BPE +label.bpe=BPE +label.subSerie=SubSerie label.nomeAgencia=Agência label.numeroAgencia=Nº Agência -label.dataVenda=Data Venda -label.dataEmbarque=Data Embarque +label.dataVenda=Dt.Venda +label.dataEmbarque=Dt.Embarque label.bilhete=Bilhete -label.dataEmissao=Data Emissão -label.preco=Preço +label.dataEmissao=Dt.Emissão +label.preco=Tarifa label.taxaEmbarque=Taxa Emb. label.seguro=Seguro label.pedagio=Pedágio @@ -37,5 +38,8 @@ label.dataInicial=Data Inicial: label.dataFinal=Data Final: label.cveusuario=Usuário label.empresa=Empresa: - +label.IDCesta=ID Cesta: +label.IDCadastroConexao=ID Conex. +label.descricaoDesconto=Desconto +label.descricaoConexao=Conexão label.total=Total R$: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasConexaoRuta.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasConexaoRuta.jasper index fba184a1e..31fb61b2c 100644 Binary files a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasConexaoRuta.jasper and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasConexaoRuta.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasConexaoRuta.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasConexaoRuta.jrxml index 9c786ca59..0b60b9981 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasConexaoRuta.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasConexaoRuta.jrxml @@ -1,10 +1,10 @@ - - - - - - + + + + + + @@ -34,145 +34,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + @@ -188,9 +53,9 @@ - + - + @@ -204,208 +69,411 @@ - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - + - - + + - + - + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + - + - + - + - + - + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioVendasConexaoRutaBean.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioVendasConexaoRutaBean.java index 6f89fa66f..0de842ea6 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioVendasConexaoRutaBean.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioVendasConexaoRutaBean.java @@ -29,6 +29,10 @@ public class RelatorioVendasConexaoRutaBean { private String classeServico; private String numoperacion; private String cveusuario; + private String subSerie; + private String descricaoConexao; + private Integer idCadastroConexao; + private String descuento; public BigDecimal getPreco() { return preco; @@ -222,4 +226,36 @@ public class RelatorioVendasConexaoRutaBean { this.numoperacion = numoperacion; } + public String getSubSerie() { + return subSerie; + } + + public void setSubSerie(String subSerie) { + this.subSerie = subSerie; + } + + public String getDescricaoConexao() { + return descricaoConexao; + } + + public void setDescricaoConexao(String descricaoConexao) { + this.descricaoConexao = descricaoConexao; + } + + public Integer getIdCadastroConexao() { + return idCadastroConexao; + } + + public void setIdCadastroConexao(Integer idCadastroConexao) { + this.idCadastroConexao = idCadastroConexao; + } + + public String getDescuento() { + return descuento; + } + + public void setDescuento(String descuento) { + this.descuento = descuento; + } + } diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasConexaoRutaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasConexaoRutaController.java index f0909f307..4f155a36d 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasConexaoRutaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasConexaoRutaController.java @@ -3,6 +3,8 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; import java.sql.SQLException; import java.sql.Timestamp; import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -14,14 +16,17 @@ 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.zhtml.Messagebox; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.event.Event; import org.zkoss.zul.Comboitem; import org.zkoss.zul.Datebox; +import org.zkoss.zul.Paging; +import org.zkoss.zul.Textbox; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; -import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioVendasConexao; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioDiferencasTransferencias; import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioVendasConexaoRuta; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.utilerias.DateUtil; @@ -29,6 +34,12 @@ import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar; import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxPuntoVenta; import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; +import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; +import com.rjconsultores.ventaboletos.web.utilerias.paginacion.HibernateSearchObject; +import com.rjconsultores.ventaboletos.web.utilerias.paginacion.PagedListWrapper; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderPuntoVentaSimple; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderRelatorioGenericoEmpresasSel; +import com.trg.search.Filter; @Controller("relatorioVendasConexaoRutaController") @Scope("prototype") @@ -44,67 +55,203 @@ public class RelatorioVendasConexaoRutaController extends MyGenericForwardCompos private Datebox dataInicial; private Datebox dataFinal; + private Textbox txtNombreEmpresa; + private Paging pagingEmpresa; + private Paging pagingEmpresaSel; + private MyListbox empresaList; + private MyListbox empresaSelList; + private MyListbox puntoVentaList; + private MyListbox puntoVentaSelectedList; + private Textbox txtNomeAgencia; + private Paging pagingPuntoVenta; + private static final String LIKE = "%"; + + @Autowired + private transient PagedListWrapper plwEmpresa; - private MyComboboxPuntoVenta cmbPuntoVenta; - + @Autowired + private transient PagedListWrapper plwPuntoVenta; + @Override public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); - this.lsEmpresa = UsuarioLogado.getUsuarioLogado().getEmpresa(); + empresaList.setItemRenderer(new RenderRelatorioGenericoEmpresasSel()); + empresaSelList.setItemRenderer(new RenderRelatorioGenericoEmpresasSel()); + puntoVentaList.setItemRenderer(new RenderPuntoVentaSimple()); + puntoVentaSelectedList.setItemRenderer(new RenderPuntoVentaSimple()); } - public void onClick$btnExecutarRelatorio(Event ev) throws Exception { excutarRelatorios(); } + @SuppressWarnings({ "unchecked" }) public void excutarRelatorios() throws SQLException, Exception { - SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); - Date dataDe = dataInicial.getValue(); - Date dataAte = dataFinal.getValue(); - - Timestamp fecVentaInicial = new Timestamp(DateUtil.inicioFecha(dataDe).getTime()); - Timestamp fecVentaFinal = new Timestamp(DateUtil.fimFecha(dataAte).getTime()); - - Map parametros = new HashMap(); - parametros.put("fecInicio", sdf.format(dataDe)); - parametros.put("fecFinal", sdf.format(dataAte)); - - parametros.put("dataFiltroInicial", fecVentaInicial); - parametros.put("dataFiltroFinal", fecVentaFinal); - - Comboitem itemEmpresa = cmbEmpresa.getSelectedItem(); - if (itemEmpresa != null) { - Empresa empresa = (Empresa) itemEmpresa.getValue(); - parametros.put("EMPRESA_ID", empresa.getEmpresaId()); - parametros.put("empresa", empresa.getNombempresa()); - } else { - parametros.put("empresa", "Todas;"); - } - - Comboitem itemPuntoventa = cmbPuntoVenta.getSelectedItem(); - if(itemPuntoventa != null) { - PuntoVenta puntoVenta = (PuntoVenta) itemPuntoventa.getValue(); - if(puntoVenta.getPuntoventaId() > -1) { - parametros.put("PUNTOVENTA_ID", puntoVenta.getPuntoventaId()); - parametros.put("puntoventa", puntoVenta.getNombpuntoventa()); - } else { - parametros.put("puntoventa", "Todas;"); + if (!isPeriodoValido()) { + try { + Messagebox.show(Labels.getLabel("MSG.ningunRegistro"), + Labels.getLabel("relatorioVendaConexaoRuta.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + } catch (InterruptedException ex) { + ex.printStackTrace(); } } else { - parametros.put("puntoventa", "Todas;"); + Relatorio relatorio; + + Map parametros = new HashMap(); + StringBuilder filtro = new StringBuilder(); + + parametros.put("DATA_INICIAL", (java.util.Date) dataInicial.getValue()); + parametros.put("DATA_FINAL", (java.util.Date) dataFinal.getValue()); + List listaEmpresa = (List)(Object)Arrays.asList(empresaSelList.getData()); + if (!listaEmpresa.isEmpty()) { + parametros.put("EMPRESA_ID", getIdsEmpresa(listaEmpresa)); + } + + List listaPontosVenda = (List)(Object)Arrays.asList(puntoVentaSelectedList.getData()); + if (!listaPontosVenda.isEmpty()) { + parametros.put("PUNTOVENTA_ID", getIdsPontoVenda(listaPontosVenda)); + configuraFiltroAgencia(filtro, listaPontosVenda); + } else { + filtro.append(" Agências: TODAS"); + } + + parametros.put("FILTROS", filtro.toString()); + + parametros.put("NOME_RELATORIO", Labels.getLabel("relatorioVendaConexaoRuta.window.title")); + parametros.put("USUARIO", UsuarioLogado.getUsuarioLogado().getNombusuario()); + + relatorio = new RelatorioDiferencasTransferencias(parametros, dataSourceRead.getConnection()); + + Map args = new HashMap(); + relatorio = new RelatorioVendasConexaoRuta(parametros, dataSourceRead.getConnection()); + args.put("relatorio", relatorio); + + openWindow("/component/reportView.zul", + Labels.getLabel("indexController.mniRelatorioVendasConexao.label"), args, MODAL); } - Map args = new HashMap(); - Relatorio relatorio = new RelatorioVendasConexaoRuta(parametros, dataSourceRead.getConnection()); - args.put("relatorio", relatorio); - - openWindow("/component/reportView.zul", - Labels.getLabel("indexController.mniRelatorioVendasConexao.label"), args, MODAL); } + public void onClick$btnPesquisaEmpresa(Event ev) { + HibernateSearchObject empresaBusqueda = + new HibernateSearchObject(Empresa.class, pagingEmpresa.getPageSize()); + + empresaBusqueda.addFilterILike("nombempresa", obtemFiltroLike(txtNombreEmpresa)); + empresaBusqueda.addFilterEqual("activo", Boolean.TRUE); + + empresaBusqueda.addSortAsc("nombempresa"); + + plwEmpresa.init(empresaBusqueda, empresaList, pagingEmpresa); + + validaPesquisaSemRegistro(empresaList); + } + + public void onClick$btnLimparEmpresa(Event ev) { + empresaList.setData(new ArrayList()); + txtNombreEmpresa.setText(""); + } + + public void onDoubleClick$empresaList(Event ev) { + Empresa empresa = (Empresa) empresaList.getSelected(); + if (empresa!= null && + !Arrays.asList(empresaSelList.getData()).contains(empresa)) { + empresaSelList.addItemNovo(empresa); + } + } + + public void onDoubleClick$empresaSelList(Event ev) { + Empresa empresa = (Empresa) empresaSelList.getSelected(); + empresaSelList.removeItem(empresa); + } + + public void onClick$btnPesquisaAgencia(Event ev) { + HibernateSearchObject puntoVentaBusqueda = + new HibernateSearchObject(PuntoVenta.class, pagingPuntoVenta.getPageSize()); + + puntoVentaBusqueda.addFilterOr(Filter.like("nombpuntoventa", obtemFiltroLike(txtNomeAgencia)), + Filter.like("numPuntoVenta", obtemFiltroLike(txtNomeAgencia))); + puntoVentaBusqueda.addSortAsc("nombpuntoventa"); + puntoVentaBusqueda.addFilterEqual("activo", Boolean.TRUE); + + plwPuntoVenta.init(puntoVentaBusqueda, puntoVentaList, pagingPuntoVenta); + + validaPesquisaSemRegistro(puntoVentaList); + + } + + public void onClick$btnLimparAgencia(Event ev) { + puntoVentaList.setData(new ArrayList()); + txtNomeAgencia.setText(""); + } + + public void onDoubleClick$puntoVentaList(Event ev) { + PuntoVenta puntoVenta = (PuntoVenta) puntoVentaList.getSelected(); + if (puntoVenta != null + && !Arrays.asList(puntoVentaSelectedList.getData()).contains(puntoVenta)) { + puntoVentaSelectedList.addItemNovo(puntoVenta); + } + } + + public void onDoubleClick$puntoVentaSelectedList(Event ev) { + PuntoVenta puntoVentaSel = (PuntoVenta) puntoVentaSelectedList.getSelected(); + puntoVentaSelectedList.removeItem(puntoVentaSel); + } + private void configuraFiltroAgencia(StringBuilder filtro, List lista) { + filtro.append(" Agências: "); + for (PuntoVenta pontoVenda : lista) { + filtro.append(pontoVenda.getNombpuntoventa()); + filtro.append(", "); + } + filtro.delete(filtro.length()-2, filtro.length()); + } + + private String getIdsEmpresa(List lista) { + String ids = ""; + for (Empresa empresa : lista) { + ids += empresa.getEmpresaId() +", "; + } + return ids.substring(0, ids.length()-2); + } + + private String getIdsPontoVenda(List lista) { + StringBuilder ids = new StringBuilder(); + for (PuntoVenta pontoVenda : lista) { + ids.append(pontoVenda.getPuntoventaId()); + ids.append(", "); + } + return ids.substring(0, ids.length()-2); + } + + private boolean isPeriodoValido() { + return dataFinal.getValue().compareTo(dataInicial.getValue()) >= 0; + } + + private void validaPesquisaSemRegistro(MyListbox listBox) { + if (listBox.getData().length == 0) { + try { + Messagebox.show(Labels.getLabel("MSG.ningunRegistro"), + Labels.getLabel("relatorioVendaConexaoRuta.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + } catch (InterruptedException ex) { + ex.printStackTrace(); + } + } + } + + private String obtemFiltroLike(Textbox filtro) { + return LIKE.concat(filtro.getText().trim().toUpperCase().concat(LIKE)) ; + } + + public Paging getPagingEmpresaSel() { + return pagingEmpresaSel; + } + + public void setPagingEmpresaSel(Paging pagingEmpresaSel) { + this.pagingEmpresaSel = pagingEmpresaSel; + } public List getLsEmpresa() { return lsEmpresa; } diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index fe1e31661..e270949b9 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -874,6 +874,19 @@ relatorioDiferencasTransferenciasController.puntoVentaSelectedList.codigo = Cód relatorioDiferencasTransferenciasController.puntoVentaSelectedList.nome = Nome relatorioDiferencasTransferenciasController.lbAgencia.value = Agência +#Relatorio de Vendas conexao por Linha + +relatorioVendaConexaoRuta.window.title = Relatório Vendas Conexão Por Linha +relatorioVendaConexaoRuta.lbDePeriodoTransferencia.value = Data inicial +relatorioVendaConexaoRuta.lbAtePeriodoTransferencia.value = Data final +relatorioVendaConexaoRuta.lbEmpresa.value = Empresa +relatorioVendaConexaoRuta.btnPesquisa.label = Buscar +relatorioVendaConexaoRuta.btnLimpar.label = Limpar +relatorioVendaConexaoRuta.lbIdEmpresa.value = Id +relatorioVendaConexaoRuta.puntoVentaSelectedList.codigo = Código +relatorioVendaConexaoRuta.puntoVentaSelectedList.nome = Nome +relatorioVendaConexaoRuta.lbAgencia.value = Agência + # Relatorio Sisdap relatorioSisdapController.window.title=Relatório SISDAP relatorioSisdapController.lbDatInicio.value=Data Inicio diff --git a/web/gui/relatorios/filtroRelatorioVendasConexao.zul b/web/gui/relatorios/filtroRelatorioVendasConexao.zul index 27f06c9aa..f25af7b97 100644 --- a/web/gui/relatorios/filtroRelatorioVendasConexao.zul +++ b/web/gui/relatorios/filtroRelatorioVendasConexao.zul @@ -1,11 +1,11 @@ - + - @@ -22,7 +22,7 @@ diff --git a/web/gui/relatorios/filtroRelatorioVendasConexaoRuta.zul b/web/gui/relatorios/filtroRelatorioVendasConexaoRuta.zul index 83725c47f..8670b6e62 100644 --- a/web/gui/relatorios/filtroRelatorioVendasConexaoRuta.zul +++ b/web/gui/relatorios/filtroRelatorioVendasConexaoRuta.zul @@ -10,47 +10,125 @@ contentStyle="overflow:auto" width="700px" border="normal"> - - - - + + - + + -