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 000000000..9cd8f8b85 Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoPosterior.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoPosterior.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoPosterior.jrxml new file mode 100644 index 000000000..69e54062a --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoPosterior.jrxml @@ -0,0 +1,324 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +