From 99588703ff20ba411d79cb3603a112b57d5ab16f Mon Sep 17 00:00:00 2001 From: fabio Date: Tue, 19 Sep 2017 18:17:43 +0000 Subject: [PATCH] Fixes bug #9450 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@73989 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../impl/RelatorioImpressaoPosterior.java | 196 +++++++++++ .../RelatorioImpressaoPosterior_es.properties | 26 ++ ...latorioImpressaoPosterior_pt_BR.properties | 27 ++ .../RelatorioImpressaoPosterior.jasper | Bin 0 -> 43041 bytes .../RelatorioImpressaoPosterior.jrxml | 324 ++++++++++++++++++ .../RelatorioImpressaoPosteriorBean.java | 97 ++++++ ...RelatorioImpressaoPosteriorController.java | 295 ++++++++++++++++ .../ItemMenuRelatorioImpressaoPosterior.java | 25 ++ .../utilerias/menu/menu_original.properties | 1 + .../RenderParadaImpressaoPosterior.java | 31 ++ ...erParadaImpressaoPosteriorSelecionado.java | 54 +++ web/WEB-INF/i3-label_es_MX.label | 17 +- web/WEB-INF/i3-label_pt_BR.label | 19 +- .../filtroRelatorioImpressaoPosterior.zul | 162 +++++++++ 14 files changed, 1272 insertions(+), 2 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioImpressaoPosterior.java create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioImpressaoPosterior_es.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioImpressaoPosterior_pt_BR.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoPosterior.jasper create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoPosterior.jrxml create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioImpressaoPosteriorBean.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioImpressaoPosteriorController.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioImpressaoPosterior.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderParadaImpressaoPosterior.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderParadaImpressaoPosteriorSelecionado.java create mode 100644 web/gui/relatorios/filtroRelatorioImpressaoPosterior.zul diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioImpressaoPosterior.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioImpressaoPosterior.java new file mode 100644 index 000000000..7b24bfbd1 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioImpressaoPosterior.java @@ -0,0 +1,196 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; + +import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioImpressaoPosteriorBean; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +public class RelatorioImpressaoPosterior extends Relatorio { + + private static Logger log = org.slf4j.LoggerFactory.getLogger(RelatorioImpressaoPosterior.class); + + private List lsDadosRelatorio; + + public RelatorioImpressaoPosterior(Map parametros, Connection conexao) throws Exception { + super(parametros, conexao); + + this.setCustomDataSource(new DataSource(this) { + @Override + public void initDados() throws Exception { + + Connection conexao = this.relatorio.getConexao(); + + Map parametros = this.relatorio.getParametros(); + + String datVendaInicial = null; + String datVendaFinal = null; + String datViagemInicial = null; + String datViagemFinal = null; + + if(parametros.get("datVendaInicial") != null ) { + datVendaInicial = parametros.get("datVendaInicial").toString(); + datVendaInicial += parametros.get("horVendaInicial") != null ? " "+parametros.get("horVendaInicial").toString(): " 00:00:00"; + } + + if(parametros.get("datVendaFinal") != null ) { + datVendaFinal = parametros.get("datVendaFinal").toString(); + datVendaFinal += parametros.get("horVendaFinal") != null ? " "+parametros.get("horVendaFinal").toString(): " 23:59:59"; + } + + if(parametros.get("datViagemInicial") != null ) { + datViagemInicial = parametros.get("datViagemInicial").toString(); + datViagemInicial += parametros.get("horViagemInicial") != null ? " "+parametros.get("horViagemInicial").toString(): " 00:00:00"; + } + + if(parametros.get("datViagemFinal") != null ) { + datViagemFinal = parametros.get("datViagemFinal").toString(); + datViagemFinal += parametros.get("horViagemFinal") != null ? " "+parametros.get("horViagemFinal").toString(): " 23:59:59"; + } + + String empresa = parametros.get("empresa") != null ? parametros.get("empresa").toString() : null; + String origemIds = parametros.get("NUMORIGEM") != null ? parametros.get("NUMORIGEM").toString() : null; + String destinoIds = parametros.get("NUMDESTINO") != null ? parametros.get("NUMDESTINO").toString() : null; + + lsDadosRelatorio = new ArrayList(); + + String sql = carregarQuery(datVendaInicial, datVendaFinal, datViagemInicial, datViagemFinal, origemIds, destinoIds, empresa); + + log.debug(sql); + + NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); + ResultSet rset1 = null; + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); + + + + if( StringUtils.isNotEmpty(datVendaInicial) ) { + stmt.setTimestamp("datVendaInicial", new java.sql.Timestamp(sdf.parse(datVendaInicial).getTime())); + } + + if( StringUtils.isNotEmpty(datVendaFinal) ) { + stmt.setTimestamp("datVendaFinal", new java.sql.Timestamp(sdf.parse(datVendaFinal).getTime())); + } + + if( StringUtils.isNotEmpty(datViagemInicial) ) { + stmt.setTimestamp("datViagemInicial", new java.sql.Timestamp(sdf.parse(datViagemInicial).getTime())); + } + + if( StringUtils.isNotEmpty(datViagemFinal) ) { + stmt.setTimestamp("datViagemFinal", new java.sql.Timestamp(sdf.parse(datViagemFinal).getTime())); + } + + if( StringUtils.isNotEmpty(empresa) ) { + stmt.setInt("empresaId", Integer.parseInt(empresa)); + } + + rset1= stmt.executeQuery(); + + while (rset1.next()) { + RelatorioImpressaoPosteriorBean ImpressaoPosterior = new RelatorioImpressaoPosteriorBean(); + + ImpressaoPosterior.setEmpresa(rset1.getString("empresa")); + ImpressaoPosterior.setDocumento(rset1.getString("documento")); + ImpressaoPosterior.setLocalizador(rset1.getString("localizador")); + ImpressaoPosterior.setNome(rset1.getString("nome")); + ImpressaoPosterior.setReserva(rset1.getString("reserva")); + ImpressaoPosterior.setOrigem(rset1.getString("origem")); + ImpressaoPosterior.setDestino(rset1.getString("destino")); + ImpressaoPosterior.setTelefone(rset1.getString("telefone")); + ImpressaoPosterior.setDataVenda((Date)rset1.getObject("dataVenda")); + ImpressaoPosterior.setDataEmbarque((Date)rset1.getObject("dataEmbarque")); + + lsDadosRelatorio.add(ImpressaoPosterior); + } + + rset1.close(); + + if (lsDadosRelatorio.size() > 0) { + setLsDadosRelatorio(lsDadosRelatorio); + } + + } + }); + } + + public void setLsDadosRelatorio(List lsDadosRelatorio) { + this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio)); + this.lsDadosRelatorio = lsDadosRelatorio; + } + + @Override + protected void processaParametros() throws Exception { + } + + private String carregarQuery(String datVendaInicial, String datVendaFinal, String datViagemInicial, String datViagemFinal, String origem, String destino, String empresa) { + + StringBuilder sql = new StringBuilder(); + sql.append(" SELECT "); + sql.append(" e.NOMBEMPRESA as empresa, "); + sql.append(" ORIGINAL.DESCNUMDOC as documento, "); + sql.append(" ORIGINAL.NUMOPERACION as localizador, "); + sql.append(" ORIGINAL.NOMBPASAJERO as nome, "); + sql.append(" ORIGINAL.NUMRESERVACION as reserva, "); + sql.append(" po.DESCPARADA as origem, "); + sql.append(" pd.DESCPARADA as destino, "); + sql.append(" ORIGINAL.DESCTELEFONO as telefone, "); + sql.append(" ORIGINAL.FECHORVENTA as dataVenda, "); + sql.append(" ORIGINAL.FECHORVIAJE as dataEmbarque "); + sql.append(" FROM BOLETO ORIGINAL "); + sql.append(" INNER JOIN EMPRESA e ON ORIGINAL.EMPRESACORRIDA_ID = e.EMPRESA_ID "); + sql.append(" INNER JOIN PARADA po ON (original.ORIGEN_ID = po.PARADA_ID) "); + sql.append(" INNER JOIN PARADA pd ON (original.DESTINO_ID = pd.PARADA_ID) "); + sql.append(" WHERE ORIGINAL.INDSTATUSBOLETO = 'V' "); + sql.append(" AND ORIGINAL.TIPOVENTA_ID IN (5,12,18,41,49) "); + sql.append(" AND (original.MOTIVOCANCELACION_ID is null or original.MOTIVOCANCELACION_ID = 16 ) "); + + if( StringUtils.isNotEmpty(datVendaInicial) ) { + sql.append(" AND original.FECHORVENTA >= :datVendaInicial "); + } + + if( StringUtils.isNotEmpty(datVendaFinal) ) { + sql.append(" AND original.FECHORVENTA <= :datVendaFinal "); + } + + if( StringUtils.isNotEmpty(datViagemInicial) ) { + sql.append(" AND original.FECHORVIAJE >= :datViagemInicial "); + } + + if( StringUtils.isNotEmpty(datViagemFinal) ) { + sql.append(" AND original.FECHORVIAJE <= :datViagemFinal "); + } + + if( StringUtils.isNotEmpty(origem) ) { + sql.append(" AND original.ORIGEN_ID in (" + origem + ") "); + } + + if (StringUtils.isNotEmpty(destino)) { + sql.append(" AND original.DESTINO_ID in (" + destino + ") "); + } + + if (StringUtils.isNotEmpty(empresa)) { + sql.append(" AND original.EMPRESACORRIDA_ID = :empresaId "); + } + + sql.append(" ORDER BY "); + sql.append(" e.NOMBEMPRESA, "); + sql.append(" po.DESCPARADA, "); + sql.append(" ORIGINAL.FECHORVENTA "); + + return sql.toString(); + + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioImpressaoPosterior_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioImpressaoPosterior_es.properties new file mode 100644 index 000000000..6a7b82967 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioImpressaoPosterior_es.properties @@ -0,0 +1,26 @@ +#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/) + +header.codigo = C\u00F3digo +header.data.hora = Fecha/Hora +header.dataEmbarque = Fecha Embarque +header.dataFin = Fecha Fin +header.dataIni = Fecha inicio +header.dataVenda = Fecha de la Venta +header.dataViagem = Fecha de la Viaje +header.descricao = Descripci\u00F3n +header.destino = Destino +header.documento = Documento +header.empresa = Empresa +header.horaFin = Hora Fin +header.horaIni = Hora Inicio +header.localizador = Localizador +header.nome = Nombre +header.origem = Origen +header.pagina = Pagina +header.reserva = Reserva +header.telefone = Tel\u00E9fono +header.venda = Venta +header.viagem = Viaje + +msg.a = a +msg.noData = No se pudo obtener datos con los par\u00E1metros reportados. diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioImpressaoPosterior_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioImpressaoPosterior_pt_BR.properties new file mode 100644 index 000000000..28d0c7c1e --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioImpressaoPosterior_pt_BR.properties @@ -0,0 +1,27 @@ +#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/) +#geral + +header.codigo = C\u00F3digo +header.data.hora = Data/Hora +header.dataEmbarque = Data Embarque +header.dataFin = Data Fim +header.dataIni = Data In\u00EDcio +header.dataVenda = Data da Venda +header.dataViagem = Data da Viagem +header.descricao = Descri\u00E7\u00E3o +header.destino = Destino +header.documento = Documento +header.empresa = Empresa +header.horaFin = Hora Fim +header.horaIni = Hora In\u00EDcio +header.localizador = Localizador +header.nome = Nome +header.origem = Origem +header.pagina = P\u00E1gina +header.reserva = Reserva +header.telefone = Telefone +header.venda = Venda +header.viagem = Viagem + +msg.a = a +msg.noData = No se pudo obtener datos con los par\u00E1metros reportados. diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoPosterior.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoPosterior.jasper new file mode 100644 index 0000000000000000000000000000000000000000..9cd8f8b850018412bc839211bf663b6519ac8f36 GIT binary patch literal 43041 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioImpressaoPosteriorBean.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioImpressaoPosteriorBean.java new file mode 100644 index 000000000..ce33b68e3 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioImpressaoPosteriorBean.java @@ -0,0 +1,97 @@ +package com.rjconsultores.ventaboletos.relatorios.utilitarios; + +import java.util.Date; + +public class RelatorioImpressaoPosteriorBean { + private String empresa; + private String documento; + private String localizador; + private String nome; + private String reserva; + private String origem; + private String destino; + private String telefone; + private Date dataVenda; + private Date dataEmbarque; + + public String getEmpresa() { + return empresa; + } + + public void setEmpresa(String empresa) { + this.empresa = empresa; + } + + public String getDocumento() { + return documento; + } + + public void setDocumento(String documento) { + this.documento = documento; + } + + public String getLocalizador() { + return localizador; + } + + public void setLocalizador(String localizador) { + this.localizador = localizador; + } + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public String getReserva() { + return reserva; + } + + public void setReserva(String reserva) { + this.reserva = reserva; + } + + public String getOrigem() { + return origem; + } + + public void setOrigem(String origem) { + this.origem = origem; + } + + public String getDestino() { + return destino; + } + + public void setDestino(String destino) { + this.destino = destino; + } + + public String getTelefone() { + return telefone; + } + + public void setTelefone(String telefone) { + this.telefone = telefone; + } + + public Date getDataVenda() { + return dataVenda; + } + + public void setDataVenda(Date dataVenda) { + this.dataVenda = dataVenda; + } + + public Date getDataEmbarque() { + return dataEmbarque; + } + + public void setDataEmbarque(Date dataEmbarque) { + this.dataEmbarque = dataEmbarque; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioImpressaoPosteriorController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioImpressaoPosteriorController.java new file mode 100644 index 000000000..a5e2cf912 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioImpressaoPosteriorController.java @@ -0,0 +1,295 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.sql.DataSource; + +import org.apache.log4j.Logger; +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.Bandbox; +import org.zkoss.zul.Datebox; +import org.zkoss.zul.Paging; +import org.zkoss.zul.Timebox; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.Parada; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioImpressaoPosterior; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.service.EmpresaService; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; +import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; +import com.rjconsultores.ventaboletos.web.utilerias.MyTextbox; +import com.rjconsultores.ventaboletos.web.utilerias.paginacion.HibernateSearchObject; +import com.rjconsultores.ventaboletos.web.utilerias.paginacion.PagedListWrapper; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderParadaImpressaoPosterior; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderParadaImpressaoPosteriorSelecionado; + +@Controller("relatorioImpressaoPosteriorController") +@Scope("prototype") +public class RelatorioImpressaoPosteriorController extends MyGenericForwardComposer { + private static final long serialVersionUID = 1L; + private static Logger log = Logger.getLogger(RelatorioImpressaoPosteriorController.class); + + @Autowired + private DataSource dataSourceRead; + @Autowired + private EmpresaService empresaService; + @Autowired + private transient PagedListWrapper plwParada; + + private Datebox datVendaInicial; + private Datebox datVendaFinal; + private Timebox horVendaInicial; + private Timebox horVendaFinal; + private Datebox datViagemInicial; + private Datebox datViagemFinal; + private Timebox horViagemInicial; + private Timebox horViagemFinal; + private MyComboboxEstandar cmbEmpresa; + private Bandbox bbPesquisaOrigem; + private Bandbox bbPesquisaDestino; + private MyTextbox txtNombreOrigem; + private MyListbox origemList; + private MyListbox origemSelList; + private Paging pagingOrigem; + private MyTextbox txtNombreDestino; + private MyListbox destinoList; + private MyListbox destinoSelList; + private Paging pagingDestino; + + private List lsEmpresas; + + @SuppressWarnings({ "unchecked", "rawtypes" }) + private void executarRelatorio() throws Exception { + try { + Map parametros = new HashMap(); + + Empresa empresa = cmbEmpresa.getSelectedItem() != null ? (Empresa)cmbEmpresa.getSelectedItem().getValue() : null; + + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + SimpleDateFormat sdfTime = new SimpleDateFormat("HH:mm:ss"); + + if (this.datVendaInicial.getValue() != null){ + parametros.put("datVendaInicial", sdf.format(this.datVendaInicial.getValue())); + } + + if (this.datVendaFinal.getValue() != null){ + parametros.put("datVendaFinal", sdf.format(this.datVendaFinal.getValue())); + } + + if (this.datViagemInicial.getValue() != null){ + parametros.put("datViagemInicial", sdf.format(this.datViagemInicial.getValue())); + } + + if (this.datViagemFinal.getValue() != null){ + parametros.put("datViagemFinal", sdf.format(this.datViagemFinal.getValue())); + } + + if (this.horVendaInicial.getValue() != null){ + parametros.put("horVendaInicial", sdfTime.format(this.horVendaInicial.getValue())); + } + + if (this.horVendaFinal.getValue() != null){ + parametros.put("horVendaFinal", sdfTime.format(this.horVendaFinal.getValue())); + } + + if (this.horViagemInicial.getValue() != null){ + parametros.put("horViagemInicial", sdfTime.format(this.horViagemInicial.getValue())); + } + + if (this.horViagemFinal.getValue() != null){ + parametros.put("horViagemFinal", sdfTime.format(this.horViagemFinal.getValue())); + } + + if (empresa != null){ + parametros.put("empresa", empresa.getEmpresaId()); + parametros.put("empresaNome", empresa.getNombempresa()); + } + + parametros.put("TITULO", Labels.getLabel("indexController.mniRelatorioImpressaoPosterior.label")); + + String origemIds = ""; + String origem = ""; + List lsOrigemSelecionadas = new ArrayList(Arrays.asList(origemSelList.getData())); + if (lsOrigemSelecionadas.isEmpty()) { + origem = "Todas"; + } else { + for (int i = 0; i < lsOrigemSelecionadas.size(); i++) { + Parada parada = lsOrigemSelecionadas.get(i); + origem = origem + parada.getDescparada() + ","; + + origemIds = origemIds + parada.getParadaId() + ","; + } + + // removendo ultima virgula + origemIds = origemIds.substring(0, origemIds.length() - 1); + origem = origem.substring(0, origem.length() - 1); + parametros.put("NUMORIGEM", origemIds); + parametros.put("DESCORIGEM", origem); + } + + String destinoIds = ""; + String destino = ""; + List lsDestinoSelecionadas = new ArrayList(Arrays.asList(destinoSelList.getData())); + if (lsDestinoSelecionadas.isEmpty()) { + destino = "Todas"; + } else { + for (int i = 0; i < lsDestinoSelecionadas.size(); i++) { + Parada parada = lsDestinoSelecionadas.get(i); + destino = destino + parada.getDescparada() + ","; + + destinoIds = destinoIds + parada.getParadaId() + ","; + } + + // removendo ultima virgula + destinoIds = destinoIds.substring(0, destinoIds.length() - 1); + destino = destino.substring(0, destino.length() - 1); + parametros.put("NUMDESTINO", destinoIds); + parametros.put("DESCDESTINO", destino); + } + + Relatorio relatorio = new RelatorioImpressaoPosterior(parametros, dataSourceRead.getConnection()); + + Map args = new HashMap(); + args.put("relatorio", relatorio); + + openWindow("/component/reportView.zul", + Labels.getLabel("indexController.mniRelatorioImpressaoPosterior.label"), args, MODAL); + }catch (Exception e) { + log.error(e); + throw e; + } + + } + + public void onClick$btnExecutarRelatorio(Event ev) throws Exception { + executarRelatorio(); + } + + @Override + public void doAfterCompose(Component comp) throws Exception { + lsEmpresas = empresaService.obtenerTodos(); + super.doAfterCompose(comp); + origemList.setItemRenderer(new RenderParadaImpressaoPosterior()); + origemSelList.setItemRenderer(new RenderParadaImpressaoPosteriorSelecionado()); + destinoList.setItemRenderer(new RenderParadaImpressaoPosterior()); + destinoSelList.setItemRenderer(new RenderParadaImpressaoPosteriorSelecionado()); + } + + private void executarPesquisaOrigem() { + HibernateSearchObject paradaBusqueda = + new HibernateSearchObject(Parada.class, pagingOrigem.getPageSize()); + + paradaBusqueda.addFilterILike("descparada", "%" + txtNombreOrigem.getValue() + "%"); + paradaBusqueda.addFilterEqual("activo", Boolean.TRUE); + + paradaBusqueda.addSortAsc("descparada"); + + paradaBusqueda.addFilterEqual("activo", Boolean.TRUE); + + plwParada.init(paradaBusqueda, origemList, pagingOrigem); + + if (origemList.getData().length == 0) { + try { + Messagebox.show(Labels.getLabel("MSG.ningunRegistro"), + Labels.getLabel("relatorioImpressaoPosteriorController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + } catch (InterruptedException ex) { + } + } + } + + public void onClick$btnPesquisaOrigem(Event ev) { + executarPesquisaOrigem(); + } + + public void onDoubleClick$origemSelList(Event ev) { + Parada parada = (Parada) origemSelList.getSelected(); + origemSelList.removeItem(parada); + } + + public void onDoubleClick$origemList(Event ev) { + Parada parada = (Parada) origemList.getSelected(); + origemSelList.addItemNovo(parada); + } + + public void onClick$btnLimparOrigem(Event ev) { + origemList.setData(new ArrayList()); + + bbPesquisaOrigem.setText(""); + } + + private void executarPesquisaDestino() { + HibernateSearchObject paradaBusqueda = + new HibernateSearchObject(Parada.class, pagingDestino.getPageSize()); + + paradaBusqueda.addFilterILike("descparada", "%" + txtNombreDestino.getValue() + "%"); + paradaBusqueda.addFilterEqual("activo", Boolean.TRUE); + + paradaBusqueda.addSortAsc("descparada"); + + paradaBusqueda.addFilterEqual("activo", Boolean.TRUE); + + plwParada.init(paradaBusqueda, destinoList, pagingDestino); + + if (destinoList.getData().length == 0) { + try { + Messagebox.show(Labels.getLabel("MSG.ningunRegistro"), + Labels.getLabel("relatorioImpressaoPosteriorController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + } catch (InterruptedException ex) { + } + } + } + + public void onClick$btnPesquisaDestino(Event ev) { + executarPesquisaDestino(); + } + + public void onDoubleClick$destinoSelList(Event ev) { + Parada parada = (Parada) destinoSelList.getSelected(); + destinoSelList.removeItem(parada); + } + + public void onDoubleClick$destinoList(Event ev) { + Parada parada = (Parada) destinoList.getSelected(); + destinoSelList.addItemNovo(parada); + } + + public void onClick$btnLimparDestino(Event ev) { + destinoList.setData(new ArrayList()); + + bbPesquisaDestino.setText(""); + } + + public MyComboboxEstandar getCmbEmpresa() { + return cmbEmpresa; + } + + public void setCmbEmpresa(MyComboboxEstandar cmbEmpresa) { + this.cmbEmpresa = cmbEmpresa; + } + + public List getLsEmpresas() { + return lsEmpresas; + } + + public void setLsEmpresas(List lsEmpresas) { + this.lsEmpresas = lsEmpresas; + } + + + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioImpressaoPosterior.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioImpressaoPosterior.java new file mode 100644 index 000000000..4e4a70add --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioImpressaoPosterior.java @@ -0,0 +1,25 @@ +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; + +public class ItemMenuRelatorioImpressaoPosterior extends DefaultItemMenuSistema { + + public ItemMenuRelatorioImpressaoPosterior() { + super("indexController.mniRelatorioImpressaoPosterior.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS.MENU.RELATORIOIMPRESSAOPOSTERIOR"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/relatorios/filtroRelatorioImpressaoPosterior.zul", + Labels.getLabel("relatorioImpressaoPosteriorController.window.title"), getArgs() ,desktop); + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties index 8373887d5..5f40493d9 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties @@ -137,6 +137,7 @@ analitico.gerenciais.embarcadaServico=com.rjconsultores.ventaboletos.web.utileri analitico.gerenciais.remDev=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioRemarcacaoDevolucao analitico.gerenciais.tabPreco=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioTabelaPreco analitico.gerenciais.trip=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemRelatorioTripulacao +analitico.gerenciais.relatorioImpressaoPosterior=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioImpressaoPosterior analitico.gerenciais.operacionais=com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.gerenciais.operacionais.SubMenuRelatorioOperacionais analitico.gerenciais.operacionais.aproveitamento=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioAproveitamento analitico.gerenciais.operacionais.resumoLinhas=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioResumoLinhas diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderParadaImpressaoPosterior.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderParadaImpressaoPosterior.java new file mode 100644 index 000000000..7327911ab --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderParadaImpressaoPosterior.java @@ -0,0 +1,31 @@ +/** + * + */ +package com.rjconsultores.ventaboletos.web.utilerias.render; + +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; + +import com.rjconsultores.ventaboletos.entidad.Parada; + +/** + * @author Fabio + * + */ +public class RenderParadaImpressaoPosterior implements ListitemRenderer { + + @Override + public void render(Listitem lstm, Object o) throws Exception { + Parada parada = (Parada) o; + + Listcell lc = new Listcell(parada.getCveparada()); + lc.setParent(lstm); + + lc = new Listcell(parada.getDescparada()); + lc.setParent(lstm); + + lstm.setAttribute("data", parada); + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderParadaImpressaoPosteriorSelecionado.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderParadaImpressaoPosteriorSelecionado.java new file mode 100644 index 000000000..18561cd83 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderParadaImpressaoPosteriorSelecionado.java @@ -0,0 +1,54 @@ +/** + * + */ +package com.rjconsultores.ventaboletos.web.utilerias.render; + +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zul.Button; +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; + +import com.rjconsultores.ventaboletos.entidad.Parada; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; +import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; + +/** + * @author Fabio + * + */ +public class RenderParadaImpressaoPosteriorSelecionado implements ListitemRenderer { + + @Override + public void render(Listitem lstm, Object o) throws Exception { + Parada parada = (Parada) o; + + Listcell lc = new Listcell(parada.getCveparada()); + lc.setParent(lstm); + + lc = new Listcell(parada.getDescparada()); + lc.setParent(lstm); + + Button btn = new Button(); + lc = new Listcell(); + lc.setParent(lstm); + + btn.setWidth("16"); + btn.setHeight("16"); + btn.setImage("/gui/img/remove.png"); + + btn.addEventListener("onClick", new EventListener() { + @Override + public void onEvent(Event event) throws Exception { + MyListbox listBox = (MyListbox) event.getTarget().getParent().getParent().getParent(); + Listitem listItem = (Listitem) event.getTarget().getParent().getParent(); + listBox.removeItem((Parada) listItem.getAttribute("data")); + } + }); + lc.appendChild(btn); + + lstm.setAttribute("data", parada); + } + +} diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index 19d3cf3e8..61edf1a05 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -289,6 +289,7 @@ indexController.mniRelatorioObservacaoConferenciaMovimento.label = Observación indexController.mniRelatorioErrosIntegracaoBGMController.label = Listar errores BGM indexController.mniRelatorioVendasPTAController.label = Ventas PTA indexController.mniRelatorioVendasParcelamento.label=Ventas con Parcelamiento +indexController.mniRelatorioImpressaoPosterior.label=Impresión posterior indexController.mniRelatorioServicoBloqueadoVendaInternet.label = Corrida bloqueada en venta internet indexController.mniRelatorioDocumentosFiscais.label = Report Documentos Fiscais @@ -7138,4 +7139,18 @@ relatorioVendasParcelamentoController.lbate.value = Hasta relatorioVendasParcelamentoController.lbEmpresa.value = Empresa relatorioVendasParcelamentoController.lbOnibus.value = Autobus relatorioVendasParcelamentoController.lbPuntoVenta.value = Agência -relatorioVendasParcelamentoController.lbResumo.value = Resumo \ No newline at end of file +relatorioVendasParcelamentoController.lbResumo.value = Resumo + +# Relatório Impressão Posterior +relatorioImpressaoPosteriorController.window.title = Impresión Posterior +relatorioImpressaoPosteriorController.lbDataFin.value = Fecha Final: +relatorioImpressaoPosteriorController.lbDataIni.value = Fecha Início: +relatorioImpressaoPosteriorController.lbHoraFin.value = Hora Final: +relatorioImpressaoPosteriorController.lbHoraIni.value = Hora Início: +relatorioImpressaoPosteriorController.lbOrigem.value = Origen: +relatorioImpressaoPosteriorController.lbDestino.value = Destino: +relatorioImpressaoPosteriorController.lbTodas.value = Todas +relatorioImpressaoPosteriorController.lbTodas.value = Seleccione +relatorioImpressaoPosteriorController.lbEmpresa.value = Empresa: +relatorioImpressaoPosteriorController.lbVenda.value = Venta +relatorioImpressaoPosteriorController.lbViagem.value = Viaje \ 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 60385aedf..d8d60a425 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -306,6 +306,7 @@ indexController.mniRelatorioObservacaoConferenciaMovimento.label = Movimentos co indexController.mniRelatorioErrosIntegracaoBGMController.label = Listar Erros BGM indexController.mniRelatorioVendasPTA.label = Vendas PTA indexController.mniRelatorioVendasParcelamento.label=Vendas com Parcelamento +indexController.mniRelatorioImpressaoPosterior.label=Impressão Posterior indexController.mniRelatorioServicoBloqueadoVendaInternet.label = Serviço Bloqueado na Venda Internet indexController.mniRelatorioDocumentosFiscais.label = Relatório Documentos Fiscais @@ -7633,4 +7634,20 @@ relatorioVendasParcelamentoController.lbate.value = até relatorioVendasParcelamentoController.lbEmpresa.value = Empresa relatorioVendasParcelamentoController.lbOnibus.value = Ônibus relatorioVendasParcelamentoController.lbPuntoVenta.value = Agência -relatorioVendasParcelamentoController.lbResumo.value = Resumo \ No newline at end of file +relatorioVendasParcelamentoController.lbResumo.value = Resumo + +# Relatório Impressão Posterior +relatorioImpressaoPosteriorController.window.title = Impressão Posterior +relatorioImpressaoPosteriorController.lbDataFin.value = Data Fim: +relatorioImpressaoPosteriorController.lbDataIni.value = Data Início: +relatorioImpressaoPosteriorController.lbHoraFin.value = Hora Fim: +relatorioImpressaoPosteriorController.lbHoraIni.value = Hora Início: +relatorioImpressaoPosteriorController.lbOrigem.value = Origem: +relatorioImpressaoPosteriorController.lbDestino.value = Destino: +relatorioImpressaoPosteriorController.lbEmpresa.value = Empresa: +relatorioImpressaoPosteriorController.lbVenda.value = Venda +relatorioImpressaoPosteriorController.lbViagem.value = Viagem +relatorioImpressaoPosteriorController.lbCodigo.value = Código +relatorioImpressaoPosteriorController.lbDescricao.value = Descrição +relatorioImpressaoPosteriorController.btnPesquisar.label =Pesquisar +relatorioImpressaoPosteriorController.btnLimpar.label =Limpar \ No newline at end of file diff --git a/web/gui/relatorios/filtroRelatorioImpressaoPosterior.zul b/web/gui/relatorios/filtroRelatorioImpressaoPosterior.zul new file mode 100644 index 000000000..65d4c83b3 --- /dev/null +++ b/web/gui/relatorios/filtroRelatorioImpressaoPosterior.zul @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +