diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioGratuidadeIdosoDeficiente.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioGratuidadeIdosoDeficiente.java new file mode 100644 index 000000000..38f7af258 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioGratuidadeIdosoDeficiente.java @@ -0,0 +1,117 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioGratuidadeIdosoDeficienteBean; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +public class RelatorioGratuidadeIdosoDeficiente extends Relatorio { + + private List lsDadosRelatorio; + + public RelatorioGratuidadeIdosoDeficiente(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 fecha = parametros.get("fecha").toString(); + String categoriaId = parametros.get("categoria") != null ? parametros.get("categoria").toString() : ""; + + String sql = getSql(categoriaId, fecha); + + System.out.println(sql); + + NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); + stmt.setString("fecha", fecha); + if (categoriaId != null && !categoriaId.equals("")){ + stmt.setInt("categoriaId", Integer.parseInt(categoriaId)); + } + + ResultSet rset = null; + + rset = stmt.executeQuery(); + + lsDadosRelatorio = new ArrayList(); + + while (rset.next()) { + RelatorioGratuidadeIdosoDeficienteBean gratuidadeBean = new RelatorioGratuidadeIdosoDeficienteBean(); + gratuidadeBean.setDescnumdoc(rset.getString(4)); + gratuidadeBean.setDescorgaodoc(rset.getString(2)); + gratuidadeBean.setDesctipodoc(rset.getString(3)); + gratuidadeBean.setDestino(rset.getString(8)); + gratuidadeBean.setFeccorrida(rset.getDate(6)); + gratuidadeBean.setNombpasajero(rset.getString(1)); + gratuidadeBean.setNumfoliosistema(rset.getString(5)); + gratuidadeBean.setOrigen(rset.getString(7)); + gratuidadeBean.setPrecio(rset.getBigDecimal(9)); + lsDadosRelatorio.add(gratuidadeBean); + } + + 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 getSql(String categoriaId, String fecha) { + StringBuffer sql = new StringBuffer(); + sql.append("select distinct "); + sql.append(" b.nombpasajero, "); + sql.append(" b.descorgaodoc, "); + sql.append(" b.desctipodoc, "); + sql.append(" b.descnumdoc, "); + sql.append(" b.numfoliosistema, "); + sql.append(" b.feccorrida, "); + sql.append(" o.descparada, "); + sql.append(" d.descparada, "); + sql.append(" t.precio "); + sql.append("from "); + sql.append(" boleto b "); + sql.append(" join categoria c on c.categoria_id = b.categoria_id "); + sql.append(" join parada o on o.parada_id = b.origen_id "); + sql.append(" join parada d on d.parada_id = b.destino_id "); + sql.append(" join tarifa t on t.origen_id = b.origen_id "); + sql.append(" and t.destino_id = b.destino_id "); + sql.append(" and t.ruta_id = b.ruta_id "); + sql.append(" and t.claseservicio_id = b.claseservicio_id "); + sql.append(" and t.marca_id = b.marca_id "); + sql.append(" join vigencia_tarifa vt on vt.vigenciatarifa_id = t.vigenciatarifa_id "); + sql.append(" and b.fechorviaje between vt.feciniciovigencia and vt.fecfinvigencia "); + sql.append("where "); + if (!categoriaId.isEmpty()){ + sql.append(" c.categoria_id = :categoriaId "); + } + if (!fecha.isEmpty()){ + sql.append("AND to_char(b.feccorrida, 'MM/YYYY') = :fecha "); + } + sql.append(" and b.motivocancelacion_id is not null "); + sql.append(" and b.activo <> 0 "); + sql.append("order by b.feccorrida, b.nombpasajero"); + + return sql.toString(); + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeIdosoDeficiente_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeIdosoDeficiente_es.properties new file mode 100644 index 000000000..d1835d2f7 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeIdosoDeficiente_es.properties @@ -0,0 +1,28 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. +msg.a=à + +#Labels header +header.periodo=Período: +header.data.hora=Data/Hora\: +header.pagina=P\u00E1gina\: +header.filtro=Filtro\: +header.filtro.servico=Servi\u00E7o\: +header.filtro.linha=Linha\: +header.filtro.grupo=Grupo de Linhas\: + +#Labels detail + +detail.nombpasajero=Nome Beneficiário +detail.numfoliosistema=Nª Passe +detail.descnumdoc=Doc. Ident. +detail.descorgaodoc=Orgão Exp. +detail.feccorrida=Data Viagem +detail.origen=Local Embarque +detail.destino=Local Desemb. +detail.precio=Valor Passagem +detail.numautorizacao=Nº Aut. + +linhas=Linhas + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeIdosoDeficiente_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeIdosoDeficiente_pt_BR.properties new file mode 100644 index 000000000..d1835d2f7 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidadeIdosoDeficiente_pt_BR.properties @@ -0,0 +1,28 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. +msg.a=à + +#Labels header +header.periodo=Período: +header.data.hora=Data/Hora\: +header.pagina=P\u00E1gina\: +header.filtro=Filtro\: +header.filtro.servico=Servi\u00E7o\: +header.filtro.linha=Linha\: +header.filtro.grupo=Grupo de Linhas\: + +#Labels detail + +detail.nombpasajero=Nome Beneficiário +detail.numfoliosistema=Nª Passe +detail.descnumdoc=Doc. Ident. +detail.descorgaodoc=Orgão Exp. +detail.feccorrida=Data Viagem +detail.origen=Local Embarque +detail.destino=Local Desemb. +detail.precio=Valor Passagem +detail.numautorizacao=Nº Aut. + +linhas=Linhas + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidadeIdosoDeficiente.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidadeIdosoDeficiente.jasper new file mode 100644 index 000000000..dee13715e Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidadeIdosoDeficiente.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidadeIdosoDeficiente.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidadeIdosoDeficiente.jrxml new file mode 100644 index 000000000..e32d037d5 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidadeIdosoDeficiente.jrxml @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioGratuidadeIdosoDeficienteBean.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioGratuidadeIdosoDeficienteBean.java new file mode 100644 index 000000000..34d73342e --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioGratuidadeIdosoDeficienteBean.java @@ -0,0 +1,78 @@ +package com.rjconsultores.ventaboletos.relatorios.utilitarios; + +import java.math.BigDecimal; +import java.util.Date; + +public class RelatorioGratuidadeIdosoDeficienteBean { + private String nombpasajero; + private String descorgaodoc; + private String desctipodoc; + private String descnumdoc; + private String numfoliosistema; + private String numautorizacao; + private Date feccorrida; + private String origen; + private String destino; + private BigDecimal precio; + + public String getNombpasajero() { + return nombpasajero; + } + public void setNombpasajero(String nombpasajero) { + this.nombpasajero = nombpasajero; + } + public String getDescorgaodoc() { + return descorgaodoc; + } + public void setDescorgaodoc(String descorgaodoc) { + this.descorgaodoc = descorgaodoc; + } + public String getDesctipodoc() { + return desctipodoc; + } + public void setDesctipodoc(String desctipodoc) { + this.desctipodoc = desctipodoc; + } + public String getDescnumdoc() { + return descnumdoc; + } + public void setDescnumdoc(String descnumdoc) { + this.descnumdoc = descnumdoc; + } + public String getNumfoliosistema() { + return numfoliosistema; + } + public void setNumfoliosistema(String numfoliosistema) { + this.numfoliosistema = numfoliosistema; + } + public Date getFeccorrida() { + return feccorrida; + } + public void setFeccorrida(Date feccorrida) { + this.feccorrida = feccorrida; + } + public String getOrigen() { + return origen; + } + public void setOrigen(String origen) { + this.origen = origen; + } + public String getDestino() { + return destino; + } + public void setDestino(String destino) { + this.destino = destino; + } + public BigDecimal getPrecio() { + return precio; + } + public void setPrecio(BigDecimal precio) { + this.precio = precio; + } + public String getNumautorizacao() { + return numautorizacao; + } + public void setNumautorizacao(String numautorizacao) { + this.numautorizacao = numautorizacao; + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioGratuidadeIdosoDeficienteController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioGratuidadeIdosoDeficienteController.java new file mode 100644 index 000000000..ec6b1e60b --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioGratuidadeIdosoDeficienteController.java @@ -0,0 +1,85 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; + +import java.text.SimpleDateFormat; +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.zk.ui.Component; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zul.Datebox; + +import com.rjconsultores.ventaboletos.entidad.Categoria; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioGratuidadeIdosoDeficiente; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.service.CategoriaService; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; + +@Controller("relatorioGratuidadeIdosoDeficienteController") +@Scope("prototype") +public class RelatorioGratuidadeIdosoDeficienteController extends MyGenericForwardComposer { + private static final long serialVersionUID = 1L; + private static Logger log = Logger.getLogger(RelatorioGratuidadeIdosoDeficienteController.class); + + @Autowired + private DataSource dataSourceRead; + + @Autowired + private CategoriaService categoriaService; + + private Datebox data; + private MyComboboxEstandar cmbCategoria; + + private List lsCategorias; + + private void executarRelatorio() throws Exception { + + Map parametros = new HashMap(); + + SimpleDateFormat sdf = new SimpleDateFormat("MM/yyyy"); + parametros.put("fecha", sdf.format(this.data.getValue())); + + if (cmbCategoria.getSelectedIndex() != -1) { + parametros.put("categoria", ((Categoria) cmbCategoria.getSelectedItem().getValue()).getCategoriaId()); + } + + parametros.put("TITULO", Labels.getLabel("relatorioGratuidadeIdosoDeficienteController.window.title")); + + Relatorio relatorio = new RelatorioGratuidadeIdosoDeficiente(parametros, dataSourceRead.getConnection()); + + Map args = new HashMap(); + args.put("relatorio", relatorio); + + openWindow("/component/reportView.zul", + Labels.getLabel("relatorioGratuidadeIdosoDeficienteController.window.title"), args, MODAL); + + } + + public void onClick$btnExecutarRelatorio(Event ev) throws Exception { + executarRelatorio(); + } + + @Override + public void doAfterCompose(Component comp) throws Exception { + + lsCategorias = categoriaService.obtenerTodos(); + + super.doAfterCompose(comp); + } + + public List getLsCategorias() { + return lsCategorias; + } + + public void setLsCategorias(List lsCategorias) { + this.lsCategorias = lsCategorias; + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioGratuidadeIdosoDeficiente.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioGratuidadeIdosoDeficiente.java new file mode 100644 index 000000000..156632fac --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioGratuidadeIdosoDeficiente.java @@ -0,0 +1,24 @@ +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 ItemMenuRelatorioGratuidadeIdosoDeficiente extends DefaultItemMenuSistema { + + public ItemMenuRelatorioGratuidadeIdosoDeficiente() { + super("indexController.mniRelatorioGratuidadeIdosoDeficiente.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS.MENU.RELATORIOGRATUIDADEIDOSODEFICIENTE"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/relatorios/filtroRelatorioGratuidadeIdosoDeficiente.zul", + Labels.getLabel("indexController.mniRelatorioGratuidadeIdosoDeficiente.label"), getArgs(), desktop); + } +} diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index 909c8f6d8..096c5be3f 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -240,6 +240,7 @@ indexController.mniRelatorioEmpresaCorrida.label = Reporte de la empresa corrida indexController.mniRelatorioEmpresaOnibus.label = Reporte de la empresa autobús indexController.mniRelatorioOCD.label = Reporte OCD por la empresa indexController.mniRelatorioGratuidade.label = Reporte Gratuidade +indexController.mniRelatorioGratuidadeIdosoDeficiente.label = Reporte Gratuidade Idoso/Deficiente indexController.mniRelatorioVendasBilheteiro.label = Reporte de Ventas por Agente de Billetes indexController.mniRelatorioAgenciasNaoImportadas.label = Reporte Puntos Venta no Importados indexController.mniRelatorioCheckin.label = Reporte de Checkin's @@ -282,6 +283,8 @@ indexController.mniRelatorioDescontos.label = Reporte Descuentos indexController.mniRelatorioDepositos.label=Cierre Cnt Contábil / Depósitos indexController.mniRelatorioDepositosDetalhados.label=Depósitos Detallados +indexController.mniRelatorioGratuidadeIdosoDeficiente.label = Relatório Gratuidade Idoso/Deficiente + #PARTE REALIZADA POR MANUEL indexController.mnCortesias.label = Cortesias para empleados indexController.mniTipoCortesiaD.label = Descuento por tipo de cortesia @@ -6203,4 +6206,9 @@ relatorioObservacaoConferenciaMovimentoController.btnPesquisa.label = Búsqueda relatorioObservacaoConferenciaMovimentoController.lbDataIni.value = Fecha Inicio relatorioObservacaoConferenciaMovimentoController.lbDataFin.value = Fecha Final relatorioObservacaoConferenciaMovimentoController.lbEmpresa.value = Empresa -relatorioObservacaoConferenciaMovimentoController.lbPuntoVenta.value = Punto venta \ No newline at end of file +relatorioObservacaoConferenciaMovimentoController.lbPuntoVenta.value = Punto venta + +# Relatório Gratuidade Idoso Deficiente +relatorioGratuidadeIdosoDeficienteController.window.title = Relatório Gratuidade Idoso/Deficiente +relatorioGratuidadeIdosoDeficienteController.lbCategoria.value = Categoria +relatorioGratuidadeIdosoDeficienteController.lbData.value = Mês \ 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 30e37e5b0..628f8de48 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -244,6 +244,7 @@ indexController.mniRelatorioEmpresaCorrida.label = Relatório por Empresa Corrid indexController.mniRelatorioEmpresaOnibus.label = Relatório por Empresa Ônibus indexController.mniRelatorioOCD.label = Relatório OCD por Empresa indexController.mniRelatorioGratuidade.label = Relatório Gratuidade +indexController.mniRelatorioGratuidadeIdosoDeficiente.label = Relatório Gratuidade Idoso/Deficiente 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 @@ -308,6 +309,8 @@ indexController.mniTipoConvenio.label = Tipo Convênio indexController.mniCuponConvenio.label = Cupom Convênio indexController.mniPrecioVentaja.label = Aproveitamento Seletivo +indexController.mniRelatorioGratuidadeIdosoDeficiente.label = Relatório Gratuidade Idoso/Deficiente + # Muestra a Pesquisa Tipo Classe busquedaClaseServicioController.window.title = Tipo de Classe busquedaClaseServicioController.btnRefresh.tooltiptext = Atualizar @@ -6335,4 +6338,9 @@ relatorioObservacaoConferenciaMovimentoController.btnCerrar.tooltiptext = Fechar relatorioObservacaoConferenciaMovimentoController.lbDataIni.value = Data Inicio relatorioObservacaoConferenciaMovimentoController.lbDataFin.value = Data Final relatorioObservacaoConferenciaMovimentoController.lbEmpresa.value = Empresa -relatorioObservacaoConferenciaMovimentoController.lbPuntoVenta.value = Punto venta \ No newline at end of file +relatorioObservacaoConferenciaMovimentoController.lbPuntoVenta.value = Punto venta + +# Relatório Gratuidade Idoso Deficiente +relatorioGratuidadeIdosoDeficienteController.window.title = Relatório Gratuidade Idoso/Deficiente +relatorioGratuidadeIdosoDeficienteController.lbCategoria.value = Categoria +relatorioGratuidadeIdosoDeficienteController.lbData.value = Mês \ No newline at end of file diff --git a/web/gui/relatorios/filtroRelatorioGratuidadeIdosoDeficiente.zul b/web/gui/relatorios/filtroRelatorioGratuidadeIdosoDeficiente.zul new file mode 100644 index 000000000..d25a8813e --- /dev/null +++ b/web/gui/relatorios/filtroRelatorioGratuidadeIdosoDeficiente.zul @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + +