From 6f64b6be29d07196924c0bc3a3f3dedc71b77325 Mon Sep 17 00:00:00 2001 From: celio Date: Tue, 20 Jul 2021 02:06:09 +0000 Subject: [PATCH] bug#22299 dev: GLEIMAR qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@107919 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../relatorios/impl/RelatorioMensalDAER.java | 203 ++++++ .../RelatorioMensalDAER_pt_BR.properties | 35 + .../templates/RelatorioMensalDAER.jasper | Bin 0 -> 47997 bytes .../templates/RelatorioMensalDAER.jrxml | 672 ++++++++++++++++++ .../utilitarios/RelatorioMensalDAERBean.java | 226 ++++++ .../RelatorioMensalDAERController.java | 141 ++++ .../ItemMenuRelatorioMensalDAER.java | 25 + .../utilerias/menu/menu_original.properties | 1 + web/WEB-INF/i3-label_pt_BR.label | 16 + .../relatorios/filtroRelatorioMensalDAER.zul | 55 ++ 10 files changed, 1374 insertions(+) create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMensalDAER.java create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMensalDAER_pt_BR.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMensalDAER.jasper create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMensalDAER.jrxml create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioMensalDAERBean.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioMensalDAERController.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioMensalDAER.java create mode 100644 web/gui/relatorios/filtroRelatorioMensalDAER.zul diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMensalDAER.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMensalDAER.java new file mode 100644 index 000000000..096f0eb14 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMensalDAER.java @@ -0,0 +1,203 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.math.BigDecimal; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Logger; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioMensalDAERBean; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +public class RelatorioMensalDAER extends Relatorio { + + private List lsDadosRelatorio; + private static Logger log = Logger.getLogger(RelatorioMensalDAER.class); + + /** + * @param parametros + * @param conexao + */ + public RelatorioMensalDAER(final Map parametros, final Connection conexao) throws Exception { + super(parametros, conexao); + + this.setCustomDataSource(new DataSource(this) { + @Override + public void initDados() throws Exception { + try { + String agencia = parametros.get("AGENCIA") != null ? parametros.get("AGENCIA").toString() : null; + Empresa empresa = parametros.get("EMPRESA") != null ? (Empresa) (parametros.get("EMPRESA")) : null; + + // Executa query relatório e preenche objeto relatório + lsDadosRelatorio = preencheAgrupaRelatorioBean(preparaExecutaQuery(parametros, conexao, empresa, agencia)); + + parametros.put("RELATORIOLIST", lsDadosRelatorio); + setLsDadosRelatorio(lsDadosRelatorio); + + } catch (Exception e) { + log.error("Erro ao executar relatório", e); + } + } + + /** + * @param parametros + * @param conexao + * @param agencia + * @param empresa + * @return + * @throws SQLException + */ + private ResultSet preparaExecutaQuery(Map parametros, Connection conexao, Empresa empresa, String agencia) throws SQLException { + String sql = getSql(); + NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); + ResultSet rset = null; + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + + if (parametros.get("DATA_INICIO") != null) { + Date dataInicio = (Date) parametros.get("DATA_INICIO"); + stmt.setString("DATA_INICIO", sdf.format(dataInicio)); + } + + if (parametros.get("DATA_FINAL") != null) { + Date dataFinal = (Date) parametros.get("DATA_FINAL"); + stmt.setString("DATA_FINAL", sdf.format(dataFinal)); + } + stmt.setInt("EMPRESA", empresa.getEmpresaId()); + stmt.setString("AGENCIA", agencia); + rset = stmt.executeQuery(); + return rset; + } + + }); + } + + /** + * @param lsDadosRelatorio + */ + protected void setLsDadosRelatorio(List lsDadosRelatorio) { + this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio)); + this.lsDadosRelatorio = lsDadosRelatorio; + } + + protected List preencheAgrupaRelatorioBean(ResultSet rset) throws SQLException { + lsDadosRelatorio = new ArrayList(); + Integer qtBilhetes=null; + while (rset.next()) { + RelatorioMensalDAERBean relatorioMensalDAER = new RelatorioMensalDAERBean(rset.getInt("corrida_id")); + qtBilhetes = rset.getInt("qtdbilhetes"); + if (!lsDadosRelatorio.contains(relatorioMensalDAER) && !qtBilhetes.equals(0)) { + String sentido = rset.getString("sentidoida").equals("0") ? "1" : "2"; + float manifbilhetes = rset.getFloat("manifbilhetes"); + BigDecimal comissaoDAER = BigDecimal.valueOf(manifbilhetes * (11.0f / 100.0f)); + float comissao = comissaoDAER.floatValue(); + BigDecimal taxaFiscal = BigDecimal.valueOf(comissao * (3.0f / 100.0f)); + + relatorioMensalDAER.setFecHorSalida(retornaHora(rset.getTimestamp("partida"),true)); + relatorioMensalDAER.setFecMinSalida(retornaHora(rset.getTimestamp("partida"),false)); + relatorioMensalDAER.setFecHorInicio(retornaHora(rset.getTimestamp("inicio"),true)); + relatorioMensalDAER.setFecMinInicio(retornaHora(rset.getTimestamp("inicio"),false)); + relatorioMensalDAER.setFecCorrida(rset.getDate("feccorrida")); + relatorioMensalDAER.setIndSentidoIda(sentido); + relatorioMensalDAER.setNumRuta(rset.getString("linha")); + relatorioMensalDAER.setModal(rset.getString("modal")); + relatorioMensalDAER.setCatVeiculo(rset.getString("catVeiculo")); + relatorioMensalDAER.setCodDER(rset.getInt("codemp")); + relatorioMensalDAER.setQtdServNormal(rset.getInt("normal")); + relatorioMensalDAER.setQtdServExtra(rset.getInt("extra")); + relatorioMensalDAER.setQtdBilhetes(rset.getInt("qtdbilhetes")); + relatorioMensalDAER.setManifBilhetes(rset.getBigDecimal("manifbilhetes")); + relatorioMensalDAER.setEncomendas(null); + relatorioMensalDAER.setComissaoPassagem(comissaoDAER); + relatorioMensalDAER.setTaxaFiscalizacao(taxaFiscal); + relatorioMensalDAER.setTaxaManutencao(rset.getBigDecimal("embarque")); + + lsDadosRelatorio.add(relatorioMensalDAER); + } + } + return lsDadosRelatorio; + + } + + protected String getSql() { + StringBuilder sql = new StringBuilder(); + sql.append("SELECT "); + sql.append("( case when ct.numsecuencia = 1 then null "); + sql.append(" else (SELECT cot.fechorsalida FROM corrida cot "); + sql.append(" INNER JOIN corrida_tramo ctt ON ( cot.corrida_id = ctt.corrida_id AND cot.feccorrida = ctt.feccorrida AND ctt.activo = 1 ) "); + sql.append(" where cot.feccorrida = co.feccorrida and cot.corrida_id = co.corrida_id and ctt.numsecuencia = 1) END ) AS inicio, "); + sql.append(" ct.fechorsalida AS partida, "); + sql.append(" co.feccorrida, "); + sql.append(" co.corrida_id, "); + sql.append(" ct.numsecuencia, "); + sql.append(" rut.indsentidoida AS sentidoida, "); + sql.append(" rut.numruta AS linha, "); + sql.append(" cs.claseservicio_id AS modal, "); + sql.append(" ' ' as catVeiculo, "); + sql.append(" e.codder AS codemp, "); + sql.append(" ( SELECT COUNT(cn.corrida_id) FROM corrida cn WHERE cn.corrida_id = co.corrida_id AND cn.tiposervicio_id = 1 "); + sql.append(" AND cn.feccorrida BETWEEN TO_DATE(:DATA_INICIO, 'DD/MM/YYYY') AND TO_DATE(:DATA_FINAL, 'DD/MM/YYYY')) as normal, "); + sql.append(" ( SELECT COUNT(ce.corrida_id) FROM corrida ce WHERE ce.corrida_id = co.corrida_id AND ce.tiposervicio_id = 2 "); + sql.append(" AND ce.feccorrida BETWEEN TO_DATE(:DATA_INICIO, 'DD/MM/YYYY') AND TO_DATE(:DATA_FINAL, 'DD/MM/YYYY')) as extra, "); + sql.append(" ( SELECT COUNT(caja_id) FROM caja WHERE corrida_id = co.corrida_id AND ruta_id = co.ruta_id "); + sql.append(" AND feccorrida BETWEEN TO_DATE(:DATA_INICIO, 'DD/MM/YYYY') AND TO_DATE(:DATA_FINAL, 'DD/MM/YYYY')) AS qtdbilhetes, "); + sql.append(" ( SELECT SUM(caja.preciobase+caja.importeseguro)FROM caja WHERE corrida_id = co.corrida_id AND ruta_id = co.ruta_id "); + sql.append(" AND feccorrida BETWEEN TO_DATE(:DATA_INICIO, 'DD/MM/YYYY') AND TO_DATE(:DATA_FINAL, 'DD/MM/YYYY')) AS manifbilhetes, "); + sql.append(" ( SELECT SUM(caja.importetaxaembarque)FROM caja WHERE corrida_id = co.corrida_id AND ruta_id = co.ruta_id "); + sql.append(" AND feccorrida BETWEEN TO_DATE(:DATA_INICIO, 'DD/MM/YYYY') AND TO_DATE(:DATA_FINAL, 'DD/MM/YYYY')) AS embarque, "); + sql.append(" ' ' as encomendas "); + sql.append("FROM corrida co"); + sql.append(" INNER JOIN empresa e ON ( e.empresa_id = co.empresacorrida_id) "); + sql.append(" INNER JOIN tipo_servicio ts ON ( ts.tiposervicio_id = co.tiposervicio_id) "); + sql.append(" INNER JOIN corrida_tramo ct ON ( co.corrida_id = ct.corrida_id AND co.feccorrida = ct.feccorrida AND ct.activo = 1 ) "); + sql.append(" INNER JOIN ruta rut ON ( rut.ruta_id = co.ruta_id AND rut.activo = 1 ) "); + sql.append(" INNER JOIN ORGAO_CONCEDENTE oc ON (rut.ORGAOCONCEDENTE_ID = OC.ORGAOCONCEDENTE_ID) "); + sql.append(" INNER JOIN clase_servicio cs ON ( cs.claseservicio_id = co.claseservicio_id ) "); + sql.append(" LEFT OUTER JOIN punto_venta pv ON ( pv.PARADA_ID = ct.origen_id ) "); + sql.append("WHERE co.activo = 1 "); + sql.append(" AND cs.descclase in ('CONVENCIONAL', 'EXECUTIVO', 'SEMI-DIRETO') "); + sql.append(" AND oc.descorgao like '%ANTT%' "); + sql.append(" AND co.empresacorrida_id = :EMPRESA "); + sql.append(" AND pv.puntoventa_Id = :AGENCIA "); + sql.append(" AND co.feccorrida BETWEEN TO_DATE(:DATA_INICIO, 'DD/MM/YYYY') AND TO_DATE(:DATA_FINAL, 'DD/MM/YYYY') "); + sql.append("ORDER BY "); + sql.append(" co.corrida_id, "); + sql.append(" rut.numruta, "); + sql.append(" ct.fechorsalida,"); + sql.append(" ct.numsecuencia "); + + return sql.toString(); + } + + public String retornaHora(Date horaCompleta, boolean ishora) { + String horaMin = null; + if(horaCompleta == null) { + return horaMin; + } else if (ishora) { + SimpleDateFormat simpleTimeFormat = new SimpleDateFormat("HH"); + horaMin = simpleTimeFormat.format(horaCompleta); + return horaMin; + } else { + SimpleDateFormat simpleTimeFormat = new SimpleDateFormat("mm"); + horaMin = simpleTimeFormat.format(horaCompleta); + return horaMin; + } + + } + + @Override + protected void processaParametros() throws Exception { + + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMensalDAER_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMensalDAER_pt_BR.properties new file mode 100644 index 000000000..636d9be3e --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMensalDAER_pt_BR.properties @@ -0,0 +1,35 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. +msg.a=à + +#Labels header +header.titulo.relatorio=BOLETIM ESTATÍSTICO MENSAL DE ESTAÇÕES RODIVIÁRIAS +header.mes=M-S +header.ano=ANO +header.tr=TR +header.tl=TL +header.nl=NL +header.estacao=NUM.ESTAC. +header.filtro.rodoviaria= Rodoviária de: + +#Labels detail + +detail.horarioInicial=HORARIO INICIAL +detail.hora=HH +detail.min=MM +detail.horarioPartida=HORARIO PARTIDA +detail.sentido=SENTIDO +detail.numeroLinha=NUMERO DA LINHA +detail.modal=MODAL +detail.empresa=NUM DA EMPRESA +detail.categoria=CAT VEIC +detail.viagens=NUM DE VIAGENS +detail.viagensNormais=NORM +detail.viagensExtras=EXTRA +detail.qtdViagens=QTDE PASS VENDIDAS +detail.valorManifest=VALOR MANIFESTADO R$ +detail.passagens=PASSAGENS +detail.encom=ENCOMENDAS +detail.comissoes=COMISSOES +detail.taxa=TAXA MANUTENÇÃO +detail.taxaF=TAXA FISCALIZAÇÃO diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMensalDAER.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMensalDAER.jasper new file mode 100644 index 0000000000000000000000000000000000000000..450b6c1eb06353a5cc92edb612d801b3fcd540a1 GIT binary patch literal 47997 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 JYNvDZ{{x_55(EGM literal 0 HcmV?d00001 diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMensalDAER.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMensalDAER.jrxml new file mode 100644 index 000000000..3e9208776 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMensalDAER.jrxml @@ -0,0 +1,672 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioMensalDAERBean.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioMensalDAERBean.java new file mode 100644 index 000000000..f85291879 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioMensalDAERBean.java @@ -0,0 +1,226 @@ +package com.rjconsultores.ventaboletos.relatorios.utilitarios; + +import java.math.BigDecimal; +import java.util.Date; + +public class RelatorioMensalDAERBean { + private Integer corridaId; + private String fecHorSalida; + private String fecMinSalida; + private String fecHorInicio; + private String fecMinInicio; + private String empresaId; + private Date fecCorrida; + private String indSentidoIda; + private String numRuta; + private String modal; + private String catVeiculo; + private Integer codDER; + private Integer qtdServNormal; + private Integer qtdServExtra; + private Integer qtdBilhetes; + private BigDecimal manifBilhetes; + private Integer encomendas; + private BigDecimal comissaoPassagem; + private BigDecimal comissaoEncomenda; + private BigDecimal taxaFiscalizacao; + private BigDecimal taxaManutencao; + + public String getEmpresaId() { + return empresaId; + } + + public void setEmpresaId(String empresaId) { + this.empresaId = empresaId; + } + + public Integer getCorridaId() { + return corridaId; + } + + public RelatorioMensalDAERBean(Integer corridaId) { + this.corridaId = corridaId; + } + + public void setCorridaId(Integer corridaId) { + this.corridaId = corridaId; + } + + public String getFecHorSalida() { + return fecHorSalida; + } + + public void setFecHorSalida(String fecHorSalida) { + this.fecHorSalida = fecHorSalida; + } + + public String getFecHorInicio() { + return fecHorInicio; + } + + public void setFecHorInicio(String fecHorInicio) { + this.fecHorInicio = fecHorInicio; + } + + public String getFecMinSalida() { + return fecMinSalida; + } + + public void setFecMinSalida(String fecMinSalida) { + this.fecMinSalida = fecMinSalida; + } + + public String getFecMinInicio() { + return fecMinInicio; + } + + public void setFecMinInicio(String fecMinInicio) { + this.fecMinInicio = fecMinInicio; + } + + public Date getFecCorrida() { + return fecCorrida; + } + + public void setFecCorrida(Date fecCorrida) { + this.fecCorrida = fecCorrida; + } + + public String getIndSentidoIda() { + return indSentidoIda; + } + + public void setIndSentidoIda(String indRentidoIda) { + this.indSentidoIda = indRentidoIda; + } + + public String getNumRuta() { + return numRuta; + } + + public void setNumRuta(String numRuta) { + this.numRuta = numRuta; + } + + public String getModal() { + return modal; + } + + public void setModal(String modal) { + this.modal = modal; + } + + public String getCatVeiculo() { + return catVeiculo; + } + + public void setCatVeiculo(String catVeiculo) { + this.catVeiculo = catVeiculo; + } + + public Integer getCodDER() { + return codDER; + } + + public void setCodDER(Integer codDER) { + this.codDER = codDER; + } + + public Integer getQtdServNormal() { + return qtdServNormal; + } + + public void setQtdServNormal(Integer qtdServNormal) { + this.qtdServNormal = qtdServNormal; + } + + public Integer getQtdServExtra() { + return qtdServExtra; + } + + public void setQtdServExtra(Integer qtdServExtra) { + this.qtdServExtra = qtdServExtra; + } + + public Integer getQtdBilhetes() { + return qtdBilhetes; + } + + public void setQtdBilhetes(Integer qtdBilhetes) { + this.qtdBilhetes = qtdBilhetes; + } + + public BigDecimal getManifBilhetes() { + return manifBilhetes; + } + + public void setManifBilhetes(BigDecimal manifBilhetes) { + this.manifBilhetes = manifBilhetes; + } + + public Integer getEncomendas() { + return encomendas; + } + + public void setEncomendas(Integer encomendas) { + this.encomendas = encomendas; + } + + public BigDecimal getTaxaFiscalizacao() { + return taxaFiscalizacao; + } + + public void setTaxaFiscalizacao(BigDecimal taxaFiscalizacao) { + this.taxaFiscalizacao = taxaFiscalizacao; + } + + public BigDecimal getTaxaManutencao() { + return taxaManutencao; + } + + public void setTaxaManutencao(BigDecimal taxaManutencao) { + this.taxaManutencao = taxaManutencao; + } + + public BigDecimal getComissaoPassagem() { + return comissaoPassagem; + } + + public void setComissaoPassagem(BigDecimal comissaoPassagem) { + this.comissaoPassagem = comissaoPassagem; + } + + public BigDecimal getComissaoEncomenda() { + return comissaoEncomenda; + } + + public void setComissaoEcomenda(BigDecimal comissaoEncomenda) { + this.comissaoEncomenda = comissaoEncomenda; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((corridaId == null) ? 0 : corridaId.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + RelatorioMensalDAERBean other = (RelatorioMensalDAERBean) obj; + if (corridaId == null) { + if (other.corridaId != null) + return false; + } else if (!corridaId.equals(other.corridaId)) + return false; + return true; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioMensalDAERController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioMensalDAERController.java new file mode 100644 index 000000000..22cc1ca92 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioMensalDAERController.java @@ -0,0 +1,141 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; + +import java.util.Date; +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.Combobox; +import org.zkoss.zul.Textbox; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.UsuarioUbicacion; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioMensalDAER; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.service.EmpresaService; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; + +@Controller("relatorioMensalDAERController") +@Scope("prototype") +public class RelatorioMensalDAERController extends MyGenericForwardComposer { + private static final long serialVersionUID = 1L; + private static Logger log = Logger.getLogger(RelatorioMensalDAERController.class); + + @Autowired + private DataSource dataSourceRead; + + @Autowired + private EmpresaService empresaService; + + //private Datebox datCompetencia; + private Textbox txtCompetencia; + private List lsEmpresas; + private Combobox cmbEmpresa; + private List lsAgencias; + private String agenciasUsuario; + + + + private void executarRelatorio(boolean enviarEmail) throws Exception { + try { + Map parametros = new HashMap(); + + // Filtro Data Inicial + String competencia = txtCompetencia.getValue().toString(); + Date periodo = DateUtil.getDateFromString("01/"+competencia, "dd/MM/yyyy"); + Date dateInicio = DateUtil.inicioFecha(periodo); + parametros.put("DATA_INICIO", dateInicio); + + // Filtro Data Final + competencia = txtCompetencia.getValue().toString(); + parametros.put("MES", competencia.substring(0,2)); + parametros.put("ANO", competencia.substring(3)); + + Date dateFim = DateUtil.getDataFinalCompetencia(competencia); + parametros.put("DATA_FINAL", dateFim); + + // Filtro Empresa + Empresa empresa = null; + if (cmbEmpresa.getSelectedItem() != null) { + empresa = (Empresa) cmbEmpresa.getSelectedItem().getValue(); + } + parametros.put("EMPRESA", empresa); + parametros.put("NOMBEMPRESA", empresa != null ? empresa.getNombempresa() : "TODOS"); + + // Filtro Usuário Id + parametros.put("USUARIO_ID", UsuarioLogado.getUsuarioLogado().getUsuarioId().toString()); + + // Filtro nome usuário + parametros.put("NOME_USUARIO", UsuarioLogado.getUsuarioLogado().getNombusuario().toString()); + parametros.put("AGENCIA", agenciasUsuario); + parametros.put("RODOVIARIA", UsuarioLogado.getUsuarioLogado().getUsuarioUbicacionList().get(0).getPuntoVenta().getNombpuntoventa().toString()); + parametros.put("ESTACION", ""); + + // Instancia o relatório + Relatorio relatorio = new RelatorioMensalDAER(parametros, dataSourceRead.getConnection()); + Map args = new HashMap(); + args.put("relatorio", relatorio); + + // Abre a janela do relatório + openWindow("/component/reportView.zul", + Labels.getLabel("relatorioMensalDAERController.window.title"), args, MODAL); + } catch (Exception e) { + log.error("Erro ao executar relatório", e); + } + + } + + public void onClick$btnEnviarEmailMensalDAER(Event ev) throws Exception { + executarRelatorio(true); + } + + public void onClick$btnExecutarRelatorio(Event ev) throws Exception { + executarRelatorio(false); + } + + @Override + public void doAfterCompose(Component comp) throws Exception { + super.doAfterCompose(comp); + lsEmpresas = UsuarioLogado.getUsuarioLogado().getEmpresa(); + lsAgencias = UsuarioLogado.getUsuarioLogado().getUsuarioUbicacionActivoList(); + StringBuilder agencias = new StringBuilder(); + + for (int i =0; i< lsAgencias.size() ; i++) { + agencias.append(lsAgencias.get(i).getPuntoVenta().getPuntoventaId().toString()); + if(lsAgencias.size() > 1 && i < lsAgencias.size() -1) { + agencias.append(", "); + } + } + this.agenciasUsuario = agencias.toString(); + } + + public List getLsEmpresas() { + return lsEmpresas; + } + + public void setLsEmpresa(List lsEmpresas) { + this.lsEmpresas = lsEmpresas; + } + + public List getLsAgencias() { + return lsAgencias; + } + + public void setLsAgencia(List lsAgencias) { + this.lsAgencias = lsAgencias; + } + + + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioMensalDAER.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioMensalDAER.java new file mode 100644 index 000000000..454632033 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioMensalDAER.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 ItemMenuRelatorioMensalDAER extends DefaultItemMenuSistema { + + public ItemMenuRelatorioMensalDAER() { + super("indexController.mniRelatorioMensalDAER.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS.MENU.RELATORIOMENSALDAER"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/relatorios/filtroRelatorioMensalDAER.zul", + Labels.getLabel("relatorioMensalDAERController.window.title"), getArgs() ,desktop); + } + +} \ No newline at end of file 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 bf9f4a5d3..44890cb04 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 @@ -178,6 +178,7 @@ analitico.gerenciais.estatisticos.passageirosViajar=com.rjconsultores.ventabolet analitico.gerenciais.estatisticos.origemDestino=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioOrigemDestino analitico.gerenciais.estatisticos.relatorioCorridas=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioCorridas analitico.gerenciais.estatisticos.gratuidades=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioGratuidadeANTT +analitico.gerenciais.estatisticos.mensalDAER=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioMensalDAER analitico.gerenciais.estatisticos.gratuidadeARTESP=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioGratuidadeARTESP analitico.gerenciais.estatisticos.gratuidadeAGER=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioGratuidadeAGER analitico.gerenciais.estatisticos.gratuidadesANTT=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioGratuidade diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 08ffa7316..8423252a5 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -526,6 +526,9 @@ editarGrupoRutaController.MSG.borrarOK = Grupo de linha excluido com sucesso. #Relatório IRK relatorioIRKController.window.title= Relatório Indice IRK +#Relatório Mensal DAER +relatorioMensalDAERController.window.title= Boletim Estatistico Mensal DAER + #Resumo de linhas relatorioResumoLinhasController.window.title = Relatório Resumo de Linhas relatorioResumoLinhasAnaliticoSumarizadoCompletoController.window.title = Relatório Resumo de Linhas Analítico Sumarizado Completo @@ -684,6 +687,19 @@ relatorioIndiceIRKController.rdTodos.label = Todos relatorioIndiceIRKController.lbHoraSaidaInicial.value = Hora Saída relatorioIndiceIRKController.lbHoraSaidaFinal.value = à +#Relatório Mensal DAER +relatorioMensalDAERController.window.title= Boletim Estatistico Mensal Rodoviarias DAER +relatorioMensalDAERController.lbCompetenciaLayout.label = (MM/YYYY) +relatorioMensalDAERController.lbCompetencia.label = Mes e Ano +relatorioMensalDAERController.lbEmpresa.value = Empresa +relatorioMensalDAERController.labelTipoPassagems.value=Tipos de Passagens +relatorioMensalDAERController.tipo.obrigatoria = Tipo de passagens é obrigatório +relatorioMensalDAERController.lbTipoPassgens.value = Tipos de Passagens +relatorioMensalDAERController.labelRemoveTipoPassagem.value = Remover tipo Passagem +relatorioMensalDAERController.labelAdicionaTipoPassagem.value = Adicionar tipo Passagem +relatorioMensalDAERController.lbRelatorio.value = Emitir Relatório +relatorioMensalDAERController.lbEnviarEmailDAER.label = E-mail Recibo + #Relatorio Trecho Vendido relatorioTrechoVendidoController.lbDataIni.value = Data Inicial relatorioTrechoVendidoController.lbDataFin.value = Data Final diff --git a/web/gui/relatorios/filtroRelatorioMensalDAER.zul b/web/gui/relatorios/filtroRelatorioMensalDAER.zul new file mode 100644 index 000000000..21f9a5fd2 --- /dev/null +++ b/web/gui/relatorios/filtroRelatorioMensalDAER.zul @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +