From d048a559395c8f3bd11f9ff9a7072ba19641540b Mon Sep 17 00:00:00 2001 From: julio Date: Wed, 10 Jun 2015 18:39:33 +0000 Subject: [PATCH] =?UTF-8?q?P5=20-=20Criar=20um=20relat=C3=B3rio=20de=20con?= =?UTF-8?q?fer=C3=AAncia=20de=20checkin=E2=80=99s=20por=20localidade=20de?= =?UTF-8?q?=20partida=20(fixes=20bug=20#6360)=20Tempo:=2010=20horas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@44871 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../relatorios/impl/RelatorioCheckin.java | 104 +++++++++++ .../RelatorioCheckin_es.properties | 0 .../RelatorioCheckin_pt_BR.properties | 13 ++ .../templates/RelatorioCheckin.jasper | Bin 0 -> 26863 bytes .../templates/RelatorioCheckin.jrxml | 175 ++++++++++++++++++ .../relatorios/utilitarios/Checkin.java | 89 +++++++++ .../RelatorioCheckinController.java | 110 +++++++++++ .../relatorios/ItemMenuRelatorioCheckin.java | 25 +++ web/WEB-INF/i3-label_es_MX.label | 1 + web/WEB-INF/i3-label_pt_BR.label | 1 + web/gui/relatorios/filtroRelatorioCheckin.zul | 81 ++++++++ 11 files changed, 599 insertions(+) create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCheckin.java create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCheckin_es.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCheckin_pt_BR.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCheckin.jasper create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCheckin.jrxml create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/Checkin.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioCheckinController.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioCheckin.java create mode 100644 web/gui/relatorios/filtroRelatorioCheckin.zul diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCheckin.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCheckin.java new file mode 100644 index 000000000..fe9c23833 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCheckin.java @@ -0,0 +1,104 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +import org.apache.commons.lang.StringUtils; + +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Checkin; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +public class RelatorioCheckin extends Relatorio { + + public RelatorioCheckin(Map parametros, Connection conexao) { + super(parametros, conexao); + } + + @Override + protected void processaParametros() throws Exception { + + Integer corridaId = (Integer) getParametros().get("CORRIDA_ID"); + Integer origenId = (Integer) getParametros().get("ORIGEN_ID"); + String nomeBilheteiro = (String) getParametros().get("NOME_BILHETEIRO"); + String numVoucher = (String) getParametros().get("NUM_VOUCHER"); + Date fecInicio = (Date) getParametros().get("DATA_INICIAL"); + Date fecFinal = (Date) getParametros().get("DATA_FINAL"); + + String sql = getSql(fecInicio, fecFinal, corridaId, origenId, nomeBilheteiro, numVoucher); + + NamedParameterStatement stmt = new NamedParameterStatement(getConexao(), sql); + + if (fecInicio != null && fecFinal != null) { + stmt.setTimestamp("fecInicio", new java.sql.Timestamp(fecInicio.getTime())); + stmt.setTimestamp("fecFinal", new java.sql.Timestamp(fecFinal.getTime())); + } + + if (corridaId != null) { + stmt.setInt("corridaId", corridaId); + } + + if (origenId != null) { + stmt.setInt("origenId", origenId); + } + + if (StringUtils.isNotBlank(nomeBilheteiro)) { + stmt.setString("nomeBilheteiro", nomeBilheteiro); + } + + if (StringUtils.isNotBlank(numVoucher)) { + stmt.setString("numVoucher", numVoucher); + } + + List checkins = new ArrayList(); + + ResultSet rset = stmt.executeQuery(); + while (rset.next()) { + + Checkin checkin = new Checkin(); + checkin.setBoletoId(rset.getLong("boleto_Id")); + checkin.setNumFolioSistema(rset.getString("numoperacion")); + checkin.setOrigen(rset.getString("descparada")); + checkin.setCorridaId(rset.getInt("corrida_id")); + checkin.setFeccorrida(rset.getTimestamp("feccorrida")); + checkin.setDataVenda(rset.getTimestamp("datavenda")); + checkin.setDataCancelado(rset.getTimestamp("datacancelado")); + checkin.setDataRemarcacao(rset.getTimestamp("dataremarcacao")); + checkin.setNombUsuario(rset.getString("nombusuario")); + + checkins.add(checkin); + } + + setLsDadosRelatorio(checkins); + } + + public void setLsDadosRelatorio(List checkins) { + this.setCollectionDataSource(new JRBeanCollectionDataSource(checkins)); + } + + private String getSql(Date fecInicio, Date fecFinal, Integer corridaId, Integer origenId, String nomeBilheteiro, String numVoucher) { + + StringBuffer sql = new StringBuffer(); + sql.append("select b.boleto_id, b.numoperacion, o.descparada, b.corrida_id, "); + sql.append("b.feccorrida, bc.datavenda, bc.datacancelado, bc.dataremarcacao, u.nombusuario "); + sql.append("from boleto b "); + sql.append("inner join boleto_checkin bc on b.boleto_id = bc.boletooriginal_id "); + sql.append("inner join parada o on b.origen_id = o.parada_id "); + sql.append("inner join usuario u on b.usuario_id = u.usuario_id "); + sql.append(" where b.activo = 1 "); + sql.append(fecInicio == null && fecFinal == null ? "" : "and b.feccorrida between :fecInicio and :fecFinal "); + sql.append(corridaId == null ? "" : " and b.corrida_id = :corridaId "); + sql.append(origenId == null ? "" : " and b.origen_id = :origenId "); + sql.append(StringUtils.isBlank(nomeBilheteiro) ? "" : " and u.nombusuario like :nomeBilheteiro "); + sql.append(StringUtils.isBlank(numVoucher) ? "" : " and b.numoperacion = :numVoucher "); + + return sql.toString(); + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCheckin_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCheckin_es.properties new file mode 100644 index 000000000..e69de29bb diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCheckin_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCheckin_pt_BR.properties new file mode 100644 index 000000000..01f6ecc2b --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCheckin_pt_BR.properties @@ -0,0 +1,13 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + + +#Labels cabeçalho +cabecalho.relatorio=Relatório: +cabecalho.periodo=Período: +cabecalho.periodoA=à +cabecalho.dataHora=Data/Hora: +cabecalho.impressorPor=Impressor por: +cabecalho.pagina=Página +cabecalho.de=de +cabecalho.filtros=Filtros: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCheckin.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCheckin.jasper new file mode 100644 index 0000000000000000000000000000000000000000..6790b4f8ae30d59871487c9fe00a5b6245b6b88d GIT binary patch literal 26863 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 CIW=qm literal 0 HcmV?d00001 diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCheckin.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCheckin.jrxml new file mode 100644 index 000000000..c91014aef --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCheckin.jrxml @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="24" splitType="Stretch"> + <textField pattern="" isBlankWhenNull="false"> + <reportElement mode="Transparent" x="0" y="0" width="338" height="20" forecolor="#000000" backcolor="#FFFFFF" uuid="5ee43799-932b-4ce1-8056-df380a9050a8"/> + <textElement textAlignment="Left" verticalAlignment="Top" rotation="None" markup="none"> + <font fontName="SansSerif" size="12" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$P{NOME_RELATORIO}]]></textFieldExpression> + </textField> + <line> + <reportElement x="0" y="20" width="555" height="1" uuid="b28df970-c219-4853-afeb-6821e0a44f04"/> + </line> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/Checkin.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/Checkin.java new file mode 100644 index 000000000..2c6c0f550 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/Checkin.java @@ -0,0 +1,89 @@ +package com.rjconsultores.ventaboletos.relatorios.utilitarios; + +import java.util.Date; + +public class Checkin { + + private Long boletoId; + private String numFolioSistema; + private String origen; + private Integer corridaId; + private Date feccorrida; + private Date dataVenda; + private Date dataCancelado; + private Date dataRemarcacao; + private String nombUsuario; + + public Long getBoletoId() { + return boletoId; + } + + public void setBoletoId(Long boletoId) { + this.boletoId = boletoId; + } + + public String getNumFolioSistema() { + return numFolioSistema; + } + + public void setNumFolioSistema(String numFolioSistema) { + this.numFolioSistema = numFolioSistema; + } + + public String getOrigen() { + return origen; + } + + public void setOrigen(String origen) { + this.origen = origen; + } + + public Integer getCorridaId() { + return corridaId; + } + + public void setCorridaId(Integer corridaId) { + this.corridaId = corridaId; + } + + public Date getFeccorrida() { + return feccorrida; + } + + public void setFeccorrida(Date feccorrida) { + this.feccorrida = feccorrida; + } + + public Date getDataVenda() { + return dataVenda; + } + + public void setDataVenda(Date dataVenda) { + this.dataVenda = dataVenda; + } + + public Date getDataCancelado() { + return dataCancelado; + } + + public void setDataCancelado(Date dataCancelado) { + this.dataCancelado = dataCancelado; + } + + public Date getDataRemarcacao() { + return dataRemarcacao; + } + + public void setDataRemarcacao(Date dataRemarcacao) { + this.dataRemarcacao = dataRemarcacao; + } + + public String getNombUsuario() { + return nombUsuario; + } + + public void setNombUsuario(String nombUsuario) { + this.nombUsuario = nombUsuario; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioCheckinController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioCheckinController.java new file mode 100644 index 000000000..3d0415af3 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioCheckinController.java @@ -0,0 +1,110 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; + +import java.util.HashMap; +import java.util.Map; + +import javax.sql.DataSource; + +import org.apache.commons.lang.StringUtils; +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.ComboitemRenderer; +import org.zkoss.zul.Datebox; +import org.zkoss.zul.Intbox; +import org.zkoss.zul.Textbox; + +import com.rjconsultores.ventaboletos.entidad.Parada; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioCheckin; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxParada; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxParadaCve; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; + +@Controller("relatorioCheckinController") +@Scope("prototype") +public class RelatorioCheckinController extends MyGenericForwardComposer { + + private static final long serialVersionUID = 1L; + + private Datebox datInicial; + private Datebox datFinal; + private Intbox txtCorridaId; + private Textbox txtBilheteiro; + private Textbox txtVoucher; + + private MyComboboxParada cmbParadaOrigem; + private MyComboboxParadaCve cmbParadaOrigemCve; + + @Autowired + private DataSource dataSourceRead; + + @Override + public void doAfterCompose(Component comp) throws Exception { + + super.doAfterCompose(comp); + + cmbParadaOrigemCve.setItemRenderer(new ComboitemRenderer() { + @Override + public void render(Comboitem cmbtm, Object o) throws Exception { + Parada parada = (Parada) o; + + cmbtm.setLabel(parada.getCveparada()); + cmbtm.setValue(parada); + } + }); + } + + public void onClick$btnExecutarRelatorio(Event ev) throws Exception { + + Integer origenId = cmbParadaOrigemCve.getSelectedItem() == null ? null + : ((Parada) cmbParadaOrigemCve.getSelectedItem().getValue()).getParadaId(); + String origen = cmbParadaOrigemCve.getSelectedItem() == null ? null + : ((Parada) cmbParadaOrigemCve.getSelectedItem().getValue()).getDescparada(); + + if (origenId == null && txtCorridaId.getValue() == null && StringUtils.isBlank(txtBilheteiro.getValue()) + && datInicial.getValue() == null && datFinal.getValue() == null && StringUtils.isBlank(txtVoucher.getValue())) { + + Messagebox.show(Labels.getLabel("MSG.ningunRegistro"), + Labels.getLabel("indexController.mniRelatorioCheckin.label"), + Messagebox.OK, Messagebox.INFORMATION); + return; + } + + Map parametros = new HashMap(); + parametros.put("CORRIDA_ID", txtCorridaId.getValue()); + parametros.put("NOME_BILHETEIRO", txtBilheteiro.getValue()); + parametros.put("DATA_INICIAL", datInicial.getValue()); + parametros.put("DATA_FINAL", datFinal.getValue()); + parametros.put("NUM_VOUCHER", txtVoucher.getValue()); + parametros.put("ORIGEN_ID", origenId); + parametros.put("ORIGEN", origen); + parametros.put("NOME_RELATORIO", Labels.getLabel("indexController.mniRelatorioCheckin.label")); + + Relatorio relatorio = new RelatorioCheckin(parametros, dataSourceRead.getConnection()); + + Map args = new HashMap(); + args.put("relatorio", relatorio); + + openWindow("/component/reportView.zul", + Labels.getLabel("indexController.mniRelatorioCheckin.label"), args, MODAL); + } + + public void onSelect$cmbParadaOrigemCve(Event ev) { + if (cmbParadaOrigemCve.getSelectedItem() != null) { + cmbParadaOrigem.setComboItemByParada((Parada) cmbParadaOrigemCve.getSelectedItem().getValue()); + } + } + + public void onSelect$cmbParadaOrigem(Event ev) { + if (cmbParadaOrigem.getSelectedItem() != null) + cmbParadaOrigemCve.setComboItemByParada((Parada) cmbParadaOrigem.getSelectedItem().getValue()); + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioCheckin.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioCheckin.java new file mode 100644 index 000000000..b290cd92a --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioCheckin.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 ItemMenuRelatorioCheckin extends DefaultItemMenuSistema { + + public ItemMenuRelatorioCheckin() { + super("indexController.mniRelatorioCheckin.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS.MENU.RELATORIOCHECKIN"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/relatorios/filtroRelatorioCheckin.zul", + Labels.getLabel("indexController.mniRelatorioCheckin.label"), getArgs(), desktop); + } + +} \ No newline at end of file diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index 9006f90f4..5049acb1f 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -235,6 +235,7 @@ indexController.mniRelatorioOCD.label = Reporte OCD por la empresa indexController.mniRelatorioGratuidade.label = Reporte Gratuidade indexController.mniRelatorioVendasBilheteiro.label = Reporte de Ventas por Agente de Billetes indexController.mniRelatorioAgenciasNaoImportadas.label = Reporte Puntos Venta no Importados +indexController.mniRelatorioCheckin.label = Relatório de Checkin's indexController.mniFechamentoParamgeral.label = Fechamento Conta Corrente indexController.mniFechamentoParamptovta.label = Fechamento Conta Corrente Agência indexController.mniRelatorioCorridas.label = Reporte de Corridas diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index b349de228..f9d7fa5d1 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -239,6 +239,7 @@ indexController.mniRelatorioOCD.label = Relatório OCD por Empresa indexController.mniRelatorioGratuidade.label = Relatório Gratuidade indexController.mniRelatorioVendasBilheteiro.label = Relatório de Vendas por Bilheteiro indexController.mniRelatorioAgenciasNaoImportadas.label = Relatório de Agências não Importadas +indexController.mniRelatorioCheckin.label = Relatório de Checkin's indexController.mniFechamentoParamgeral.label = Fechamento Conta Corrente indexController.mniFechamentoParamptovta.label = Fechamento Conta Corrente Agência indexController.mniRelatorioCorridas.label = Relatório de Serviços diff --git a/web/gui/relatorios/filtroRelatorioCheckin.zul b/web/gui/relatorios/filtroRelatorioCheckin.zul new file mode 100644 index 000000000..e17ea7134 --- /dev/null +++ b/web/gui/relatorios/filtroRelatorioCheckin.zul @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +