diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioTabelaPreco.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioTabelaPreco.java new file mode 100644 index 000000000..5a200b814 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioTabelaPreco.java @@ -0,0 +1,95 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.Timestamp; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +public class RelatorioTabelaPreco extends Relatorio { + + public RelatorioTabelaPreco(Map parametros, Connection conexao) throws Exception { + super(parametros, conexao); + + this.setCustomDataSource(new ArrayDataSource(this) { + + public void initDados() throws Exception { + Connection conexao = this.relatorio.getConexao(); + Map parametros = this.relatorio.getParametros(); + NamedParameterStatement stmt = new NamedParameterStatement(conexao, getSql()); + + stmt.setTimestamp("dataInicial", new Timestamp(DateUtil.inicioFecha((Date) parametros.get("DATA_INICIAL")).getTime())); + stmt.setTimestamp("dataFinal", new Timestamp(DateUtil.fimFecha((Date) parametros.get("DATA_FINAL")).getTime())); + + ResultSet rset = stmt.executeQuery(); + + while (rset.next()) { + Map dataResult = new HashMap(); + + dataResult.put("origem", rset.getString("origem")); + dataResult.put("destino", rset.getString("destino")); + dataResult.put("tarifa", rset.getBigDecimal("tarifa")); + dataResult.put("pedagio", rset.getBigDecimal("pedagio")); + dataResult.put("taxaEmbarque", rset.getBigDecimal("taxaEmbarque")); + dataResult.put("seguro", rset.getBigDecimal("seguro")); + dataResult.put("outros", rset.getBigDecimal("outros")); + dataResult.put("tipoClasse", rset.getString("tipoClasse")); + dataResult.put("linha", rset.getString("linha")); + dataResult.put("empresa", rset.getString("empresa")); + dataResult.put("dataVigencia", rset.getString("dataVigencia")); + + this.dados.add(dataResult); + } + + this.resultSet = rset; + } + }); + } + + @Override + protected void processaParametros() throws Exception { + } + + private String getSql() { + StringBuilder sql = new StringBuilder(); + + sql.append("SELECT pOrigem.DESCPARADA as origem, "); + sql.append(" pDestino.DESCPARADA as destino, "); + sql.append(" COALESCE(t.precio,0) as tarifa, "); + sql.append(" COALESCE(t.IMPORTEPEDAGIO, 0) as pedagio, "); + sql.append(" COALESCE(t.IMPORTETAXAEMBARQUE, 0) as taxaEmbarque, "); + sql.append(" COALESCE(t.IMPORTESEGURO, 0) as seguro, "); + sql.append(" COALESCE(t.IMPORTEOUTROS, 0) as outros, "); + sql.append(" cs.DESCCLASE as tipoClasse, "); + sql.append(" r.DESCRUTA as linha, "); + sql.append(" e.NOMBEMPRESA as empresa, "); + sql.append(" vt.FECINICIOVIGENCIA || ' à ' || vt.FECFINVIGENCIA as dataVigencia "); + sql.append("FROM TARIFA t "); + sql.append("INNER JOIN PARADA pOrigem ON t.ORIGEN_ID = pOrigem.PARADA_ID "); + sql.append("INNER JOIN PARADA pDestino ON t.DESTINO_ID = pDestino.PARADA_ID "); + sql.append("INNER JOIN CLASE_SERVICIO cs ON cs.CLASESERVICIO_ID = t.CLASESERVICIO_ID "); + sql.append("INNER JOIN RUTA r ON r.RUTA_ID = t.RUTA_ID "); + sql.append("INNER JOIN MARCA m ON m.MARCA_ID = t.MARCA_ID "); + sql.append("INNER JOIN EMPRESA e ON e.EMPRESA_ID = m.EMPRESA_ID "); + sql.append("INNER JOIN VIGENCIA_TARIFA vt ON vt.VIGENCIATARIFA_ID = t.VIGENCIATARIFA_ID "); + sql.append("WHERE (:dataInicial BETWEEN vt.FECINICIOVIGENCIA AND vt.FECFINVIGENCIA ) "); + sql.append("AND (:dataFinal BETWEEN vt.FECINICIOVIGENCIA AND vt.FECFINVIGENCIA ) "); + + if (parametros.get("EMPRESA_ID") != null) { + sql.append(" AND e.empresa_id = " + parametros.get("EMPRESA_ID")); + } + + if (parametros.get("RUTA_ID") != null) { + sql.append(" AND r.RUTA_ID = " + parametros.get("RUTA_ID")); + } + + return sql.toString(); + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioTabelaPreco_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioTabelaPreco_es.properties new file mode 100644 index 000000000..ca8a404a6 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioTabelaPreco_es.properties @@ -0,0 +1,25 @@ +#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: + +#Labels header +label.origem=Origem +label.destino=Destino +label.tarifa=Tarifa +label.pedagio=Pedágio +label.taxaEmbarque=Taxa +label.seguro=Seguro +label.outros=Outros +label.tipoClasse=Classe +label.linha=Linha +label.empresa=Empresa +label.dataVigencia=Vigência \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioTabelaPreco_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioTabelaPreco_pt_BR.properties new file mode 100644 index 000000000..ca8a404a6 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioTabelaPreco_pt_BR.properties @@ -0,0 +1,25 @@ +#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: + +#Labels header +label.origem=Origem +label.destino=Destino +label.tarifa=Tarifa +label.pedagio=Pedágio +label.taxaEmbarque=Taxa +label.seguro=Seguro +label.outros=Outros +label.tipoClasse=Classe +label.linha=Linha +label.empresa=Empresa +label.dataVigencia=Vigência \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioTabelaPreco.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioTabelaPreco.jasper new file mode 100644 index 000000000..6530b4717 Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioTabelaPreco.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioTabelaPreco.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioTabelaPreco.jrxml new file mode 100644 index 000000000..c33641763 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioTabelaPreco.jrxml @@ -0,0 +1,315 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioTabelaPrecoController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioTabelaPrecoController.java new file mode 100644 index 000000000..2aea0c66d --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioTabelaPrecoController.java @@ -0,0 +1,185 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; + +import java.util.Calendar; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.sql.DataSource; + +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.Datebox; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.Ruta; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioTabelaPreco; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.service.EmpresaService; +import com.rjconsultores.ventaboletos.service.RutaService; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; + +@Controller("relatorioTabelaPrecoController") +@Scope("prototype") +public class RelatorioTabelaPrecoController extends MyGenericForwardComposer { + + private static final long serialVersionUID = 1L; + + private Datebox datInicial; + private Datebox datFinal; + private MyComboboxEstandar cmbEmpresa; + private List lsEmpresa; + private MyComboboxEstandar cmbRuta; + private List lsRuta; + + @Autowired + private EmpresaService empresaService; + @Autowired + private RutaService rutaService; + @Autowired + private DataSource dataSourceRead; + + @Override + public void doAfterCompose(Component comp) throws Exception { + lsEmpresa = empresaService.obtenerTodos(); + lsRuta = rutaService.obtenerTodos(); + super.doAfterCompose(comp); + } + + /** + * @throws Exception + * + */ + @SuppressWarnings({ "rawtypes", "unchecked" }) + private void executarRelatorio() throws Exception { + { + if (datInicial != null && datFinal != null && datFinal.getValue().compareTo(datInicial.getValue()) < 0) { + try { + Messagebox.show(Labels.getLabel("MSG.ningunRegistro"), + Labels.getLabel("relatorioTabelaPrecoController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + } catch (InterruptedException ex) { + ex.printStackTrace(); + } + } else + { + Relatorio relatorio; + + Map parametros = new HashMap(); + + StringBuilder filtro = new StringBuilder(); + + filtro.append("Início período: "); + Calendar cal = Calendar.getInstance(); + cal.setTime(datInicial.getValue()); + filtro.append(cal.get(Calendar.DATE) + "/"); + filtro.append((cal.get(Calendar.MONTH) + 1) + "/"); + filtro.append(cal.get(Calendar.YEAR) + "; "); + + filtro.append("Fim período: "); + cal.setTime(datFinal.getValue()); + filtro.append(cal.get(Calendar.DATE) + "/"); + filtro.append((cal.get(Calendar.MONTH) + 1) + "/"); + filtro.append(cal.get(Calendar.YEAR) + "; "); + + parametros.put("DATA_INICIAL", (java.util.Date) datInicial.getValue()); + parametros.put("DATA_FINAL", (java.util.Date) datFinal.getValue()); + parametros.put("NOME_RELATORIO", Labels.getLabel("relatorioTabelaPrecoController.window.title")); + parametros.put("USUARIO", UsuarioLogado.getUsuarioLogado().getUsuarioId().toString()); + parametros.put("USUARIO_NOME", UsuarioLogado.getUsuarioLogado().getNombusuario()); + + filtro.append("Empresa: "); + Comboitem itemEmpresa = cmbEmpresa.getSelectedItem(); + if (itemEmpresa != null) { + Empresa empresa = (Empresa) itemEmpresa.getValue(); + parametros.put("EMPRESA_ID", empresa.getEmpresaId()); + filtro.append(empresa.getNombempresa() + ";"); + } else { + filtro.append(" Todas;"); + } + + filtro.append("Linha: "); + Comboitem itemRuta = cmbRuta.getSelectedItem(); + if (itemRuta != null) { + Ruta ruta = (Ruta) itemRuta.getValue(); + parametros.put("RUTA_ID", ruta.getRutaId()); + filtro.append(ruta.getDescruta() + ";"); + } else { + filtro.append(" Todas;"); + } + + parametros.put("FILTROS", filtro.toString()); + + relatorio = new RelatorioTabelaPreco(parametros, dataSourceRead.getConnection()); + + Map args = new HashMap(); + args.put("relatorio", relatorio); + + openWindow("/component/reportView.zul", + Labels.getLabel("relatorioTabelaPrecoController.window.title"), args, MODAL); + } + } + } + + public void onClick$btnExecutarRelatorio(Event ev) throws Exception{ + executarRelatorio(); + } + + + public Datebox getDatInicial() { + return datInicial; + } + + public void setDatInicial(Datebox datInicial) { + this.datInicial = datInicial; + } + + public Datebox getDatFinal() { + return datFinal; + } + + public void setDatFinal(Datebox datFinal) { + this.datFinal = datFinal; + } + + public List getLsEmpresa() { + return lsEmpresa; + } + + public void setLsEmpresa(List lsEmpresa) { + this.lsEmpresa = lsEmpresa; + } + + public MyComboboxEstandar getCmbEmpresa() { + return cmbEmpresa; + } + + public void setCmbEmpresa(MyComboboxEstandar cmbEmpresa) { + this.cmbEmpresa = cmbEmpresa; + } + + public MyComboboxEstandar getCmbRuta() { + return cmbRuta; + } + + public void setCmbRuta(MyComboboxEstandar cmbRuta) { + this.cmbRuta = cmbRuta; + } + + public List getLsRuta() { + return lsRuta; + } + + public void setLsRuta(List lsRuta) { + this.lsRuta = lsRuta; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioTabelaPreco.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioTabelaPreco.java new file mode 100644 index 000000000..dec84f0c6 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioTabelaPreco.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 ItemMenuRelatorioTabelaPreco extends DefaultItemMenuSistema { + + public ItemMenuRelatorioTabelaPreco() { + super("indexController.mniRelatorioTabelaPreco.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.TABELAPRECO"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/relatorios/filtroRelatorioTabelaPreco.zul", + Labels.getLabel("relatorioTabelaPrecoController.window.title"), 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 0cf123358..59187aa55 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -250,6 +250,7 @@ indexController.mniRelatorioDemandas.label = Reporte de Demandas indexController.mniRelatorioReceitaServico.label = Reporte de Ingreso por Servicio indexController.mniRelatorioCancelamentoVendaCartao.label = Reporte Cancelación de Venta con Tarjeta indexController.mniRelatorioCancelamentoTransacao.label = Relatório de Cancelamento de Transação +indexController.mniRelatorioTabelaPreco.label = Relátorio de Tabela de Preços indexController.mniRelatorioAIDF.label = Reporte AIDF indexController.mniPrecoApanhe.label = Preço Apanhe indexController.mniRelatorioVendasPacotesResumido.label = Ventas de Paquetes - Resumido @@ -4177,6 +4178,13 @@ relatorioCancelamentoTransacaoController.btnLimpar.label = Limpar relatorioCancelamentoTransacaoController.lbNumero.value = Número Agência relatorioCancelamentoTransacaoController.lbBilheteiro.value = Bilheteiro +#Relatorio de Tabela Preco +relatorioTabelaPrecoController.window.title = Relatório de Tabela de Preços +relatorioTabelaPrecoController.dataInicial.value = Data Inicial +relatorioTabelaPrecoController.dataFinal.value = Data Final +relatorioTabelaPrecoController.lbEmpresa.value = Empresa +relatorioTabelaPrecoController.lbLinha.value = Linha + # Editar Motivo cancelación equivalencia editarMotivoCancelacionEquivalenciaController.window.title = Equivalencia motivo de cancelación editarMotivoCancelacionEquivalenciaController.btnApagar.tooltiptext = Eliminar diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index fd761f6ad..d3c6d98e9 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -255,6 +255,7 @@ indexController.mniRelatorioDemandas.label = Relatório de Demandas indexController.mniRelatorioReceitaServico.label = Relatório de Receita por Serviço indexController.mniRelatorioCancelamentoVendaCartao.label = Relatório Cancelamento de Venda de Cartão indexController.mniRelatorioCancelamentoTransacao.label = Relatório de Cancelamento de Transação +indexController.mniRelatorioTabelaPreco.label = Relátorio de Tabela de Preços indexController.mniRelatorioAIDF.label = Relatório AIDF indexController.mniPrecoApanhe.label = Preço Apanhe indexController.mniRelatorioVendasPacotesResumido.label = Vendas de Pacotes - Resumido @@ -4239,6 +4240,12 @@ relatorioCancelamentoTransacaoController.btnLimpar.label = Limpar relatorioCancelamentoTransacaoController.lbNumero.value = Número Agência relatorioCancelamentoTransacaoController.lbBilheteiro.value = Bilheteiro +#Relatorio de Tabela Preco +relatorioTabelaPrecoController.window.title = Relatório de Tabela de Preços +relatorioTabelaPrecoController.dataInicial.value = Data Inicial +relatorioTabelaPrecoController.dataFinal.value = Data Final +relatorioTabelaPrecoController.lbEmpresa.value = Empresa +relatorioTabelaPrecoController.lbLinha.value = Linha # Editar Motivo cancelamento equivalencia editarMotivoCancelacionEquivalenciaController.window.title = Equivalencia Motivo de Cancelamento diff --git a/web/gui/relatorios/filtroRelatorioTabelaPreco.zul b/web/gui/relatorios/filtroRelatorioTabelaPreco.zul new file mode 100644 index 000000000..df678efd7 --- /dev/null +++ b/web/gui/relatorios/filtroRelatorioTabelaPreco.zul @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +