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 000000000..6790b4f8a Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCheckin.jasper differ 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +